@hirobius/design-system 0.23.0 → 0.23.1
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/CHANGELOG.md +27 -0
- package/CONSUMING.md +3 -3
- package/DESIGN.md +2 -2
- package/NOTICE.md +3 -3
- package/README.md +11 -10
- package/UPGRADING.md +14 -1
- package/dist/css-contract.json +1 -1
- package/dist/fonts/ibm-plex-mono-LICENSE.txt +93 -0
- package/dist/fonts/plus-jakarta-sans-400.woff2 +0 -0
- package/dist/fonts/plus-jakarta-sans-500.woff2 +0 -0
- package/dist/fonts/plus-jakarta-sans-700.woff2 +0 -0
- package/dist/fonts/plus-jakarta-sans-LICENSE.txt +22 -0
- package/dist/fonts.css +14 -14
- package/dist/hirobius-ui.js +134 -134
- package/dist/manifest.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/tokens.css +1 -1
- package/dist/tokens.js +2 -2
- package/dist/types/src/app/components/error-pattern.d.ts +1 -0
- package/dist/types/src/app/components/metric-tiles.d.ts +1 -0
- package/dist/types/src/app/components/page-header.d.ts +1 -0
- package/dist/types/src/app/context/hds-theme.d.ts +1 -1
- package/dist/types/src/app/design-system/generated-token-values.d.ts +2 -2
- package/dist/variables.css +2 -2
- package/docs/CONSUMING.md +5 -5
- package/hirobius.tokens.json +4 -4
- package/package.json +6 -2
- package/public/hds-manifest.json +21 -21
- package/public/llms-full.txt +2 -2
- package/src/app/data/component-api.json +3 -1
- package/upgrade/index.json +8 -1
- package/upgrade/releases/0.23.1.json +108 -0
- package/dist/fonts/satoshi-400.woff2 +0 -0
- package/dist/fonts/satoshi-500.woff2 +0 -0
- package/dist/fonts/satoshi-700.woff2 +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.23.1
|
|
4
|
+
|
|
5
|
+
### Upgrade
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npx @hirobius/design-system@latest upgrade
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
- Looks different: The scoped HDS font variable now names Plus Jakarta Sans first instead of Satoshi.
|
|
12
|
+
- Looks different: Display and title text now renders in Plus Jakarta Sans instead of Satoshi.
|
|
13
|
+
- Looks different: Body, UI and caption text now renders in Plus Jakarta Sans instead of Satoshi.
|
|
14
|
+
- Looks different: fonts.css no longer declares Satoshi 400; it declares Plus Jakarta Sans 400 instead, so drop any font-family: Satoshi of your own.
|
|
15
|
+
- And 2 more: see [UPGRADING.md](https://github.com/hirobius/hds/blob/main/UPGRADING.md#0231).
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- d907e73: CONSUMING.md points agents at the docs site (https://hirobius-hds-components.vercel.app/llms.txt), which now serves the llms files, the manifest, DESIGN.md and component-api.json.
|
|
20
|
+
- 29af78f: feat(brand): the primary and display typeface is now Plus Jakarta Sans.
|
|
21
|
+
|
|
22
|
+
Satoshi's license (the Fontshare FF EULA) does not allow the font files to be redistributed, so HDS could not keep shipping them in the package or a public repo. Plus Jakarta Sans (Tokotype, SIL Open Font License 1.1) replaces it in the same three weights: 400 body, 500 UI and captions, 700 display and titles.
|
|
23
|
+
- `primitive.typography.family.primary` and `.display` now start with `"Plus Jakarta Sans"`, with the same system fallback stack.
|
|
24
|
+
- `@hirobius/design-system/fonts.css` now declares Plus Jakarta Sans 400/500/700, as Latin-subset woff2 files of about 15 KB each (Satoshi's were about 26 KB). The OFL license text ships beside the fonts in `dist/fonts/`.
|
|
25
|
+
- `package.json` `license` is now `MIT AND OFL-1.1`, since every bundled font is OFL.
|
|
26
|
+
- `ch`-based widths read a little wider in Figma, because the "0" advance is 0.732em instead of 0.683em.
|
|
27
|
+
|
|
28
|
+
Visual-only, with no API changes. If you import `fonts.css`, the new face loads with nothing else to do.
|
|
29
|
+
|
|
3
30
|
## 0.23.0
|
|
4
31
|
|
|
5
32
|
### Upgrade
|
package/CONSUMING.md
CHANGED
|
@@ -29,7 +29,7 @@ version keeps the `LucideIcon` type identical).
|
|
|
29
29
|
```tsx
|
|
30
30
|
import { Button, Card, Dialog } from '@hirobius/design-system';
|
|
31
31
|
import '@hirobius/design-system/tokens.css'; // required — design tokens as CSS vars
|
|
32
|
-
import '@hirobius/design-system/fonts.css'; // optional — the HDS brand fonts (
|
|
32
|
+
import '@hirobius/design-system/fonts.css'; // optional — the HDS brand fonts (Plus Jakarta Sans, IBM Plex Mono)
|
|
33
33
|
|
|
34
34
|
export function Example() {
|
|
35
35
|
return (
|
|
@@ -45,7 +45,7 @@ Available subpaths:
|
|
|
45
45
|
| Import | What |
|
|
46
46
|
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
47
47
|
| `@hirobius/design-system` | The 43-component core set ([README → What belongs in the system](README.md#what-belongs-in-the-system)), the rest of the allow-list and the templates; the `pattern` tier is only in `/patterns` |
|
|
48
|
-
| `@hirobius/design-system/fonts.css` | Optional brand fonts (
|
|
48
|
+
| `@hirobius/design-system/fonts.css` | Optional brand fonts (Plus Jakarta Sans, IBM Plex Mono); woff2 files ship in the package, relative URLs, `font-display: swap` |
|
|
49
49
|
| `@hirobius/design-system/tokens.css` | Token CSS variables (import once at app root) |
|
|
50
50
|
| `@hirobius/design-system/tokens` | Token values as TS constants |
|
|
51
51
|
| `@hirobius/design-system/cn` | `cn()` class-merge helper |
|
|
@@ -103,7 +103,7 @@ them without network access. Under `node_modules/@hirobius/design-system/`:
|
|
|
103
103
|
- `DESIGN.md` - the lean visual spec
|
|
104
104
|
- `src/app/data/component-api.json` - full prop reference
|
|
105
105
|
|
|
106
|
-
The same files are served at <https://hirobius-
|
|
106
|
+
The same files are served at <https://hirobius-hds-components.vercel.app/llms.txt>
|
|
107
107
|
(and `/llms-full.txt`, `/llms/components.txt`, `/DESIGN.md`, `/component-api.json`).
|
|
108
108
|
|
|
109
109
|
## 3. Receiving updates
|
package/DESIGN.md
CHANGED
|
@@ -28,8 +28,8 @@ Feedback hues are never decorative; do not use them as accents. Light and dark m
|
|
|
28
28
|
<!-- auto:start:typography -->
|
|
29
29
|
HDS ships three typefaces — each with a distinct and exclusive role:
|
|
30
30
|
|
|
31
|
-
- **Display / Heading font**:
|
|
32
|
-
- **Body / UI font**:
|
|
31
|
+
- **Display / Heading font**: Plus Jakarta Sans. Bound exclusively to the `display` and `title` styles. Never used for body copy or UI labels.
|
|
32
|
+
- **Body / UI font**: Plus Jakarta Sans. All prose, labels, small text, captions, and UI copy.
|
|
33
33
|
- **Mono font**: IBM Plex Mono. Reserved for tokens, code, technical callouts, and metric readouts.
|
|
34
34
|
|
|
35
35
|
Weights declared: `400` regular, `500` medium, `700` bold. Heading styles (display · title) use `700` bold; body, UI, and caption use `400` regular / `500` medium.
|
package/NOTICE.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# License notice
|
|
2
2
|
|
|
3
|
-
`@hirobius/design-system` is
|
|
3
|
+
`@hirobius/design-system` is under two licenses: MIT for the code, and the SIL Open Font License 1.1 for the bundled fonts.
|
|
4
4
|
|
|
5
5
|
- **HDS code** (components, compiled JavaScript, types, CSS, and token files): MIT. See [LICENSE](LICENSE).
|
|
6
|
-
- **
|
|
6
|
+
- **Plus Jakarta Sans** (weights 400, 500 and 700, by Tokotype, [source](https://github.com/tokotype/PlusJakartaSans), Latin subset): SIL Open Font License 1.1.
|
|
7
7
|
- **IBM Plex Mono** (weight 400, by IBM, [source](https://github.com/IBM/plex)): SIL Open Font License 1.1.
|
|
8
8
|
|
|
9
|
-
Both fonts
|
|
9
|
+
Both fonts ship as woff2 files in `dist/fonts/`, declared by the opt-in `dist/fonts.css`; each font's license text ships beside it as `dist/fonts/<family>-LICENSE.txt`. The MIT license does not cover the fonts. `dist/tokens.css`, `dist/styles.css` and `dist/variables.css` embed no fonts.
|
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Hirobius Design System
|
|
2
2
|
|
|
3
|
-
[](https://github.com/hirobius/hds/actions/workflows/ci.yml) [](https://www.npmjs.com/package/@hirobius/design-system) [](https://github.com/hirobius/hds/actions/workflows/ci.yml) [](https://www.npmjs.com/package/@hirobius/design-system) [](https://hirobius-hds-components.vercel.app)
|
|
4
4
|
|
|
5
5
|
**A governed, token-first React design system.** Components plus the system
|
|
6
6
|
around them: a DTCG token pipeline (CSS variables + TypeScript constants),
|
|
7
7
|
quality gates in git hooks and CI, one-way Figma sync, and WCAG-checked contrast
|
|
8
|
-
and focus. Live
|
|
8
|
+
and focus. Live docs: **<https://hirobius-hds-components.vercel.app>**
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
11
|
pnpm add @hirobius/design-system
|
|
@@ -13,7 +13,7 @@ pnpm add @hirobius/design-system
|
|
|
13
13
|
|
|
14
14
|
Upgrading: [UPGRADING.md](UPGRADING.md) lists what each release asks of you. From 0.22.0, `npx @hirobius/design-system@latest upgrade` does it for you.
|
|
15
15
|
|
|
16
|
-
[](https://hirobius-
|
|
16
|
+
[](https://hirobius-hds-components.vercel.app)
|
|
17
17
|
|
|
18
18
|
<!-- auto:start:front-door-counts -->
|
|
19
19
|
|
|
@@ -128,12 +128,12 @@ HDS theming is driven by root attributes + CSS variables, so it works with **zer
|
|
|
128
128
|
JavaScript** — set them on any element (React, Astro, plain HTML) and every HDS
|
|
129
129
|
descendant re-skins:
|
|
130
130
|
|
|
131
|
-
| Dial | Attribute / var | Values | Default
|
|
132
|
-
| ------- | ---------------------------------------------- | --------------- |
|
|
133
|
-
| theme | `data-theme` | `dark` | light (unset)
|
|
134
|
-
| density | `data-density` | `compact` | comfortable (unset)
|
|
135
|
-
| brand | `data-brand` (+ `data-tenant` alias) | overlay slug | base (unset)
|
|
136
|
-
| font | `--hds-font-family` / `--hds-font-family-mono` | any font-family |
|
|
131
|
+
| Dial | Attribute / var | Values | Default |
|
|
132
|
+
| ------- | ---------------------------------------------- | --------------- | --------------------------------- |
|
|
133
|
+
| theme | `data-theme` | `dark` | light (unset) |
|
|
134
|
+
| density | `data-density` | `compact` | comfortable (unset) |
|
|
135
|
+
| brand | `data-brand` (+ `data-tenant` alias) | overlay slug | base (unset) |
|
|
136
|
+
| font | `--hds-font-family` / `--hds-font-family-mono` | any font-family | Plus Jakarta Sans / IBM Plex Mono |
|
|
137
137
|
|
|
138
138
|
```html
|
|
139
139
|
<!-- zero-JS: static markup (e.g. an Astro layout) -->
|
|
@@ -220,6 +220,7 @@ What CI and the hooks check today, and nothing more:
|
|
|
220
220
|
- **Lint:** `jsx-a11y` rules run inside ESLint with zero warnings allowed.
|
|
221
221
|
- **Focus:** `scripts/check-focus-states.mjs` (`pnpm check:focus`) audits focus styles on interactive components. It runs in `pretest` under `pnpm test`, so in the pre-push hook and in CI, and passes with 0 violations.
|
|
222
222
|
- **Storybook:** the `addon-a11y` panel shows axe results for each story while you review it. The gate is `scripts/check-storybook-axe.mjs`: CI scans every built story in light and dark, including the open Select and Combobox, and fails on serious or critical violations outside its allowlist (`scripts/axe-allowlist.json`). The allowlist has one entry: `aria-hidden-focus` on the open Select story, where Radix Select hides the page around its listbox while focus stays trapped inside it (hds#407).
|
|
223
|
+
- **Docs site:** `scripts/check-docs-axe.mjs` (`pnpm check:docs-axe`, after `pnpm docs:publish`) scans the live demo of every `/docs/components/*` and `/docs/patterns/*` page of the built docs site in light and dark with the same axe rules, scoped to the demo frame so the Fumadocs chrome does not count. CI runs it and fails on serious or critical violations outside `scripts/docs-axe-allowlist.json`, which is empty.
|
|
223
224
|
|
|
224
225
|
Screen-reader output is checked by `tests/primitive-contracts/screen-reader.contract.test.tsx`, which runs in `pnpm test` and walks Dialog, Menu, Select, Combobox, Table and Alert with a virtual screen-reader (`@guidepup/virtual-screen-reader`) under jsdom, asserting the role, name and state phrases it reads and the alert's live-region announcement; it reads the jsdom accessibility tree, not what a desktop or mobile screen-reader says.
|
|
225
226
|
|
|
@@ -284,4 +285,4 @@ public/
|
|
|
284
285
|
|
|
285
286
|
## License
|
|
286
287
|
|
|
287
|
-
The HDS code is MIT ([LICENSE](LICENSE)). The package CSS also embeds the
|
|
288
|
+
The HDS code is MIT ([LICENSE](LICENSE)). The package CSS also embeds the Plus Jakarta Sans and IBM Plex Mono fonts, which keep their own licenses and are not covered by MIT. See [NOTICE.md](NOTICE.md).
|
package/UPGRADING.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Upgrading @hirobius/design-system
|
|
2
2
|
|
|
3
|
-
This file only knows the releases up to the version you have installed, 0.23.
|
|
3
|
+
This file only knows the releases up to the version you have installed, 0.23.1. For newer releases, run `npx @hirobius/design-system@latest upgrade`: it always fetches the newest steps.
|
|
4
4
|
|
|
5
5
|
## How to upgrade
|
|
6
6
|
|
|
@@ -10,6 +10,19 @@ npx @hirobius/design-system@latest upgrade
|
|
|
10
10
|
|
|
11
11
|
It finds the version you have, moves you to the newest release, runs each release's codemods (Fixed for you) and lists what is left for you (Do by hand). It works from 0.16.0 on; from an older version, first reach 0.16.0 with the notes in CHANGELOG.md. MIGRATIONS.md has longer guides for the big releases.
|
|
12
12
|
|
|
13
|
+
## 0.23.1
|
|
14
|
+
|
|
15
|
+
Released 2026-10-11 (patch). 6 that look different.
|
|
16
|
+
|
|
17
|
+
### Looks different
|
|
18
|
+
|
|
19
|
+
- The scoped HDS font variable now names Plus Jakarta Sans first instead of Satoshi.
|
|
20
|
+
- Display and title text now renders in Plus Jakarta Sans instead of Satoshi.
|
|
21
|
+
- Body, UI and caption text now renders in Plus Jakarta Sans instead of Satoshi.
|
|
22
|
+
- fonts.css no longer declares Satoshi 400; it declares Plus Jakarta Sans 400 instead, so drop any font-family: Satoshi of your own.
|
|
23
|
+
- fonts.css no longer declares Satoshi 500; it declares Plus Jakarta Sans 500 instead, so drop any font-family: Satoshi of your own.
|
|
24
|
+
- fonts.css no longer declares Satoshi 700; it declares Plus Jakarta Sans 700 instead, so drop any font-family: Satoshi of your own.
|
|
25
|
+
|
|
13
26
|
## 0.23.0
|
|
14
27
|
|
|
15
28
|
Released 2026-10-10 (minor). 14 that look different.
|