base-themes 0.1.1 → 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 (282) 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 +324 -5
  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/public/previews/base-themes-bauhaus.png +0 -0
  86. package/public/previews/base-themes-bento.png +0 -0
  87. package/public/previews/base-themes-calm.png +0 -0
  88. package/public/previews/base-themes-cyberpunk.png +0 -0
  89. package/public/previews/base-themes-data-dense.png +0 -0
  90. package/public/previews/base-themes-editorial.png +0 -0
  91. package/public/previews/base-themes-enterprise.png +0 -0
  92. package/public/previews/base-themes-fluent.png +0 -0
  93. package/public/previews/base-themes-glass.png +0 -0
  94. package/public/previews/base-themes-linear.png +0 -0
  95. package/public/previews/base-themes-luxury.png +0 -0
  96. package/public/previews/base-themes-material.png +0 -0
  97. package/public/previews/base-themes-minimal.png +0 -0
  98. package/public/previews/base-themes-mono.png +0 -0
  99. package/public/previews/base-themes-neo-brutalism.png +0 -0
  100. package/public/previews/base-themes-playful.png +0 -0
  101. package/public/previews/base-themes-retro.png +0 -0
  102. package/public/previews/base-themes-shadcn.png +0 -0
  103. package/public/previews/base-themes-soft-ui.png +0 -0
  104. package/public/previews/base-themes-terminal.png +0 -0
  105. package/registry/items/accordion.json +101 -0
  106. package/registry/items/alert-dialog.json +107 -0
  107. package/registry/items/autocomplete.json +106 -0
  108. package/registry/items/avatar.json +101 -0
  109. package/registry/items/block-auth-card.json +105 -0
  110. package/registry/items/block-command-palette.json +99 -0
  111. package/registry/items/block-dashboard-shell.json +101 -0
  112. package/registry/items/block-data-table.json +99 -0
  113. package/registry/items/block-pricing-panel.json +99 -0
  114. package/registry/items/block-settings-form.json +107 -0
  115. package/registry/items/block-team-activity-feed.json +99 -0
  116. package/registry/items/block-theme-showcase-card.json +99 -0
  117. package/registry/items/button.json +102 -0
  118. package/registry/items/checkbox-group.json +106 -0
  119. package/registry/items/checkbox.json +102 -0
  120. package/registry/items/collapsible.json +101 -0
  121. package/registry/items/combobox.json +101 -0
  122. package/registry/items/context-menu.json +106 -0
  123. package/registry/items/csp-provider.json +96 -0
  124. package/registry/items/dialog.json +102 -0
  125. package/registry/items/direction-provider.json +101 -0
  126. package/registry/items/drawer.json +101 -0
  127. package/registry/items/field.json +101 -0
  128. package/registry/items/fieldset.json +101 -0
  129. package/registry/items/form.json +101 -0
  130. package/registry/items/input.json +102 -0
  131. package/registry/items/menu.json +101 -0
  132. package/registry/items/menubar.json +106 -0
  133. package/registry/items/meter.json +101 -0
  134. package/registry/items/navigation-menu.json +101 -0
  135. package/registry/items/number-field.json +101 -0
  136. package/registry/items/otp-field.json +101 -0
  137. package/registry/items/popover.json +102 -0
  138. package/registry/items/preview-card.json +101 -0
  139. package/registry/items/progress.json +101 -0
  140. package/registry/items/radio-group.json +102 -0
  141. package/registry/items/radio.json +101 -0
  142. package/registry/items/scroll-area.json +101 -0
  143. package/registry/items/select.json +102 -0
  144. package/registry/items/separator.json +101 -0
  145. package/registry/items/slider.json +102 -0
  146. package/registry/items/switch.json +102 -0
  147. package/registry/items/tabs.json +101 -0
  148. package/registry/items/theme-bauhaus.json +107 -0
  149. package/registry/items/theme-bento.json +107 -0
  150. package/registry/items/theme-calm.json +107 -0
  151. package/registry/items/theme-cyberpunk.json +108 -0
  152. package/registry/items/theme-data-dense.json +107 -0
  153. package/registry/items/theme-editorial.json +107 -0
  154. package/registry/items/theme-enterprise.json +108 -0
  155. package/registry/items/theme-fluent.json +107 -0
  156. package/registry/items/theme-glass.json +107 -0
  157. package/registry/items/theme-linear.json +107 -0
  158. package/registry/items/theme-luxury.json +107 -0
  159. package/registry/items/theme-material.json +107 -0
  160. package/registry/items/theme-minimal.json +107 -0
  161. package/registry/items/theme-mono.json +107 -0
  162. package/registry/items/theme-neo-brutalism.json +107 -0
  163. package/registry/items/theme-playful.json +107 -0
  164. package/registry/items/theme-retro.json +107 -0
  165. package/registry/items/theme-shadcn.json +107 -0
  166. package/registry/items/theme-soft-ui.json +107 -0
  167. package/registry/items/theme-terminal.json +107 -0
  168. package/registry/items/toast.json +106 -0
  169. package/registry/items/toggle-group.json +101 -0
  170. package/registry/items/toggle.json +101 -0
  171. package/registry/items/toolbar.json +101 -0
  172. package/registry/items/tooltip.json +102 -0
  173. package/registry/registry.json +564 -49
  174. package/registry/shadcn-registry.json +415 -0
  175. package/research/telemetry-fixtures/analytics-events.jsonl +9 -0
  176. package/research/telemetry-fixtures/bundle-report.json +44 -0
  177. package/research/telemetry-fixtures/community-proof.csv +5 -0
  178. package/research/telemetry-fixtures/registry-access.jsonl +10 -0
  179. package/research/telemetry-fixtures/search-console-export.csv +4 -0
  180. package/scripts/registry-plan.mjs +434 -0
  181. package/scripts/render-launch-actions.mjs +405 -0
  182. package/scripts/render-launch-status.mjs +373 -0
  183. package/scripts/render-release-announcement.mjs +329 -0
  184. package/scripts/verify-launch-readiness.mjs +415 -0
  185. package/scripts/verify-telemetry-fixtures.mjs +85 -0
  186. package/scripts/verify-telemetry-report.mjs +89 -0
  187. package/skills/base-themes/SKILL.md +156 -43
  188. package/src/blocks/AuthCard.tsx +29 -0
  189. package/src/blocks/Blocks.css +182 -0
  190. package/src/blocks/CommandPaletteBlock.tsx +32 -0
  191. package/src/blocks/DashboardShell.tsx +36 -0
  192. package/src/blocks/DataTableBlock.tsx +44 -0
  193. package/src/blocks/PricingPanel.tsx +28 -0
  194. package/src/blocks/SettingsForm.tsx +37 -0
  195. package/src/blocks/TeamActivityFeed.tsx +38 -0
  196. package/src/blocks/ThemeShowcaseCard.tsx +32 -0
  197. package/src/blocks/index.ts +8 -0
  198. package/src/components/ui/Accordion.css +42 -0
  199. package/src/components/ui/Accordion.tsx +41 -0
  200. package/src/components/ui/AlertDialog.css +40 -0
  201. package/src/components/ui/AlertDialog.tsx +52 -0
  202. package/src/components/ui/Autocomplete.css +3 -0
  203. package/src/components/ui/Autocomplete.tsx +50 -0
  204. package/src/components/ui/Avatar.css +45 -0
  205. package/src/components/ui/Avatar.tsx +36 -0
  206. package/src/components/ui/Button.css +79 -0
  207. package/src/components/ui/Button.tsx +20 -0
  208. package/src/components/ui/Checkbox.css +37 -0
  209. package/src/components/ui/Checkbox.tsx +32 -0
  210. package/src/components/ui/CheckboxGroup.tsx +21 -0
  211. package/src/components/ui/Collapsible.css +34 -0
  212. package/src/components/ui/Collapsible.tsx +29 -0
  213. package/src/components/ui/Combobox.css +75 -0
  214. package/src/components/ui/Combobox.tsx +53 -0
  215. package/src/components/ui/ContextMenu.css +9 -0
  216. package/src/components/ui/ContextMenu.tsx +47 -0
  217. package/src/components/ui/CspProvider.tsx +10 -0
  218. package/src/components/ui/Dialog.css +41 -0
  219. package/src/components/ui/Dialog.tsx +45 -0
  220. package/src/components/ui/DirectionProvider.tsx +17 -0
  221. package/src/components/ui/Drawer.css +77 -0
  222. package/src/components/ui/Drawer.tsx +56 -0
  223. package/src/components/ui/Field.css +19 -0
  224. package/src/components/ui/Field.tsx +24 -0
  225. package/src/components/ui/Fieldset.css +16 -0
  226. package/src/components/ui/Fieldset.tsx +19 -0
  227. package/src/components/ui/Form.css +5 -0
  228. package/src/components/ui/Form.tsx +12 -0
  229. package/src/components/ui/Input.css +50 -0
  230. package/src/components/ui/Input.tsx +62 -0
  231. package/src/components/ui/Menu.css +59 -0
  232. package/src/components/ui/Menu.tsx +50 -0
  233. package/src/components/ui/Menubar.css +26 -0
  234. package/src/components/ui/Menubar.tsx +42 -0
  235. package/src/components/ui/Meter.css +45 -0
  236. package/src/components/ui/Meter.tsx +37 -0
  237. package/src/components/ui/NavigationMenu.css +103 -0
  238. package/src/components/ui/NavigationMenu.tsx +64 -0
  239. package/src/components/ui/NumberField.css +38 -0
  240. package/src/components/ui/NumberField.tsx +28 -0
  241. package/src/components/ui/OtpField.css +28 -0
  242. package/src/components/ui/OtpField.tsx +24 -0
  243. package/src/components/ui/Popover.css +25 -0
  244. package/src/components/ui/Popover.tsx +37 -0
  245. package/src/components/ui/PreviewCard.css +33 -0
  246. package/src/components/ui/PreviewCard.tsx +43 -0
  247. package/src/components/ui/Progress.css +33 -0
  248. package/src/components/ui/Progress.tsx +28 -0
  249. package/src/components/ui/Radio.tsx +22 -0
  250. package/src/components/ui/RadioGroup.css +42 -0
  251. package/src/components/ui/RadioGroup.tsx +29 -0
  252. package/src/components/ui/ScrollArea.css +42 -0
  253. package/src/components/ui/ScrollArea.tsx +22 -0
  254. package/src/components/ui/Select.css +86 -0
  255. package/src/components/ui/Select.tsx +39 -0
  256. package/src/components/ui/Separator.css +14 -0
  257. package/src/components/ui/Separator.tsx +12 -0
  258. package/src/components/ui/Slider.css +39 -0
  259. package/src/components/ui/Slider.tsx +21 -0
  260. package/src/components/ui/Switch.css +45 -0
  261. package/src/components/ui/Switch.tsx +29 -0
  262. package/src/components/ui/Tabs.css +72 -0
  263. package/src/components/ui/Tabs.tsx +44 -0
  264. package/src/components/ui/Toast.css +75 -0
  265. package/src/components/ui/Toast.tsx +48 -0
  266. package/src/components/ui/Toggle.tsx +12 -0
  267. package/src/components/ui/ToggleGroup.css +35 -0
  268. package/src/components/ui/ToggleGroup.tsx +30 -0
  269. package/src/components/ui/Toolbar.css +60 -0
  270. package/src/components/ui/Toolbar.tsx +36 -0
  271. package/src/components/ui/Tooltip.css +14 -0
  272. package/src/components/ui/Tooltip.tsx +31 -0
  273. package/src/components/ui/index.ts +83 -0
  274. package/src/components/ui/useDirection.ts +1 -0
  275. package/src/components/ui/useToastManager.ts +11 -0
  276. package/src/docs/blockMeta.json +66 -0
  277. package/src/docs/componentMeta.json +322 -0
  278. package/src/docs/staticPageMeta.json +143 -0
  279. package/src/docs/themeMeta.json +22 -0
  280. package/src/styles/tokenContract.json +61 -0
  281. package/workers/analytics-receiver.mjs +170 -0
  282. package/wrangler.analytics.jsonc +12 -0
@@ -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
+ }
@@ -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
+ }