@fiestaboard/ui 4.0.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -33,10 +33,22 @@ FiestaUI ships **no compiled utility CSS**. The consuming app runs Tailwind v4 a
33
33
  ```
34
34
 
35
35
  - `theme.css` carries the design tokens (`@theme inline`, `:root` / `.dark` custom properties), the base layer, the component animation keyframes, and the `dark` custom variant.
36
- - `fonts.css` is the **opt-in** Geist font registration (`@fontsource-variable/geist` + `@fontsource-variable/geist-mono` `@font-face` rules, ~52 KB fetched for a Latin-only page). Import it alongside `theme.css` unless your app supplies Geist itself — e.g. via `next/font`, a CDN, or a self-hosted subset. If you self-host, skip `fonts.css` and register faces named `"Geist Variable"` / `"Geist Mono Variable"` (the names `theme.css`'s `--font-geist-sans` / `--font-geist-mono` tokens reference); without either, the tokens degrade gracefully to the system font stack.
36
+ - `fonts.css` is the **opt-in** font registration (`@fontsource-variable/archivo` + `@fontsource-variable/spline-sans-mono` `@font-face` rules, ~70 KB fetched for a Latin-only page). Import it alongside `theme.css` unless your app supplies the faces itself — e.g. via `next/font`, a CDN, or a self-hosted subset. If you self-host, skip `fonts.css` and register faces named `"Archivo Variable"` / `"Spline Sans Mono Variable"` (the names `theme.css`'s `--font-sans-stack` / `--font-mono-stack` tokens reference); without either, the tokens degrade gracefully to the system font stack.
37
37
  - The `@source` line is **mandatory** — Tailwind v4 does not scan `node_modules` by default, and without it component styles silently vanish. Adjust the relative path to wherever your CSS file lives.
38
38
  - Dark mode is class-based: toggle the `dark` class on `<html>`. FiestaUI only defines the variant; your app owns the toggle.
39
39
 
40
+ ### Typeface
41
+
42
+ The sans face is **Archivo** as of 5.0.0, replacing Geist. Archivo is drawn from American grotesque signage — the same world the split-flap hardware lives in — and carries a `wdth` 62–125 axis, so headings can run expanded into departure-board territory while UI text stays at normal width, from one family.
43
+
44
+ `fonts.css` registers the **weight-only** Archivo file (`wght` 100–900, ~34 KB Latin). The width axis lives in the larger `@fontsource-variable/archivo/wdth.css` entrypoint (~88 KB Latin) and is not imported, because nothing in this package sets `font-stretch` yet. Swap the import when expanded display type ships — the family name is identical, so no token or consumer change is needed.
45
+
46
+ The token names `--font-sans-stack` / `--font-mono-stack` name the **role**, not the vendor. The former `--font-geist-sans` / `--font-geist-mono` names are aliased to them for one minor and will be removed in the next major; nothing in this package references the old names.
47
+
48
+ Archivo's vertical metrics are meaningfully tighter than Geist's — a 1.089em natural line box against Geist's 1.30em — so text set without an explicit `line-height` renders more compactly. Tailwind's `text-*` utilities set line-height, so most surfaces are unaffected; `heading.stories.tsx` documents where the difference does bite.
49
+
50
+ The mono face is **Spline Sans Mono**, also as of 5.0.0. It is not a code-editor setting: every split-flap glyph the product draws is `font-mono font-semibold` (`board-display.tsx`, `static-board-display.tsx`), and the template editor that previews the board follows the same token. It was picked on the two metrics that govern a fixed character cell read from a distance — cap height 72.7% of em against Geist Mono's 71.0%, at the same 60.0% glyph advance. Its weight range is 300–700; the only weights paired with `font-mono` in this package are 500 and 600, so no weight synthesizes.
51
+
40
52
  ### Seasonal theming
41
53
 
42
54
  `theme.css` inlines only the **live** season (Pride) — it activates automatically when the app shell stamps `.pride-month` on `<html>`. The other seasons are design drafts and are shipped as **opt-in** stylesheets rather than bundled into every consumer, so you only pay for the ones you use:
@@ -6,7 +6,7 @@ var r = t(function({ children: t, className: r, outerClassName: i, fillHeight: a
6
6
  return /* @__PURE__ */ n("div", {
7
7
  className: e("bg-background overflow-x-hidden", a ? "min-h-full sm:h-[calc(100dvh-72px)] sm:flex sm:flex-col sm:overflow-hidden lg:h-dvh" : "min-h-full", i),
8
8
  children: /* @__PURE__ */ n("div", {
9
- className: e("container mx-auto px-3 sm:px-4 md:px-6 py-4 sm:py-6 md:py-8 lg:py-7 max-w-full", a && "py-2 sm:py-3 sm:flex-1 sm:min-h-0 sm:flex sm:flex-col sm:overflow-hidden", r),
9
+ className: e("container mx-auto px-4 md:px-6 py-4 sm:py-6 md:py-8 lg:py-7 max-w-full", a && "py-2 sm:py-3 sm:flex-1 sm:min-h-0 sm:flex sm:flex-col sm:overflow-hidden", r),
10
10
  children: t
11
11
  })
12
12
  });
@@ -1 +1 @@
1
- {"version":3,"file":"page-layout.js","names":[],"sources":["../../../src/components/chrome/page-layout.tsx"],"mappings":";;;;AAaA,IAAa,IAAa,EAAK,SAAoB,EACjD,aACA,cACA,mBACA,iBACkB;CAClB,OACE,kBAAC,OAAD;EACE,WAAW,EACT,mCAKA,IACI,wFACA,cACJ,CACF;EAEA,UAAA,kBAAC,OAAD;GACE,WAAW,EAUT,kFAIA,KAAc,4EACd,CACF;GAEC;EACE,CAAA;CACF,CAAA;AAET,CAAC"}
1
+ {"version":3,"file":"page-layout.js","names":[],"sources":["../../../src/components/chrome/page-layout.tsx"],"mappings":";;;;AAaA,IAAa,IAAa,EAAK,SAAoB,EACjD,aACA,cACA,mBACA,iBACkB;CAClB,OACE,kBAAC,OAAD;EACE,WAAW,EACT,mCAKA,IACI,wFACA,cACJ,CACF;EAEA,UAAA,kBAAC,OAAD;GACE,WAAW,EAmBT,0EAIA,KAAc,4EACd,CACF;GAEC;EACE,CAAA;CACF,CAAA;AAET,CAAC"}
@@ -143,7 +143,7 @@ var y = "nav-active font-semibold", b = "text-sidebar-foreground nav-active-hove
143
143
  ref: J,
144
144
  className: "lg:hidden fixed top-2 left-3 right-3 z-[var(--z-mobile-header)] overflow-hidden sidebar-gradient-horizontal",
145
145
  children: /* @__PURE__ */ v("div", {
146
- className: "relative z-[1] flex min-h-14 flex-wrap items-center gap-y-2 px-4 py-2",
146
+ className: "relative z-[1] flex min-h-14 flex-wrap items-center gap-y-2 px-3 py-2",
147
147
  children: [
148
148
  /* @__PURE__ */ _(t, {
149
149
  variant: "ghost",
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","names":[],"sources":["../../../src/components/chrome/sidebar.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.js","names":[],"sources":["../../../src/components/chrome/sidebar.tsx"],"mappings":"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"}
package/dist/editor.css CHANGED
@@ -49,7 +49,8 @@
49
49
  margin: 0;
50
50
  padding: 0;
51
51
  text-transform: uppercase;
52
- font-family: "Courier New", "Courier", monospace;
52
+ /* See the .ProseMirror rule below for why this follows --font-mono. */
53
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
53
54
  font-size: 0.875rem;
54
55
  letter-spacing: 0;
55
56
  line-height: 1.5rem;
@@ -120,9 +121,15 @@
120
121
  vertical-align: middle;
121
122
  }
122
123
 
123
- /* Text should be monospace and equal width - each character is exactly 1ch */
124
+ /* Text should be monospace and equal width - each character is exactly 1ch.
125
+ *
126
+ * Follows --font-mono rather than hardcoding a family. This editor previews
127
+ * what lands on the board, and the board glyphs are `font-mono font-semibold`
128
+ * (board-display.tsx, static-board-display.tsx) — so pinning the editor to
129
+ * Courier New meant the preview was drawn in a different typeface from the
130
+ * thing it previews, and a global font change silently skipped it. */
124
131
  .ProseMirror {
125
- font-family: "Courier New", "Courier", monospace;
132
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
126
133
  font-variant-numeric: tabular-nums;
127
134
  }
128
135
 
package/dist/fonts.css CHANGED
@@ -1,16 +1,24 @@
1
1
  /**
2
- * FiestaUI self-hosted Geist fonts — opt-in subpath export.
2
+ * FiestaUI self-hosted fonts — opt-in subpath export.
3
3
  *
4
- * Registers the "Geist Variable" and "Geist Mono Variable" @font-face
5
- * declarations that theme.css's --font-geist-sans / --font-geist-mono
4
+ * Registers the "Archivo Variable" and "Spline Sans Mono Variable" @font-face
5
+ * declarations that theme.css's --font-sans-stack / --font-mono-stack
6
6
  * tokens reference. Import it alongside theme.css:
7
7
  *
8
8
  * @import "@fiestaboard/ui/fonts.css";
9
9
  * @import "@fiestaboard/ui/theme.css";
10
10
  *
11
- * Skip this import if your app supplies Geist itself (next/font, CDN,
12
- * self-hosted subset) — the theme tokens degrade gracefully to the
13
- * system font stack when these faces are not registered.
11
+ * Skip this import if your app supplies the faces itself (next/font, CDN,
12
+ * self-hosted subset) — the theme tokens degrade gracefully to the system
13
+ * font stack when these faces are not registered.
14
+ *
15
+ * Archivo is imported at its WEIGHT-ONLY entrypoint (wght 100-900, ~34 KB
16
+ * for a Latin-only page). The family also carries a wdth 62-125 axis, which
17
+ * lives in the larger `/wdth.css` entrypoint (~88 KB). Nothing in this
18
+ * package sets font-stretch yet, so that cost buys nothing today; switch
19
+ * this import to "@fontsource-variable/archivo/wdth.css" when expanded
20
+ * display type actually ships. The family name is identical either way, so
21
+ * no token or consumer change is needed to make the swap.
14
22
  */
15
- @import "@fontsource-variable/geist";
16
- @import "@fontsource-variable/geist-mono";
23
+ @import "@fontsource-variable/archivo";
24
+ @import "@fontsource-variable/spline-sans-mono";
package/dist/theme.css CHANGED
@@ -5,8 +5,8 @@
5
5
  * app/globals.css. It must be imported into a Tailwind v4 pipeline:
6
6
  *
7
7
  * @import "tailwindcss";
8
- * @import "@fiestaboard/ui/fonts.css"; <- opt-in Geist @font-face registrations;
9
- * @import "@fiestaboard/ui/theme.css"; skip fonts.css if you self-host Geist
8
+ * @import "@fiestaboard/ui/fonts.css"; <- opt-in @font-face registrations;
9
+ * @import "@fiestaboard/ui/theme.css"; skip fonts.css if you self-host
10
10
  * @source "../node_modules/@fiestaboard/ui/dist";
11
11
  *
12
12
  * Dark mode is class-based: toggle the `dark` class on <html>.
@@ -21,8 +21,8 @@
21
21
  @theme inline {
22
22
  --color-background: var(--background);
23
23
  --color-foreground: var(--foreground);
24
- --font-sans: var(--font-geist-sans);
25
- --font-mono: var(--font-geist-mono);
24
+ --font-sans: var(--font-sans-stack);
25
+ --font-mono: var(--font-mono-stack);
26
26
  --color-sidebar-ring: var(--sidebar-ring);
27
27
  --color-sidebar-border: var(--sidebar-border);
28
28
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
@@ -196,17 +196,55 @@
196
196
  }
197
197
 
198
198
  :root {
199
- /* Font family tokens. The "Geist Variable" / "Geist Mono Variable"
200
- names match the @font-face declarations registered by the opt-in
201
- @fiestaboard/ui/fonts.css subpath (which wraps
202
- @fontsource-variable/geist and @fontsource-variable/geist-mono).
203
- Consumers that self-host Geist (next/font, CDN, subset) skip
204
- fonts.css; without it these tokens degrade gracefully to the
205
- system stacks below. Previously these CSS vars were set by
206
- Next.js's next/font wrapper in layout.tsx — moved here so they're
207
- owned by the stylesheet, not a build-time JS wrapper. */
208
- --font-geist-sans: "Geist Variable", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
209
- --font-geist-mono: "Geist Mono Variable", ui-monospace, SFMono-Regular, "SF Mono", Monaco, Menlo, monospace;
199
+ /* ============================================================
200
+ * FONT FAMILY TOKENS.
201
+ *
202
+ * The family names here match the @font-face declarations registered by
203
+ * the opt-in @fiestaboard/ui/fonts.css subpath. Consumers that self-host
204
+ * the faces skip fonts.css; without it these tokens degrade gracefully to
205
+ * the system stacks below. These CSS vars were once set by Next.js's
206
+ * next/font wrapper in layout.tsx — moved here so they're owned by the
207
+ * stylesheet, not a build-time JS wrapper.
208
+ *
209
+ * The token NAMES are deliberately vendor-neutral. They used to be
210
+ * --font-geist-sans / --font-geist-mono, which meant the design system
211
+ * published a specific foundry's name as its public contract and every
212
+ * future typeface change was a rename. A design system names the ROLE,
213
+ * not the vendor. The old names are aliased below for one minor.
214
+ *
215
+ * WHY ARCHIVO. It replaced Geist, which was never chosen so much as
216
+ * inherited — Geist is Vercel's house font, so the product read as
217
+ * "built with Next.js" rather than as FiestaBoard. Archivo is drawn from
218
+ * American grotesque signage, which is the world the hardware already
219
+ * lives in, and it carries a wdth 62-125 axis that no other candidate
220
+ * offered: normal width is a disciplined UI workhorse, expanded is a
221
+ * departure board, from one family.
222
+ *
223
+ * WHY SPLINE SANS MONO. The mono token is not a code-editor setting: every
224
+ * split-flap glyph the product draws is `font-mono font-semibold` (see
225
+ * board-display.tsx and static-board-display.tsx), so this face renders the
226
+ * hardware preview, and the template editor that previews it. It was chosen
227
+ * on the two metrics that govern a fixed character cell read at a distance:
228
+ * cap height 72.7% of em (against Geist Mono's 71.0%) and glyph advance
229
+ * 60.0%. Weight range is 300-700; the only weights paired with `font-mono`
230
+ * in this package are 500 and 600, so nothing synthesizes.
231
+ *
232
+ * NOTE: fonts.css registers the WEIGHT-ONLY file (34 KB latin), so
233
+ * font-stretch is inert today. Nothing in this package sets font-stretch
234
+ * yet, and shipping an axis nothing uses is the same mistake as shipping
235
+ * an undesigned palette (see the #173 note above). When display-width
236
+ * type actually lands, switch fonts.css to
237
+ * @fontsource-variable/archivo/wdth.css (88 KB latin) and the same
238
+ * "Archivo Variable" family name gains the axis with no token change.
239
+ * ============================================================ */
240
+ --font-sans-stack: "Archivo Variable", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
241
+ --font-mono-stack: "Spline Sans Mono Variable", ui-monospace, SFMono-Regular, "SF Mono", Monaco, Menlo, monospace;
242
+ /* DEPRECATED, removed in the next major: the pre-Archivo token names.
243
+ Aliased so a consumer referencing var(--font-geist-sans) directly does
244
+ not break on upgrade — they now resolve to whatever the role tokens
245
+ above hold, which is the point. */
246
+ --font-geist-sans: var(--font-sans-stack);
247
+ --font-geist-mono: var(--font-mono-stack);
210
248
  /* Tell the UA which form-control palette to paint (#160). Without this,
211
249
  every browser-drawn widget — accent-color'd checkboxes, file/date/number
212
250
  chrome, scrollbars, autofill — renders in LIGHT chrome, which on the dark
@@ -837,7 +875,16 @@
837
875
  }
838
876
  body {
839
877
  @apply bg-background text-foreground;
840
- font-feature-settings: "ss01";
878
+ /* `font-feature-settings: "ss01"` used to sit here, inherited from
879
+ FiestaBoard's globals.css. It was already a no-op before the typeface
880
+ change: neither the Geist nor the Geist Mono builds this package used
881
+ to ship exposed an ss01 feature (their GSUB tables carry
882
+ ccmp/kern/liga/locl/pnum/tnum and no stylistic sets), and neither
883
+ Archivo nor Spline Sans Mono does either. Left in place it would be
884
+ a trap — the first future typeface that DOES define ss01 would
885
+ silently switch on an arbitrary alternate glyph set nobody chose.
886
+ If a stylistic set is ever wanted, name the feature and the face it
887
+ belongs to at the call site. */
841
888
  /* Clip horizontal overflow at the document root so the body itself stays the
842
889
  * vertical scroll container. Applying overflow-x to <main> would force its
843
890
  * computed overflow-y to `auto`, recreating a nested scrollbar. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiestaboard/ui",
3
- "version": "4.0.0",
3
+ "version": "5.0.0",
4
4
  "description": "FiestaUI — the FiestaBoard design system. React components on Base UI with Tailwind v4 design tokens.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -57,8 +57,8 @@
57
57
  },
58
58
  "dependencies": {
59
59
  "@base-ui/react": "^1.6.0",
60
- "@fontsource-variable/geist": "^5.3.0",
61
- "@fontsource-variable/geist-mono": "^5.3.0",
60
+ "@fontsource-variable/archivo": "^5.3.0",
61
+ "@fontsource-variable/spline-sans-mono": "^5.3.0",
62
62
  "class-variance-authority": "^0.7.1",
63
63
  "clsx": "^2.1.1",
64
64
  "tailwind-merge": "^3.5.0",