You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(themes): font axis, neutral cream foregrounds, refined cream/bloom shell
- Font axis (Geist default, Inter): `useFont` hook + `data-font` attr,
added to ThemeSwitcher as a second axis alongside the color palette.
- Cream theme drops the dark-green text-on-violet pairing; secondary /
accent / sidebar-accent foregrounds now use the same near-black as bloom.
- Cream/Bloom shell gradient: multi-stop fade with pure white covering the
bottom 30% for a softer, more blended feel.
- Sidebar active item: hairline outline (`var(--border)`) + `--semantic-shadow-xs`
drop so the selected row reads as elevated. Rule lives in `@layer utilities`
so it wins against Tailwind's `outline-hidden` utility.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/api/use-theme.md
+46Lines changed: 46 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -131,6 +131,52 @@ The built-in **`ThemeProvider`** (used inside **`AppShell`**) persists the **`th
131
131
132
132
Use **`AppShell`**’s **`defaultTheme`** prop for the initial value when nothing is stored.
133
133
134
+
# useFont
135
+
136
+
Sibling hook to **`useTheme`** that controls the **font axis**, independent of color theme. Any color theme works with either font; users pick them separately in **`ThemeSwitcher`**.
-**Description:** Stored font preference. Applied to **`<html>`** as **`data-font`**, which the package CSS uses to set **`font-family`** on **`body`** and headings.
161
+
162
+
### `setFont(font)`
163
+
164
+
-**Type:**`(font: Font) => void`
165
+
-**Description:** Set the font. Persisted to **`localStorage`** (key **`appshell-ui-font`** when using AppShell’s built-in provider).
Copy file name to clipboardExpand all lines: docs/concepts/styling-theming.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,6 +41,17 @@ AppShell ships **five** named semantic palettes controlled by **`data-theme`** o
41
41
42
42
Semantic tokens (**`--background`**, **`--primary`**, **`--border`**, sidebar tokens, **`--semantic-shadow-*`**, statuses, **`--radius`**, …) live in **`theme.css`**; override there or in host CSS keyed off **`html[data-theme='…']`**.
43
43
44
+
### Font axis
45
+
46
+
Font is an independent axis from color theme — any palette works with either face.
|`inter`| Neutral workhorse; matches most ERP / dashboard UIs |
51
+
|`geist`| Vercel-flavoured display sans; default for Tailor themes |
52
+
53
+
Selected font is applied to **`<html>`** as **`data-font`**. CSS in **`globals.css`** sets **`font-family`** on **`body`** and headings off that attribute. Persisted to **`localStorage`** under **`appshell-ui-font`**; pick via **`setFont`** (see **`useFont`**) or **`AppShell`**'s **`defaultFont`** prop (default **`"geist"`**).
54
+
44
55
## A note on AppShell component class names
45
56
46
57
AppShell components use Tailwind utility classes for their styling. Tailwind classes are generated at build-time, so stylesheet for AppShell components is already built and is separate to the Tailwind stylesheet generated for your application.
0 commit comments