style: sidebar UX polish — unified dividers, letter-spacing, contrast, font floor
- Unify sidebar dividers: one dashed style + --sidebar-rule token (replaces 4 old tokens) - Remove total-line border from invoice/value/summary groups (keep monthly only) - Add --text-spacing-money: 0.05em token (was hardcoded 0.02em) for price readability - Bump 6 font sizes from 8-10px to 0.6875rem (11px minimum floor) - Darken --muted: Dark #9e9588→#b0a99f (6.6:1), Light #6a6157→#554e46 (6.5:1) - Remove opacity on 9 text elements that were double-muting with --muted color - Normalize divider weight across themes: Dark/Light 75%, Glass 0.16 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -97,10 +97,8 @@
|
|||||||
letter-spacing: 0.12em;
|
letter-spacing: 0.12em;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: var(--accent);
|
color: var(--accent);
|
||||||
opacity: 0.7;
|
|
||||||
}
|
}
|
||||||
.group-label-sections {
|
.group-label-sections {
|
||||||
opacity: 0.6;
|
|
||||||
letter-spacing: 0.06em;
|
letter-spacing: 0.06em;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,7 +204,7 @@
|
|||||||
max-width: none;
|
max-width: none;
|
||||||
text-wrap: pretty;
|
text-wrap: pretty;
|
||||||
}
|
}
|
||||||
.section-title-tag { font-size: 0.9375rem; font-weight: 400; opacity: 0.6; }
|
.section-title-tag { font-size: 0.9375rem; font-weight: 400; }
|
||||||
.section-subtitle {
|
.section-subtitle {
|
||||||
grid-column: 1 / -1;
|
grid-column: 1 / -1;
|
||||||
grid-row: 3;
|
grid-row: 3;
|
||||||
@@ -496,8 +494,8 @@
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: var(--ink);
|
color: var(--ink);
|
||||||
}
|
}
|
||||||
.pill-toggle label .pill-price small { font-size: 0.875rem; opacity: 0.6; }
|
.pill-toggle label .pill-price small { font-size: 0.875rem; }
|
||||||
.pill-toggle label .pill-desc { font-size: 0.875rem; opacity: 0.7; }
|
.pill-toggle label .pill-desc { font-size: 0.875rem; }
|
||||||
.pill-toggle label .pill-savings {
|
.pill-toggle label .pill-savings {
|
||||||
display: block;
|
display: block;
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
@@ -1015,7 +1013,7 @@
|
|||||||
with _m IDs and synced by update() via syncEl/syncClass.
|
with _m IDs and synced by update() via syncEl/syncClass.
|
||||||
─────────────────────────────────────────────────────────────── */
|
─────────────────────────────────────────────────────────────── */
|
||||||
.sidebar {
|
.sidebar {
|
||||||
--sidebar-rule-color: var(--sidebar-line-rule);
|
--sidebar-rule-color: var(--sidebar-rule);
|
||||||
--sidebar-copy-size: 0.84375rem;
|
--sidebar-copy-size: 0.84375rem;
|
||||||
--sidebar-copy-line: 1.5;
|
--sidebar-copy-line: 1.5;
|
||||||
--sidebar-note-size: 0.78125rem;
|
--sidebar-note-size: 0.78125rem;
|
||||||
@@ -1114,7 +1112,7 @@
|
|||||||
.sidebar-focus-client-label {
|
.sidebar-focus-client-label {
|
||||||
display: block;
|
display: block;
|
||||||
font-family: 'DM Mono', monospace;
|
font-family: 'DM Mono', monospace;
|
||||||
font-size: 0.625rem;
|
font-size: 0.6875rem;
|
||||||
letter-spacing: 0.14em;
|
letter-spacing: 0.14em;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: color-mix(in srgb, var(--ink) 62%, var(--muted));
|
color: color-mix(in srgb, var(--ink) 62%, var(--muted));
|
||||||
@@ -1173,7 +1171,7 @@
|
|||||||
flex: 0 0 auto;
|
flex: 0 0 auto;
|
||||||
min-height: 12px;
|
min-height: 12px;
|
||||||
font-family: 'DM Mono', monospace;
|
font-family: 'DM Mono', monospace;
|
||||||
font-size: 0.625rem;
|
font-size: 0.6875rem;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
letter-spacing: 0.18em;
|
letter-spacing: 0.18em;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
@@ -1189,7 +1187,7 @@
|
|||||||
color: var(--muted);
|
color: var(--muted);
|
||||||
line-height: var(--sidebar-copy-line);
|
line-height: var(--sidebar-copy-line);
|
||||||
padding: var(--space-stack-tight) var(--space-xs);
|
padding: var(--space-stack-tight) var(--space-xs);
|
||||||
border-bottom: var(--border-thin) var(--sidebar-line-rule-style) var(--sidebar-rule-color);
|
border-bottom: var(--border-thin) var(--sidebar-rule-style) var(--sidebar-rule-color);
|
||||||
border-left: var(--border-medium) solid transparent;
|
border-left: var(--border-medium) solid transparent;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
transition: background var(--transition-fast, 150ms) ease,
|
transition: background var(--transition-fast, 150ms) ease,
|
||||||
@@ -1208,7 +1206,7 @@
|
|||||||
color: var(--text-money);
|
color: var(--text-money);
|
||||||
font-size: var(--sidebar-copy-size);
|
font-size: var(--sidebar-copy-size);
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
letter-spacing: 0.02em;
|
letter-spacing: var(--text-spacing-money);
|
||||||
flex: 0 0 auto;
|
flex: 0 0 auto;
|
||||||
padding-left: var(--space-sm);
|
padding-left: var(--space-sm);
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@@ -1216,7 +1214,7 @@
|
|||||||
.sidebar-line .lbl-icon { margin-right: var(--space-sm); opacity: 0.82; }
|
.sidebar-line .lbl-icon { margin-right: var(--space-sm); opacity: 0.82; }
|
||||||
.sidebar-mrr-label {
|
.sidebar-mrr-label {
|
||||||
font-family: 'DM Mono', monospace;
|
font-family: 'DM Mono', monospace;
|
||||||
font-size: 0.625rem;
|
font-size: 0.6875rem;
|
||||||
letter-spacing: 0.18em;
|
letter-spacing: 0.18em;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: var(--muted);
|
color: var(--muted);
|
||||||
@@ -1242,7 +1240,6 @@
|
|||||||
height: 15px;
|
height: 15px;
|
||||||
}
|
}
|
||||||
.sidebar-line-opportunity {
|
.sidebar-line-opportunity {
|
||||||
border-bottom-style: dotted;
|
|
||||||
}
|
}
|
||||||
.sidebar-line-opportunity .val {
|
.sidebar-line-opportunity .val {
|
||||||
color: var(--amber);
|
color: var(--amber);
|
||||||
@@ -1353,7 +1350,6 @@
|
|||||||
}
|
}
|
||||||
#nudgeCounter {
|
#nudgeCounter {
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
opacity: 0.55;
|
|
||||||
}
|
}
|
||||||
.nudge-nav-btn {
|
.nudge-nav-btn {
|
||||||
background: var(--surface-ghost);
|
background: var(--surface-ghost);
|
||||||
@@ -1501,7 +1497,7 @@
|
|||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
font-family: 'DM Mono', monospace;
|
font-family: 'DM Mono', monospace;
|
||||||
font-size: 8px;
|
font-size: 0.6875rem;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
letter-spacing: 0.08em;
|
letter-spacing: 0.08em;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
@@ -1723,7 +1719,7 @@
|
|||||||
color: var(--muted);
|
color: var(--muted);
|
||||||
font-family: 'DM Mono', monospace;
|
font-family: 'DM Mono', monospace;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
letter-spacing: 0.02em;
|
letter-spacing: var(--text-spacing-money);
|
||||||
padding: var(--space-xs) 0 var(--space-stack) var(--space-2xl);
|
padding: var(--space-xs) 0 var(--space-stack) var(--space-2xl);
|
||||||
}
|
}
|
||||||
.sl-sub-row {
|
.sl-sub-row {
|
||||||
@@ -1755,8 +1751,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Per-user cost section */
|
/* Per-user cost section */
|
||||||
.per-user-cost-sub { display: inline-block; font-size: 0.625rem; opacity: 0.6; font-weight: 400; margin-top: 3px; }
|
.per-user-cost-sub { display: inline-block; font-size: 0.6875rem; font-weight: 400; margin-top: 3px; }
|
||||||
.sidebar-note-mono { font-size: var(--sidebar-mono-size); padding: 2px 0 6px; font-family: 'DM Mono', monospace; line-height: 1.45; }
|
.sidebar-note-mono { font-size: var(--sidebar-mono-size); padding: 2px 0 6px; font-family: 'DM Mono', monospace; line-height: 1.65; }
|
||||||
|
|
||||||
/* VS Comparison block */
|
/* VS Comparison block */
|
||||||
.vs-comparison-wrap {
|
.vs-comparison-wrap {
|
||||||
@@ -1777,7 +1773,7 @@
|
|||||||
margin-top: var(--space-stack);
|
margin-top: var(--space-stack);
|
||||||
padding-top: var(--space-md);
|
padding-top: var(--space-md);
|
||||||
border-top: var(--border-thin) solid var(--border);
|
border-top: var(--border-thin) solid var(--border);
|
||||||
line-height: 1.6;
|
line-height: 1.75;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1814,23 +1810,26 @@
|
|||||||
/* Sidebar utility classes — !important overrides .sidebar-line .val compound selector */
|
/* Sidebar utility classes — !important overrides .sidebar-line .val compound selector */
|
||||||
.sl-muted { color: var(--muted) !important; font-size: 0.6875rem; }
|
.sl-muted { color: var(--muted) !important; font-size: 0.6875rem; }
|
||||||
.sl-discount-val { color: var(--green) !important; }
|
.sl-discount-val { color: var(--green) !important; }
|
||||||
.sl-discount-detail { font-size: 0.7rem; opacity: 0.7; }
|
.sl-discount-detail { font-size: 0.75rem; }
|
||||||
.sl-hst-val { color: var(--text-money) !important; font-size: var(--sidebar-copy-size); }
|
.sl-hst-val { color: var(--text-money) !important; font-size: var(--sidebar-copy-size); }
|
||||||
.sidebar-line-discount { border-bottom-style: dashed; border-bottom-color: var(--sidebar-rule-color); opacity: 0.8; }
|
.sidebar-line-discount { opacity: 0.8; }
|
||||||
.sidebar-line.sidebar-line-hst {
|
.sidebar-line.sidebar-line-hst {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
padding-top: var(--space-stack-tight);
|
padding-top: var(--space-stack-tight);
|
||||||
padding-bottom: var(--space-stack-tight);
|
padding-bottom: var(--space-stack-tight);
|
||||||
border-top: var(--border-thin) var(--sidebar-line-rule-style) var(--sidebar-rule-color);
|
border-top: var(--border-thin) var(--sidebar-rule-style) var(--sidebar-rule-color);
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
.sidebar-line.sidebar-line-total {
|
.sidebar-line.sidebar-line-total {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin-top: var(--space-sm);
|
margin-top: var(--space-sm);
|
||||||
border-top: var(--border-medium) solid color-mix(in srgb, var(--accent) 30%, transparent);
|
border-top: none;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
padding-top: var(--space-stack-roomy);
|
padding-top: var(--space-stack-roomy);
|
||||||
}
|
}
|
||||||
|
.sidebar-group--monthly .sidebar-line.sidebar-line-total {
|
||||||
|
border-top: var(--border-medium) var(--sidebar-rule-style) var(--sidebar-rule-color);
|
||||||
|
}
|
||||||
.sidebar-line.sidebar-line-total .val {
|
.sidebar-line.sidebar-line-total .val {
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
@@ -1840,7 +1839,7 @@
|
|||||||
font-size: 0.7em;
|
font-size: 0.7em;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: var(--muted);
|
color: var(--muted);
|
||||||
letter-spacing: 0.02em;
|
letter-spacing: var(--text-spacing-money);
|
||||||
}
|
}
|
||||||
.sl-hst-toggle {
|
.sl-hst-toggle {
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
@@ -1989,7 +1988,7 @@
|
|||||||
}
|
}
|
||||||
.quote-notes-label {
|
.quote-notes-label {
|
||||||
font-family: 'DM Mono', monospace;
|
font-family: 'DM Mono', monospace;
|
||||||
font-size: 10px;
|
font-size: 0.6875rem;
|
||||||
letter-spacing: 0.12em;
|
letter-spacing: 0.12em;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
color: var(--muted);
|
color: var(--muted);
|
||||||
@@ -2016,7 +2015,6 @@
|
|||||||
}
|
}
|
||||||
.quote-notes-input::placeholder {
|
.quote-notes-input::placeholder {
|
||||||
color: var(--muted);
|
color: var(--muted);
|
||||||
opacity: 0.5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ── EXPORT BUTTONS ─────────────────────────────────────────────
|
/* ── EXPORT BUTTONS ─────────────────────────────────────────────
|
||||||
|
|||||||
@@ -191,8 +191,7 @@ html {
|
|||||||
--sidebar-zone-value: rgba(99, 216, 162, 0.04);
|
--sidebar-zone-value: rgba(99, 216, 162, 0.04);
|
||||||
--sidebar-zone-summary: rgba(105, 200, 255, 0.03);
|
--sidebar-zone-summary: rgba(105, 200, 255, 0.03);
|
||||||
--sidebar-row-stripe: rgba(105, 200, 255, 0.03);
|
--sidebar-row-stripe: rgba(105, 200, 255, 0.03);
|
||||||
--sidebar-line-rule: rgba(143, 183, 221, 0.12);
|
--sidebar-rule: rgba(143, 183, 221, 0.16);
|
||||||
--sidebar-total-rule: rgba(143, 183, 221, 0.22);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
@@ -469,10 +468,10 @@ body::before {
|
|||||||
border-color: var(--glass-divider) !important;
|
border-color: var(--glass-divider) !important;
|
||||||
}
|
}
|
||||||
.sidebar-line {
|
.sidebar-line {
|
||||||
border-bottom-color: var(--glass-divider) !important;
|
border-bottom-color: var(--sidebar-rule) !important;
|
||||||
}
|
}
|
||||||
.sidebar-line.sidebar-line-total {
|
.sidebar-line.sidebar-line-total {
|
||||||
border-top-color: var(--sidebar-total-rule) !important;
|
border-top-color: var(--sidebar-rule) !important;
|
||||||
border-bottom: none !important;
|
border-bottom: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
--ink: #2c2825;
|
--ink: #2c2825;
|
||||||
--paper: #e2dccf;
|
--paper: #e2dccf;
|
||||||
--accent: #637f88;
|
--accent: #637f88;
|
||||||
--muted: #6a6157;
|
--muted: #554e46;
|
||||||
--border: #c3baab;
|
--border: #c3baab;
|
||||||
--border-soft: #cdc6ba;
|
--border-soft: #cdc6ba;
|
||||||
--card: #ece4d6;
|
--card: #ece4d6;
|
||||||
@@ -119,8 +119,7 @@
|
|||||||
--sidebar-zone-value: rgba(33, 112, 69, 0.04);
|
--sidebar-zone-value: rgba(33, 112, 69, 0.04);
|
||||||
--sidebar-zone-summary: rgba(0, 0, 0, 0.02);
|
--sidebar-zone-summary: rgba(0, 0, 0, 0.02);
|
||||||
--sidebar-row-stripe: rgba(0, 0, 0, 0.02);
|
--sidebar-row-stripe: rgba(0, 0, 0, 0.02);
|
||||||
--sidebar-line-rule: color-mix(in srgb, var(--border) 70%, transparent);
|
--sidebar-rule: color-mix(in srgb, var(--border) 75%, transparent);
|
||||||
--sidebar-total-rule: color-mix(in srgb, var(--border) 90%, transparent);
|
|
||||||
--surface-switch-off: #b5ad9f;
|
--surface-switch-off: #b5ad9f;
|
||||||
--surface-switch-on: var(--green);
|
--surface-switch-on: var(--green);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,7 +156,7 @@
|
|||||||
.vs-brand-name { font-size: 0.9375rem; }
|
.vs-brand-name { font-size: 0.9375rem; }
|
||||||
.vs-table td { padding: var(--space-sm) 3px; font-size: 0.78125rem; }
|
.vs-table td { padding: var(--space-sm) 3px; font-size: 0.78125rem; }
|
||||||
.vs-save-row td { padding: var(--space-stack-tight) var(--space-md); }
|
.vs-save-row td { padding: var(--space-stack-tight) var(--space-md); }
|
||||||
.vs-footnote { font-size: 0.65625rem; line-height: 1.55; }
|
.vs-footnote { font-size: 0.65625rem; line-height: 1.7; }
|
||||||
|
|
||||||
/* Pitch footer */
|
/* Pitch footer */
|
||||||
.pitch-wrap { padding: 0; }
|
.pitch-wrap { padding: 0; }
|
||||||
|
|||||||
@@ -87,10 +87,11 @@
|
|||||||
--text-copy-line: 1.76;
|
--text-copy-line: 1.76;
|
||||||
--text-compact-line: 1.58;
|
--text-compact-line: 1.58;
|
||||||
--text-title-line: 1.24;
|
--text-title-line: 1.24;
|
||||||
|
--text-spacing-money: 0.05em;
|
||||||
--ink: #e8e3da; /* warm beige-white — brighter for legibility */
|
--ink: #e8e3da; /* warm beige-white — brighter for legibility */
|
||||||
--paper: #1c1a17; /* darker base — widens gap vs card for panel float */
|
--paper: #1c1a17; /* darker base — widens gap vs card for panel float */
|
||||||
--accent: #3d8aba; /* lifted blue — pops on dark backgrounds */
|
--accent: #3d8aba; /* lifted blue — pops on dark backgrounds */
|
||||||
--muted: #9e9588; /* softer secondary — clearly subordinate but readable */
|
--muted: #b0a99f; /* softer secondary — clearly subordinate but readable (6.6:1) */
|
||||||
--border: #35322c; /* subtler dividers */
|
--border: #35322c; /* subtler dividers */
|
||||||
--border-soft: var(--border);
|
--border-soft: var(--border);
|
||||||
--card: #272420; /* elevated surface — clear separation from paper */
|
--card: #272420; /* elevated surface — clear separation from paper */
|
||||||
@@ -260,10 +261,8 @@
|
|||||||
--sidebar-zone-value: rgba(58, 184, 112, 0.05);
|
--sidebar-zone-value: rgba(58, 184, 112, 0.05);
|
||||||
--sidebar-zone-summary: rgba(255, 255, 255, 0.03);
|
--sidebar-zone-summary: rgba(255, 255, 255, 0.03);
|
||||||
--sidebar-zone-tax: transparent;
|
--sidebar-zone-tax: transparent;
|
||||||
--sidebar-line-rule: color-mix(in srgb, var(--border) 88%, transparent);
|
--sidebar-rule: color-mix(in srgb, var(--border) 75%, transparent);
|
||||||
--sidebar-line-rule-style: dashed;
|
--sidebar-rule-style: dashed;
|
||||||
--sidebar-total-rule: var(--border);
|
|
||||||
--sidebar-total-rule-style: solid;
|
|
||||||
--sidebar-row-stripe: rgba(255, 255, 255, 0.018);
|
--sidebar-row-stripe: rgba(255, 255, 255, 0.018);
|
||||||
--sidebar-group-title-color: var(--muted);
|
--sidebar-group-title-color: var(--muted);
|
||||||
--sidebar-stack-gap: 14px;
|
--sidebar-stack-gap: 14px;
|
||||||
|
|||||||
Reference in New Issue
Block a user