Skip to content

Commit fec2c49

Browse files
authored
fix(ui): replace Inter and Source Serif 4 with Nunito as sole typeface (#167)
* feat(ui): replace Inter + Source Serif 4 with Nunito as sole typeface Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com> * chore(ui): remove Inter and Source Serif 4 remnants Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com> * docs(design-system): update typography to Nunito Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com> --------- Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
1 parent a863c2a commit fec2c49

8 files changed

Lines changed: 30 additions & 29 deletions

File tree

bun.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/design-system.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,16 @@ Use these exact values. No substitution.
7878

7979
## 3. Typography
8080

81-
**Primary font:** Inter (Google Fonts). Fall back to system-ui, -apple-system.
82-
83-
| Use | Weight | Approx size |
84-
| ------------------- | ------- | ----------- |
85-
| Input text | 400 | 15px |
86-
| Chat response body | 400 | 14px |
87-
| UI labels, buttons | 500 | 13px |
88-
| Section headers | 600-700 | 24-36px |
89-
| Hero / display text | 700-800 | 48-72px |
81+
**Sole typeface:** Nunito (loaded via `@fontsource/nunito`). Used for all UI chrome and AI prose. The `--font-sans` CSS variable in `@theme` is the single source of truth; every surface inherits from it. Weights 400, 500, 600, and 700 are loaded. Fall back to `-apple-system, BlinkMacSystemFont, sans-serif`.
82+
83+
There is no secondary reading face. Nunito handles both the compact bar UI and the expanded chat bubbles.
84+
85+
| Use | Weight | Approx size |
86+
| ------------------- | ------ | ----------- |
87+
| Input / chat body | 400 | 14-16px |
88+
| UI labels, buttons | 500 | 13px |
89+
| Section headers | 600 | 24-36px |
90+
| Hero / display text | 700 | 48-72px |
9091

9192
---
9293

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"validate-build": "bun run lint && bun run format:check && bun run typecheck && bun run build:all"
4040
},
4141
"dependencies": {
42-
"@fontsource/source-serif-4": "^5.2.9",
42+
"@fontsource/nunito": "^5.2.7",
4343
"@tauri-apps/api": "^2.11.0",
4444
"framer-motion": "^12.38.0",
4545
"katex": "^0.16.0",

src/App.css

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
@import 'streamdown/styles.css';
44
@import 'katex/dist/katex.min.css';
55

6-
/* Source Serif 4 reading face for AI prose. Chrome stays Inter. */
7-
@import '@fontsource/source-serif-4/400.css';
8-
@import '@fontsource/source-serif-4/400-italic.css';
6+
/* Nunito: single typeface for both UI chrome and AI prose. */
7+
@import '@fontsource/nunito/400.css';
8+
@import '@fontsource/nunito/500.css';
9+
@import '@fontsource/nunito/600.css';
10+
@import '@fontsource/nunito/700.css';
911

1012
@theme {
1113
--font-sans:
12-
'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
14+
'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
1315
Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
1416

1517
/* Brand palette - single source of truth for all color decisions */
@@ -190,16 +192,14 @@ body {
190192
display: none;
191193
}
192194

193-
/* AI prose reading face: serif body, warm cream, looser leading. Scoped to
194-
* .markdown-body so UI chrome (labels, buttons, search trace) stays Inter.
195-
* User bubble renders via renderUserContent, not MarkdownRenderer.
196-
*/
195+
/* AI prose: warm cream, looser leading. Scoped to .markdown-body so UI chrome stays separate. */
197196
.markdown-body {
198-
font-family: 'Source Serif 4', Charter, 'Iowan Old Style', Georgia, serif;
199-
color: #efe3cc;
200-
font-size: 15.5px;
201-
line-height: 1.65;
197+
font-family: var(--font-sans);
198+
color: #fbe8c6;
199+
font-size: 16.5px;
200+
line-height: 1.6;
202201
letter-spacing: 0.3px;
202+
font-weight: 600;
203203
}
204204

205205
/* ─── Markdown Body: Prose Defaults ───

src/components/ChatBubble.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ export function ChatBubble({
430430
</div>
431431
)}
432432
{content && (
433-
<span className="text-white/95 font-medium whitespace-pre-wrap">
433+
<span className="text-base text-white/95 font-medium whitespace-pre-wrap">
434434
{renderUserContent(content)}
435435
</span>
436436
)}

src/view/onboarding/IntroStep.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export function IntroStep({ onComplete }: Props) {
2020
alignItems: 'center',
2121
justifyContent: 'center',
2222
background: 'transparent',
23-
fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, sans-serif',
23+
fontFamily: 'inherit',
2424
}}
2525
>
2626
<motion.div

src/view/onboarding/ModelCheckStep.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ export function ModelCheckStep() {
172172
alignItems: 'center',
173173
justifyContent: 'center',
174174
background: 'transparent',
175-
fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, sans-serif',
175+
fontFamily: 'inherit',
176176
}}
177177
>
178178
<motion.div

src/view/onboarding/PermissionsStep.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const KeyChip = ({ label }: { label: string }) => (
2828
color: 'rgba(255,255,255,0.75)',
2929
verticalAlign: 'middle',
3030
margin: '0 1px',
31-
fontFamily: 'system-ui, -apple-system, sans-serif',
31+
fontFamily: 'inherit',
3232
}}
3333
>
3434
{label}
@@ -316,7 +316,7 @@ export function PermissionsStep() {
316316
alignItems: 'center',
317317
justifyContent: 'center',
318318
background: 'transparent',
319-
fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, sans-serif',
319+
fontFamily: 'inherit',
320320
}}
321321
>
322322
<motion.div

0 commit comments

Comments
 (0)