@tollerud/ui 3.1.1 → 4.0.2
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/AGENTS.md +17 -3
- package/CHANGELOG.md +107 -0
- package/GETTING_STARTED.md +0 -58
- package/README.md +31 -60
- package/SKILL.md +3 -3
- package/package.json +16 -23
- package/components.json +0 -18
- package/globals-v4.css +0 -2
- package/registry.json +0 -941
- /package/{tollerud-avatar-full.png → brand/tollerud-avatar-full.png} +0 -0
- /package/{tollerud-avatar-full.svg → brand/tollerud-avatar-full.svg} +0 -0
- /package/{tollerud-avatar.png → brand/tollerud-avatar.png} +0 -0
- /package/{tollerud-avatar.svg → brand/tollerud-avatar.svg} +0 -0
- /package/{tollerud-logo.svg → brand/tollerud-logo.svg} +0 -0
package/AGENTS.md
CHANGED
|
@@ -293,7 +293,7 @@ Severity scale: `critical` · `high` · `medium` · `low` · `info`
|
|
|
293
293
|
The monogram must always appear left of the project name with `gap-2`. Never show the name without the monogram or the monogram alone in a nav context.
|
|
294
294
|
|
|
295
295
|
```tsx
|
|
296
|
-
import logo from '@tollerud/ui/tollerud-logo.svg'
|
|
296
|
+
import logo from '@tollerud/ui/brand/tollerud-logo.svg'
|
|
297
297
|
|
|
298
298
|
// Top bar
|
|
299
299
|
<nav className="tollerud-glass fixed top-0 inset-x-0 z-50 h-14 flex items-center px-6 gap-6">
|
|
@@ -399,6 +399,19 @@ When asked to add components, fix bugs, or cut a release:
|
|
|
399
399
|
npm run validate # typecheck + lint + test + build
|
|
400
400
|
```
|
|
401
401
|
|
|
402
|
+
### 1b. `package-lock.json` must match CI npm
|
|
403
|
+
|
|
404
|
+
GitHub Actions uses **Node 24 + npm 11** (`packageManager` in `package.json` pins `npm@11.16.0`). Regenerating the lockfile with a different npm major can produce entries that **`npm ci` rejects on CI**.
|
|
405
|
+
|
|
406
|
+
When you change dependencies or bump the package version:
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
npx npm@11.16.0 install # refresh lockfile — use the pinned npm, not an arbitrary local version
|
|
410
|
+
rm -rf node_modules && npx npm@11.16.0 ci # verify before push
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
Never use `npm install --package-lock-only` alone for version bumps — it can desync optional peer entries. Commit `package-lock.json` in the same commit as `package.json` changes.
|
|
414
|
+
|
|
402
415
|
### 2. Every new component needs all four of these
|
|
403
416
|
|
|
404
417
|
| What | Where |
|
|
@@ -418,8 +431,9 @@ npm run validate # typecheck + lint + test + build
|
|
|
418
431
|
|
|
419
432
|
Edit `package.json` version, then update these to match:
|
|
420
433
|
- `COMPLETENESS_ROADMAP.md` — header line `### npm package (components/*.tsx) — vX.X.X`
|
|
421
|
-
- `registry.json` — top-level `"version"` field
|
|
422
|
-
|
|
434
|
+
- `registry.json` — top-level `"version"` field (or run `npm run sync:registry`)
|
|
435
|
+
|
|
436
|
+
The docs sidebar version reads live from `package.json` via `PACKAGE_VERSION` in `docs-app/lib/docs-stats.js` — no manual edit.
|
|
423
437
|
|
|
424
438
|
### 4. Always update these files in the same commit
|
|
425
439
|
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,113 @@
|
|
|
7
7
|
• Never write bold mid-paragraph as a heading substitute — it merges into surrounding text
|
|
8
8
|
-->
|
|
9
9
|
|
|
10
|
+
## 4.0.2 — 2026-06-10 — Repo layout and publish surface cleanup
|
|
11
|
+
|
|
12
|
+
Patch release: consolidates docs and CI fixtures, stops shipping internal manifests, and clarifies docs copy after the npm-only pivot.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Tarball smoke test moved to `fixtures/consumer/` (was `examples/consumer/`)
|
|
17
|
+
- Docs chrome consolidated under `docs-app/styles/docs.css` (removed top-level `docs/`)
|
|
18
|
+
- `registry.json` kept in the repo for `npm run test:drift` — no longer published in the npm tarball
|
|
19
|
+
- Docs copy: semantic tokens described without shadcn install-path framing
|
|
20
|
+
|
|
21
|
+
### Removed
|
|
22
|
+
|
|
23
|
+
- `components.json` — unused after copy-via-shadcn removal
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 4.0.1 — 2026-06-10 — npm-only install path
|
|
28
|
+
|
|
29
|
+
Patch release: drops copy-via-shadcn registry tooling. Install from the package — barrel or subpath imports.
|
|
30
|
+
|
|
31
|
+
### Removed
|
|
32
|
+
|
|
33
|
+
- `npm run test:registry-cli`, `npm run build:registry`, and `examples/registry-consumer/`
|
|
34
|
+
- `registry-dist/` build output (never shipped to npm in v4.0.0)
|
|
35
|
+
- Public shadcn `npx shadcn add` install docs — no consumers use copy-into-repo flow
|
|
36
|
+
|
|
37
|
+
### Docs
|
|
38
|
+
|
|
39
|
+
- Getting started leads with `npm install @tollerud/ui` and subpath imports (`@tollerud/ui/button`)
|
|
40
|
+
- `registry.json` remains for internal drift checks (`npm run test:drift`) only
|
|
41
|
+
|
|
42
|
+
### Migration
|
|
43
|
+
|
|
44
|
+
Use the package directly:
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
import { Button } from '@tollerud/ui'
|
|
48
|
+
// or tree-shake:
|
|
49
|
+
import { Button } from '@tollerud/ui/button'
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Do not copy component source via shadcn CLI — that path is unsupported.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 4.0.0 — 2026-06-10 — Ecosystem hardening and globals-v4 removal
|
|
57
|
+
|
|
58
|
+
Major release: completes the post-v3 roadmap (light gallery, registry CLI, footer lockstep), reorganizes brand assets, and drops deprecated CSS entrypoints.
|
|
59
|
+
|
|
60
|
+
### Breaking changes
|
|
61
|
+
|
|
62
|
+
- Removed `@tollerud/ui/globals-v4.css` — it was an alias for `globals.css`. Tailwind v4 projects should import `@tollerud/ui/globals.css` only.
|
|
63
|
+
- Brand assets moved under `@tollerud/ui/brand/*` — e.g. `@tollerud/ui/brand/tollerud-logo.svg` (not package-root paths).
|
|
64
|
+
|
|
65
|
+
### Ecosystem
|
|
66
|
+
|
|
67
|
+
- `@tollerud/footer` — `packages/footer/` synced from `components/Footer.tsx` via `npm run sync:footer`; `npm run verify:footer-sync` in `validate`
|
|
68
|
+
- Changesets linked `@tollerud/ui` and `@tollerud/footer` for joint version bumps
|
|
69
|
+
- Registry drift checks via `registry.json` (`npm run test:drift`) — internal manifest, not a public shadcn install path
|
|
70
|
+
|
|
71
|
+
### Docs site
|
|
72
|
+
|
|
73
|
+
- Light-mode gallery parity — docs-only Tailwind preset maps `tollerud-*` utilities to CSS variables so npm previews flip in `data-theme="light"`
|
|
74
|
+
- Docs icons migrated to `lucide-react` (custom GitHub mark retained)
|
|
75
|
+
- Playwright coverage — forms page, command palette, theme toggle, light-mode card surfaces
|
|
76
|
+
- Brand assets canonical in `brand/`; synced to docs via `scripts/sync-brand-assets.mjs`
|
|
77
|
+
- Homepage and live docs URL → `https://design.tollerud.dev/`
|
|
78
|
+
|
|
79
|
+
### Tooling
|
|
80
|
+
|
|
81
|
+
- CI and dev tooling on Node 24 + npm 11.16.0 (`.nvmrc`, lockfile guardrails)
|
|
82
|
+
- Dependabot for `docs-app/` and `fixtures/consumer/` (moved from `examples/consumer/` in v4.0.2)
|
|
83
|
+
- Removed legacy `preview.html`, completed planning docs, and stale docs artifacts
|
|
84
|
+
- Consumer smoke test auto-syncs tarball version in `fixtures/consumer/package.json` (path at release: `examples/consumer/`)
|
|
85
|
+
|
|
86
|
+
### Migration
|
|
87
|
+
|
|
88
|
+
**globals-v4.css** — replace:
|
|
89
|
+
|
|
90
|
+
```css
|
|
91
|
+
@import "@tollerud/ui/globals-v4.css";
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
with:
|
|
95
|
+
|
|
96
|
+
```css
|
|
97
|
+
@import "@tollerud/ui/globals.css";
|
|
98
|
+
@source "../node_modules/@tollerud/ui/dist";
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Brand assets** — replace root imports:
|
|
102
|
+
|
|
103
|
+
```ts
|
|
104
|
+
import logo from '@tollerud/ui/tollerud-logo.svg'
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
with:
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
import logo from '@tollerud/ui/brand/tollerud-logo.svg'
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
No component API changes. `@tollerud/ui` barrel and subpath imports unchanged.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
10
117
|
## 3.1.1 — 2026-06-09 — Display shimmer, form indicators, and button fixes
|
|
11
118
|
|
|
12
119
|
Patch release: ships hero text shimmer for consumer apps, fixes secondary/checkbox/radio styling, and polishes docs layout components.
|
package/GETTING_STARTED.md
CHANGED
|
@@ -79,71 +79,13 @@ Import individual components without pulling the full barrel:
|
|
|
79
79
|
|
|
80
80
|
```tsx
|
|
81
81
|
import { Button } from '@tollerud/ui/button'
|
|
82
|
-
import { Dialog, DialogContent } from '@tollerud/ui/dialog'
|
|
83
82
|
import { cn } from '@tollerud/ui/utils'
|
|
84
83
|
```
|
|
85
84
|
|
|
86
|
-
Every component in the catalog has a matching subpath (kebab-case filename). The main `@tollerud/ui` entry still works for convenience.
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Toaster (optional)
|
|
91
|
-
|
|
92
|
-
Mount the `Toaster` once near your app root to enable `sonner` toast notifications:
|
|
93
|
-
|
|
94
|
-
```tsx
|
|
95
|
-
// app/layout.tsx
|
|
96
|
-
import { Toaster } from '@tollerud/ui'
|
|
97
|
-
|
|
98
|
-
export default function RootLayout({ children }) {
|
|
99
|
-
return (
|
|
100
|
-
<html>
|
|
101
|
-
<body>
|
|
102
|
-
{children}
|
|
103
|
-
<Toaster />
|
|
104
|
-
</body>
|
|
105
|
-
</html>
|
|
106
|
-
)
|
|
107
|
-
}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## Import Components
|
|
113
|
-
|
|
114
|
-
All 61 components are named exports from `@tollerud/ui`:
|
|
115
|
-
|
|
116
|
-
```tsx
|
|
117
|
-
// Basics
|
|
118
|
-
import { Button, Card, Badge, StatusDot, Kbd, Input, Textarea } from '@tollerud/ui'
|
|
119
|
-
|
|
120
|
-
// Overlays
|
|
121
|
-
import { Dialog, DialogContent, Tooltip, TooltipProvider, Sheet } from '@tollerud/ui'
|
|
122
|
-
|
|
123
|
-
// Data & infra
|
|
124
|
-
import { DataTable, HostCard, LogViewer, CommandMenu } from '@tollerud/ui'
|
|
125
|
-
```
|
|
126
|
-
|
|
127
85
|
See [COMPONENTS.md](COMPONENTS.md) for the full prop reference.
|
|
128
86
|
|
|
129
87
|
---
|
|
130
88
|
|
|
131
|
-
## shadcn / registry
|
|
132
|
-
|
|
133
|
-
Install individual components via the registry:
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
npx shadcn@latest add https://unpkg.com/@tollerud/ui@latest/registry.json
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
Or add a single component:
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
npx shadcn@latest add button --registry https://unpkg.com/@tollerud/ui@latest/registry.json
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
89
|
## Server Components
|
|
148
90
|
|
|
149
91
|
`@tollerud/ui` ships client bundles with `'use client'`. Importing components (or `cn`, `buttonVariants`) from a Server Component file is safe — the import does not force your file to become a Client Component.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A complete, browsable UI library built around **monochrome + yellow accent**. Noir aesthetic meets modern utility.
|
|
4
4
|
|
|
5
|
-
**[Live docs →](https://tollerud.
|
|
5
|
+
**[Live docs →](https://design.tollerud.dev/)** — browse every token, component, and pattern live with copy-paste code.
|
|
6
6
|
|
|
7
7
|
**Requirements:** React ≥ 18 · TypeScript supported (types included) · Tailwind CSS v4 (v3 supported via `globals-v3.css`)
|
|
8
8
|
|
|
@@ -21,7 +21,7 @@ A complete, browsable UI library built around **monochrome + yellow accent**. No
|
|
|
21
21
|
|
|
22
22
|
> Clean lines. Sharp contrast. Yellow where it counts.
|
|
23
23
|
|
|
24
|
-
Tollerud
|
|
24
|
+
Tollerud UI is minimal but not cold. It uses a near-black foundation with warm yellow accents for interaction points. Every element has purpose — nothing decorative for its own sake. The cross-hatching spirit lives in the sharp borders, the thin lines, the deliberate whitespace.
|
|
25
25
|
|
|
26
26
|
## Quick Start
|
|
27
27
|
|
|
@@ -141,7 +141,7 @@ Include `tokens.css` or `globals.css` for CSS custom properties and utility clas
|
|
|
141
141
|
|
|
142
142
|
### Brand Mascot
|
|
143
143
|
|
|
144
|
-
The design system
|
|
144
|
+
The design system ships brand assets under `brand/` — import via `@tollerud/ui/brand/tollerud-avatar.svg` (and `.png` / full-figure variants) for headers, landing pages, and agent identity moments. Prefer `<Monogram />` for nav lockups.
|
|
145
145
|
|
|
146
146
|
## Palette Summary
|
|
147
147
|
|
|
@@ -204,74 +204,45 @@ The design system includes `tollerud-avatar.svg` — a full cel-shaded monochrom
|
|
|
204
204
|
4. **Sharp when it counts** — Radius is subtle. Full round only for pills. Sharp corners for the noir feel.
|
|
205
205
|
5. **Glow with purpose** — Yellow glow only on hover/active states. Never decorative.
|
|
206
206
|
|
|
207
|
-
##
|
|
207
|
+
## Install
|
|
208
208
|
|
|
209
209
|
```bash
|
|
210
|
-
|
|
211
|
-
|
|
210
|
+
npm install @tollerud/ui clsx tailwind-merge tailwindcss
|
|
211
|
+
```
|
|
212
212
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
213
|
+
```tsx
|
|
214
|
+
import { Button, Card } from '@tollerud/ui'
|
|
215
|
+
// or tree-shake:
|
|
216
|
+
import { Button } from '@tollerud/ui/button'
|
|
217
217
|
```
|
|
218
218
|
|
|
219
|
-
See [GETTING_STARTED.md](GETTING_STARTED.md) for
|
|
219
|
+
See [GETTING_STARTED.md](GETTING_STARTED.md) for Tailwind setup and peer dependencies.
|
|
220
220
|
|
|
221
221
|
## File Structure
|
|
222
222
|
|
|
223
223
|
```
|
|
224
224
|
design-system/
|
|
225
|
-
├──
|
|
226
|
-
├──
|
|
227
|
-
├──
|
|
228
|
-
├──
|
|
229
|
-
├──
|
|
230
|
-
├── COMPONENTS.md #
|
|
231
|
-
├──
|
|
232
|
-
├──
|
|
233
|
-
├──
|
|
234
|
-
├──
|
|
235
|
-
├──
|
|
236
|
-
├── tailwind.config.js # (backward compat standalone config)
|
|
237
|
-
├── globals.css # 🏆 Tailwind v4 entry (tokens + component layers)
|
|
238
|
-
├── globals-v3.css # Tailwind v3 legacy (@tailwind + layers)
|
|
225
|
+
├── .nvmrc # Node 24 for local dev / CI parity
|
|
226
|
+
├── package.json # @tollerud/ui — version, exports, scripts
|
|
227
|
+
├── registry.json # Repo-only drift manifest (`test:drift`; not in npm tarball)
|
|
228
|
+
├── CHANGELOG.md # Version history (synced to docs on build)
|
|
229
|
+
├── SKILL.md # AI agent catalog — source of truth for exports
|
|
230
|
+
├── COMPONENTS.md # Human prop reference
|
|
231
|
+
├── AGENTS.md # Contributor / release guide
|
|
232
|
+
├── brand/ # Logo + Tia avatars (npm: @tollerud/ui/brand/*)
|
|
233
|
+
├── components/ # React components (*.tsx) + index.ts barrel
|
|
234
|
+
├── globals.css # Tailwind v4 entry (tokens + component layers)
|
|
235
|
+
├── globals-v3.css # Tailwind v3 legacy
|
|
239
236
|
├── globals-layers.css # Shared component CSS layers
|
|
240
|
-
├──
|
|
241
|
-
├──
|
|
242
|
-
├──
|
|
243
|
-
├──
|
|
244
|
-
├──
|
|
245
|
-
│ ├──
|
|
246
|
-
│ ├──
|
|
247
|
-
│
|
|
248
|
-
|
|
249
|
-
│ ├── StatusDot.tsx # Online/offline/warning/idle
|
|
250
|
-
│ ├── Input.tsx # With label + error state
|
|
251
|
-
│ ├── CodeBlock.tsx # Terminal/code display
|
|
252
|
-
│ ├── StatCard.tsx # Dashboard stat card
|
|
253
|
-
│ ├── NoirGlowBackground.tsx # Tollerud.no shader background primitive
|
|
254
|
-
│ ├── Kbd.tsx # Keyboard shortcut chip (⌘K style)
|
|
255
|
-
│ ├── ActionRow.tsx # Command/action item row
|
|
256
|
-
│ ├── CommandMenu.tsx # Raycast-style command palette
|
|
257
|
-
│ ├── ServiceHealthCard.tsx # Service status card
|
|
258
|
-
│ ├── HostCard.tsx # Server/VM card
|
|
259
|
-
│ ├── DockerStackCard.tsx # Docker Compose stack card
|
|
260
|
-
│ ├── IncidentCard.tsx # Severity-graded incident card
|
|
261
|
-
│ ├── ApprovalCard.tsx # Approve/reject card
|
|
262
|
-
│ ├── ActionDiff.tsx # Unified diff viewer
|
|
263
|
-
│ ├── RollbackPlan.tsx # Rollback step list
|
|
264
|
-
│ ├── LogViewer.tsx # Terminal-style log viewer
|
|
265
|
-
│ ├── AlertInbox.tsx # Alert feed with acknowledge
|
|
266
|
-
│ ├── Timeline.tsx # Vertical activity timeline
|
|
267
|
-
│ ├── BackupStatusPanel.tsx # Backup job overview
|
|
268
|
-
│ └── Container.tsx # Layout width constraint
|
|
269
|
-
├── docs-app/ # Next.js docs site (static export → _site/ for GitHub Pages)
|
|
270
|
-
│ ├── app/ # App Router entry
|
|
271
|
-
│ ├── components/ # Page demos (primitives, charts, marketing)
|
|
272
|
-
│ └── lib/ # ui-merged.js + docs-adapters.jsx (npm-backed)
|
|
273
|
-
└── docs/
|
|
274
|
-
└── docs.css # Shared docs chrome styles (imported by docs-app)
|
|
237
|
+
├── tokens.css # Design tokens
|
|
238
|
+
├── tollerud-preset.js # Tailwind preset
|
|
239
|
+
├── scripts/ # Build, validate, docs, and release helpers
|
|
240
|
+
├── docs-app/ # Next.js docs site (static export → _site/)
|
|
241
|
+
│ ├── app/ # App Router + globals.css
|
|
242
|
+
│ ├── components/ # Page demos + docs shell
|
|
243
|
+
│ ├── styles/docs.css # Docs chrome + light theme
|
|
244
|
+
│ └── public/CNAME # design.tollerud.dev
|
|
245
|
+
└── fixtures/consumer/ # npm tarball install smoke test (CI)
|
|
275
246
|
```
|
|
276
247
|
|
|
277
248
|
## Graphify-inspired Components
|
package/SKILL.md
CHANGED
|
@@ -20,7 +20,7 @@ npm install @tollerud/ui clsx tailwind-merge tailwindcss@4 \
|
|
|
20
20
|
npm install @paper-design/shaders-react
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
As of **v3.1.1**, `.tollerud-display-shimmer` ships in `globals.css` for animated hero accent text. As of **v3.1.0**, `Monogram` ships as an inline SVG component (`color`: `yellow` | `black` | `white`). As of **v3.0.0**, the package is **ESM-only** (no CJS `require` entry). As of **v2.0.0**, Radix, Lucide, Framer Motion, and Sonner are **required peers** (not bundled).
|
|
23
|
+
As of **v4.0.1**, install is **npm-only** — `import { Button } from '@tollerud/ui'` or subpaths like `@tollerud/ui/button`. Copy-via-shadcn registry CLI is unsupported. As of **v4.0.0**, `@tollerud/ui/globals-v4.css` is removed — use `globals.css` only. Brand assets live at `@tollerud/ui/brand/*`. As of **v3.1.1**, `.tollerud-display-shimmer` ships in `globals.css` for animated hero accent text. As of **v3.1.0**, `Monogram` ships as an inline SVG component (`color`: `yellow` | `black` | `white`). As of **v3.0.0**, the package is **ESM-only** (no CJS `require` entry). As of **v2.0.0**, Radix, Lucide, Framer Motion, and Sonner are **required peers** (not bundled).
|
|
24
24
|
|
|
25
25
|
Apply the Tailwind preset when you need extra utilities from `tollerud-preset.js` — `globals.css` already includes tokens and component layers for v4:
|
|
26
26
|
|
|
@@ -458,7 +458,7 @@ The monogram must always sit left of the project name with `gap-2`. Never show t
|
|
|
458
458
|
</div>
|
|
459
459
|
```
|
|
460
460
|
|
|
461
|
-
**Monogram** — `color?: 'yellow' | 'black' | 'white'` (default `yellow`), `size?: number`, `title?: string` (default `'Tollerud'`). Brand avatars: `@tollerud/ui/tollerud-avatar.svg`, `tollerud-avatar-full.svg` (+ `.png` variants).
|
|
461
|
+
**Monogram** — `color?: 'yellow' | 'black' | 'white'` (default `yellow`), `size?: number`, `title?: string` (default `'Tollerud'`). Brand avatars: `@tollerud/ui/brand/tollerud-avatar.svg`, `brand/tollerud-avatar-full.svg` (+ `.png` variants).
|
|
462
462
|
Monogram sizing: top bar/sidebar expanded → `h-5`, collapsed → `h-6`, footer → `h-4` (handled automatically by `<Footer />`).
|
|
463
463
|
|
|
464
464
|
---
|
|
@@ -504,7 +504,7 @@ Shadow scale: `--shadow-sm` `--shadow-md` `--shadow-lg` `--shadow-xl` `--shadow-
|
|
|
504
504
|
| Recolor or add glow to the monogram | Yellow-on-dark branding is non-negotiable; glow is for interactive UI only |
|
|
505
505
|
| Introduce non-system chromatic colors (blue, green, purple) for decoration | Only the yellow accent + monochrome grays (status semantics are the lone exception) |
|
|
506
506
|
| Nest `<a>`/`<Link>` inside `<Button>` (or vice versa) | Invalid HTML — use `asChild` or `buttonVariants()` instead |
|
|
507
|
-
| Import a component name you saw in older docs without checking it exists |
|
|
507
|
+
| Import a component name you saw in older docs without checking it exists | Verify against this catalog or `components/index.ts`. Common renames: `EmptyState` → `Empty`, `Toast` → `Toaster` + `sonner`'s `toast()`, `Drawer` → `Sheet`. Charts (`BarChart`, `AreaChart`, `Donut`, `Sparkline`) and marketing blocks (`HeroBlock`, `FeatureCard`, `CTABand`) ship since **v1.4.0**. Brand assets: `@tollerud/ui/brand/*` (not repo root). |
|
|
508
508
|
|
|
509
509
|
---
|
|
510
510
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tollerud/ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "Tollerud User Interface — dark, monochrome + yellow accent. Noir aesthetic meets modern utility.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -8,14 +8,15 @@
|
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/Tollerud/ui.git"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://tollerud.
|
|
11
|
+
"homepage": "https://design.tollerud.dev/",
|
|
12
12
|
"bugs": {
|
|
13
13
|
"url": "https://github.com/Tollerud/ui/issues"
|
|
14
14
|
},
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"author": "Mathias Tollerud <mathias.tollerud@gmail.com>",
|
|
17
|
+
"packageManager": "npm@11.16.0",
|
|
17
18
|
"engines": {
|
|
18
|
-
"node": ">=
|
|
19
|
+
"node": ">=20"
|
|
19
20
|
},
|
|
20
21
|
"sideEffects": [
|
|
21
22
|
"*.css"
|
|
@@ -32,17 +33,15 @@
|
|
|
32
33
|
},
|
|
33
34
|
"./globals.css": "./globals.css",
|
|
34
35
|
"./globals-v3.css": "./globals-v3.css",
|
|
35
|
-
"./globals-v4.css": "./globals-v4.css",
|
|
36
36
|
"./globals-layers.css": "./globals-layers.css",
|
|
37
37
|
"./tailwind.css": "./tailwind.css",
|
|
38
38
|
"./tokens.css": "./tokens.css",
|
|
39
39
|
"./preset": "./tollerud-preset.js",
|
|
40
|
-
"./tollerud-logo.svg": "./tollerud-logo.svg",
|
|
41
|
-
"./tollerud-avatar.svg": "./tollerud-avatar.svg",
|
|
42
|
-
"./tollerud-avatar.png": "./tollerud-avatar.png",
|
|
43
|
-
"./tollerud-avatar-full.svg": "./tollerud-avatar-full.svg",
|
|
44
|
-
"./tollerud-avatar-full.png": "./tollerud-avatar-full.png",
|
|
45
|
-
"./registry.json": "./registry.json",
|
|
40
|
+
"./brand/tollerud-logo.svg": "./brand/tollerud-logo.svg",
|
|
41
|
+
"./brand/tollerud-avatar.svg": "./brand/tollerud-avatar.svg",
|
|
42
|
+
"./brand/tollerud-avatar.png": "./brand/tollerud-avatar.png",
|
|
43
|
+
"./brand/tollerud-avatar-full.svg": "./brand/tollerud-avatar-full.svg",
|
|
44
|
+
"./brand/tollerud-avatar-full.png": "./brand/tollerud-avatar-full.png",
|
|
46
45
|
"./*": {
|
|
47
46
|
"import": {
|
|
48
47
|
"types": "./dist/*.d.ts",
|
|
@@ -54,21 +53,14 @@
|
|
|
54
53
|
"dist",
|
|
55
54
|
"globals.css",
|
|
56
55
|
"globals-v3.css",
|
|
57
|
-
"globals-v4.css",
|
|
58
56
|
"globals-layers.css",
|
|
59
57
|
"tailwind.css",
|
|
60
58
|
"tokens.css",
|
|
61
59
|
"tollerud-preset.js",
|
|
62
|
-
"registry.json",
|
|
63
|
-
"components.json",
|
|
64
60
|
"GETTING_STARTED.md",
|
|
65
61
|
"COMPONENTS.md",
|
|
66
62
|
"CHANGELOG.md",
|
|
67
|
-
"
|
|
68
|
-
"tollerud-avatar.svg",
|
|
69
|
-
"tollerud-avatar.png",
|
|
70
|
-
"tollerud-avatar-full.svg",
|
|
71
|
-
"tollerud-avatar-full.png",
|
|
63
|
+
"brand",
|
|
72
64
|
"AGENTS.md",
|
|
73
65
|
"SKILL.md"
|
|
74
66
|
],
|
|
@@ -83,19 +75,20 @@
|
|
|
83
75
|
"test:subpath": "node scripts/verify-subpath-exports.mjs",
|
|
84
76
|
"test:drift": "node scripts/verify-registry-drift.mjs",
|
|
85
77
|
"test:consumer": "node scripts/test-consumer.mjs",
|
|
78
|
+
"sync:footer": "node scripts/sync-footer-package.mjs",
|
|
79
|
+
"verify:footer-sync": "node scripts/verify-footer-sync.mjs",
|
|
86
80
|
"test:package": "node scripts/test-package.mjs",
|
|
87
81
|
"test:size": "node scripts/test-size.mjs",
|
|
88
82
|
"sync:registry": "node scripts/sync-registry-version.mjs",
|
|
89
83
|
"changelog:draft": "node scripts/changelog-draft.mjs",
|
|
90
84
|
"changeset": "changeset",
|
|
91
|
-
"version:release": "changeset version && npm run sync:registry",
|
|
85
|
+
"version:release": "changeset version && npm run sync:registry && npm run sync:footer",
|
|
92
86
|
"docs:props": "node scripts/generate-props.mjs",
|
|
93
87
|
"test:props": "node scripts/verify-props-drift.mjs",
|
|
94
|
-
"validate": "npm run typecheck && npm run lint && npm run test && npm run build && npm run test:subpath && npm run test:drift && npm run test:package && npm run test:size && npm run test:props && npm run build:docs && npm run test:consumer",
|
|
88
|
+
"validate": "npm run typecheck && npm run lint && npm run test && npm run build && npm run test:subpath && npm run test:drift && npm run test:package && npm run test:size && npm run test:props && npm run verify:footer-sync && npm run build:docs && npm run test:consumer",
|
|
95
89
|
"prepublishOnly": "npm run sync:registry && npm run typecheck && npm run lint && npm run test && npm run build && npm run test:subpath && npm run test:drift && npm run test:package && npm run test:size && npm run test:props",
|
|
96
90
|
"build:docs": "node scripts/build-docs.mjs",
|
|
97
|
-
"preview:docs": "npx --yes serve _site -l 4173"
|
|
98
|
-
"preview": "open preview.html"
|
|
91
|
+
"preview:docs": "npx --yes serve _site -l 4173"
|
|
99
92
|
},
|
|
100
93
|
"peerDependencies": {
|
|
101
94
|
"@paper-design/shaders-react": "^0.0.76",
|
|
@@ -129,7 +122,7 @@
|
|
|
129
122
|
"@radix-ui/react-dropdown-menu": "^2.1.17",
|
|
130
123
|
"@radix-ui/react-progress": "^1.1.9",
|
|
131
124
|
"@radix-ui/react-slot": "^1.2.5",
|
|
132
|
-
"@radix-ui/react-tabs": "^1.1.
|
|
125
|
+
"@radix-ui/react-tabs": "^1.1.14",
|
|
133
126
|
"@radix-ui/react-tooltip": "^1.2.9",
|
|
134
127
|
"@eslint/js": "^9.39.4",
|
|
135
128
|
"@playwright/test": "^1.60.0",
|
package/components.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema.json",
|
|
3
|
-
"name": "Tollerud User Interface",
|
|
4
|
-
"style": "default",
|
|
5
|
-
"rsc": true,
|
|
6
|
-
"tsx": true,
|
|
7
|
-
"tailwind": {
|
|
8
|
-
"config": "tailwind.config.ts",
|
|
9
|
-
"css": "globals.css",
|
|
10
|
-
"baseColor": "stone",
|
|
11
|
-
"cssVariables": true,
|
|
12
|
-
"prefix": ""
|
|
13
|
-
},
|
|
14
|
-
"aliases": {
|
|
15
|
-
"components": "@/components/ui",
|
|
16
|
-
"utils": "@/lib/utils"
|
|
17
|
-
}
|
|
18
|
-
}
|
package/globals-v4.css
DELETED