diff --git a/app/globals.css b/app/globals.css index eeb3716..8b722c4 100644 --- a/app/globals.css +++ b/app/globals.css @@ -178,6 +178,16 @@ body { 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) { color: var(--lh-ink-strong); font-weight: 700; diff --git a/components/dictation.tsx b/components/dictation.tsx index 01cea08..9851359 100644 --- a/components/dictation.tsx +++ b/components/dictation.tsx @@ -459,7 +459,9 @@ export function DictationBar({ dictation }: { dictation: Dictation }) { title={error ?? "Dictate into the composer"} aria-label={error ? `Dictation failed: ${error}` : "Start dictation"} 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" > {error ?? "Dictate"} diff --git a/components/model-picker.tsx b/components/model-picker.tsx index 96dac5a..63fda83 100644 --- a/components/model-picker.tsx +++ b/components/model-picker.tsx @@ -247,7 +247,11 @@ export function ModelControl() { onClick={() => openMenu("model")} aria-expanded={open === "model"} 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" > {effectiveId ? prettyModel(effectiveId) : "—"} ▾ @@ -263,7 +267,11 @@ export function ModelControl() { }} aria-expanded={open === "thinking"} 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 the model name (owner, stats-control round 1). */}