@vadimcomanescu/nadicode-design-system 2.0.6 → 2.0.8
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 +17 -8
- package/.agents/skills/seed/contract.md +5 -4
- package/.agents/skills/seed/intent-map.md +3 -3
- package/.agents/skills/seed/recipes/agents-chat.md +44 -20
- package/.agents/skills/seed/recipes/marketing-shell.md +10 -19
- package/.agents/skills/seed/recipes/navigation-shell.md +5 -5
- package/.agents/skills/seed/recipes/service-detail.md +1 -1
- package/.agents/skills/seed/references/blocks.md +30 -26
- package/.agents/skills/seed/references/brand-override.md +3 -1
- package/.agents/skills/seed/references/components.md +22 -2
- package/.agents/skills/seed/references/dashboard-patterns.md +12 -12
- package/.agents/skills/seed/references/nextjs.md +20 -80
- package/.agents/skills/seed/references/tokens.md +57 -248
- package/README.md +43 -215
- package/contracts/block-props-schemas.json +2186 -0
- package/contracts/component-props-schemas.json +8322 -0
- package/contracts/consumer-contract.json +178 -0
- package/contracts/consumer-intent-map.json +707 -0
- package/contracts/message-catalog-contract.json +820 -0
- package/contracts/page-kit-props-schemas.json +1894 -0
- package/contracts/public-surface-registry.json +6162 -0
- package/contracts/public-surface-registry.schema.json +227 -0
- package/contracts/release-governance-baseline.json +850 -0
- package/contracts/spec-manifest.json +46 -0
- package/css/tokens.css +300 -122
- package/dist/catalog.json +2166 -162
- package/dist/chunk-2BADJLMV.js +117 -0
- package/dist/chunk-35EX5FP5.js +106 -0
- package/dist/chunk-4IGBBIYW.js +47 -0
- package/dist/chunk-4WPZ6T7V.js +186 -0
- package/dist/chunk-5PZ4VR2D.js +142 -0
- package/dist/chunk-5UESKK6S.js +76 -0
- package/dist/chunk-7A2RXKGH.js +205 -0
- package/dist/{chunk-DF47R6LN.js → chunk-AWIG4QN6.js} +9 -9
- package/dist/chunk-AYWL4IYM.js +67 -0
- package/dist/chunk-C7WHMSF3.js +114 -0
- package/dist/{chunk-SV3KZ6CB.js → chunk-DSMGCFMJ.js} +7 -2
- package/dist/{chunk-4K3PATUT.js → chunk-EEL4RAPC.js} +13 -1
- package/dist/{chunk-ILIHQ2KZ.js → chunk-EK43W2Y6.js} +16 -10
- package/dist/chunk-FV2G6SAF.js +134 -0
- package/dist/chunk-FX23F33E.js +57 -0
- package/dist/chunk-GJPTPLCQ.js +52 -0
- package/dist/chunk-HJ3A2YNO.js +163 -0
- package/dist/chunk-HJZRSPWB.js +38 -0
- package/dist/chunk-HWHJ6IRQ.js +78 -0
- package/dist/chunk-HZERHGBT.js +77 -0
- package/dist/{chunk-AUSYEAIJ.js → chunk-I66XWYSS.js} +32 -8
- package/dist/chunk-IXQGKJU4.js +183 -0
- package/dist/chunk-JDJY4ABS.js +60 -0
- package/dist/chunk-K7NQ6ZAW.js +84 -0
- package/dist/chunk-KWILREVQ.js +147 -0
- package/dist/chunk-LCKLZ4XK.js +60 -0
- package/dist/{chunk-WI37ZYIF.js → chunk-M4XKO45H.js} +13 -1
- package/dist/chunk-NEHCPO53.js +44 -0
- package/dist/chunk-OJ7OO3QB.js +269 -0
- package/dist/{chunk-ZHTQF2KI.js → chunk-OSNTB6RY.js} +29 -22
- package/dist/{chunk-GMMPLZLC.js → chunk-PDSQC6VE.js} +1 -1
- package/dist/chunk-QIHA7S3A.js +36 -0
- package/dist/chunk-QQOWC53X.js +98 -0
- package/dist/chunk-RKQPU75I.js +126 -0
- package/dist/chunk-U4GYSYGN.js +120 -0
- package/dist/chunk-UGV45DH3.js +18 -0
- package/dist/chunk-VBZQ4DBE.js +52 -0
- package/dist/{chunk-LQLFA2EL.js → chunk-VDONTZZX.js} +2 -2
- package/dist/chunk-VEO56RH4.js +105 -0
- package/dist/chunk-VJ5VD4UT.js +91 -0
- package/dist/{chunk-RWNJ54CI.js → chunk-VN475YZS.js} +1 -1
- package/dist/chunk-VNNAL4A6.js +110 -0
- package/dist/chunk-VZCB4APK.js +94 -0
- package/dist/chunk-W7FXDRQJ.js +94 -0
- package/dist/{chunk-5I3FWRC5.js → chunk-WOYBVPXK.js} +10 -10
- package/dist/chunk-WST5NLLC.js +73 -0
- package/dist/chunk-X6VXWEDO.js +125 -0
- package/dist/chunk-XTASI4IY.js +60 -0
- package/dist/chunk-Z233ZQZE.js +33 -0
- package/dist/chunk-ZKLB5N3Q.js +110 -0
- package/dist/chunk-ZM2NODUK.js +39 -0
- package/dist/components/blocks/AccountLockedBlock.js +7 -57
- package/dist/components/blocks/ActivityFeedBlock.js +6 -39
- package/dist/components/blocks/AgentConversationBlock.d.ts +6 -1
- package/dist/components/blocks/AgentConversationBlock.js +45 -71
- package/dist/components/blocks/AgentRunOverviewBlock.js +1 -1
- package/dist/components/blocks/AgentWorkbenchBlock.d.ts +5 -1
- package/dist/components/blocks/AgentWorkbenchBlock.js +47 -46
- package/dist/components/blocks/AudioVisualizerBlock.d.ts +1 -1
- package/dist/components/blocks/AudioVisualizerBlock.js +2 -2
- package/dist/components/blocks/AuthLayout.js +2 -2
- package/dist/components/blocks/AuthSuccessBlock.js +5 -60
- package/dist/components/blocks/BannerBlock.js +38 -38
- package/dist/components/blocks/BarChartBlock.d.ts +1 -1
- package/dist/components/blocks/BarChartBlock.js +2 -2
- package/dist/components/blocks/CallToActionBlock.d.ts +1 -1
- package/dist/components/blocks/CallToActionBlock.js +7 -53
- package/dist/components/blocks/ChangelogBlock.js +45 -142
- package/dist/components/blocks/ChartBlock.js +38 -38
- package/dist/components/blocks/ChartCollectionBlock.js +3 -3
- package/dist/components/blocks/ChatLayout.d.ts +4 -1
- package/dist/components/blocks/ChatLayout.js +39 -39
- package/dist/components/blocks/CodeBlock.js +7 -60
- package/dist/components/blocks/ComparisonBlock.js +9 -94
- package/dist/components/blocks/ContactBlock.js +11 -120
- package/dist/components/blocks/CreateBlock.js +39 -39
- package/dist/components/blocks/DataGridBlock.js +40 -40
- package/dist/components/blocks/DirectoryBlock.js +43 -43
- package/dist/components/blocks/FAQBlock.js +44 -82
- package/dist/components/blocks/FeatureBlock.d.ts +10 -14
- package/dist/components/blocks/FeatureBlock.js +54 -196
- package/dist/components/blocks/FeatureGridBlock.d.ts +1 -1
- package/dist/components/blocks/FeatureGridBlock.js +2 -2
- package/dist/components/blocks/FooterBlock.d.ts +2 -2
- package/dist/components/blocks/FooterBlock.js +11 -67
- package/dist/components/blocks/GalleryBlock.js +38 -38
- package/dist/components/blocks/HeaderBlock.d.ts +2 -2
- package/dist/components/blocks/HeaderBlock.js +39 -39
- package/dist/components/blocks/HeatmapChartBlock.d.ts +1 -1
- package/dist/components/blocks/HeatmapChartBlock.js +1 -1
- package/dist/components/blocks/HeroBlock.d.ts +6 -3
- package/dist/components/blocks/HeroBlock.js +53 -236
- package/dist/components/blocks/HeroSectionBlock.d.ts +1 -1
- package/dist/components/blocks/HeroSectionBlock.js +59 -63
- package/dist/components/blocks/IntegrationsBlock.d.ts +1 -1
- package/dist/components/blocks/IntegrationsBlock.js +42 -42
- package/dist/components/blocks/InteractiveAreaChartBlock.d.ts +1 -1
- package/dist/components/blocks/InteractiveAreaChartBlock.js +40 -40
- package/dist/components/blocks/KanbanDemoBlock.js +3 -3
- package/dist/components/blocks/LoginBlock.js +2 -2
- package/dist/components/blocks/LogoCloud.js +2 -13
- package/dist/components/blocks/NavUser.js +42 -42
- package/dist/components/blocks/NewsletterBlock.js +11 -84
- package/dist/components/blocks/NotFoundBlock.js +41 -41
- package/dist/components/blocks/OnboardingBlock.js +38 -38
- package/dist/components/blocks/PasswordRecoveryBlock.js +14 -142
- package/dist/components/blocks/PricingBlock.d.ts +1 -1
- package/dist/components/blocks/PricingBlock.js +13 -112
- package/dist/components/blocks/ProcessFlowBlock.js +10 -77
- package/dist/components/blocks/ResetPasswordBlock.js +11 -125
- package/dist/components/blocks/SettingsLayout.js +42 -42
- package/dist/components/blocks/SignUpBlock.d.ts +1 -1
- package/dist/components/blocks/SignUpBlock.js +3 -3
- package/dist/components/blocks/SocialProofBlock.d.ts +7 -11
- package/dist/components/blocks/SocialProofBlock.js +10 -108
- package/dist/components/blocks/StatsBlock.d.ts +1 -1
- package/dist/components/blocks/StatsBlock.js +40 -40
- package/dist/components/blocks/StatsMarketingBlock.d.ts +1 -1
- package/dist/components/blocks/StatsMarketingBlock.js +7 -38
- package/dist/components/blocks/TeamBlock.d.ts +1 -1
- package/dist/components/blocks/TeamBlock.js +4 -52
- package/dist/components/blocks/TestimonialsBlock.d.ts +1 -1
- package/dist/components/blocks/TestimonialsBlock.js +5 -133
- package/dist/components/blocks/TwoFactorChallengeBlock.js +46 -131
- package/dist/components/blocks/TwoFactorSetupBlock.js +53 -220
- package/dist/components/blocks/UsageDonutBlock.d.ts +1 -1
- package/dist/components/blocks/UsageDonutBlock.js +2 -2
- package/dist/components/blocks/VoiceAgentCard.d.ts +3 -1
- package/dist/components/blocks/VoiceAgentCard.js +7 -76
- package/dist/components/blocks/WizardBlock.js +39 -39
- package/dist/components/blocks/user/InviteUserModal.js +38 -38
- package/dist/components/logos/index.js +2 -2
- package/dist/components/page-kits/AccountLockedPageKit.d.ts +10 -0
- package/dist/components/page-kits/AccountLockedPageKit.js +48 -0
- package/dist/components/page-kits/AgentsChatPageKit.d.ts +46 -0
- package/dist/components/page-kits/AgentsChatPageKit.js +290 -0
- package/dist/components/page-kits/AnalyticsPageKit.d.ts +49 -0
- package/dist/components/page-kits/AnalyticsPageKit.js +277 -0
- package/dist/components/page-kits/BlogContentPageKit.d.ts +64 -0
- package/dist/components/page-kits/BlogContentPageKit.js +296 -0
- package/dist/components/page-kits/CheckoutPageKit.d.ts +36 -0
- package/dist/components/page-kits/CheckoutPageKit.js +209 -0
- package/dist/components/page-kits/CompanySuitePageKit.d.ts +25 -0
- package/dist/components/page-kits/CompanySuitePageKit.js +240 -0
- package/dist/components/page-kits/CrudFormPageKit.d.ts +54 -0
- package/dist/components/page-kits/CrudFormPageKit.js +138 -0
- package/dist/components/page-kits/CrudListDetailPageKit.d.ts +70 -0
- package/dist/components/page-kits/CrudListDetailPageKit.js +138 -0
- package/dist/components/page-kits/DashboardPageKit.d.ts +39 -0
- package/dist/components/page-kits/DashboardPageKit.js +284 -0
- package/dist/components/page-kits/ErrorPageKit.d.ts +22 -0
- package/dist/components/page-kits/ErrorPageKit.js +55 -0
- package/dist/components/page-kits/KanbanBoardPageKit.d.ts +31 -0
- package/dist/components/page-kits/KanbanBoardPageKit.js +305 -0
- package/dist/components/page-kits/LandingPageKit.d.ts +29 -0
- package/dist/components/page-kits/LandingPageKit.js +222 -0
- package/dist/components/page-kits/LoginPageKit.d.ts +16 -0
- package/dist/components/page-kits/LoginPageKit.js +43 -0
- package/dist/components/page-kits/MarketingShellPageKit.d.ts +21 -0
- package/dist/components/page-kits/MarketingShellPageKit.js +131 -0
- package/dist/components/page-kits/NavigationShellPageKit.d.ts +41 -0
- package/dist/components/page-kits/NavigationShellPageKit.js +132 -0
- package/dist/components/page-kits/OnboardingPageKit.d.ts +26 -0
- package/dist/components/page-kits/OnboardingPageKit.js +248 -0
- package/dist/components/page-kits/PricingPageKit.d.ts +41 -0
- package/dist/components/page-kits/PricingPageKit.js +279 -0
- package/dist/components/page-kits/ProfileSettingsPageKit.d.ts +50 -0
- package/dist/components/page-kits/ProfileSettingsPageKit.js +171 -0
- package/dist/components/page-kits/RecoveryPageKit.d.ts +17 -0
- package/dist/components/page-kits/RecoveryPageKit.js +58 -0
- package/dist/components/page-kits/ResetPageKit.d.ts +14 -0
- package/dist/components/page-kits/ResetPageKit.js +52 -0
- package/dist/components/page-kits/ServiceSuitePageKit.d.ts +25 -0
- package/dist/components/page-kits/ServiceSuitePageKit.js +321 -0
- package/dist/components/page-kits/SettingsPageKit.d.ts +27 -0
- package/dist/components/page-kits/SettingsPageKit.js +11 -0
- package/dist/components/page-kits/SignupPageKit.d.ts +15 -0
- package/dist/components/page-kits/SignupPageKit.js +41 -0
- package/dist/components/page-kits/SuccessPageKit.d.ts +15 -0
- package/dist/components/page-kits/SuccessPageKit.js +146 -0
- package/dist/components/page-kits/TeamSettingsPageKit.d.ts +50 -0
- package/dist/components/page-kits/TeamSettingsPageKit.js +297 -0
- package/dist/components/page-kits/TwoFactorPageKit.d.ts +16 -0
- package/dist/components/page-kits/TwoFactorPageKit.js +156 -0
- package/dist/components/page-kits/VerifyEmailPageKit.d.ts +15 -0
- package/dist/components/page-kits/VerifyEmailPageKit.js +146 -0
- package/dist/components/page-kits/VoiceAgentsPageKit.d.ts +35 -0
- package/dist/components/page-kits/VoiceAgentsPageKit.js +250 -0
- package/dist/components/ui/Accordion.js +38 -38
- package/dist/components/ui/AgentMessageBubble.d.ts +20 -4
- package/dist/components/ui/AgentMessageBubble.js +39 -39
- package/dist/components/ui/AgentStatus.d.ts +1 -1
- package/dist/components/ui/AgentStatus.js +5 -10
- package/dist/components/ui/AgentTerminal.d.ts +4 -1
- package/dist/components/ui/AgentTerminal.js +3 -1
- package/dist/components/ui/AgentTimeline.d.ts +2 -2
- package/dist/components/ui/AgentTimeline.js +15 -6
- package/dist/components/ui/AnimatedDialog.js +38 -38
- package/dist/components/ui/AnimatedSheet.js +38 -38
- package/dist/components/ui/ApprovalCard.js +1 -1
- package/dist/components/ui/AudioWaveform.js +2 -76
- package/dist/components/ui/AvatarUpload.js +1 -1
- package/dist/components/ui/Breadcrumb.js +41 -143
- package/dist/components/ui/Calendar.js +38 -38
- package/dist/components/ui/Carousel.js +38 -38
- package/dist/components/ui/ChartCard.js +5 -38
- package/dist/components/ui/ChatActions.d.ts +14 -0
- package/dist/components/ui/ChatActions.js +52 -0
- package/dist/components/ui/ChatBranch.d.ts +18 -0
- package/dist/components/ui/ChatBranch.js +84 -0
- package/dist/components/ui/ChatChainOfThought.d.ts +25 -0
- package/dist/components/ui/ChatChainOfThought.js +99 -0
- package/dist/components/ui/ChatConfirmation.d.ts +37 -0
- package/dist/components/ui/ChatConfirmation.js +115 -0
- package/dist/components/ui/ChatGreeting.d.ts +18 -0
- package/dist/components/ui/ChatGreeting.js +80 -0
- package/dist/components/ui/ChatMessage.d.ts +40 -0
- package/dist/components/ui/ChatMessage.js +96 -0
- package/dist/components/ui/ChatPlan.d.ts +29 -0
- package/dist/components/ui/ChatPlan.js +86 -0
- package/dist/components/ui/ChatPromptInput.d.ts +32 -0
- package/dist/components/ui/ChatPromptInput.js +193 -0
- package/dist/components/ui/ChatPromptInputAttachments.d.ts +9 -0
- package/dist/components/ui/ChatPromptInputAttachments.js +145 -0
- package/dist/components/ui/ChatQueue.d.ts +32 -0
- package/dist/components/ui/ChatQueue.js +93 -0
- package/dist/components/ui/ChatReasoning.d.ts +20 -0
- package/dist/components/ui/ChatReasoning.js +91 -0
- package/dist/components/ui/ChatResponse.d.ts +14 -0
- package/dist/components/ui/ChatResponse.js +25 -0
- package/dist/components/ui/ChatShimmer.d.ts +23 -0
- package/dist/components/ui/ChatShimmer.js +6 -0
- package/dist/components/ui/ChatSources.d.ts +30 -0
- package/dist/components/ui/ChatSources.js +113 -0
- package/dist/components/ui/ChatSuggestion.d.ts +13 -0
- package/dist/components/ui/ChatSuggestion.js +41 -0
- package/dist/components/ui/ChatThinkingMessage.d.ts +12 -0
- package/dist/components/ui/ChatThinkingMessage.js +55 -0
- package/dist/components/ui/ChatToolCall.d.ts +41 -0
- package/dist/components/ui/ChatToolCall.js +192 -0
- package/dist/components/ui/CheckStatus.d.ts +1 -1
- package/dist/components/ui/Checkbox.js +38 -38
- package/dist/components/ui/CheckoutForm.js +38 -38
- package/dist/components/ui/CheckoutFormDemo.js +43 -44
- package/dist/components/ui/Combobox.js +38 -38
- package/dist/components/ui/Command.js +38 -38
- package/dist/components/ui/ContextMenu.js +38 -38
- package/dist/components/ui/Conversation.d.ts +21 -0
- package/dist/components/ui/Conversation.js +196 -0
- package/dist/components/ui/ConversationThread.d.ts +8 -2
- package/dist/components/ui/ConversationThread.js +34 -16
- package/dist/components/ui/DataFreshness.js +2 -73
- package/dist/components/ui/DataTable.js +40 -40
- package/dist/components/ui/DatePicker.js +38 -38
- package/dist/components/ui/DateRangePicker.js +38 -38
- package/dist/components/ui/Dialog.js +38 -38
- package/dist/components/ui/DropdownMenu.js +39 -39
- package/dist/components/ui/FileUpload.js +38 -38
- package/dist/components/ui/InputOTP.js +38 -38
- package/dist/components/ui/KanbanBoard.js +2 -2
- package/dist/components/ui/LanguageSwitcher.js +38 -38
- package/dist/components/ui/Menubar.js +38 -38
- package/dist/components/ui/MouseEffect.js +1 -1
- package/dist/components/ui/NativeSelect.js +2 -18
- package/dist/components/ui/NavigationMenu.js +38 -38
- package/dist/components/ui/NotificationCenter.js +38 -38
- package/dist/components/ui/Pagination.js +42 -153
- package/dist/components/ui/RadioGroup.js +38 -38
- package/dist/components/ui/Resizable.js +38 -38
- package/dist/components/ui/SearchCommand.js +38 -38
- package/dist/components/ui/Select.js +38 -38
- package/dist/components/ui/SettingsModal.js +38 -38
- package/dist/components/ui/ShaderBackground.js +2 -2
- package/dist/components/ui/Sheet.js +38 -38
- package/dist/components/ui/Sidebar.js +41 -41
- package/dist/components/ui/StyleToggle.js +1 -1
- package/dist/components/ui/TagInput.js +38 -38
- package/dist/components/ui/ThemeToggle.js +39 -39
- package/dist/components/ui/ThinkingIndicator.d.ts +3 -1
- package/dist/components/ui/ThinkingIndicator.js +2 -1
- package/dist/components/ui/Toast.js +38 -38
- package/dist/components/ui/Toaster.js +38 -38
- package/dist/components/ui/ToolCallCard.d.ts +1 -1
- package/dist/components/ui/ToolCallCard.js +5 -1
- package/dist/components/ui/TreeView.js +38 -38
- package/dist/components/ui/charts/index.js +1 -1
- package/dist/components/ui/icons/index.js +38 -38
- package/dist/components/ui/text-effects/index.js +2 -2
- package/dist/hooks/use-scroll-to-bottom.d.ts +13 -0
- package/dist/hooks/use-scroll-to-bottom.js +2 -0
- package/dist/hooks/use-shader-preset.js +2 -2
- package/dist/index.js +43 -43
- package/dist/internal/local-image-assets.d.ts +12 -0
- package/dist/lib/shader-presets.js +1 -1
- package/dist/lib/tokens.config.d.ts +19 -0
- package/dist/messages/en.js +1 -1
- package/dist/messages/it.js +1 -1
- package/dist/test/PublicSeedTestProvider.js +2 -2
- package/dist/test/simulate-ime-composition.d.ts +54 -0
- package/dist/test/simulate-ime-composition.js +55 -0
- package/eslint-rules/nadicode/config.js +2 -0
- package/eslint-rules/nadicode/index.js +4 -0
- package/eslint-rules/nadicode/rules/no-deprecated-ds-import.js +77 -0
- package/eslint-rules/nadicode/rules/no-forbidden-page-kit-import.js +99 -0
- package/eslint-rules/nadicode/rules/no-unregistered-glass.js +2 -0
- package/package.json +895 -686
- package/scripts/ds-check.mjs +102 -73
- package/src/lib/tokens.config.js +63 -41
- package/dist/chunk-MLUSJTS2.js +0 -107
- package/dist/{chunk-5DKCZWC6.js → chunk-CQEUNASC.js} +1 -1
- package/dist/{chunk-4HRVRW2X.js → chunk-J2DCQDXO.js} +2 -2
- package/dist/{chunk-6MFAZU4B.js → chunk-RGE5OQMZ.js} +1 -1
- package/dist/{chunk-PJNHVPHF.js → chunk-TYP2MR3Q.js} +1 -1
|
@@ -1,279 +1,88 @@
|
|
|
1
1
|
# Tokens Reference
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This file is a usage guide, not the raw source of token values.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
tokens.config.js --> index.css --> tailwind.config.js
|
|
7
|
-
(master JS) (CSS vars) (Tailwind theme)
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
1. **`src/lib/tokens.config.js`** -- Pure JS, exports `colorScales`, `colorTokens`, `tokens`
|
|
11
|
-
2. **`src/index.css`** -- Maps tokens to CSS custom properties on `:root` (light) and `:root.dark`
|
|
12
|
-
3. **`tailwind.config.js`** -- Imports tokens, extends Tailwind with CSS variable references
|
|
13
|
-
4. **`src/tokens.ts`** -- Re-exports with TypeScript types for component code
|
|
14
|
-
|
|
15
|
-
In consumer apps, the package ships the baseline tokens stylesheet as `@vadimcomanescu/nadicode-design-system/tokens.css`. Consumers import `@vadimcomanescu/nadicode-design-system/tokens.css` plus `seed-palette.css` in their `globals.css`.
|
|
16
|
-
|
|
17
|
-
Normal brand customization does **not** happen in the package token pipeline. Consumers should edit `seed-palette.css` instead of changing `tokens.config.js` or the package tokens stylesheet.
|
|
18
|
-
|
|
19
|
-
**CSS Variable Format:** Space-separated RGB values (NOT hex).
|
|
20
|
-
```css
|
|
21
|
-
/* CORRECT */ --color-background: 15 17 20;
|
|
22
|
-
/* WRONG */ --color-background: #0F1114;
|
|
23
|
-
```
|
|
24
|
-
This enables Tailwind opacity modifiers: `bg-background/50` -> `rgb(15 17 20 / 0.5)`
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## 12-Step Radix Color Scales
|
|
29
|
-
|
|
30
|
-
Steps usage: 1-2 backgrounds, 3-5 component bg/hover/active, 6-8 borders/separators, 9-10 solid fills, 11-12 high-contrast text.
|
|
31
|
-
|
|
32
|
-
### Gray
|
|
5
|
+
## Source Of Truth
|
|
33
6
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
| 2 | `#151719` | `#F5F7F9` |
|
|
38
|
-
| 3 | `#1C1F23` | `#EDF0F3` |
|
|
39
|
-
| 4 | `#232730` | `#E4E8EC` |
|
|
40
|
-
| 5 | `#2B2F37` | `#D9DFE5` |
|
|
41
|
-
| 6 | `#33383F` | `#CDD4DC` |
|
|
42
|
-
| 7 | `#3E4550` | `#B5BECA` |
|
|
43
|
-
| 8 | `#505A68` | `#97A3B2` |
|
|
44
|
-
| 9 | `#6B7A8A` | `#6B7A8A` |
|
|
45
|
-
| 10 | `#8494A7` | `#566878` |
|
|
46
|
-
| 11 | `#A0AEBB` | `#3E4F60` |
|
|
47
|
-
| 12 | `#E1E7ED` | `#1A2230` |
|
|
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`
|
|
48
10
|
|
|
49
|
-
|
|
11
|
+
When maintaining the DS, edit `src/lib/tokens.config.js` and regenerate through `npm run build:lib`. Do not hand-edit generated CSS.
|
|
50
12
|
|
|
51
|
-
|
|
52
|
-
|------|------|-------|
|
|
53
|
-
| 1 | `rgba(200,220,240, 0.02)` | `rgba(0,30,60, 0.02)` |
|
|
54
|
-
| 2 | `rgba(200,220,240, 0.04)` | `rgba(0,30,60, 0.04)` |
|
|
55
|
-
| 3 | `rgba(200,220,240, 0.06)` | `rgba(0,30,60, 0.07)` |
|
|
56
|
-
| 4 | `rgba(200,220,240, 0.09)` | `rgba(0,30,60, 0.11)` |
|
|
57
|
-
| 5 | `rgba(200,220,240, 0.12)` | `rgba(0,30,60, 0.15)` |
|
|
58
|
-
| 6 | `rgba(200,220,240, 0.16)` | `rgba(0,30,60, 0.20)` |
|
|
59
|
-
| 7 | `rgba(200,220,240, 0.22)` | `rgba(0,30,60, 0.29)` |
|
|
60
|
-
| 8 | `rgba(200,220,240, 0.32)` | `rgba(0,30,60, 0.41)` |
|
|
61
|
-
| 9 | `rgba(200,220,240, 0.45)` | `rgba(0,30,60, 0.58)` |
|
|
62
|
-
| 10 | `rgba(200,220,240, 0.58)` | `rgba(0,30,60, 0.66)` |
|
|
63
|
-
| 11 | `rgba(200,220,240, 0.72)` | `rgba(0,30,60, 0.76)` |
|
|
64
|
-
| 12 | `rgba(200,220,240, 0.93)` | `rgba(0,30,60, 0.90)` |
|
|
13
|
+
In consumer apps, normal branding work happens in `seed-palette.css`, not in the package token pipeline.
|
|
65
14
|
|
|
66
|
-
|
|
15
|
+
## CSS Variable Format
|
|
67
16
|
|
|
68
|
-
|
|
69
|
-
|------|------|-------|
|
|
70
|
-
| 1 | `#0B1615` | `#F0FDFC` |
|
|
71
|
-
| 2 | `#0F1F1E` | `#E3FAF8` |
|
|
72
|
-
| 3 | `#122B29` | `#C8F3EF` |
|
|
73
|
-
| 4 | `#163834` | `#A8E9E2` |
|
|
74
|
-
| 5 | `#1B4542` | `#85DBD4` |
|
|
75
|
-
| 6 | `#21554F` | `#5DC9C0` |
|
|
76
|
-
| 7 | `#2A6D66` | `#35B2A8` |
|
|
77
|
-
| 8 | `#35917F` | `#22958D` |
|
|
78
|
-
| 9 | `#38BDB8` | `#1A8F88` |
|
|
79
|
-
| 10 | `#4ECEC8` | `#147A73` |
|
|
80
|
-
| 11 | `#7EDCD6` | `#0F6660` |
|
|
81
|
-
| 12 | `#C2F0ED` | `#08403D` |
|
|
17
|
+
Use space-separated RGB values, not hex:
|
|
82
18
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|------|------|-------|
|
|
87
|
-
| 1 | `#191113` | `#FFF5F5` |
|
|
88
|
-
| 2 | `#201316` | `#FFE8E8` |
|
|
89
|
-
| 3 | `#3B1219` | `#FECDD4` |
|
|
90
|
-
| 4 | `#50141D` | `#FDAFB7` |
|
|
91
|
-
| 5 | `#661823` | `#FA8F9A` |
|
|
92
|
-
| 6 | `#7E1F2D` | `#F16C78` |
|
|
93
|
-
| 7 | `#9E2B3A` | `#E34D5B` |
|
|
94
|
-
| 8 | `#C73A4B` | `#CE3644` |
|
|
95
|
-
| 9 | `#E5484D` | `#CE2C3B` |
|
|
96
|
-
| 10 | `#EB5E5E` | `#B82535` |
|
|
97
|
-
| 11 | `#F39090` | `#9C1E2E` |
|
|
98
|
-
| 12 | `#FAD1D4` | `#5C111A` |
|
|
99
|
-
|
|
100
|
-
### Green (Success)
|
|
101
|
-
|
|
102
|
-
| Step | Dark | Light |
|
|
103
|
-
|------|------|-------|
|
|
104
|
-
| 1 | `#0D1512` | `#F2FDF6` |
|
|
105
|
-
| 2 | `#111C17` | `#E3FAEC` |
|
|
106
|
-
| 3 | `#13291F` | `#C2F2D6` |
|
|
107
|
-
| 4 | `#163727` | `#9DE8BC` |
|
|
108
|
-
| 5 | `#1A4530` | `#76D9A0` |
|
|
109
|
-
| 6 | `#1F563A` | `#4EC785` |
|
|
110
|
-
| 7 | `#266E48` | `#30B26B` |
|
|
111
|
-
| 8 | `#2F8E5A` | `#1D9B55` |
|
|
112
|
-
| 9 | `#3DD68C` | `#1B9450` |
|
|
113
|
-
| 10 | `#5CE4A0` | `#147C42` |
|
|
114
|
-
| 11 | `#8CEDB8` | `#0F6636` |
|
|
115
|
-
| 12 | `#C8F5DD` | `#08401F` |
|
|
116
|
-
|
|
117
|
-
### Amber (Warning)
|
|
118
|
-
|
|
119
|
-
| Step | Dark | Light |
|
|
120
|
-
|------|------|-------|
|
|
121
|
-
| 1 | `#16120B` | `#FEFCF0` |
|
|
122
|
-
| 2 | `#1D1710` | `#FDF8E0` |
|
|
123
|
-
| 3 | `#2C2011` | `#FCEFC0` |
|
|
124
|
-
| 4 | `#3D2B10` | `#FAE39A` |
|
|
125
|
-
| 5 | `#4F370F` | `#F5D46E` |
|
|
126
|
-
| 6 | `#63440E` | `#E8C044` |
|
|
127
|
-
| 7 | `#7E5711` | `#D4A825` |
|
|
128
|
-
| 8 | `#A87318` | `#B88E15` |
|
|
129
|
-
| 9 | `#F5C742` | `#D09E10` |
|
|
130
|
-
| 10 | `#FFDB5C` | `#B08510` |
|
|
131
|
-
| 11 | `#FFE588` | `#866510` |
|
|
132
|
-
| 12 | `#FFF3CC` | `#4A380A` |
|
|
133
|
-
|
|
134
|
-
### Blue (Info)
|
|
135
|
-
|
|
136
|
-
| Step | Dark | Light |
|
|
137
|
-
|------|------|-------|
|
|
138
|
-
| 1 | `#0F1520` | `#F3F8FE` |
|
|
139
|
-
| 2 | `#131B2E` | `#E6F0FD` |
|
|
140
|
-
| 3 | `#15243B` | `#C8DFFB` |
|
|
141
|
-
| 4 | `#192E4C` | `#A6CBF7` |
|
|
142
|
-
| 5 | `#1D3A5E` | `#80B4F3` |
|
|
143
|
-
| 6 | `#224973` | `#5999EC` |
|
|
144
|
-
| 7 | `#2A5E92` | `#377FE2` |
|
|
145
|
-
| 8 | `#347AB8` | `#2068D0` |
|
|
146
|
-
| 9 | `#3E96F4` | `#2E78E5` |
|
|
147
|
-
| 10 | `#5EAAF7` | `#2362C7` |
|
|
148
|
-
| 11 | `#8EC3FA` | `#1B4FA5` |
|
|
149
|
-
| 12 | `#CEE1FC` | `#0F3060` |
|
|
150
|
-
|
|
151
|
-
### Violet
|
|
152
|
-
|
|
153
|
-
| Step | Dark | Light |
|
|
154
|
-
|------|------|-------|
|
|
155
|
-
| 1 | `#14111F` | `#F9F6FE` |
|
|
156
|
-
| 2 | `#1B1528` | `#F1EBFD` |
|
|
157
|
-
| 3 | `#241C38` | `#E3D4FC` |
|
|
158
|
-
| 4 | `#2E224A` | `#D2B9FA` |
|
|
159
|
-
| 5 | `#38295E` | `#BF9CF7` |
|
|
160
|
-
| 6 | `#443375` | `#A87CF2` |
|
|
161
|
-
| 7 | `#553F94` | `#9060EA` |
|
|
162
|
-
| 8 | `#6B54B5` | `#7A4ADD` |
|
|
163
|
-
| 9 | `#8B5CF6` | `#7C3AED` |
|
|
164
|
-
| 10 | `#9E77F8` | `#6A2ED2` |
|
|
165
|
-
| 11 | `#BAA0FA` | `#5624B3` |
|
|
166
|
-
| 12 | `#E2D5FD` | `#351468` |
|
|
167
|
-
|
|
168
|
-
---
|
|
19
|
+
```css
|
|
20
|
+
/* correct */
|
|
21
|
+
--color-background: 247 247 248;
|
|
169
22
|
|
|
170
|
-
|
|
23
|
+
/* wrong */
|
|
24
|
+
--color-background: #f7f7f8;
|
|
25
|
+
```
|
|
171
26
|
|
|
172
|
-
|
|
173
|
-
|---|---|---|---|
|
|
174
|
-
| `--color-background` | `bg-background` | gray.1 | gray.1 |
|
|
175
|
-
| `--color-surface` | `bg-surface` | gray.2 | gray.2 |
|
|
176
|
-
| `--color-surface-hover` | `bg-surface-hover` | gray.3 | gray.3 |
|
|
177
|
-
| `--color-surface-active` | `bg-surface-active` | gray.4 | gray.4 |
|
|
178
|
-
| `--color-surface-raised` | `bg-surface-raised` | gray.5 | gray.2 |
|
|
179
|
-
| `--color-border` | `border-border` | gray.6 | gray.6 |
|
|
180
|
-
| `--color-border-hover` | `border-border-hover` | gray.7 | gray.7 |
|
|
181
|
-
| `--color-border-subtle` | `border-border-subtle` | grayA.3 | grayA.3 |
|
|
182
|
-
| `--color-primary` | `bg-primary` | gray.12 | gray.12 |
|
|
183
|
-
| `--color-primary-foreground` | `text-primary-foreground` | gray.1 | gray.1 |
|
|
184
|
-
| `--color-secondary` | `bg-secondary` | gray.4 | gray.3 |
|
|
185
|
-
| `--color-accent` | `bg-accent` | teal.9 | teal.9 |
|
|
186
|
-
| `--color-destructive` | `bg-destructive` | red.9 | red.9 |
|
|
187
|
-
| `--color-success` | `bg-success` | green.9 | green.9 |
|
|
188
|
-
| `--color-warning` | `bg-warning` | amber.9 | amber.9 |
|
|
189
|
-
| `--color-info` | `bg-info` | blue.9 | blue.9 |
|
|
190
|
-
| `--color-muted` | `bg-muted` | gray.4 | gray.3 |
|
|
191
|
-
| `--color-muted-foreground` | `text-muted-foreground` | gray.11 | gray.11 |
|
|
192
|
-
| `--color-overlay` | `bg-overlay` | `#000` | `#000` |
|
|
193
|
-
| `--color-text-primary` | `text-text-primary` | gray.12 | gray.12 |
|
|
194
|
-
| `--color-text-secondary` | `text-text-secondary` | gray.11 | gray.11 |
|
|
195
|
-
| `--color-text-tertiary` | `text-text-tertiary` | gray.10 | gray.9 |
|
|
196
|
-
| `--color-focus-ring` | `ring-accent` | teal.9 | teal.9 |
|
|
197
|
-
| `--color-link` | `text-link` | teal.10 | teal.11 |
|
|
198
|
-
| `--color-input` | `bg-input` | gray.4 | gray.3 |
|
|
199
|
-
| `--color-disabled` | `bg-disabled` | gray.7 | gray.6 |
|
|
27
|
+
This preserves Tailwind opacity modifiers such as `bg-background/50`.
|
|
200
28
|
|
|
201
|
-
|
|
29
|
+
## Allowed Semantic Utilities
|
|
202
30
|
|
|
203
|
-
|
|
204
|
-
|-----|------|-------|-----|
|
|
205
|
-
| `--chart-1` | `56 189 184` | `26 143 136` | Teal |
|
|
206
|
-
| `--chart-2` | `62 150 244` | `46 120 229` | Blue |
|
|
207
|
-
| `--chart-3` | `245 199 66` | `208 158 16` | Amber |
|
|
208
|
-
| `--chart-4` | `61 214 140` | `27 148 80` | Green |
|
|
209
|
-
| `--chart-5` | `139 92 246` | `124 58 237` | Violet |
|
|
210
|
-
| `--chart-6` | `229 72 77` | `206 44 59` | Red |
|
|
31
|
+
### Backgrounds
|
|
211
32
|
|
|
212
|
-
|
|
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`
|
|
213
40
|
|
|
214
|
-
|
|
41
|
+
### Text
|
|
215
42
|
|
|
216
|
-
|
|
43
|
+
- `text-text-primary`
|
|
44
|
+
- `text-text-secondary`
|
|
45
|
+
- `text-text-tertiary`
|
|
46
|
+
- `text-link`
|
|
217
47
|
|
|
218
|
-
|
|
219
|
-
|-------|-------|
|
|
220
|
-
| `font-sans` | `Satoshi, sans-serif` |
|
|
221
|
-
| `text-xs` | 12px |
|
|
222
|
-
| `text-sm` | 14px |
|
|
223
|
-
| `text-base` | 16px |
|
|
224
|
-
| `text-lg` | 20px |
|
|
225
|
-
| `text-xl` | 24px |
|
|
226
|
-
| `text-2xl` | 32px |
|
|
227
|
-
| `text-3xl` | 48px |
|
|
228
|
-
| `text-4xl` | 64px |
|
|
48
|
+
Do not use `text-foreground` or `text-muted-foreground`.
|
|
229
49
|
|
|
230
|
-
###
|
|
50
|
+
### Borders And Focus
|
|
231
51
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
| `rounded-full` | 9999px |
|
|
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
|
|
238
57
|
|
|
239
|
-
|
|
58
|
+
Do not use `border-error`.
|
|
240
59
|
|
|
241
|
-
|
|
242
|
-
|-------|-------|
|
|
243
|
-
| `shadow-glow` | `0 0 20px -5px rgba(255,255,255,0.1)` |
|
|
244
|
-
| `shadow-glow-accent` | `0 0 20px -5px rgba(56,189,184,0.15)` |
|
|
60
|
+
### Status
|
|
245
61
|
|
|
246
|
-
|
|
62
|
+
- `bg-destructive`, `text-destructive`
|
|
63
|
+
- `bg-success`, `text-success`
|
|
64
|
+
- `bg-warning`, `text-warning`
|
|
65
|
+
- `bg-info`, `text-info`
|
|
247
66
|
|
|
248
|
-
|
|
67
|
+
### Interactive
|
|
249
68
|
|
|
250
|
-
|
|
69
|
+
- `bg-primary`
|
|
70
|
+
- `bg-secondary`
|
|
71
|
+
- `bg-accent`
|
|
72
|
+
- `text-accent`
|
|
251
73
|
|
|
252
|
-
|
|
74
|
+
### Charts
|
|
253
75
|
|
|
254
|
-
|
|
76
|
+
- `chart-1` through `chart-8`
|
|
255
77
|
|
|
256
|
-
|
|
78
|
+
Use the exported chart tokens, not hardcoded hex values.
|
|
257
79
|
|
|
258
|
-
|
|
259
|
-
|-------|-------|-------------|--------|
|
|
260
|
-
| `--color-background` | `254 253 251` (warm cream) | `251 252 253` (cool white) | Warmer base |
|
|
261
|
-
| `--color-surface` | `251 249 246` | `245 247 249` | Cream tint |
|
|
262
|
-
| `--color-accent` | `232 87 58` (coral) | `26 143 136` (teal) | Different hue |
|
|
263
|
-
| `--color-border` | `217 209 199` (warm) | `205 212 220` (cool) | Brown vs blue-gray |
|
|
264
|
-
| `--color-destructive` | `232 86 109` (rose) | `206 44 59` (red) | Softer |
|
|
265
|
-
| `--color-success` | `61 214 160` (mint) | `27 148 80` (green) | Brighter |
|
|
266
|
-
| `--color-warning` | `245 166 35` (peach) | `208 158 16` (amber) | Warmer |
|
|
267
|
-
| `--color-overlay` | `45 35 24` (warm brown) | `0 0 0` (black) | Brown tint |
|
|
268
|
-
| `--color-focus-ring` | `139 92 246` (violet) | `26 143 136` (teal) | Violet accent |
|
|
269
|
-
| `--color-link` | `99 56 196` (violet) | `15 102 96` (teal) | Violet links |
|
|
270
|
-
| `--color-info` | `90 180 245` (sky blue) | `46 120 229` (blue) | Sky blue |
|
|
80
|
+
## Theme Notes
|
|
271
81
|
|
|
272
|
-
|
|
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.
|
|
273
85
|
|
|
274
|
-
|
|
275
|
-
- `glass-panel`: cream gradient with brown shadows (`rgba(45, 35, 24, 0.06)`)
|
|
276
|
-
- `glass-floating`: warm hover rotation (`rotate(0.3deg)`)
|
|
277
|
-
- `glass-overlay`: cream-tinted with brown shadows
|
|
86
|
+
## Consumer Override Rule
|
|
278
87
|
|
|
279
|
-
|
|
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.
|
package/README.md
CHANGED
|
@@ -1,243 +1,71 @@
|
|
|
1
1
|
# Seed Design System
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A package-backed design system for AI-integrated Next.js apps. The repo contains the published package, `@vadimcomanescu/nadicode-design-system`, and the in-repo showcase app used to exercise it.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
npm install
|
|
9
|
-
npm run dev
|
|
9
|
+
npm run dev
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
The dev server runs
|
|
12
|
+
The dev server runs on `http://localhost:5001` and serves the showcase routes under `src/app/(showcase)/`.
|
|
13
13
|
|
|
14
|
-
## Using
|
|
14
|
+
## Using Seed In Apps
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Consumer apps install Seed through an exact released package version. For unpublished local work, stage a tarball under `.nadicode/packages/` and install that committed relative artifact instead. Do not point apps at a live DS repo directory.
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|-----------|---------|-------------------|
|
|
20
|
-
| Existing Next.js app | Install an exact released `@vadimcomanescu/nadicode-design-system` version | Read the synced Seed skill in the consumer app: `.agents/skills/seed/SKILL.md` |
|
|
21
|
-
| Greenfield SaaS app | Use the scaffold repo for the app shell, then install the exact released `@vadimcomanescu/nadicode-design-system` version it pins | Read the synced Seed skill in the generated app: `.agents/skills/seed/SKILL.md` |
|
|
18
|
+
Canonical consumer docs:
|
|
22
19
|
|
|
23
|
-
|
|
20
|
+
- [docs/nadicode/SCAFFOLDING_PROCESS.md](docs/nadicode/SCAFFOLDING_PROCESS.md), normative runtime and ownership contract
|
|
21
|
+
- [docs/nadicode/ADOPTION_PLAYBOOK.md](docs/nadicode/ADOPTION_PLAYBOOK.md), step-by-step install and wiring flow
|
|
22
|
+
- [.agents/skills/seed/SKILL.md](.agents/skills/seed/SKILL.md), synced agent-facing usage guide
|
|
23
|
+
- [.agents/skills/seed/contract.md](.agents/skills/seed/contract.md), synced binary consumer rules
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
## Canonical Sources
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
2. Consumer apps must not depend on `@vadimcomanescu/nadicode-design-system` through a live repo directory such as `file:/absolute/path/to/nadicode-design-system`.
|
|
29
|
-
3. `globals.css` imports `@vadimcomanescu/nadicode-design-system/tokens.css` before `seed-palette.css`.
|
|
30
|
-
4. `tailwind.config.*` uses `@vadimcomanescu/nadicode-design-system/tailwind`.
|
|
31
|
-
5. `eslint.config.*` imports `@vadimcomanescu/nadicode-design-system/eslint-config` and `@vadimcomanescu/nadicode-design-system/eslint-plugin`.
|
|
32
|
-
6. `providers.tsx` imports `ThemeProvider` from `@vadimcomanescu/nadicode-design-system/theme-provider`.
|
|
33
|
-
7. `@vadimcomanescu/nadicode-design-system/test` exports the package-owned `SeedTestProvider` wrapper for consumer tests, while repo-local tests can still use `@/test/SeedTestProvider`.
|
|
34
|
-
8. `scripts/ds-check.mjs` delegates to `@vadimcomanescu/nadicode-design-system/ds-check`.
|
|
35
|
-
9. `npm run ds:update` reinstalls from the `@vadimcomanescu/nadicode-design-system` spec already declared in `package.json` and syncs only the Seed usage skill.
|
|
36
|
-
10. The app stays package-backed, with DS runtime imported from `@vadimcomanescu/nadicode-design-system`.
|
|
37
|
-
11. DS scaffolding/distribution docs are not copied into the consumer app.
|
|
27
|
+
The repo treats structured truth and prose differently.
|
|
38
28
|
|
|
39
|
-
|
|
29
|
+
- Operational truth lives in `package.json` scripts and `.husky/*`.
|
|
30
|
+
- The shipped machine entrypoint for agents and scaffold apps lives in `contracts/consumer-contract.json` and is exported as `@vadimcomanescu/nadicode-design-system/consumer-contract`.
|
|
31
|
+
- Public package surface lives in `package.json` exports, `contracts/public-surface-registry.json`, and `bin/shipped-files.json`.
|
|
32
|
+
- Consumer ownership and package-backed runtime rules live in [docs/nadicode/SCAFFOLDING_PROCESS.md](docs/nadicode/SCAFFOLDING_PROCESS.md).
|
|
33
|
+
- Release steps live in [docs/releasing-package.md](docs/releasing-package.md).
|
|
34
|
+
- Component metadata lives in `dist/catalog.json`, generated from source.
|
|
40
35
|
|
|
41
|
-
|
|
42
|
-
2. DS catalogs come from `@vadimcomanescu/nadicode-design-system/messages/<locale>`.
|
|
43
|
-
3. App translations live in `messages/<locale>.json`.
|
|
44
|
-
4. `src/i18n/request.ts` merges the two sources with `mergeSeedMessages()`.
|
|
45
|
-
5. Generated apps do not copy DS catalogs into the app.
|
|
36
|
+
Use prose docs for guidance and rationale. Use scripts, manifests, and generated artifacts for anything that must stay machine-accurate.
|
|
46
37
|
|
|
47
|
-
|
|
38
|
+
## Maintainer Workflow
|
|
48
39
|
|
|
49
|
-
|
|
50
|
-
/* src/app/globals.css */
|
|
51
|
-
@import "@vadimcomanescu/nadicode-design-system/tokens.css";
|
|
52
|
-
@import "../seed-palette.css";
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
```tsx
|
|
56
|
-
// src/app/providers.tsx
|
|
57
|
-
"use client"
|
|
58
|
-
|
|
59
|
-
import { ThemeProvider } from "@vadimcomanescu/nadicode-design-system/theme-provider"
|
|
60
|
-
|
|
61
|
-
export function Providers({ children }: { children: React.ReactNode }) {
|
|
62
|
-
return <ThemeProvider>{children}</ThemeProvider>
|
|
63
|
-
}
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
```js
|
|
67
|
-
// tailwind.config.js
|
|
68
|
-
import seedPreset from "@vadimcomanescu/nadicode-design-system/tailwind"
|
|
69
|
-
|
|
70
|
-
export default seedPreset()
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
```js
|
|
74
|
-
// eslint.config.mjs
|
|
75
|
-
import seedConfig from "@vadimcomanescu/nadicode-design-system/eslint-config"
|
|
76
|
-
import { nadicodePlugin } from "@vadimcomanescu/nadicode-design-system/eslint-plugin"
|
|
77
|
-
|
|
78
|
-
export default [
|
|
79
|
-
...seedConfig,
|
|
80
|
-
{
|
|
81
|
-
plugins: {
|
|
82
|
-
nadicode: nadicodePlugin,
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
]
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
```js
|
|
89
|
-
// scripts/ds-check.mjs
|
|
90
|
-
#!/usr/bin/env node
|
|
91
|
-
import "@vadimcomanescu/nadicode-design-system/ds-check"
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### Distribution rule
|
|
95
|
-
|
|
96
|
-
Seed must install into consumer `node_modules` as real package files. The canonical consumer contract is an exact released package version such as `@vadimcomanescu/nadicode-design-system@2.0.0`.
|
|
97
|
-
|
|
98
|
-
For unpublished local work before a release exists, stage the tarball artifact into the consumer app and install from a committed relative path such as `file:.nadicode/packages/vadimcomanescu-nadicode-design-system-<version>.tgz`:
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
DS_REPO="/absolute/path/to/nadicode-design-system"
|
|
102
|
-
mkdir -p .nadicode/packages
|
|
103
|
-
npm --prefix "$DS_REPO" run pack:artifact -- "$PWD/.nadicode/packages"
|
|
104
|
-
NADICODE_TARBALL="$(ls .nadicode/packages/vadimcomanescu-nadicode-design-system-*.tgz | head -n1)"
|
|
105
|
-
npm install "@vadimcomanescu/nadicode-design-system@file:${NADICODE_TARBALL}"
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Consumer apps must also satisfy Nadicode's peer dependencies, especially `next`, `react`, `react-dom`, `next-intl`, and `tailwindcss`.
|
|
109
|
-
|
|
110
|
-
`npm run ds:update` in the consumer app must reinstall from the existing `@vadimcomanescu/nadicode-design-system` dependency spec in `package.json`. If the app is pinned to a local tarball, refresh that tarball first, then run `npm run ds:update`.
|
|
111
|
-
|
|
112
|
-
### Verification
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
npm run ds:check
|
|
116
|
-
npm run lint
|
|
117
|
-
npx tsc --noEmit
|
|
118
|
-
npm run build
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
## Maintainer Release Workflow
|
|
122
|
-
|
|
123
|
-
Private releases are done locally from this repo, not through GitHub CI.
|
|
124
|
-
|
|
125
|
-
Before publishing, make sure the npm account that owns the `@vadimcomanescu` scope is authenticated locally:
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
npm whoami --registry=https://registry.npmjs.org/
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
If that fails, run `npm login` first. Publishing still requires either account 2FA or a granular access token that can publish under the scope.
|
|
40
|
+
Start with:
|
|
132
41
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
Use `minor` or `major` instead of `patch` when appropriate.
|
|
140
|
-
|
|
141
|
-
For the common cases, you can also run one of the release helpers:
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
npm run release:patch
|
|
145
|
-
npm run release:minor
|
|
146
|
-
npm run release:major
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
2. Run the full package release command:
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
npm run publish:package
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
That command does three things locally:
|
|
156
|
-
|
|
157
|
-
- `npm run release:check`
|
|
158
|
-
- `npm publish --access=public --registry=https://registry.npmjs.org/`
|
|
159
|
-
- `npm run release:verify`
|
|
160
|
-
|
|
161
|
-
Those checks are also wired into the npm publish lifecycle in this repo, so a plain `npm publish` still runs the same local release gate and post-publish verification.
|
|
162
|
-
|
|
163
|
-
3. If you need to verify the published version again later:
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
npm run release:verify
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
4. If the scaffold needs unpublished DS changes before the next release, stage a fallback artifact under `.nadicode/packages/` with `npm run pack:artifact -- /absolute/path/to/consumer/.nadicode/packages`.
|
|
170
|
-
|
|
171
|
-
Canonical DS-repo onboarding docs:
|
|
172
|
-
|
|
173
|
-
- `docs/nadicode/ADOPTION_PLAYBOOK.md`
|
|
174
|
-
- `docs/nadicode/SCAFFOLDING_PROCESS.md`
|
|
175
|
-
- `docs/agents/recipes.md`
|
|
176
|
-
- `AGENTS.md`
|
|
177
|
-
- `docs/releasing-package.md`
|
|
178
|
-
|
|
179
|
-
## Project Structure
|
|
180
|
-
|
|
181
|
-
```
|
|
182
|
-
src/
|
|
183
|
-
app/
|
|
184
|
-
(showcase)/ # Component showcase (dev server UI)
|
|
185
|
-
components/
|
|
186
|
-
ui/ # UI primitives and effect components
|
|
187
|
-
ui/icons/ # Animated icons (motion/react)
|
|
188
|
-
ui/charts/ # Chart primitives (recharts)
|
|
189
|
-
ui/stepper/ # Multi-step stepper
|
|
190
|
-
ui/text-effects/ # Streaming text, gradient text, etc.
|
|
191
|
-
blocks/ # Composed blocks (Hero, Pricing, Auth, etc.)
|
|
192
|
-
layout/ # Grid system
|
|
193
|
-
logos/ # Brand SVG logos
|
|
194
|
-
animate-ui/ # Animation primitives (fade, slide, zoom, etc.)
|
|
195
|
-
hooks/ # use-toast, use-mobile, use-token, etc.
|
|
196
|
-
lib/
|
|
197
|
-
tokens.config.js # Master token definitions
|
|
198
|
-
ThemeProvider.tsx # Dual-axis theme context (theme + style)
|
|
199
|
-
utils.ts # cn() class merge helper
|
|
200
|
-
motion.ts # Motion spring/transition presets
|
|
201
|
-
index.css # CSS tokens, glass effects, keyframes
|
|
202
|
-
bin/
|
|
203
|
-
dev-server.sh # Local Next.js dev server wrapper
|
|
204
|
-
lighthouse.sh # Local Lighthouse runner
|
|
205
|
-
.agents/
|
|
206
|
-
skills/ # Bundled agent skills
|
|
207
|
-
```
|
|
42
|
+
- [AGENTS.md](AGENTS.md)
|
|
43
|
+
- [docs/conventions.md](docs/conventions.md)
|
|
44
|
+
- [docs/workflow.md](docs/workflow.md)
|
|
45
|
+
- [docs/releasing-package.md](docs/releasing-package.md)
|
|
208
46
|
|
|
209
47
|
## Commands
|
|
210
48
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
npm run
|
|
214
|
-
npm run
|
|
215
|
-
npm run lint
|
|
216
|
-
npm run
|
|
217
|
-
npm run
|
|
218
|
-
npm run
|
|
219
|
-
npm run
|
|
220
|
-
npm run
|
|
221
|
-
npm run
|
|
222
|
-
npm run docs:
|
|
223
|
-
npm run
|
|
224
|
-
npm run
|
|
225
|
-
npm run test:visual # Playwright visual regression tests
|
|
226
|
-
```
|
|
49
|
+
| Command | Purpose |
|
|
50
|
+
|---------|---------|
|
|
51
|
+
| `npm run dev` | Start the showcase dev server |
|
|
52
|
+
| `npm run typecheck` | Generate Next types and run `tsc --noEmit` |
|
|
53
|
+
| `npm run lint` | Run ESLint across source, scripts, and custom rules |
|
|
54
|
+
| `npm run test` | Run Vitest |
|
|
55
|
+
| `npm run build` | Build the showcase app |
|
|
56
|
+
| `npm run build:lib` | Build package artifacts, generated CSS, types, and catalog |
|
|
57
|
+
| `npm run contracts:generate` | Regenerate the full shipped contract surface from source |
|
|
58
|
+
| `npm run contracts:check` | Verify the shipped contract surface is in sync |
|
|
59
|
+
| `npm run ds:check` | Run package/scaffold contract checks |
|
|
60
|
+
| `npm run docs:check` | Run docs/reference drift checks |
|
|
61
|
+
| `npm run release:check` | Full release gate |
|
|
62
|
+
| `npm run test:visual` | Playwright visual regression suite |
|
|
227
63
|
|
|
228
64
|
## Theming
|
|
229
65
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
- **Arctic**: Cool teal accent, deep blacks in dark mode
|
|
233
|
-
- **Bloom**: Warm coral accent, cream tones, light-only
|
|
234
|
-
|
|
235
|
-
Tokens flow: `tokens.config.js` -> `index.css` (CSS vars) -> `tailwind.config.js` (Tailwind classes)
|
|
66
|
+
Seed uses dual-axis theming:
|
|
236
67
|
|
|
237
|
-
|
|
68
|
+
- `theme`: `light`, `dark`, `system`
|
|
69
|
+
- `style`: `arctic`, `bloom`
|
|
238
70
|
|
|
239
|
-
|
|
240
|
-
- Icons: always import from `@/components/ui/icons/`, never from `lucide-react` directly
|
|
241
|
-
- Colors: always use semantic tokens (`bg-background`, `text-text-primary`), never hardcoded
|
|
242
|
-
- Glass effects: `glass-panel` (structural), `glass-floating` (elevated), `glass-overlay` (transient)
|
|
243
|
-
- Class merging: always use `cn()` from `@/lib/utils`
|
|
71
|
+
Arctic is the jade/teal baseline. Bloom is the warm light-only variant. Token values and generated CSS are authored in `src/lib/tokens.config.js` and emitted through the build pipeline, not maintained by hand in docs.
|