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-linear",
4
+ "type": "registry:theme",
5
+ "title": "Linear Theme",
6
+ "description": "Developer-tool polish with subtle gradients and refined dark mode.",
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-linear.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "linear",
64
+ "label": "Linear",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "linear",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Linear theme when the user wants developer-tool polish with subtle gradients and refined dark mode.",
77
+ "whenToUse": [
78
+ "Linear",
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=\"linear\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-linear.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=\"linear\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-linear.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"linear\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-luxury",
4
+ "type": "registry:theme",
5
+ "title": "Luxury Theme",
6
+ "description": "Dark premium surfaces, gold accents, and fine-line hierarchy.",
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-luxury.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "luxury",
64
+ "label": "Luxury",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "luxury",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Luxury theme when the user wants dark premium surfaces, gold accents, and fine-line hierarchy.",
77
+ "whenToUse": [
78
+ "Luxury",
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=\"luxury\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-luxury.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=\"luxury\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-luxury.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"luxury\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-material",
4
+ "type": "registry:theme",
5
+ "title": "Material Theme",
6
+ "description": "Layered Google-style surfaces with blue primary actions and soft elevation.",
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-material.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "material",
64
+ "label": "Material",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "material",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Material theme when the user wants layered google-style surfaces with blue primary actions and soft elevation.",
77
+ "whenToUse": [
78
+ "Material",
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=\"material\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-material.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=\"material\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-material.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"material\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-minimal",
4
+ "type": "registry:theme",
5
+ "title": "Minimal Theme",
6
+ "description": "Swiss-inspired whitespace, thin rules, and quiet monochrome controls.",
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-minimal.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "minimal",
64
+ "label": "Minimal",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "minimal",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Minimal theme when the user wants swiss-inspired whitespace, thin rules, and quiet monochrome controls.",
77
+ "whenToUse": [
78
+ "Minimal",
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=\"minimal\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-minimal.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=\"minimal\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-minimal.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"minimal\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-mono",
4
+ "type": "registry:theme",
5
+ "title": "Mono Theme",
6
+ "description": "Black-and-white ink system with no decorative color dependency.",
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-mono.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "mono",
64
+ "label": "Mono",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "mono",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Mono theme when the user wants black-and-white ink system with no decorative color dependency.",
77
+ "whenToUse": [
78
+ "Mono",
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=\"mono\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-mono.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=\"mono\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-mono.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"mono\"."
104
+ ]
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "theme-neo-brutalism",
4
+ "type": "registry:theme",
5
+ "title": "Neo Brutalism Theme",
6
+ "description": "Hard borders, loud accents, and offset block 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-neo-brutalism.png"
61
+ },
62
+ "baseThemes": {
63
+ "style": "neo-brutalism",
64
+ "label": "Neo Brutalism",
65
+ "defaultMode": "light",
66
+ "supportsModes": [
67
+ "light",
68
+ "dark"
69
+ ],
70
+ "dataAttributes": {
71
+ "style": "neo-brutalism",
72
+ "theme": "light"
73
+ }
74
+ },
75
+ "agent": {
76
+ "summary": "Use the Neo Brutalism theme when the user wants hard borders, loud accents, and offset block shadows.",
77
+ "whenToUse": [
78
+ "Neo Brutalism",
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=\"neo-brutalism\"",
89
+ "set data-theme=\"light\" or data-theme=\"dark\""
90
+ ],
91
+ "sourceCopy": [
92
+ "fetch /registry/items/theme-neo-brutalism.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=\"neo-brutalism\"",
99
+ "set data-theme=\"light\" or data-theme=\"dark\"",
100
+ "or fetch /registry/items/theme-neo-brutalism.json for source-copy"
101
+ ],
102
+ "prompts": [
103
+ "Create a React settings screen using Base Themes with data-style=\"neo-brutalism\"."
104
+ ]
105
+ }
106
+ }
107
+ }