Files
astrolabe/src/app/components/SettingsPopover.module.css
T

119 lines
2.3 KiB
CSS

/* SettingsPopover — per-pane settings disclosure (spec §07; arch 10). */
.wrap {
position: relative;
display: inline-flex;
}
/* The gear trigger is the shared IconButton primitive (arch 09 §4). */
/* The disclosed panel — portaled to <body>, positioned `fixed` from the gear's
rect (top/left|right set inline) so it escapes the panes' overflow clipping. */
.pop {
position: fixed;
z-index: 1000;
width: 288px;
max-width: min(320px, 90vw);
padding: var(--space-4);
background: var(--layer-01);
border: var(--border-width) solid var(--border);
border-radius: var(--radius);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
/* The popover surface is --layer-01: fields step their fill off it. */
--field: var(--field-02);
--field-hover: var(--field-hover-02);
}
.title {
margin: 0 0 var(--space-3);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--text-secondary);
}
.row {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-4);
/* Rows hold 32px controls; the min keeps control-less rows the same height. */
min-height: var(--control-height);
}
.row + .row {
margin-top: var(--space-1);
}
.label {
font-size: 13px;
color: var(--text);
}
.control {
display: flex;
align-items: center;
gap: var(--space-3);
}
.footer {
display: flex;
justify-content: flex-end;
margin-top: var(--space-3);
padding-top: var(--space-3);
border-top: var(--border-width) solid var(--border);
}
/* Shared controls used inside popovers ------------------------------------- */
.range {
width: 128px;
accent-color: var(--accent);
}
.value {
min-width: 48px;
text-align: right;
font-variant-numeric: tabular-nums;
font-size: 12px;
color: var(--text-secondary);
}
.number,
.text {
height: var(--control-height);
padding: 0 var(--space-3);
font-size: 12px;
}
.number {
width: 60px;
text-align: right;
}
.text {
width: 160px;
font-family: var(--font-mono);
}
.reset {
border: none;
background: none;
padding: 0;
color: var(--accent);
font: inherit;
font-size: 12px;
cursor: pointer;
}
.reset:hover {
color: var(--accent-hover);
text-decoration: underline;
}
.reset:focus-visible {
outline: 2px solid var(--focus);
outline-offset: 2px;
}