feat: add multilingual interface support

This commit is contained in:
2026-07-24 16:00:12 +01:00
parent d2567c59ce
commit 16383c2a3f
10 changed files with 788 additions and 84 deletions
+93 -4
View File
@@ -241,14 +241,49 @@ body {
height: auto;
}
.brand-subtitle {
.brand-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-top: 8px;
/* Extend through the brand's reserved close-button clearance so the gear
and sidebar close controls share the same right-hand axis. */
margin-right: -60px;
}
.brand-subtitle {
color: var(--muted);
font-size: 1rem;
font-weight: 700;
font-weight: 400;
letter-spacing: 0.04em;
}
.settings-open {
display: grid;
width: 42px;
height: 42px;
min-width: 42px;
padding: 0;
place-items: center;
border: 1px solid var(--panel-border);
border-radius: 50%;
background: rgba(255, 255, 255, 0.55);
color: var(--ink);
box-shadow: none;
}
.settings-open:hover,
.settings-open:focus-visible {
background: rgba(31, 122, 98, 0.1);
outline: 2px solid rgba(31, 122, 98, 0.25);
outline-offset: 2px;
}
.settings-open .material-symbols-outlined {
font-size: 1.3rem;
}
.visually-hidden {
position: absolute;
width: 1px;
@@ -370,6 +405,10 @@ button:disabled {
color: var(--muted);
}
.status:empty {
display: none;
}
.status.error {
color: #9d2e21;
}
@@ -427,7 +466,12 @@ button:disabled {
display: none;
}
.feature-modal {
.settings-modal[hidden] {
display: none;
}
.feature-modal,
.settings-modal {
position: fixed;
z-index: 20;
inset: 0;
@@ -436,13 +480,53 @@ button:disabled {
place-items: center;
}
.feature-modal-backdrop {
.feature-modal-backdrop,
.settings-modal-backdrop {
position: absolute;
inset: 0;
background: rgba(31, 42, 46, 0.35);
backdrop-filter: blur(1px);
}
.settings-modal-dialog {
position: relative;
width: min(100%, 380px);
padding: 28px;
border: 1px solid var(--panel-border);
border-radius: 24px;
background: var(--panel);
backdrop-filter: blur(16px);
box-shadow: var(--shadow);
}
.settings-modal-close {
position: absolute;
top: 12px;
right: 12px;
display: grid;
width: 36px;
height: 36px;
padding: 0;
place-items: center;
border: 1px solid var(--panel-border);
border-radius: 50%;
background: transparent;
color: var(--ink);
box-shadow: none;
font-size: 1.5rem;
line-height: 1;
}
.settings-modal-dialog h2 {
padding-right: 44px;
}
.settings-form {
display: grid;
gap: 20px;
margin-top: 24px;
}
.feature-modal-dialog {
position: relative;
width: min(100%, 360px);
@@ -506,9 +590,12 @@ button:disabled {
}
.feature-details dd {
min-width: 0;
margin: 0;
font-size: 1.1rem;
font-weight: 700;
overflow-wrap: anywhere;
text-align: right;
}
.feature-inhabited {
@@ -564,7 +651,9 @@ button:disabled {
}
.feature-association-label {
min-width: 0;
font-weight: 700;
overflow-wrap: anywhere;
}
.feature-association-area {