@vadimcomanescu/nadicode-design-system 4.0.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/skills/seed/SKILL.md +34 -163
- package/.agents/skills/seed/references/animation.md +2 -2
- package/.agents/skills/seed/references/responsive.md +1 -1
- package/README.md +2 -2
- package/eslint-rules/nadicode/rules/no-has-svg-selector.js +1 -1
- package/package.json +1 -2
- package/scripts/ds-check.mjs +0 -10
- package/scripts/sync-seed-skill.mjs +0 -3
- package/.agents/skills/seed/contract.md +0 -110
- package/.agents/skills/seed/intent-map.md +0 -320
- package/.agents/skills/seed/recipes/agency-home.md +0 -311
- package/.agents/skills/seed/recipes/agents-chat.md +0 -305
- package/.agents/skills/seed/recipes/analytics.md +0 -253
- package/.agents/skills/seed/recipes/auth.md +0 -254
- package/.agents/skills/seed/recipes/blog-content.md +0 -307
- package/.agents/skills/seed/recipes/checkout.md +0 -311
- package/.agents/skills/seed/recipes/company-about.md +0 -276
- package/.agents/skills/seed/recipes/company-contact.md +0 -234
- package/.agents/skills/seed/recipes/crud-form.md +0 -233
- package/.agents/skills/seed/recipes/crud-list-detail.md +0 -230
- package/.agents/skills/seed/recipes/dashboard.md +0 -354
- package/.agents/skills/seed/recipes/digital-workers.md +0 -314
- package/.agents/skills/seed/recipes/error-pages.md +0 -199
- package/.agents/skills/seed/recipes/marketing-landing.md +0 -293
- package/.agents/skills/seed/recipes/marketing-shell.md +0 -156
- package/.agents/skills/seed/recipes/navigation-shell.md +0 -787
- package/.agents/skills/seed/recipes/onboarding.md +0 -258
- package/.agents/skills/seed/recipes/pricing.md +0 -271
- package/.agents/skills/seed/recipes/service-detail.md +0 -302
- package/.agents/skills/seed/recipes/settings.md +0 -252
- package/.agents/skills/seed/references/blocks.md +0 -128
- package/.agents/skills/seed/references/components.md +0 -287
- package/.agents/skills/seed/references/icons.md +0 -169
- package/.agents/skills/seed/references/nextjs.md +0 -49
- package/.agents/skills/seed/references/tokens.md +0 -88
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
# Component Inventory
|
|
2
|
-
|
|
3
|
-
Derived from `src/catalog/catalog.ts`.
|
|
4
|
-
|
|
5
|
-
Components are consumed via `seedComponents` from `@vadimcomanescu/nadicode-design-system/catalog/components`. The `Path` column below is the repo source location for maintainers.
|
|
6
|
-
|
|
7
|
-
Tiers: **1**=Core (3+ recipes), **2**=Domain (1-2 recipes), **3**=Decorative (marketing only), **4**=Deprecation candidate.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Form Controls
|
|
12
|
-
|
|
13
|
-
| Component | Path | Tier | Radix/Lib | Notes |
|
|
14
|
-
|-----------|------|------|-----------|-------|
|
|
15
|
-
| Button | `ui/Button` | 1 | `react-slot` | 8 variants (primary, secondary, outline, ghost, link, destructive, accent, glass), 4 sizes |
|
|
16
|
-
| Calendar | `ui/Calendar` | 1 | `react-day-picker` | Calendar grid primitive |
|
|
17
|
-
| Checkbox | `ui/Checkbox` | 1 | `react-checkbox` | With optional label |
|
|
18
|
-
| CheckoutForm | `ui/CheckoutForm` | 2 | `@stripe/react-stripe-js` | Stripe Elements checkout form |
|
|
19
|
-
| CheckoutFormDemo | `ui/CheckoutFormDemo` | 2 | `@stripe/react-stripe-js` | Demo checkout with pre-wired state |
|
|
20
|
-
| Combobox | `ui/Combobox` | 1 | `cmdk` | Searchable select |
|
|
21
|
-
| DatePicker | `ui/DatePicker` | 1 | `react-day-picker` | Single date picker |
|
|
22
|
-
| DateRangePicker | `ui/DateRangePicker` | 1 | `react-day-picker` | Date range selection |
|
|
23
|
-
| Field | `ui/Field` | 1 | - | Generic field wrapper (label + error) |
|
|
24
|
-
| FileUpload | `ui/FileUpload` | 1 | - | Drag-and-drop file upload zone |
|
|
25
|
-
| Form | `ui/Form` | 1 | `react-hook-form` | FormField, FormItem, FormLabel, FormControl, FormMessage |
|
|
26
|
-
| FormWizard | `ui/FormWizard` | 1 | - | Multi-step form wizard |
|
|
27
|
-
| Input | `ui/Input` | 1 | - | size: sm/default/lg, props: label, error, startIcon, endIcon |
|
|
28
|
-
| InputGroup | `ui/InputGroup` | 1 | - | Input + addon composition |
|
|
29
|
-
| InputOTP | `ui/InputOTP` | 1 | `input-otp` | OTP input with groups, slots, separators |
|
|
30
|
-
| Label | `ui/Label` | 1 | `react-label` | Accessible label |
|
|
31
|
-
| NativeSelect | `ui/NativeSelect` | 4 | - | Browser-native <select> styled |
|
|
32
|
-
| PasswordInput | `ui/PasswordInput` | 1 | - | Input with show/hide toggle |
|
|
33
|
-
| RadioGroup | `ui/RadioGroup` | 1 | `react-radio-group` | RadioGroup + RadioGroupItem |
|
|
34
|
-
| Select | `ui/Select` | 1 | `react-select` | Compound: Trigger, Content, Item, Group, Separator |
|
|
35
|
-
| Slider | `ui/Slider` | 1 | `react-slider` | Range slider |
|
|
36
|
-
| Switch | `ui/Switch` | 1 | `react-switch` | Toggle switch |
|
|
37
|
-
| TagInput | `ui/TagInput` | 1 | - | Multi-value tag input |
|
|
38
|
-
| Textarea | `ui/Textarea` | 1 | - | Auto-grow text area |
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## Display
|
|
43
|
-
|
|
44
|
-
| Component | Path | Tier | Radix/Lib | Notes |
|
|
45
|
-
|-----------|------|------|-----------|-------|
|
|
46
|
-
| Accordion | `ui/Accordion` | 1 | `react-accordion` | Accordion, Item, Trigger, Content |
|
|
47
|
-
| Alert | `ui/Alert` | 1 | - | variant: default, destructive |
|
|
48
|
-
| AlertDialog | `ui/AlertDialog` | 1 | `react-alert-dialog` | Full compound set with actions |
|
|
49
|
-
| AnimatedTabs | `ui/AnimatedTabs` | 3 | - | Tabs with sliding indicator (layoutId) |
|
|
50
|
-
| AnnouncementBanner | `ui/AnnouncementBanner` | 1 | - | Top-of-page announcement |
|
|
51
|
-
| Avatar | `ui/Avatar` | 1 | `react-avatar` | Avatar, AvatarImage, AvatarFallback |
|
|
52
|
-
| AvatarUpload | `ui/AvatarUpload` | 1 | - | Avatar with upload functionality |
|
|
53
|
-
| Badge | `ui/Badge` | 1 | - | variant: primary, secondary, destructive, outline, accent |
|
|
54
|
-
| Breadcrumb | `ui/Breadcrumb` | 1 | - | Breadcrumb, List, Item, Link, Separator |
|
|
55
|
-
| Card | `ui/Card` | 1 | - | Card, Header, Title, Description, Content, Footer |
|
|
56
|
-
| Carousel | `ui/Carousel` | 1 | `embla-carousel-react` | Content, Item, Previous, Next |
|
|
57
|
-
| CheckStatus | `ui/CheckStatus` | 2 | - | Status check indicator component |
|
|
58
|
-
| DataFreshness | `ui/DataFreshness` | 2 | - | Data freshness/staleness indicator |
|
|
59
|
-
| DataTable | `ui/DataTable` | 1 | `@tanstack/react-table` | Full-featured with sorting/filtering |
|
|
60
|
-
| Empty | `ui/Empty` | 1 | - | Empty state placeholder |
|
|
61
|
-
| Heading | `ui/Heading` | 1 | - | Semantic headings with explicit level + visual size |
|
|
62
|
-
| HoverCard | `ui/HoverCard` | 4 | `react-hover-card` | HoverCard, Trigger, Content |
|
|
63
|
-
| KanbanBoard | `ui/KanbanBoard` | 2 | - | Drag-and-drop kanban board component |
|
|
64
|
-
| Kbd | `ui/Kbd` | 1 | - | Keyboard shortcut display |
|
|
65
|
-
| MetricCard | `ui/MetricCard` | 2 | - | Single metric display card with label, value, and trend |
|
|
66
|
-
| Popover | `ui/Popover` | 1 | `react-popover` | Popover, Trigger, Content |
|
|
67
|
-
| Progress | `ui/Progress` | 1 | `react-progress` | Progress bar |
|
|
68
|
-
| ProgressRing | `ui/ProgressRing` | 2 | - | Circular progress ring indicator |
|
|
69
|
-
| PromoCard | `ui/PromoCard` | 4 | - | Promotional card (Card + glass-floating may replace) |
|
|
70
|
-
| RoleBadge | `ui/RoleBadge` | 4 | - | Role-specific badge styling (merge into Badge) |
|
|
71
|
-
| Skeleton | `ui/Skeleton` | 1 | - | Loading placeholder |
|
|
72
|
-
| Spinner | `ui/Spinner` | 1 | - | Loading spinner |
|
|
73
|
-
| StatusDot | `ui/StatusDot` | 4 | - | Status indicator dot (can be CSS utility) |
|
|
74
|
-
| Table | `ui/Table` | 1 | - | Table, Header, Body, Row, Head, Cell |
|
|
75
|
-
| Tabs | `ui/Tabs` | 1 | `react-tabs` | Tabs, TabsList, TabsTrigger, TabsContent |
|
|
76
|
-
| Timeline | `ui/Timeline` | 1 | - | Vertical timeline |
|
|
77
|
-
| Tooltip | `ui/Tooltip` | 1 | `react-tooltip` | Provider, Tooltip, Trigger, Content |
|
|
78
|
-
| TrendIndicator | `ui/TrendIndicator` | 2 | - | Trend direction indicator (up/down/neutral) |
|
|
79
|
-
| Typography | `ui/Typography` | 1 | - | Body, small, and muted text only |
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Navigation
|
|
84
|
-
|
|
85
|
-
| Component | Path | Tier | Radix/Lib | Notes |
|
|
86
|
-
|-----------|------|------|-----------|-------|
|
|
87
|
-
| Command | `ui/Command` | 1 | `cmdk` | Command palette primitive |
|
|
88
|
-
| ContextMenu | `ui/ContextMenu` | 4 | `react-context-menu` | Rarely needed |
|
|
89
|
-
| DropdownMenu | `ui/DropdownMenu` | 1 | `react-dropdown-menu` | Full compound set |
|
|
90
|
-
| FloatingDock | `ui/FloatingDock` | 4 | - | macOS-style floating dock |
|
|
91
|
-
| LanguageSwitcher | `ui/LanguageSwitcher` | 2 | - | Locale/language selection switcher |
|
|
92
|
-
| Menubar | `ui/Menubar` | 4 | `react-menubar` | Rare in modern SaaS |
|
|
93
|
-
| NavigationMenu | `ui/NavigationMenu` | 1 | `react-navigation-menu` | Menu, List, Item, Trigger, Content |
|
|
94
|
-
| Pagination | `ui/Pagination` | 1 | - | Content, Item, Previous, Next |
|
|
95
|
-
| SearchCommand | `ui/SearchCommand` | 1 | `cmdk` | Cmd+K search dialog |
|
|
96
|
-
| Sidebar | `ui/Sidebar` | 1 | - | Full system: Provider, Trigger, Content, Group, Menu |
|
|
97
|
-
| TreeView | `ui/TreeView` | 1 | - | Recursive collapsible tree with keyboard nav |
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## Layout and Overlays
|
|
102
|
-
|
|
103
|
-
| Component | Path | Tier | Radix/Lib | Notes |
|
|
104
|
-
|-----------|------|------|-----------|-------|
|
|
105
|
-
| AnimatedDialog | `ui/AnimatedDialog` | 3 | `react-dialog` | Dialog with motion spring animations |
|
|
106
|
-
| AnimatedSheet | `ui/AnimatedSheet` | 3 | `react-dialog` | Sheet with motion animations |
|
|
107
|
-
| AspectRatio | `ui/AspectRatio` | 1 | `react-aspect-ratio` | Fixed aspect ratio container |
|
|
108
|
-
| BentoGrid | `ui/BentoGrid` | 1 | - | CSS grid layout system |
|
|
109
|
-
| Collapsible | `ui/Collapsible` | 4 | `react-collapsible` | Used by Sidebar internally |
|
|
110
|
-
| Dialog | `ui/Dialog` | 1 | `react-dialog` | Full compound set with close button |
|
|
111
|
-
| Drawer | `ui/Drawer` | 1 | `vaul` | Mobile-friendly bottom drawer |
|
|
112
|
-
| Grid | `layout/Grid` | 1 | - | CSS Grid wrapper |
|
|
113
|
-
| GridSystem | `layout/GridSystem` | 2 | - | Extended grid system with responsive column and gap utilities |
|
|
114
|
-
| Resizable | `ui/Resizable` | 1 | `react-resizable-panels` | PanelGroup, Panel, Handle |
|
|
115
|
-
| ScrollArea | `ui/ScrollArea` | 1 | `react-scroll-area` | Custom scrollbar |
|
|
116
|
-
| Separator | `ui/Separator` | 1 | `react-separator` | Horizontal/vertical divider |
|
|
117
|
-
| SettingsModal | `ui/SettingsModal` | 2 | - | Modal dialog for application settings |
|
|
118
|
-
| Sheet | `ui/Sheet` | 1 | `react-dialog` | Slide-in side panel |
|
|
119
|
-
| Toggle | `ui/Toggle` | 4 | `react-toggle` | variant: default, outline |
|
|
120
|
-
| ToggleGroup | `ui/ToggleGroup` | 4 | `react-toggle-group` | Group of toggles |
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Decorative Effects
|
|
125
|
-
|
|
126
|
-
| Component | Path | Tier | Notes |
|
|
127
|
-
|-----------|------|------|-------|
|
|
128
|
-
| AmbientGrid | `ui/AmbientGrid` | 3 | CSS grid overlay (24px cells, 0.06 opacity) |
|
|
129
|
-
| AnimatedBackground | `ui/AnimatedBackground` | 3 | CSS animated gradient background |
|
|
130
|
-
| AuroraEffect | `ui/AuroraEffect` | 3 | Animated gradient aurora background |
|
|
131
|
-
| InfiniteSlider | `ui/InfiniteSlider` | 3 | Auto-scrolling content slider |
|
|
132
|
-
| MagneticElement | `ui/MagneticElement` | 3 | Magnetic cursor attraction |
|
|
133
|
-
| MeteorShower | `ui/MeteorShower` | 3 | Falling meteor particles |
|
|
134
|
-
| MouseEffect | `ui/MouseEffect` | 3 | Mouse-tracking effects (MouseGlow, MouseSpotlight) |
|
|
135
|
-
| MovingBorder | `ui/MovingBorder` | 3 | Animated border rotation |
|
|
136
|
-
| ProgressiveBlur | `ui/ProgressiveBlur` | 3 | Gradient blur effect |
|
|
137
|
-
| ShaderBackground | `ui/ShaderBackground` | 2 | 21 shader types with intent-based presets (hero, section, ambient, card) |
|
|
138
|
-
| TiltCard | `ui/TiltCard` | 3 | 3D perspective tilt on hover |
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## Text Effects
|
|
143
|
-
|
|
144
|
-
All in `@vadimcomanescu/nadicode-design-system/text-effects/`.
|
|
145
|
-
|
|
146
|
-
| Component | Path | Tier | Notes |
|
|
147
|
-
|-----------|------|------|-------|
|
|
148
|
-
| AnimatedGradientText | `ui/text-effects/AnimatedGradientText` | 3 | Animated gradient sweep on text |
|
|
149
|
-
| CountingNumber | `ui/text-effects/CountingNumber` | 3 | Animated number counter (also used in dashboard) |
|
|
150
|
-
| FlipWords | `ui/text-effects/FlipWords` | 3 | Word cycling with flip animation |
|
|
151
|
-
| HighlightText | `ui/text-effects/HighlightText` | 3 | Animated highlight marker |
|
|
152
|
-
| MorphingText | `ui/text-effects/MorphingText` | 3 | SVG text morphing transitions |
|
|
153
|
-
| ShimmeringText | `ui/text-effects/ShimmeringText` | 3 | Shimmer highlight sweep |
|
|
154
|
-
| SlidingNumber | `ui/text-effects/SlidingNumber` | 3 | Digit-by-digit sliding animation |
|
|
155
|
-
| StreamingText | `ui/text-effects/StreamingText` | 3 | ChatGPT-style streaming output |
|
|
156
|
-
| TextReveal | `ui/text-effects/TextReveal` | 3 | Scroll-triggered text reveal |
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
## Animation Utilities
|
|
161
|
-
|
|
162
|
-
| Component | Path | Tier | Notes |
|
|
163
|
-
|-----------|------|------|-------|
|
|
164
|
-
| ConfettiBurst | `ui/ConfettiBurst` | 1 | Celebratory confetti animation |
|
|
165
|
-
| PageTransition | `ui/PageTransition` | 1 | Route transition wrapper (keyed on pathname) |
|
|
166
|
-
| ScrollFadeIn | `ui/ScrollFadeIn` | 1 | Fade in on scroll intersection |
|
|
167
|
-
| SpringHover | `ui/SpringHover` | 3 | Spring-based hover effect wrapper |
|
|
168
|
-
| StaggerChildren | `ui/StaggerChildren` | 1 | Stagger child element entrances |
|
|
169
|
-
| StaggeredEntrance | `ui/StaggeredEntrance` | 3 | Sequential entrance animation |
|
|
170
|
-
| SuccessCheck | `ui/SuccessCheck` | 1 | Animated success checkmark |
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
## Charts
|
|
175
|
-
|
|
176
|
-
Base `Chart.tsx` in `ui/` (not `ui/charts/`). The 7 chart variants in `ui/charts/`.
|
|
177
|
-
|
|
178
|
-
| Component | Path | Tier | Notes |
|
|
179
|
-
|-----------|------|------|-------|
|
|
180
|
-
| AreaChart | `ui/charts/AreaChart` | 2 | Recharts area chart |
|
|
181
|
-
| BarChart | `ui/charts/BarChart` | 2 | Recharts bar chart |
|
|
182
|
-
| Chart | `ui/Chart` | 2 | Base config: ChartContainer, ChartTooltip, ChartLegend |
|
|
183
|
-
| ChartCard | `ui/ChartCard` | 2 | Card wrapper for chart display with title and description |
|
|
184
|
-
| HeatmapChart | `ui/charts/HeatmapChart` | 2 | Custom heatmap visualization |
|
|
185
|
-
| LineChart | `ui/charts/LineChart` | 2 | Recharts line chart |
|
|
186
|
-
| PieChart | `ui/charts/PieChart` | 2 | Recharts pie/donut chart |
|
|
187
|
-
| RadarChart | `ui/charts/RadarChart` | 2 | Recharts radar chart |
|
|
188
|
-
| RadialBarChart | `ui/charts/RadialBarChart` | 2 | Recharts radial bar chart |
|
|
189
|
-
| Sparkline | `ui/charts/Sparkline` | 2 | Inline sparkline chart for compact trend display |
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
## AI / Voice
|
|
194
|
-
|
|
195
|
-
| Component | Path | Tier | Notes |
|
|
196
|
-
|-----------|------|------|-------|
|
|
197
|
-
| AgentAvatar | `ui/AgentAvatar` | 2 | AI agent avatar with idle/listening/speaking states |
|
|
198
|
-
| AgentStatus | `ui/AgentStatus` | 2 | Agent connection status indicator |
|
|
199
|
-
| AudioWaveform | `ui/AudioWaveform` | 2 | Real-time audio visualization |
|
|
200
|
-
| Avatar3D | `ui/Avatar3D` | 2 | 3D avatar with Three.js |
|
|
201
|
-
| ConversationThread | `ui/ConversationThread` | 2 | Chat message thread |
|
|
202
|
-
|
|
203
|
-
---
|
|
204
|
-
|
|
205
|
-
## Agentic UI
|
|
206
|
-
|
|
207
|
-
Components for AI agent interfaces, tool-use visualization, and multi-agent workflows.
|
|
208
|
-
|
|
209
|
-
| Component | Path | Tier | Notes |
|
|
210
|
-
|-----------|------|------|-------|
|
|
211
|
-
| AgentMessageBubble | `ui/AgentMessageBubble` | 2 | Chat bubble with role-based styling |
|
|
212
|
-
| AgentMetricsCard | `ui/AgentMetricsCard` | 2 | Agent performance metrics dashboard |
|
|
213
|
-
| AgentTeamPanel | `ui/AgentTeamPanel` | 2 | Agent team members and statuses |
|
|
214
|
-
| AgentTerminal | `ui/AgentTerminal` | 2 | Terminal-style command output |
|
|
215
|
-
| AgentTimeline | `ui/AgentTimeline` | 2 | Timeline of agent actions |
|
|
216
|
-
| ApprovalCard | `ui/ApprovalCard` | 2 | Human-in-the-loop approval/reject |
|
|
217
|
-
| ArtifactCard | `ui/ArtifactCard` | 2 | Generated artifacts display |
|
|
218
|
-
| ChatActions | `ui/ChatActions` | 2 | Quick-action buttons for chat messages |
|
|
219
|
-
| ChatBranch | `ui/ChatBranch` | 2 | Conversation branching and fork navigation |
|
|
220
|
-
| ChatChainOfThought | `ui/ChatChainOfThought` | 2 | Step-by-step reasoning display |
|
|
221
|
-
| ChatConfirmation | `ui/ChatConfirmation` | 2 | Action confirmation dialog in chat |
|
|
222
|
-
| ChatGreeting | `ui/ChatGreeting` | 2 | Welcome greeting for chat sessions |
|
|
223
|
-
| ChatMessage | `ui/ChatMessage` | 2 | Core chat message with avatar, content, actions |
|
|
224
|
-
| ChatPlan | `ui/ChatPlan` | 2 | Collapsible plan card with streaming title |
|
|
225
|
-
| ChatPromptInput | `ui/ChatPromptInput` | 2 | Chat text input with keyboard handling |
|
|
226
|
-
| ChatPromptInputAttachments | `ui/ChatPromptInputAttachments` | 2 | File attachment support for chat input |
|
|
227
|
-
| ChatQueue | `ui/ChatQueue` | 2 | Task queue with collapsible sections |
|
|
228
|
-
| ChatReasoning | `ui/ChatReasoning` | 2 | AI reasoning display with auto-close |
|
|
229
|
-
| ChatResponse | `ui/ChatResponse` | 2 | Streaming markdown response renderer |
|
|
230
|
-
| ChatShimmer | `ui/ChatShimmer` | 2 | Loading shimmer placeholder for chat |
|
|
231
|
-
| ChatSources | `ui/ChatSources` | 2 | Source citations panel with inline citation |
|
|
232
|
-
| ChatSuggestion | `ui/ChatSuggestion` | 2 | Suggested follow-up prompt chips |
|
|
233
|
-
| ChatThinkingMessage | `ui/ChatThinkingMessage` | 2 | Animated thinking state message |
|
|
234
|
-
| ChatToolCall | `ui/ChatToolCall` | 2 | Tool call lifecycle wrapper with state management |
|
|
235
|
-
| CodeDiffViewer | `ui/CodeDiffViewer` | 2 | Side-by-side or unified diff view |
|
|
236
|
-
| ContextMeter | `ui/ContextMeter` | 2 | Context window usage visualization |
|
|
237
|
-
| Conversation | `ui/Conversation` | 2 | Scroll-aware conversation container with auto-scroll |
|
|
238
|
-
| DiffStat | `ui/DiffStat` | 2 | Diff statistics display (additions/deletions) |
|
|
239
|
-
| HandoffIndicator | `ui/HandoffIndicator` | 2 | Agent-to-agent task handoff |
|
|
240
|
-
| MemoryInspector | `ui/MemoryInspector` | 2 | Agent memory/state inspector |
|
|
241
|
-
| SourceCitation | `ui/SourceCitation` | 2 | Cited sources with links |
|
|
242
|
-
| ThinkingIndicator | `ui/ThinkingIndicator` | 2 | Animated "thinking..." for agent reasoning |
|
|
243
|
-
| ToolCallCard | `ui/ToolCallCard` | 2 | Tool invocation with name, args, status, result |
|
|
244
|
-
| WorkflowGraph | `ui/WorkflowGraph` | 2 | Visual graph of workflow steps |
|
|
245
|
-
|
|
246
|
-
---
|
|
247
|
-
|
|
248
|
-
## Multi-Step / Stepper
|
|
249
|
-
|
|
250
|
-
All in `src/components/ui/stepper/`. Distinct from FormWizard.
|
|
251
|
-
|
|
252
|
-
| Component | Path | Tier | Notes |
|
|
253
|
-
|-----------|------|------|-------|
|
|
254
|
-
| Step | `ui/stepper/step` | 1 | Individual step |
|
|
255
|
-
| Stepper | `ui/stepper/stepper` | 1 | Root stepper, exports useStepper hook |
|
|
256
|
-
|
|
257
|
-
---
|
|
258
|
-
|
|
259
|
-
## Miscellaneous
|
|
260
|
-
|
|
261
|
-
| Component | Path | Tier | Notes |
|
|
262
|
-
|-----------|------|------|-------|
|
|
263
|
-
| BrandIcons | `ui/BrandIcons` | 1 | Google, GitHub brand SVGs |
|
|
264
|
-
| ButtonGroup | `ui/ButtonGroup` | 4 | Grouped button layout (use flex+gap) |
|
|
265
|
-
| Item | `ui/Item` | 4 | Generic list item (too generic) |
|
|
266
|
-
| Logo | `ui/Logo` | 1 | Brand logo component |
|
|
267
|
-
| NotificationCenter | `ui/NotificationCenter` | 4 | Overlaps with Sonner/Toast |
|
|
268
|
-
| SkipNav | `ui/SkipNav` | 1 | Accessibility skip navigation |
|
|
269
|
-
| Sonner | `ui/Sonner` | 1 | Sonner toast integration |
|
|
270
|
-
| StyleToggle | `ui/StyleToggle` | 1 | Arctic/bloom style switcher |
|
|
271
|
-
| ThemeToggle | `ui/ThemeToggle` | 1 | Light/dark/system theme switcher |
|
|
272
|
-
| Toast | `ui/Toast` | 1 | Toast notification primitive |
|
|
273
|
-
| Toaster | `ui/Toaster` | 1 | Toast container and renderer |
|
|
274
|
-
| VisuallyHidden | `ui/VisuallyHidden` | 1 | Screen-reader-only content |
|
|
275
|
-
|
|
276
|
-
---
|
|
277
|
-
|
|
278
|
-
## Tier Summary
|
|
279
|
-
|
|
280
|
-
| Tier | Count | Usage |
|
|
281
|
-
|------|-------|-------|
|
|
282
|
-
| 1 (Core) | ~76 | 3+ recipes, always available |
|
|
283
|
-
| 2 (Domain) | ~61 | Agentic, charts, AI/voice, checkout |
|
|
284
|
-
| 3 (Decorative) | ~24 | Marketing/showcase only |
|
|
285
|
-
| 4 (Deprecation) | ~14 | Evaluate for removal/consolidation |
|
|
286
|
-
|
|
287
|
-
Use `npm run docs:inventory` for filesystem-backed inventory output.
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
# Icons Catalog
|
|
2
|
-
|
|
3
|
-
Two-tier animated icon system: **109 hand-crafted** + **290 factory-wrapped** = **399 total**.
|
|
4
|
-
|
|
5
|
-
- **Hand-crafted** (`src/components/ui/icons/*.tsx`): Custom SVG path animations using `motion/react` with imperative `startAnimation`/`stopAnimation` handles. Sourced from [lucide-animated.com](https://lucide-animated.com).
|
|
6
|
-
- **Factory-wrapped** (`src/components/ui/icons/lucide-wrapped.tsx`): Full Lucide icon catalog wrapped via `createAnimatedIcon()`. These animate on hover but lack custom path transitions.
|
|
7
|
-
|
|
8
|
-
All icons import from `@vadimcomanescu/nadicode-design-system/icons` (unified re-export via `index.ts`).
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
```tsx
|
|
13
|
-
import { SettingsIcon, BellIcon, SearchIcon } from "@vadimcomanescu/nadicode-design-system/icons"
|
|
14
|
-
|
|
15
|
-
<SettingsIcon size={16} />
|
|
16
|
-
<BellIcon size={20} />
|
|
17
|
-
<SearchIcon size={24} /> // default size is 28
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Rules
|
|
21
|
-
|
|
22
|
-
- **NEVER import directly from `lucide-react`** in component files. Enforced by `no-static-lucide-imports.test.ts`.
|
|
23
|
-
- Hand-crafted icons contain inline SVG path data. They do NOT import from `lucide-react`.
|
|
24
|
-
- Factory-wrapped icons use Lucide's React components internally via `createAnimatedIcon`.
|
|
25
|
-
|
|
26
|
-
## Hand-Crafted Icons (109)
|
|
27
|
-
|
|
28
|
-
Premium animated icons with custom per-path motion.
|
|
29
|
-
|
|
30
|
-
| Export Name | File | Common Use |
|
|
31
|
-
| --- | --- | --- |
|
|
32
|
-
| ActivityIcon | `activity.tsx` | Activity feed |
|
|
33
|
-
| AlertCircleIcon | `alert-circle.tsx` | Error alert |
|
|
34
|
-
| AlertTriangleIcon | `alert-triangle.tsx` | Warning |
|
|
35
|
-
| ArrowDownIcon | `arrow-down.tsx` | Directional |
|
|
36
|
-
| ArrowDownRightIcon | `arrow-down-right.tsx` | Directional |
|
|
37
|
-
| ArrowLeftIcon | `arrow-left.tsx` | Back navigation |
|
|
38
|
-
| ArrowRightIcon | `arrow-right.tsx` | Forward navigation |
|
|
39
|
-
| ArrowUpIcon | `arrow-up.tsx` | Directional |
|
|
40
|
-
| ArrowUpRightIcon | `arrow-up-right.tsx` | External link |
|
|
41
|
-
| BellIcon | `bell.tsx` | Notifications |
|
|
42
|
-
| BoldIcon | `bold.tsx` | Text formatting |
|
|
43
|
-
| BotIcon | `bot.tsx` | AI agent |
|
|
44
|
-
| CalendarIcon | `calendar.tsx` | Date picker, events |
|
|
45
|
-
| ChartBarIcon | `chart-bar.tsx` | Analytics |
|
|
46
|
-
| ChartLineIcon | `chart-line.tsx` | Trends |
|
|
47
|
-
| ChartPieIcon | `chart-pie.tsx` | Pie charts |
|
|
48
|
-
| CheckIcon | `check.tsx` | Confirmations |
|
|
49
|
-
| CheckCircleIcon | `check-circle.tsx` | Success state |
|
|
50
|
-
| ChevronDownIcon | `chevron-down.tsx` | Expand, dropdown |
|
|
51
|
-
| ChevronLeftIcon | `chevron-left.tsx` | Previous |
|
|
52
|
-
| ChevronRightIcon | `chevron-right.tsx` | Next |
|
|
53
|
-
| ChevronUpIcon | `chevron-up.tsx` | Collapse |
|
|
54
|
-
| ChevronsUpDownIcon | `chevrons-up-down.tsx` | Sort, reorder |
|
|
55
|
-
| CircleIcon | `circle.tsx` | Status indicator |
|
|
56
|
-
| ClipboardIcon | `clipboard.tsx` | Copy, paste |
|
|
57
|
-
| ClockIcon | `clock.tsx` | Time |
|
|
58
|
-
| CloudIcon | `cloud.tsx` | Cloud services |
|
|
59
|
-
| Code2Icon | `code-2.tsx` | Source code |
|
|
60
|
-
| CopyIcon | `copy.tsx` | Copy to clipboard |
|
|
61
|
-
| CornerDownLeftIcon | `corner-down-left.tsx` | Reply, enter |
|
|
62
|
-
| CreditCardIcon | `credit-card.tsx` | Payments |
|
|
63
|
-
| DatabaseIcon | `database.tsx` | Database |
|
|
64
|
-
| DollarSignIcon | `dollar-sign.tsx` | Pricing, money |
|
|
65
|
-
| DotIcon | `dot.tsx` | Bullet, separator |
|
|
66
|
-
| DownloadIcon | `download.tsx` | Download |
|
|
67
|
-
| EllipsisIcon | `ellipsis.tsx` | More actions |
|
|
68
|
-
| ExternalLinkIcon | `external-link.tsx` | External link |
|
|
69
|
-
| EyeIcon | `eye.tsx` | Show, visibility |
|
|
70
|
-
| EyeOffIcon | `eye-off.tsx` | Hide, toggle visibility |
|
|
71
|
-
| FileIcon | `file.tsx` | Files, documents |
|
|
72
|
-
| FilterIcon | `filter.tsx` | Filtering |
|
|
73
|
-
| FolderIcon | `folder.tsx` | Folders, files |
|
|
74
|
-
| GithubIcon | `github.tsx` | GitHub link |
|
|
75
|
-
| GlobeIcon | `globe.tsx` | International, web |
|
|
76
|
-
| GripVerticalIcon | `grip-vertical.tsx` | Drag handle |
|
|
77
|
-
| HomeIcon | `home.tsx` | Home, dashboard |
|
|
78
|
-
| ImageIcon | `image.tsx` | Images, media |
|
|
79
|
-
| InfoIcon | `info.tsx` | Information |
|
|
80
|
-
| ItalicIcon | `italic.tsx` | Text formatting |
|
|
81
|
-
| KeyIcon | `key.tsx` | Authentication, API keys |
|
|
82
|
-
| LaptopIcon | `laptop.tsx` | Desktop device |
|
|
83
|
-
| LayersIcon | `layers.tsx` | Stacks, layers |
|
|
84
|
-
| LayoutDashboardIcon | `layout-dashboard.tsx` | Dashboard |
|
|
85
|
-
| LinkIcon | `link.tsx` | Hyperlinks |
|
|
86
|
-
| LinkedinIcon | `linkedin.tsx` | LinkedIn link |
|
|
87
|
-
| ListIcon | `list.tsx` | Lists |
|
|
88
|
-
| LoaderIcon | `loader.tsx` | Loading |
|
|
89
|
-
| LoaderCircleIcon | `loader-circle.tsx` | Loading spinner |
|
|
90
|
-
| LockIcon | `lock.tsx` | Security, locked state |
|
|
91
|
-
| LogInIcon | `log-in.tsx` | Sign in |
|
|
92
|
-
| LogOutIcon | `log-out.tsx` | Sign out |
|
|
93
|
-
| MailIcon | `mail.tsx` | Email |
|
|
94
|
-
| MenuIcon | `menu.tsx` | Hamburger menu |
|
|
95
|
-
| MicIcon | `mic.tsx` | Voice input, recording |
|
|
96
|
-
| MicOffIcon | `mic-off.tsx` | Muted mic |
|
|
97
|
-
| MinusIcon | `minus.tsx` | Remove, collapse |
|
|
98
|
-
| MonitorIcon | `monitor.tsx` | Display, screen |
|
|
99
|
-
| MoonIcon | `moon.tsx` | Dark mode |
|
|
100
|
-
| PackageIcon | `package.tsx` | Packages, shipping |
|
|
101
|
-
| Package2Icon | `package-2.tsx` | Alt package icon |
|
|
102
|
-
| PanelLeftIcon | `panel-left.tsx` | Sidebar toggle |
|
|
103
|
-
| PaperclipIcon | `paperclip.tsx` | Attachments |
|
|
104
|
-
| PauseIcon | `pause.tsx` | Pause media |
|
|
105
|
-
| PencilIcon | `pencil.tsx` | Edit |
|
|
106
|
-
| PlayIcon | `play.tsx` | Play media |
|
|
107
|
-
| PlusIcon | `plus.tsx` | Add, create |
|
|
108
|
-
| ReceiptIcon | `receipt.tsx` | Billing, receipts |
|
|
109
|
-
| RefreshCwIcon | `refresh-cw.tsx` | Refresh, sync |
|
|
110
|
-
| ReplyIcon | `reply.tsx` | Reply |
|
|
111
|
-
| RocketIcon | `rocket.tsx` | Launch, deploy |
|
|
112
|
-
| SaveIcon | `save.tsx` | Save |
|
|
113
|
-
| SearchIcon | `search.tsx` | Search fields |
|
|
114
|
-
| SendIcon | `send.tsx` | Send message |
|
|
115
|
-
| SettingsIcon | `settings.tsx` | Settings, preferences |
|
|
116
|
-
| Settings2Icon | `settings-2.tsx` | Alt settings |
|
|
117
|
-
| ShareIcon | `share.tsx` | Share |
|
|
118
|
-
| ShieldIcon | `shield.tsx` | Security |
|
|
119
|
-
| ShieldCheckIcon | `shield-check.tsx` | Security verified |
|
|
120
|
-
| SmartphoneIcon | `smartphone.tsx` | Mobile device |
|
|
121
|
-
| SnowflakeIcon | `snowflake.tsx` | Arctic style, winter |
|
|
122
|
-
| SortIcon | `sort.tsx` | Sorting |
|
|
123
|
-
| SparklesIcon | `sparkles.tsx` | AI, magic, premium |
|
|
124
|
-
| StarIcon | `star.tsx` | Favorites, rating |
|
|
125
|
-
| StopIcon | `stop.tsx` | Stop media |
|
|
126
|
-
| SunIcon | `sun.tsx` | Light mode |
|
|
127
|
-
| TableIcon | `table.tsx` | Data tables |
|
|
128
|
-
| TerminalIcon | `terminal.tsx` | Code, CLI |
|
|
129
|
-
| ThumbsDownIcon | `thumbs-down.tsx` | Dislike |
|
|
130
|
-
| ThumbsUpIcon | `thumbs-up.tsx` | Like |
|
|
131
|
-
| Trash2Icon | `trash-2.tsx` | Delete |
|
|
132
|
-
| TwitterIcon | `twitter.tsx` | Twitter/X link |
|
|
133
|
-
| UnderlineIcon | `underline.tsx` | Text formatting |
|
|
134
|
-
| UploadIcon | `upload.tsx` | File upload |
|
|
135
|
-
| UserIcon | `user.tsx` | User profile |
|
|
136
|
-
| UsersIcon | `users.tsx` | Team, groups |
|
|
137
|
-
| WrenchIcon | `wrench.tsx` | Tools, configuration |
|
|
138
|
-
| XIcon | `x.tsx` | Close, dismiss |
|
|
139
|
-
| XCircleIcon | `x-circle.tsx` | Error, cancel |
|
|
140
|
-
| ZapIcon | `zap.tsx` | Power, performance |
|
|
141
|
-
|
|
142
|
-
## Factory-Wrapped Icons (290)
|
|
143
|
-
|
|
144
|
-
Standard Lucide icons wrapped with `createAnimatedIcon()` for consistent hover behavior. All export as `<Name>Icon` and are available from `@vadimcomanescu/nadicode-design-system/icons`.
|
|
145
|
-
|
|
146
|
-
For the full list, see `src/components/ui/icons/lucide-wrapped.tsx`. Representative icons include: AlarmClockIcon, AlignLeftIcon, AnchorIcon, ApertureIcon, ArchiveIcon, ArrowBigDownIcon, AtSignIcon, AwardIcon, BadgeCheckIcon, BanIcon, BanknoteIcon, BarChartIcon, BeakerIcon, BellDotIcon, BellOffIcon, BellRingIcon, BluetoothIcon, BookOpenIcon, BookmarkIcon, BoxIcon, BracesIcon, BriefcaseIcon, BugIcon, BuildingIcon, CalculatorIcon, CalendarCheckIcon, CalendarDaysIcon, CameraIcon, CircleAlertIcon, CircleCheckIcon, CodeIcon, CoinsIcon, CommandIcon, CompassIcon, CpuIcon, CrownIcon, FacebookIcon, FeatherIcon, FileCodeIcon, FileTextIcon, FlagIcon, FlameIcon, GaugeIcon, GemIcon, GiftIcon, GitBranchIcon, GlassesIcon, HammerIcon, HeartIcon, HeadphonesIcon, HighlighterIcon, HistoryIcon, HourglassIcon, InstagramIcon, KanbanIcon, LampIcon, LandmarkIcon, LanguagesIcon, LeafIcon, LightbulbIcon, LineChartIcon, LockKeyholeIcon, MapIcon, MapPinIcon, MegaphoneIcon, MessageCircleIcon, MessageSquareIcon, MicroscopeIcon, MoveIcon, MusicIcon, NetworkIcon, NotebookIcon, PaintbrushIcon, PaletteIcon, PartyPopperIcon, PenIcon, PenToolIcon, PercentIcon, PhoneIcon, PieChartIcon, PiggyBankIcon, PlugIcon, PodcastIcon, PowerIcon, PrinterIcon, PuzzleIcon, QrCodeIcon, RadioIcon, RedoIcon, RepeatIcon, RotateCcwIcon, RouteIcon, RssIcon, RulerIcon, ScaleIcon, ScanIcon, ScissorsIcon, ServerIcon, ShieldAlertIcon, ShieldOffIcon, ShoppingCartIcon, SirenIcon, SpeakerIcon, SquareIcon, StampIcon, StoreIcon, SunriseIcon, SunsetIcon, TagIcon, TargetIcon, TelescopeIcon, TicketIcon, TimerIcon, ToggleLeftIcon, TornadoIcon, TrashIcon, TrendingDownIcon, TrendingUpIcon, TrophyIcon, TvIcon, TwitchIcon, UmbrellaIcon, UndoIcon, UnlockIcon, UserCheckIcon, UserCogIcon, UserMinusIcon, UserPlusIcon, VideoIcon, VolumeIcon, WalletIcon, WandIcon, WatchIcon, WaypointsIcon, WebhookIcon, WifiIcon, WindIcon, YoutubeIcon.
|
|
147
|
-
|
|
148
|
-
## Adding a New Icon
|
|
149
|
-
|
|
150
|
-
Two paths depending on quality requirements:
|
|
151
|
-
|
|
152
|
-
### Quick path — factory-wrapped
|
|
153
|
-
|
|
154
|
-
Use when you need an icon quickly and custom animation is not required.
|
|
155
|
-
|
|
156
|
-
1. Open `src/components/ui/icons/lucide-wrapped.tsx`
|
|
157
|
-
2. Add the Lucide import at the top: `import { MyIcon } from 'lucide-react'`
|
|
158
|
-
3. Add an export line: `export const MyIconIcon = createAnimatedIcon(MyIcon, 'MyIconIcon')`
|
|
159
|
-
|
|
160
|
-
No changes to `index.ts` needed — `lucide-wrapped.tsx` is already re-exported.
|
|
161
|
-
|
|
162
|
-
### Premium path — hand-crafted
|
|
163
|
-
|
|
164
|
-
Use for icons that appear in high-visibility UI (nav, hero, primary actions) and benefit from custom per-path animation.
|
|
165
|
-
|
|
166
|
-
1. Find the icon on [lucide-animated.com](https://lucide-animated.com) and grab the animation code
|
|
167
|
-
2. Create `src/components/ui/icons/<icon-name>.tsx`
|
|
168
|
-
3. Adapt to match project pattern: `motion/react` animations, imperative handle with `startAnimation`/`stopAnimation`, `size` prop (see `sun.tsx` as reference)
|
|
169
|
-
4. Export from `src/components/ui/icons/index.ts`
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# Next.js Integration Guide
|
|
2
|
-
|
|
3
|
-
Seed integrates into Next.js apps through installable package artifacts, not live repo-path links.
|
|
4
|
-
|
|
5
|
-
## Canonical Contract
|
|
6
|
-
|
|
7
|
-
Use these in order:
|
|
8
|
-
|
|
9
|
-
1. `contract.md`, binary consumer rules
|
|
10
|
-
2. this guide, integration checklist
|
|
11
|
-
3. `./catalog` subpath export, server-safe component definitions with Zod schemas
|
|
12
|
-
4. `./catalog/components` subpath export, React component map keyed by catalog name
|
|
13
|
-
|
|
14
|
-
## Integration Checklist
|
|
15
|
-
|
|
16
|
-
- install an exact released package version of `@vadimcomanescu/nadicode-design-system`, or a committed relative tarball fallback such as `file:.nadicode/packages/vadimcomanescu-nadicode-design-system-<version>.tgz`
|
|
17
|
-
- never point `package.json` at a live repo directory such as `file:/absolute/path/to/nadicode-design-system`
|
|
18
|
-
- import `@vadimcomanescu/nadicode-design-system/tokens.css` before `seed-palette.css`
|
|
19
|
-
- use `@vadimcomanescu/nadicode-design-system/tailwind` in `tailwind.config.*`
|
|
20
|
-
- use `@vadimcomanescu/nadicode-design-system/eslint-config` and `@vadimcomanescu/nadicode-design-system/eslint-plugin` in `eslint.config.*`
|
|
21
|
-
- mount `ThemeProvider` from `@vadimcomanescu/nadicode-design-system/theme-provider`
|
|
22
|
-
- keep `scripts/ds-check.mjs` and `scripts/ds-update.mjs` as thin package delegates
|
|
23
|
-
|
|
24
|
-
## i18n
|
|
25
|
-
|
|
26
|
-
The app owns `src/i18n/request.ts`, locale routing, `NextIntlClientProvider`, and app catalogs. Seed owns DS catalogs and merge helpers.
|
|
27
|
-
|
|
28
|
-
Import DS catalogs from `@vadimcomanescu/nadicode-design-system/messages/<locale>`, keep app catalogs in `messages/<locale>.json`, merge both with `mergeSeedMessages()`, and do not copy DS catalog files into the app.
|
|
29
|
-
|
|
30
|
-
## Update Path
|
|
31
|
-
|
|
32
|
-
After the first install, the stable consumer command is:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
npm run ds:update
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
`ds:update` must reinstall the exact `@vadimcomanescu/nadicode-design-system` dependency already declared in `package.json`.
|
|
39
|
-
|
|
40
|
-
That tarball path is the unpublished local fallback. Do not point the app at a live repo directory.
|
|
41
|
-
|
|
42
|
-
## Verification
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
npm run ds:check
|
|
46
|
-
npm run lint
|
|
47
|
-
npx tsc --noEmit
|
|
48
|
-
npm run build
|
|
49
|
-
```
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
# Tokens Reference
|
|
2
|
-
|
|
3
|
-
This file is a usage guide, not the raw source of token values.
|
|
4
|
-
|
|
5
|
-
## Source Of Truth
|
|
6
|
-
|
|
7
|
-
- authored source: `src/lib/tokens.config.js`
|
|
8
|
-
- generated repo CSS: `src/index.css`
|
|
9
|
-
- shipped consumer CSS: `@vadimcomanescu/nadicode-design-system/tokens.css`
|
|
10
|
-
|
|
11
|
-
When maintaining the DS, edit `src/lib/tokens.config.js` and regenerate through `npm run build:lib`. Do not hand-edit generated CSS.
|
|
12
|
-
|
|
13
|
-
In consumer apps, normal branding work happens in `seed-palette.css`, not in the package token pipeline.
|
|
14
|
-
|
|
15
|
-
## CSS Variable Format
|
|
16
|
-
|
|
17
|
-
Use space-separated RGB values, not hex:
|
|
18
|
-
|
|
19
|
-
```css
|
|
20
|
-
/* correct */
|
|
21
|
-
--color-background: 247 247 248;
|
|
22
|
-
|
|
23
|
-
/* wrong */
|
|
24
|
-
--color-background: #f7f7f8;
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
This preserves Tailwind opacity modifiers such as `bg-background/50`.
|
|
28
|
-
|
|
29
|
-
## Allowed Semantic Utilities
|
|
30
|
-
|
|
31
|
-
### Backgrounds
|
|
32
|
-
|
|
33
|
-
- `bg-background`
|
|
34
|
-
- `bg-surface`
|
|
35
|
-
- `bg-surface-hover`
|
|
36
|
-
- `bg-surface-active`
|
|
37
|
-
- `bg-surface-raised`
|
|
38
|
-
- `bg-muted`
|
|
39
|
-
- `bg-overlay/80`
|
|
40
|
-
|
|
41
|
-
### Text
|
|
42
|
-
|
|
43
|
-
- `text-text-primary`
|
|
44
|
-
- `text-text-secondary`
|
|
45
|
-
- `text-text-tertiary`
|
|
46
|
-
- `text-link`
|
|
47
|
-
|
|
48
|
-
Do not use `text-foreground` or `text-muted-foreground`.
|
|
49
|
-
|
|
50
|
-
### Borders And Focus
|
|
51
|
-
|
|
52
|
-
- `border-border`
|
|
53
|
-
- `border-border-hover`
|
|
54
|
-
- `border-border-subtle`
|
|
55
|
-
- `ring-focus-ring` for default focus indication
|
|
56
|
-
- `ring-accent` for selected or emphasized states
|
|
57
|
-
|
|
58
|
-
Do not use `border-error`.
|
|
59
|
-
|
|
60
|
-
### Status
|
|
61
|
-
|
|
62
|
-
- `bg-destructive`, `text-destructive`
|
|
63
|
-
- `bg-success`, `text-success`
|
|
64
|
-
- `bg-warning`, `text-warning`
|
|
65
|
-
- `bg-info`, `text-info`
|
|
66
|
-
|
|
67
|
-
### Interactive
|
|
68
|
-
|
|
69
|
-
- `bg-primary`
|
|
70
|
-
- `bg-secondary`
|
|
71
|
-
- `bg-accent`
|
|
72
|
-
- `text-accent`
|
|
73
|
-
|
|
74
|
-
### Charts
|
|
75
|
-
|
|
76
|
-
- `chart-1` through `chart-8`
|
|
77
|
-
|
|
78
|
-
Use the exported chart tokens, not hardcoded hex values.
|
|
79
|
-
|
|
80
|
-
## Theme Notes
|
|
81
|
-
|
|
82
|
-
- Arctic is the baseline jade and teal style across light and dark themes.
|
|
83
|
-
- Bloom is the warm light-only style variant.
|
|
84
|
-
- `--color-focus-ring` currently tracks the jade focus color in Arctic and the bloom-specific focus token in Bloom.
|
|
85
|
-
|
|
86
|
-
## Consumer Override Rule
|
|
87
|
-
|
|
88
|
-
Consumers may override palette tokens in `seed-palette.css`. They should not change the package token catalog or copy package CSS into the app.
|