Polish: session names take 900 weight serif-off; floating controls match graph chrome

- .font-title now requests font-weight: 900 — with the serif toggle OFF,
  the prose font is a VARIABLE font and was rendering titles at 400, a
  whisper next to CMU's bold-only face; 900 lands directly on Source
  Sans 3 and CMU's single 700 face snaps to nearest, unchanged. Same
  rendering with serif on, real weight with it off.
- The model + thinking pills match the graph view's floating top-right
  chrome (import notes / gear / coverage): border bg-card/85 shadow-lg
  backdrop-blur — the graph no longer bleeds through the pills.
- The dictate button gets the same blurring at lower opacity
  (bg-card/50 backdrop-blur), staying quieter than the model pills.

Gates: tsc clean, 866/866, lint 0, build ok. Live-verified: pills/dictate
computed styles byte-identical to the reference chrome (bg .85/.5 alpha +
blur(8px) + same shadow stack); title requests 900 in both serif states.
This commit is contained in:
amosblomqvist
2026-09-23 01:46:15 +03:00
parent 525cba0398
commit ff3700a2d0
3 changed files with 23 additions and 3 deletions
+10
View File
@@ -178,6 +178,16 @@ body {
line-height: var(--lh-prose-leading); line-height: var(--lh-prose-leading);
} }
/* Session-name weight (owner, fix wave round 3): with the serif toggle
OFF, --font-title resolves to the prose font — Source Sans 3 is loaded
as a VARIABLE font, and without an explicit weight the titles render at
400, a whisper next to CMU's bold-only face. Request 900: the variable
font takes it, and CMU (a single 700 face) snaps to its nearest
available weight — the same rendering it already had. */
.font-title {
font-weight: 900;
}
.lh-prose :where(strong, b) { .lh-prose :where(strong, b) {
color: var(--lh-ink-strong); color: var(--lh-ink-strong);
font-weight: 700; font-weight: 700;
+3 -1
View File
@@ -459,7 +459,9 @@ export function DictationBar({ dictation }: { dictation: Dictation }) {
title={error ?? "Dictate into the composer"} title={error ?? "Dictate into the composer"}
aria-label={error ? `Dictation failed: ${error}` : "Start dictation"} aria-label={error ? `Dictation failed: ${error}` : "Start dictation"}
data-testid="dictation-toggle" data-testid="dictation-toggle"
className="flex h-7 w-full items-center justify-center gap-1.5 rounded-md border border-border/50 text-xs text-muted-foreground/70 transition-colors hover:border-border hover:text-muted-foreground" // Same blurring as the floating chrome (owner, fix wave round 3),
// but lower opacity — the mic stays quieter than the model pills.
className="flex h-7 w-full items-center justify-center gap-1.5 rounded-md border border-border/50 bg-card/50 text-xs text-muted-foreground/70 shadow-lg backdrop-blur transition-colors hover:border-border hover:text-muted-foreground"
> >
<MicIcon className="size-3.5" /> <MicIcon className="size-3.5" />
<span className="max-w-full truncate">{error ?? "Dictate"}</span> <span className="max-w-full truncate">{error ?? "Dictate"}</span>
+10 -2
View File
@@ -247,7 +247,11 @@ export function ModelControl() {
onClick={() => openMenu("model")} onClick={() => openMenu("model")}
aria-expanded={open === "model"} aria-expanded={open === "model"}
title="Strong tier model (prober + teacher) — set app-wide" title="Strong tier model (prober + teacher) — set app-wide"
className="flex items-center gap-1.5 rounded-full border border-border/60 bg-card/70 px-2.5 py-1 transition-colors hover:border-border hover:bg-muted" // Chrome look (owner, fix wave round 3): matches the graph
// view's floating top-right buttons (import notes, gear,
// coverage) — blurred, fuller opacity, shadowed — so the
// graph no longer bleeds through these pills.
className="flex items-center gap-1.5 rounded-full border bg-card/85 px-2.5 py-1 shadow-lg backdrop-blur transition-colors hover:border-border hover:bg-muted"
> >
<span className="text-card-foreground">{effectiveId ? prettyModel(effectiveId) : "—"}</span> <span className="text-card-foreground">{effectiveId ? prettyModel(effectiveId) : "—"}</span>
<span aria-hidden className="text-xs text-muted-foreground">▾</span> <span aria-hidden className="text-xs text-muted-foreground">▾</span>
@@ -263,7 +267,11 @@ export function ModelControl() {
}} }}
aria-expanded={open === "thinking"} aria-expanded={open === "thinking"}
title="Strong tier thinking level — set app-wide" title="Strong tier thinking level — set app-wide"
className="flex items-center gap-1.5 rounded-full border border-border/60 bg-card/70 px-2.5 py-1 transition-colors hover:border-border hover:bg-muted" // Chrome look (owner, fix wave round 3): matches the graph
// view's floating top-right buttons (import notes, gear,
// coverage) — blurred, fuller opacity, shadowed — so the
// graph no longer bleeds through these pills.
className="flex items-center gap-1.5 rounded-full border bg-card/85 px-2.5 py-1 shadow-lg backdrop-blur transition-colors hover:border-border hover:bg-muted"
> >
{/* Just the level — the button reads like the model button reads {/* Just the level — the button reads like the model button reads
the model name (owner, stats-control round 1). */} the model name (owner, stats-control round 1). */}