Shrink body text from 13px to 12px, override Tailwind v4's @theme font-size scale
so standard classes (text-xs, text-sm, etc.) map to our custom pixel values.
Maintain tool text < message text hierarchy throughout.
Tailwind v4 lets you redefine what each text utility means via --text-* CSS variables
in the @theme {} block. Each size gets a paired default line-height. Components still
use explicit leading-* classes when they need prose (1.7) or code (1.55) line-height.
text-[Npx] arbitrary value in the codebase gets replaced with a standard class.
No more text-[13px], text-[11px], text-[10px], etc.
7 stops, all standard Tailwind class names. Specimens rendered at actual pixel sizes.
text-3xl+ left at Tailwind defaults for rare decorative use.
The key design requirement: tool text and code inside tool calls should be visibly smaller than text and code inside assistant messages. The new scale creates a cleaner 3-tier cascade with 1px steps instead of the current jagged jump from 13px to 9.75px.
I'll update the config file. Here's the change:
const config = {
port: 3000,
host: "localhost"
};
This sets the default port to 3000.
I'll update the config file. Here's the change:
const config = {
port: 3000,
host: "localhost"
};
This sets the default port to 3000.
The .md-content headings use em units (1.35em, 1.2em, 1.1em), so they
automatically scale down with the body. Inline code used 0.87em which at 12px yields
10.4px — too close to tool output. Recommendation: bump inline code to 1em and
differentiate purely via background/border styling.
Body text with inline code at 0.87em ← 11.3px
Body text with inline code at 1em ← 12px (matches body)
em. No changes needed.
Sidebar action buttons and session items move from text-[13px] to text-base (12px).
Session metadata moves from text-[11px] to text-sm (11px — same px, standard class).
All button tiers and dropdown items shift to the new scale. Padding stays the same — the slightly smaller text creates a touch more breathing room without looking sparse.
A realistic conversation showing the complete hierarchy: user message (12px) → assistant prose (12px) → thinking block (12px / 1.55 code lh) → tool header (11px) → tool result (10px) → assistant continuation (12px).
I'll check the current server configuration and update the port.
Done. The server was running on port 3000 and I've updated it to 8080 in src/config.ts.
You'll need to restart the server for the change to take effect.
Every element that changes, organized by component area. "Same" means the pixel value doesn't change, just the class name becomes standard.
| Element | Current | Proposed | Notes |
|---|---|---|---|
| Root | |||
| html, body font-size | 13px | 12px | Root change. All inherited sizes shift. |
| Chat Messages | |||
| Role labels (You / Assistant) | text-[11px] | text-sm (11px) | Same px, standard class |
| Message body prose | text-[13px] leading-[1.7] | text-base leading-[1.7] | 13px → 12px |
| Message body code blocks | text-[13px] leading-[1.55] | text-base leading-[1.55] | 13px → 12px, matches surrounding prose |
| Inline code (md-content) | text-[0.87em] (11.3px) | text-[1em] (12px) | Matches body. Differentiate via bg/border only. |
| md-content headings (h1/h2/h3) | 1.35em / 1.2em / 1.1em | unchanged (auto-scales) | 16.2 / 14.4 / 13.2px (was 17.6 / 15.6 / 14.3) |
| md-content table | text-[13px] | text-base | 13px → 12px |
| Thinking Blocks | |||
| Label ("Thinking...") | text-xs (9.75px) | text-sm (11px) | Bumped for readability at new scale |
| Thinking text (streaming + expanded) | text-[13px] leading-[1.55] / [1.7] | text-base leading-[1.55] | Unified to code line-height in both states |
| Duration text | text-[11px] | text-xs (10px) | De-emphasized, 11 → 10px |
| Tool / Skill Items | |||
| Tool header (name, description) | text-xs (9.75px) | text-sm (11px) | Bigger but still smaller than messages |
| Tool name (font-medium) | font-medium | unchanged | |
| Tool tags | text-[11px] | text-xs (10px) | 11 → 10px |
| Tool subtitle row | text-xs (9.75px) | text-xs (10px) | Same class, new meaning: 9.75 → 10px |
| Tool result content | text-xs (9.75px) + mixed padding | text-xs leading-[1.55] (10px) | Unified: py-2 px-2.5 max-h-[300px] |
| Sidebar | |||
| Brand name ("conduit") | text-sm (11.375px) | text-sm (11px) | 11.375 → 11px, negligible visual change |
| Action buttons | text-[13px] | text-base | 13 → 12px |
| Session items | text-[13px] | text-base | 13 → 12px |
| Session metadata | text-[11px] | text-sm (11px) | Same px, standard class |
| Section headers (SESSIONS, etc.) | text-[11px] | text-sm (11px) | Same px, standard class |
| Version text | text-[10px] | text-xs (10px) | Same px, standard class |
| Header | |||
| Project name | text-[15px] | text-lg (15px) | Same px, standard class |
| Instance badge | text-[10px] | text-xs (10px) | Same px, standard class |
| Right section (status) | text-xs (9.75px) | text-xs (10px) | Slight bump: 9.75 → 10px |
| Input Area | |||
| Textarea | text-base (13px) | text-base (12px) | Same class, new size: 13 → 12px |
| Context % label | text-[10px] | text-xs (10px) | Same px, standard class |
| Attach menu items | text-sm (11.375px) | text-base (12px) | Bumped to body tier: 11.375 → 12px |
| Dropdowns | |||
| All dropdown items | text-[13px] (mixed padding) | text-base py-2 px-3.5 | 13 → 12px, unified padding |
| Provider / section headers in dropdowns | text-[11px] | text-sm (11px) | Same px, standard class |
| Buttons | |||
| Tier 1 — CTA / Primary | text-sm (11.375px) | text-base font-semibold px-6 py-3 | 11.375 → 12px |
| Tier 2 — Secondary / Modal | text-[13px] | text-base font-medium px-4 py-2 | 13 → 12px |
| Tier 3 — Inline / Small | text-xs (9.75px) | text-sm font-medium px-3 py-1.5 | 9.75 → 11px |
| Pages | |||
| Dashboard title | text-2xl (19.5px) | text-2xl (24px) | 19.5 → 24px (more prominent) |
| Setup / Pin titles | text-[22px] | text-2xl (24px) | 22 → 24px, standard class |
| Settings panel title | text-lg (14.625px) | text-lg (15px) | 14.625 → 15px |
| Step titles | text-lg (14.625px) | text-lg (15px) | 14.625 → 15px |
| Dashboard project name | text-[16px] | text-lg (15px) | 16 → 15px, standard class |
| Diff View / File Viewer | |||
| Diff body text | 0.75rem (9.75px at 13px root) | text-xs (10px) | 9.75 → 10px |
| Diff gutters | text-[11px] / 0.6875rem | text-xs (10px) | Mixed 11px/8.94px → unified 10px |
| File viewer code | dynamic {fontSize}px | unchanged (user-adjustable) | Default 13 → 12, but user can override |
| Modals / Overlays | |||
| Modal body text | text-sm (11.375px) | text-base (12px) | 11.375 → 12px |
| Modal title | text-base (13px) | text-lg (15px) | Clearer hierarchy: title vs body |
| Modal buttons | text-[13px] | text-base (Tier 2) | 13 → 12px |
| Info panel data rows | text-xs (9.75px) | text-xs (10px) | 9.75 → 10px |
| Toast notifications | text-sm (11.375px) | text-base (12px) | 11.375 → 12px |
| Plan Mode (CSS) | |||
| Plan banner / card title / buttons | 0.875rem (14px at 13px root; 11.375px at 13px root... wait — rem is root-relative) | text-base or rem auto-adjusts | 0.875rem at 12px root = 10.5px. Needs explicit override to text-base (12px). |
| Inline Style Cleanup | |||
| font-family: var(--font-brand) | 30+ inline style= attrs | font-brand class | Use Tailwind utility everywhere |
| AgentSelector portal (innerHTML) | inline font-size:13px etc | Tailwind classes | Migrate to Svelte component |
| ThemePicker scoped CSS | scoped font-size:10/12/14px | text-xs / text-base / text-lg | Migrate to Tailwind utilities |
0.875rem which is root-relative.
At 12px root this becomes 10.5px (was 11.375px at 13px root).
These should be migrated from rem to explicit text-base (12px) or text-sm (11px) classes.
| Metric | Current | Proposed |
|---|---|---|
| Root font-size | 13px | 12px |
| Distinct font sizes | 18 values (6 arbitrary) | 7 values (0 arbitrary) |
| Arbitrary text-[Npx] classes | ~80 instances across codebase | 0 |
| Message → tool size gap | 13px → 9.75px (-3.25px jump) | 12 → 11 → 10px (1px steps) |
| Inline font-family styles | 30+ instances | 0 (font-brand class) |
| Plan mode rem breakage risk | n/a | plan-mode.css rem values need migration to Tailwind classes |
| md-content em-based headings | Auto-scaled (no change needed) | Auto-scales: h1=16.2, h2=14.4, h3=13.2 |
| md-content inline code | 0.87em (11.3px) | 1em (12px) — style-only differentiation |