base-themes 0.1.2 → 0.1.3

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.
Files changed (262) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/CODE_OF_CONDUCT.md +22 -0
  3. package/CONTRIBUTING.md +98 -0
  4. package/LICENSE +21 -0
  5. package/README.md +316 -3
  6. package/RELEASE.md +80 -0
  7. package/SECURITY.md +49 -0
  8. package/bin/base-themes.mjs +143 -0
  9. package/dist/base-themes.css +1 -1
  10. package/dist/base-themes.js +857 -302
  11. package/dist/llms-full.txt +288 -0
  12. package/dist/llms.txt +79 -0
  13. package/dist/types/blocks/AuthCard.d.ts +2 -0
  14. package/dist/types/blocks/CommandPaletteBlock.d.ts +2 -0
  15. package/dist/types/blocks/DashboardShell.d.ts +2 -0
  16. package/dist/types/blocks/DataTableBlock.d.ts +2 -0
  17. package/dist/types/blocks/PricingPanel.d.ts +2 -0
  18. package/dist/types/blocks/SettingsForm.d.ts +2 -0
  19. package/dist/types/blocks/TeamActivityFeed.d.ts +2 -0
  20. package/dist/types/blocks/ThemeShowcaseCard.d.ts +2 -0
  21. package/dist/types/blocks/index.d.ts +8 -0
  22. package/dist/types/components/ui/Input.d.ts +3 -0
  23. package/dist/types/components/ui/index.d.ts +1 -1
  24. package/dist/types/lib.d.ts +1 -0
  25. package/docs/adoption-dashboard.md +149 -0
  26. package/docs/analytics-setup.md +145 -0
  27. package/docs/community-gallery-proposal.md +64 -0
  28. package/docs/community-proof-telemetry.md +47 -0
  29. package/docs/contributor-issue-seeds.md +240 -0
  30. package/docs/registry-access-telemetry.md +87 -0
  31. package/docs/release-announcement-kit.md +229 -0
  32. package/docs/search-console-setup.md +111 -0
  33. package/docs/theme-token-contract.md +113 -0
  34. package/examples/dashboard/README.md +24 -0
  35. package/examples/dashboard/index.html +12 -0
  36. package/examples/dashboard/package-lock.json +1212 -0
  37. package/examples/dashboard/package.json +24 -0
  38. package/examples/dashboard/src/App.tsx +115 -0
  39. package/examples/dashboard/src/main.tsx +11 -0
  40. package/examples/dashboard/src/styles.css +129 -0
  41. package/examples/dashboard/src/vite-env.d.ts +4 -0
  42. package/examples/dashboard/tsconfig.app.json +23 -0
  43. package/examples/dashboard/tsconfig.json +7 -0
  44. package/examples/dashboard/tsconfig.node.json +15 -0
  45. package/examples/dashboard/vite.config.ts +6 -0
  46. package/examples/next/README.md +29 -0
  47. package/examples/next/app/base-themes-demo.tsx +70 -0
  48. package/examples/next/app/layout.tsx +16 -0
  49. package/examples/next/app/page.tsx +9 -0
  50. package/examples/next/app/styles.css +106 -0
  51. package/examples/next/next-env.d.ts +6 -0
  52. package/examples/next/next.config.ts +5 -0
  53. package/examples/next/package-lock.json +1199 -0
  54. package/examples/next/package.json +27 -0
  55. package/examples/next/tsconfig.json +36 -0
  56. package/examples/registry-copy/README.md +73 -0
  57. package/examples/registry-copy/plan-copy.mjs +130 -0
  58. package/examples/theme-customization/README.md +26 -0
  59. package/examples/theme-customization/index.html +12 -0
  60. package/examples/theme-customization/package-lock.json +1212 -0
  61. package/examples/theme-customization/package.json +24 -0
  62. package/examples/theme-customization/src/App.tsx +138 -0
  63. package/examples/theme-customization/src/main.tsx +11 -0
  64. package/examples/theme-customization/src/styles.css +138 -0
  65. package/examples/theme-customization/src/vite-env.d.ts +4 -0
  66. package/examples/theme-customization/tsconfig.app.json +23 -0
  67. package/examples/theme-customization/tsconfig.json +7 -0
  68. package/examples/theme-customization/tsconfig.node.json +15 -0
  69. package/examples/theme-customization/vite.config.ts +6 -0
  70. package/examples/vite/README.md +32 -0
  71. package/examples/vite/index.html +12 -0
  72. package/examples/vite/package-lock.json +1200 -0
  73. package/examples/vite/package.json +24 -0
  74. package/examples/vite/src/App.tsx +101 -0
  75. package/examples/vite/src/main.tsx +11 -0
  76. package/examples/vite/src/styles.css +125 -0
  77. package/examples/vite/src/vite-env.d.ts +4 -0
  78. package/examples/vite/tsconfig.app.json +23 -0
  79. package/examples/vite/tsconfig.json +7 -0
  80. package/examples/vite/tsconfig.node.json +15 -0
  81. package/examples/vite/vite.config.ts +6 -0
  82. package/llms-full.txt +288 -0
  83. package/llms.txt +79 -0
  84. package/package.json +157 -14
  85. package/registry/items/accordion.json +101 -0
  86. package/registry/items/alert-dialog.json +107 -0
  87. package/registry/items/autocomplete.json +106 -0
  88. package/registry/items/avatar.json +101 -0
  89. package/registry/items/block-auth-card.json +105 -0
  90. package/registry/items/block-command-palette.json +99 -0
  91. package/registry/items/block-dashboard-shell.json +101 -0
  92. package/registry/items/block-data-table.json +99 -0
  93. package/registry/items/block-pricing-panel.json +99 -0
  94. package/registry/items/block-settings-form.json +107 -0
  95. package/registry/items/block-team-activity-feed.json +99 -0
  96. package/registry/items/block-theme-showcase-card.json +99 -0
  97. package/registry/items/button.json +102 -0
  98. package/registry/items/checkbox-group.json +106 -0
  99. package/registry/items/checkbox.json +102 -0
  100. package/registry/items/collapsible.json +101 -0
  101. package/registry/items/combobox.json +101 -0
  102. package/registry/items/context-menu.json +106 -0
  103. package/registry/items/csp-provider.json +96 -0
  104. package/registry/items/dialog.json +102 -0
  105. package/registry/items/direction-provider.json +101 -0
  106. package/registry/items/drawer.json +101 -0
  107. package/registry/items/field.json +101 -0
  108. package/registry/items/fieldset.json +101 -0
  109. package/registry/items/form.json +101 -0
  110. package/registry/items/input.json +102 -0
  111. package/registry/items/menu.json +101 -0
  112. package/registry/items/menubar.json +106 -0
  113. package/registry/items/meter.json +101 -0
  114. package/registry/items/navigation-menu.json +101 -0
  115. package/registry/items/number-field.json +101 -0
  116. package/registry/items/otp-field.json +101 -0
  117. package/registry/items/popover.json +102 -0
  118. package/registry/items/preview-card.json +101 -0
  119. package/registry/items/progress.json +101 -0
  120. package/registry/items/radio-group.json +102 -0
  121. package/registry/items/radio.json +101 -0
  122. package/registry/items/scroll-area.json +101 -0
  123. package/registry/items/select.json +102 -0
  124. package/registry/items/separator.json +101 -0
  125. package/registry/items/slider.json +102 -0
  126. package/registry/items/switch.json +102 -0
  127. package/registry/items/tabs.json +101 -0
  128. package/registry/items/theme-bauhaus.json +107 -0
  129. package/registry/items/theme-bento.json +107 -0
  130. package/registry/items/theme-calm.json +107 -0
  131. package/registry/items/theme-cyberpunk.json +108 -0
  132. package/registry/items/theme-data-dense.json +107 -0
  133. package/registry/items/theme-editorial.json +107 -0
  134. package/registry/items/theme-enterprise.json +108 -0
  135. package/registry/items/theme-fluent.json +107 -0
  136. package/registry/items/theme-glass.json +107 -0
  137. package/registry/items/theme-linear.json +107 -0
  138. package/registry/items/theme-luxury.json +107 -0
  139. package/registry/items/theme-material.json +107 -0
  140. package/registry/items/theme-minimal.json +107 -0
  141. package/registry/items/theme-mono.json +107 -0
  142. package/registry/items/theme-neo-brutalism.json +107 -0
  143. package/registry/items/theme-playful.json +107 -0
  144. package/registry/items/theme-retro.json +107 -0
  145. package/registry/items/theme-shadcn.json +107 -0
  146. package/registry/items/theme-soft-ui.json +107 -0
  147. package/registry/items/theme-terminal.json +107 -0
  148. package/registry/items/toast.json +106 -0
  149. package/registry/items/toggle-group.json +101 -0
  150. package/registry/items/toggle.json +101 -0
  151. package/registry/items/toolbar.json +101 -0
  152. package/registry/items/tooltip.json +102 -0
  153. package/registry/registry.json +564 -49
  154. package/registry/shadcn-registry.json +415 -0
  155. package/research/telemetry-fixtures/analytics-events.jsonl +9 -0
  156. package/research/telemetry-fixtures/bundle-report.json +44 -0
  157. package/research/telemetry-fixtures/community-proof.csv +5 -0
  158. package/research/telemetry-fixtures/registry-access.jsonl +10 -0
  159. package/research/telemetry-fixtures/search-console-export.csv +4 -0
  160. package/scripts/registry-plan.mjs +434 -0
  161. package/scripts/render-launch-actions.mjs +405 -0
  162. package/scripts/render-launch-status.mjs +373 -0
  163. package/scripts/render-release-announcement.mjs +329 -0
  164. package/scripts/verify-launch-readiness.mjs +415 -0
  165. package/scripts/verify-telemetry-fixtures.mjs +85 -0
  166. package/scripts/verify-telemetry-report.mjs +89 -0
  167. package/skills/base-themes/SKILL.md +151 -47
  168. package/src/blocks/AuthCard.tsx +29 -0
  169. package/src/blocks/Blocks.css +182 -0
  170. package/src/blocks/CommandPaletteBlock.tsx +32 -0
  171. package/src/blocks/DashboardShell.tsx +36 -0
  172. package/src/blocks/DataTableBlock.tsx +44 -0
  173. package/src/blocks/PricingPanel.tsx +28 -0
  174. package/src/blocks/SettingsForm.tsx +37 -0
  175. package/src/blocks/TeamActivityFeed.tsx +38 -0
  176. package/src/blocks/ThemeShowcaseCard.tsx +32 -0
  177. package/src/blocks/index.ts +8 -0
  178. package/src/components/ui/Accordion.css +42 -0
  179. package/src/components/ui/Accordion.tsx +41 -0
  180. package/src/components/ui/AlertDialog.css +40 -0
  181. package/src/components/ui/AlertDialog.tsx +52 -0
  182. package/src/components/ui/Autocomplete.css +3 -0
  183. package/src/components/ui/Autocomplete.tsx +50 -0
  184. package/src/components/ui/Avatar.css +45 -0
  185. package/src/components/ui/Avatar.tsx +36 -0
  186. package/src/components/ui/Button.css +79 -0
  187. package/src/components/ui/Button.tsx +20 -0
  188. package/src/components/ui/Checkbox.css +37 -0
  189. package/src/components/ui/Checkbox.tsx +32 -0
  190. package/src/components/ui/CheckboxGroup.tsx +21 -0
  191. package/src/components/ui/Collapsible.css +34 -0
  192. package/src/components/ui/Collapsible.tsx +29 -0
  193. package/src/components/ui/Combobox.css +75 -0
  194. package/src/components/ui/Combobox.tsx +53 -0
  195. package/src/components/ui/ContextMenu.css +9 -0
  196. package/src/components/ui/ContextMenu.tsx +47 -0
  197. package/src/components/ui/CspProvider.tsx +10 -0
  198. package/src/components/ui/Dialog.css +41 -0
  199. package/src/components/ui/Dialog.tsx +45 -0
  200. package/src/components/ui/DirectionProvider.tsx +17 -0
  201. package/src/components/ui/Drawer.css +77 -0
  202. package/src/components/ui/Drawer.tsx +56 -0
  203. package/src/components/ui/Field.css +19 -0
  204. package/src/components/ui/Field.tsx +24 -0
  205. package/src/components/ui/Fieldset.css +16 -0
  206. package/src/components/ui/Fieldset.tsx +19 -0
  207. package/src/components/ui/Form.css +5 -0
  208. package/src/components/ui/Form.tsx +12 -0
  209. package/src/components/ui/Input.css +50 -0
  210. package/src/components/ui/Input.tsx +62 -0
  211. package/src/components/ui/Menu.css +59 -0
  212. package/src/components/ui/Menu.tsx +50 -0
  213. package/src/components/ui/Menubar.css +26 -0
  214. package/src/components/ui/Menubar.tsx +42 -0
  215. package/src/components/ui/Meter.css +45 -0
  216. package/src/components/ui/Meter.tsx +37 -0
  217. package/src/components/ui/NavigationMenu.css +103 -0
  218. package/src/components/ui/NavigationMenu.tsx +64 -0
  219. package/src/components/ui/NumberField.css +38 -0
  220. package/src/components/ui/NumberField.tsx +28 -0
  221. package/src/components/ui/OtpField.css +28 -0
  222. package/src/components/ui/OtpField.tsx +24 -0
  223. package/src/components/ui/Popover.css +25 -0
  224. package/src/components/ui/Popover.tsx +37 -0
  225. package/src/components/ui/PreviewCard.css +33 -0
  226. package/src/components/ui/PreviewCard.tsx +43 -0
  227. package/src/components/ui/Progress.css +33 -0
  228. package/src/components/ui/Progress.tsx +28 -0
  229. package/src/components/ui/Radio.tsx +22 -0
  230. package/src/components/ui/RadioGroup.css +42 -0
  231. package/src/components/ui/RadioGroup.tsx +29 -0
  232. package/src/components/ui/ScrollArea.css +42 -0
  233. package/src/components/ui/ScrollArea.tsx +22 -0
  234. package/src/components/ui/Select.css +86 -0
  235. package/src/components/ui/Select.tsx +39 -0
  236. package/src/components/ui/Separator.css +14 -0
  237. package/src/components/ui/Separator.tsx +12 -0
  238. package/src/components/ui/Slider.css +39 -0
  239. package/src/components/ui/Slider.tsx +21 -0
  240. package/src/components/ui/Switch.css +45 -0
  241. package/src/components/ui/Switch.tsx +29 -0
  242. package/src/components/ui/Tabs.css +72 -0
  243. package/src/components/ui/Tabs.tsx +44 -0
  244. package/src/components/ui/Toast.css +75 -0
  245. package/src/components/ui/Toast.tsx +48 -0
  246. package/src/components/ui/Toggle.tsx +12 -0
  247. package/src/components/ui/ToggleGroup.css +35 -0
  248. package/src/components/ui/ToggleGroup.tsx +30 -0
  249. package/src/components/ui/Toolbar.css +60 -0
  250. package/src/components/ui/Toolbar.tsx +36 -0
  251. package/src/components/ui/Tooltip.css +14 -0
  252. package/src/components/ui/Tooltip.tsx +31 -0
  253. package/src/components/ui/index.ts +83 -0
  254. package/src/components/ui/useDirection.ts +1 -0
  255. package/src/components/ui/useToastManager.ts +11 -0
  256. package/src/docs/blockMeta.json +66 -0
  257. package/src/docs/componentMeta.json +322 -0
  258. package/src/docs/staticPageMeta.json +143 -0
  259. package/src/docs/themeMeta.json +22 -0
  260. package/src/styles/tokenContract.json +61 -0
  261. package/workers/analytics-receiver.mjs +170 -0
  262. package/wrangler.analytics.jsonc +12 -0
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-playful",
4
+ "type": "registry:theme",
5
+ "title": "Playful Theme",
6
+ "description": "Rounded, bright, friendly components for creative and education tools.",
7
+ "files": [
8
+ {
9
+ "path": "src/index.css",
10
+ "type": "registry:file",
11
+ "target": "@/styles/base-themes/index.css"
12
+ },
13
+ {
14
+ "path": "src/styles/tokens.css",
15
+ "type": "registry:file",
16
+ "target": "@/styles/base-themes/tokens.css"
17
+ },
18
+ {
19
+ "path": "src/styles/themes.css",
20
+ "type": "registry:file",
21
+ "target": "@/styles/base-themes/themes.css"
22
+ },
23
+ {
24
+ "path": "src/styles/shadcn.css",
25
+ "type": "registry:file",
26
+ "target": "@/styles/base-themes/shadcn.css"
27
+ },
28
+ {
29
+ "path": "src/styles/neo-brutalism.css",
30
+ "type": "registry:file",
31
+ "target": "@/styles/base-themes/neo-brutalism.css"
32
+ },
33
+ {
34
+ "path": "src/styles/cyberpunk.css",
35
+ "type": "registry:file",
36
+ "target": "@/styles/base-themes/cyberpunk.css"
37
+ },
38
+ {
39
+ "path": "src/styles/terminal.css",
40
+ "type": "registry:file",
41
+ "target": "@/styles/base-themes/terminal.css"
42
+ },
43
+ {
44
+ "path": "src/styles/material.css",
45
+ "type": "registry:file",
46
+ "target": "@/styles/base-themes/material.css"
47
+ },
48
+ {
49
+ "path": "src/styles/glass.css",
50
+ "type": "registry:file",
51
+ "target": "@/styles/base-themes/glass.css"
52
+ }
53
+ ],
54
+ "categories": [
55
+ "theme",
56
+ "base-themes"
57
+ ],
58
+ "meta": {
59
+ "preview": {
60
+ "light": "/previews/base-themes-playful.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "playful",
64
+ "label": "Playful",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "playful",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Playful theme when the user wants rounded, bright, friendly components for creative and education tools.",
77
+ "whenToUse": [
78
+ "Playful",
79
+ "CSS variable theme",
80
+ "Base Themes visual style"
81
+ ],
82
+ "avoidWhen": [
83
+ "The user needs a fully custom brand system before trying token overrides"
84
+ ],
85
+ "packageInstall": [
86
+ "npm install base-themes @base-ui/react react react-dom",
87
+ "import base-themes/styles.css once",
88
+ "set data-style=\"playful\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-playful.json",
93
+ "copy every files[].path to files[].target",
94
+ "copy src/styles/tokenContract.json when generating overrides"
95
+ ],
96
+ "installPlan": [
97
+ "import base-themes/styles.css once",
98
+ "set data-style=\"playful\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-playful.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"playful\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-retro",
4
+ "type": "registry:theme",
5
+ "title": "Retro Theme",
6
+ "description": "Early desktop UI cues with chunky controls and saturated classic colors.",
7
+ "files": [
8
+ {
9
+ "path": "src/index.css",
10
+ "type": "registry:file",
11
+ "target": "@/styles/base-themes/index.css"
12
+ },
13
+ {
14
+ "path": "src/styles/tokens.css",
15
+ "type": "registry:file",
16
+ "target": "@/styles/base-themes/tokens.css"
17
+ },
18
+ {
19
+ "path": "src/styles/themes.css",
20
+ "type": "registry:file",
21
+ "target": "@/styles/base-themes/themes.css"
22
+ },
23
+ {
24
+ "path": "src/styles/shadcn.css",
25
+ "type": "registry:file",
26
+ "target": "@/styles/base-themes/shadcn.css"
27
+ },
28
+ {
29
+ "path": "src/styles/neo-brutalism.css",
30
+ "type": "registry:file",
31
+ "target": "@/styles/base-themes/neo-brutalism.css"
32
+ },
33
+ {
34
+ "path": "src/styles/cyberpunk.css",
35
+ "type": "registry:file",
36
+ "target": "@/styles/base-themes/cyberpunk.css"
37
+ },
38
+ {
39
+ "path": "src/styles/terminal.css",
40
+ "type": "registry:file",
41
+ "target": "@/styles/base-themes/terminal.css"
42
+ },
43
+ {
44
+ "path": "src/styles/material.css",
45
+ "type": "registry:file",
46
+ "target": "@/styles/base-themes/material.css"
47
+ },
48
+ {
49
+ "path": "src/styles/glass.css",
50
+ "type": "registry:file",
51
+ "target": "@/styles/base-themes/glass.css"
52
+ }
53
+ ],
54
+ "categories": [
55
+ "theme",
56
+ "base-themes"
57
+ ],
58
+ "meta": {
59
+ "preview": {
60
+ "light": "/previews/base-themes-retro.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "retro",
64
+ "label": "Retro",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "retro",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Retro theme when the user wants early desktop ui cues with chunky controls and saturated classic colors.",
77
+ "whenToUse": [
78
+ "Retro",
79
+ "CSS variable theme",
80
+ "Base Themes visual style"
81
+ ],
82
+ "avoidWhen": [
83
+ "The user needs a fully custom brand system before trying token overrides"
84
+ ],
85
+ "packageInstall": [
86
+ "npm install base-themes @base-ui/react react react-dom",
87
+ "import base-themes/styles.css once",
88
+ "set data-style=\"retro\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-retro.json",
93
+ "copy every files[].path to files[].target",
94
+ "copy src/styles/tokenContract.json when generating overrides"
95
+ ],
96
+ "installPlan": [
97
+ "import base-themes/styles.css once",
98
+ "set data-style=\"retro\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-retro.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"retro\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-shadcn",
4
+ "type": "registry:theme",
5
+ "title": "Shadcn Theme",
6
+ "description": "Neutral zinc interface styling modeled after shadcn/ui.",
7
+ "files": [
8
+ {
9
+ "path": "src/index.css",
10
+ "type": "registry:file",
11
+ "target": "@/styles/base-themes/index.css"
12
+ },
13
+ {
14
+ "path": "src/styles/tokens.css",
15
+ "type": "registry:file",
16
+ "target": "@/styles/base-themes/tokens.css"
17
+ },
18
+ {
19
+ "path": "src/styles/themes.css",
20
+ "type": "registry:file",
21
+ "target": "@/styles/base-themes/themes.css"
22
+ },
23
+ {
24
+ "path": "src/styles/shadcn.css",
25
+ "type": "registry:file",
26
+ "target": "@/styles/base-themes/shadcn.css"
27
+ },
28
+ {
29
+ "path": "src/styles/neo-brutalism.css",
30
+ "type": "registry:file",
31
+ "target": "@/styles/base-themes/neo-brutalism.css"
32
+ },
33
+ {
34
+ "path": "src/styles/cyberpunk.css",
35
+ "type": "registry:file",
36
+ "target": "@/styles/base-themes/cyberpunk.css"
37
+ },
38
+ {
39
+ "path": "src/styles/terminal.css",
40
+ "type": "registry:file",
41
+ "target": "@/styles/base-themes/terminal.css"
42
+ },
43
+ {
44
+ "path": "src/styles/material.css",
45
+ "type": "registry:file",
46
+ "target": "@/styles/base-themes/material.css"
47
+ },
48
+ {
49
+ "path": "src/styles/glass.css",
50
+ "type": "registry:file",
51
+ "target": "@/styles/base-themes/glass.css"
52
+ }
53
+ ],
54
+ "categories": [
55
+ "theme",
56
+ "base-themes"
57
+ ],
58
+ "meta": {
59
+ "preview": {
60
+ "light": "/previews/base-themes-shadcn.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "shadcn",
64
+ "label": "Shadcn",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "shadcn",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Shadcn theme when the user wants neutral zinc interface styling modeled after shadcn/ui.",
77
+ "whenToUse": [
78
+ "Shadcn",
79
+ "CSS variable theme",
80
+ "Base Themes visual style"
81
+ ],
82
+ "avoidWhen": [
83
+ "The user needs a fully custom brand system before trying token overrides"
84
+ ],
85
+ "packageInstall": [
86
+ "npm install base-themes @base-ui/react react react-dom",
87
+ "import base-themes/styles.css once",
88
+ "set data-style=\"shadcn\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-shadcn.json",
93
+ "copy every files[].path to files[].target",
94
+ "copy src/styles/tokenContract.json when generating overrides"
95
+ ],
96
+ "installPlan": [
97
+ "import base-themes/styles.css once",
98
+ "set data-style=\"shadcn\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-shadcn.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"shadcn\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-soft-ui",
4
+ "type": "registry:theme",
5
+ "title": "Soft UI Theme",
6
+ "description": "Low-contrast tactile controls with inset and raised shadows.",
7
+ "files": [
8
+ {
9
+ "path": "src/index.css",
10
+ "type": "registry:file",
11
+ "target": "@/styles/base-themes/index.css"
12
+ },
13
+ {
14
+ "path": "src/styles/tokens.css",
15
+ "type": "registry:file",
16
+ "target": "@/styles/base-themes/tokens.css"
17
+ },
18
+ {
19
+ "path": "src/styles/themes.css",
20
+ "type": "registry:file",
21
+ "target": "@/styles/base-themes/themes.css"
22
+ },
23
+ {
24
+ "path": "src/styles/shadcn.css",
25
+ "type": "registry:file",
26
+ "target": "@/styles/base-themes/shadcn.css"
27
+ },
28
+ {
29
+ "path": "src/styles/neo-brutalism.css",
30
+ "type": "registry:file",
31
+ "target": "@/styles/base-themes/neo-brutalism.css"
32
+ },
33
+ {
34
+ "path": "src/styles/cyberpunk.css",
35
+ "type": "registry:file",
36
+ "target": "@/styles/base-themes/cyberpunk.css"
37
+ },
38
+ {
39
+ "path": "src/styles/terminal.css",
40
+ "type": "registry:file",
41
+ "target": "@/styles/base-themes/terminal.css"
42
+ },
43
+ {
44
+ "path": "src/styles/material.css",
45
+ "type": "registry:file",
46
+ "target": "@/styles/base-themes/material.css"
47
+ },
48
+ {
49
+ "path": "src/styles/glass.css",
50
+ "type": "registry:file",
51
+ "target": "@/styles/base-themes/glass.css"
52
+ }
53
+ ],
54
+ "categories": [
55
+ "theme",
56
+ "base-themes"
57
+ ],
58
+ "meta": {
59
+ "preview": {
60
+ "light": "/previews/base-themes-soft-ui.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "soft-ui",
64
+ "label": "Soft UI",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "soft-ui",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Soft UI theme when the user wants low-contrast tactile controls with inset and raised shadows.",
77
+ "whenToUse": [
78
+ "Soft UI",
79
+ "CSS variable theme",
80
+ "Base Themes visual style"
81
+ ],
82
+ "avoidWhen": [
83
+ "The user needs a fully custom brand system before trying token overrides"
84
+ ],
85
+ "packageInstall": [
86
+ "npm install base-themes @base-ui/react react react-dom",
87
+ "import base-themes/styles.css once",
88
+ "set data-style=\"soft-ui\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-soft-ui.json",
93
+ "copy every files[].path to files[].target",
94
+ "copy src/styles/tokenContract.json when generating overrides"
95
+ ],
96
+ "installPlan": [
97
+ "import base-themes/styles.css once",
98
+ "set data-style=\"soft-ui\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-soft-ui.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"soft-ui\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-terminal",
4
+ "type": "registry:theme",
5
+ "title": "Terminal Theme",
6
+ "description": "Monospace command-line interface with phosphor green command surfaces.",
7
+ "files": [
8
+ {
9
+ "path": "src/index.css",
10
+ "type": "registry:file",
11
+ "target": "@/styles/base-themes/index.css"
12
+ },
13
+ {
14
+ "path": "src/styles/tokens.css",
15
+ "type": "registry:file",
16
+ "target": "@/styles/base-themes/tokens.css"
17
+ },
18
+ {
19
+ "path": "src/styles/themes.css",
20
+ "type": "registry:file",
21
+ "target": "@/styles/base-themes/themes.css"
22
+ },
23
+ {
24
+ "path": "src/styles/shadcn.css",
25
+ "type": "registry:file",
26
+ "target": "@/styles/base-themes/shadcn.css"
27
+ },
28
+ {
29
+ "path": "src/styles/neo-brutalism.css",
30
+ "type": "registry:file",
31
+ "target": "@/styles/base-themes/neo-brutalism.css"
32
+ },
33
+ {
34
+ "path": "src/styles/cyberpunk.css",
35
+ "type": "registry:file",
36
+ "target": "@/styles/base-themes/cyberpunk.css"
37
+ },
38
+ {
39
+ "path": "src/styles/terminal.css",
40
+ "type": "registry:file",
41
+ "target": "@/styles/base-themes/terminal.css"
42
+ },
43
+ {
44
+ "path": "src/styles/material.css",
45
+ "type": "registry:file",
46
+ "target": "@/styles/base-themes/material.css"
47
+ },
48
+ {
49
+ "path": "src/styles/glass.css",
50
+ "type": "registry:file",
51
+ "target": "@/styles/base-themes/glass.css"
52
+ }
53
+ ],
54
+ "categories": [
55
+ "theme",
56
+ "base-themes"
57
+ ],
58
+ "meta": {
59
+ "preview": {
60
+ "light": "/previews/base-themes-terminal.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "terminal",
64
+ "label": "Terminal",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "terminal",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Terminal theme when the user wants monospace command-line interface with phosphor green command surfaces.",
77
+ "whenToUse": [
78
+ "Terminal",
79
+ "CSS variable theme",
80
+ "Base Themes visual style"
81
+ ],
82
+ "avoidWhen": [
83
+ "The user needs a fully custom brand system before trying token overrides"
84
+ ],
85
+ "packageInstall": [
86
+ "npm install base-themes @base-ui/react react react-dom",
87
+ "import base-themes/styles.css once",
88
+ "set data-style=\"terminal\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-terminal.json",
93
+ "copy every files[].path to files[].target",
94
+ "copy src/styles/tokenContract.json when generating overrides"
95
+ ],
96
+ "installPlan": [
97
+ "import base-themes/styles.css once",
98
+ "set data-style=\"terminal\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-terminal.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"terminal\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,106 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "toast",
4
+ "type": "registry:ui",
5
+ "title": "Toast",
6
+ "description": "A transient notification system with provider-managed state.",
7
+ "dependencies": [
8
+ "@base-ui/react",
9
+ "clsx",
10
+ "lucide-react"
11
+ ],
12
+ "files": [
13
+ {
14
+ "path": "src/components/ui/Toast.tsx",
15
+ "type": "registry:ui",
16
+ "target": "@/components/ui/Toast.tsx"
17
+ },
18
+ {
19
+ "path": "src/components/ui/Toast.css",
20
+ "type": "registry:file",
21
+ "target": "@/components/ui/Toast.css"
22
+ },
23
+ {
24
+ "path": "src/components/ui/useToastManager.ts",
25
+ "type": "registry:ui",
26
+ "target": "@/components/ui/useToastManager.ts"
27
+ }
28
+ ],
29
+ "categories": [
30
+ "base-ui",
31
+ "component",
32
+ "feedback"
33
+ ],
34
+ "meta": {
35
+ "baseThemes": {
36
+ "source": "package-and-source-copy",
37
+ "docsRoute": "/components/toast",
38
+ "supportsStyles": [
39
+ "bento",
40
+ "shadcn",
41
+ "neo-brutalism",
42
+ "minimal",
43
+ "enterprise",
44
+ "linear",
45
+ "glass",
46
+ "terminal",
47
+ "material",
48
+ "fluent",
49
+ "retro",
50
+ "cyberpunk",
51
+ "editorial",
52
+ "calm",
53
+ "data-dense",
54
+ "playful",
55
+ "luxury",
56
+ "soft-ui",
57
+ "bauhaus",
58
+ "mono"
59
+ ],
60
+ "styleContract": [
61
+ "data-style",
62
+ "data-theme",
63
+ "src/index.css",
64
+ "src/styles/tokens.css",
65
+ "src/styles/themes.css",
66
+ "src/styles/shadcn.css",
67
+ "src/styles/neo-brutalism.css",
68
+ "src/styles/cyberpunk.css",
69
+ "src/styles/terminal.css",
70
+ "src/styles/material.css",
71
+ "src/styles/glass.css"
72
+ ]
73
+ },
74
+ "agent": {
75
+ "summary": "Use Toast when a React UI needs a transient notification system with provider-managed state.",
76
+ "whenToUse": [
77
+ "Feedback",
78
+ "Base UI wrapper",
79
+ "CSS token theme support"
80
+ ],
81
+ "packageInstall": [
82
+ "npm install base-themes @base-ui/react react react-dom",
83
+ "import base-themes/styles.css once",
84
+ "import { ToastProvider } from 'base-themes'"
85
+ ],
86
+ "sourceCopy": [
87
+ "fetch /registry/items/toast.json",
88
+ "copy every files[].path to files[].target",
89
+ "copy every registry.style.files entry once",
90
+ "install dependencies from dependencies[]"
91
+ ],
92
+ "installPlan": [
93
+ "npm install base-themes @base-ui/react react react-dom",
94
+ "import base-themes/styles.css once",
95
+ "import { ToastProvider } from 'base-themes'",
96
+ "or fetch /registry/items/toast.json for source-copy"
97
+ ],
98
+ "verify": [
99
+ "npm run registry:check",
100
+ "npm run tokens:check",
101
+ "npm run lint",
102
+ "npm run build"
103
+ ]
104
+ }
105
+ }
106
+ }