@rokkit/themes 1.0.4 → 1.1.0

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 (335) hide show
  1. package/README.md +11 -19
  2. package/build.mjs +7 -21
  3. package/package.json +24 -132
  4. package/src/base/carousel.css +2 -2
  5. package/src/base/code-block.css +76 -0
  6. package/src/base/display.css +16 -8
  7. package/src/base/frame.css +36 -0
  8. package/src/base/index.css +2 -0
  9. package/src/base/input.css +57 -14
  10. package/src/base/nav-content.css +3 -3
  11. package/src/base/stepper.css +16 -14
  12. package/src/base/tabs.css +15 -2
  13. package/src/base/typography.css +32 -13
  14. package/src/frosted/button.css +27 -32
  15. package/src/frosted/card.css +8 -12
  16. package/src/frosted/chart.css +6 -6
  17. package/src/frosted/code-block.css +33 -0
  18. package/src/frosted/dropdown.css +9 -14
  19. package/src/frosted/floating-action.css +10 -10
  20. package/src/frosted/floating-navigation.css +13 -13
  21. package/src/frosted/frame.css +17 -0
  22. package/src/frosted/index.css +2 -0
  23. package/src/frosted/input.css +16 -17
  24. package/src/frosted/list.css +46 -21
  25. package/src/frosted/menu.css +13 -17
  26. package/src/frosted/message.css +8 -8
  27. package/src/frosted/range.css +8 -8
  28. package/src/frosted/search-filter.css +8 -8
  29. package/src/frosted/select.css +31 -31
  30. package/src/frosted/status-list.css +17 -17
  31. package/src/frosted/step-indicator.css +8 -9
  32. package/src/frosted/swatch.css +3 -3
  33. package/src/frosted/switch.css +3 -4
  34. package/src/frosted/table.css +16 -16
  35. package/src/frosted/tabs.css +8 -8
  36. package/src/frosted/timeline.css +5 -6
  37. package/src/frosted/toc.css +4 -4
  38. package/src/frosted/toggle.css +7 -7
  39. package/src/frosted/toolbar.css +15 -15
  40. package/src/frosted/tree.css +19 -19
  41. package/src/index.css +2 -0
  42. package/src/index.js +0 -1
  43. package/src/material/button.css +29 -29
  44. package/src/material/card.css +12 -12
  45. package/src/material/chart.css +6 -6
  46. package/src/material/code-block.css +33 -0
  47. package/src/material/dropdown.css +11 -11
  48. package/src/material/floating-action.css +10 -10
  49. package/src/material/floating-navigation.css +13 -13
  50. package/src/material/frame.css +17 -0
  51. package/src/material/index.css +2 -0
  52. package/src/material/input.css +21 -21
  53. package/src/material/list.css +34 -20
  54. package/src/material/menu.css +16 -16
  55. package/src/material/message.css +8 -8
  56. package/src/material/range.css +8 -8
  57. package/src/material/search-filter.css +8 -8
  58. package/src/material/select.css +31 -31
  59. package/src/material/status-list.css +17 -17
  60. package/src/material/step-indicator.css +8 -9
  61. package/src/material/swatch.css +3 -3
  62. package/src/material/switch.css +6 -6
  63. package/src/material/table.css +16 -16
  64. package/src/material/tabs.css +8 -8
  65. package/src/material/timeline.css +5 -6
  66. package/src/material/toc.css +4 -4
  67. package/src/material/toggle.css +7 -7
  68. package/src/material/toolbar.css +11 -11
  69. package/src/material/tree.css +17 -17
  70. package/src/minimal/button.css +30 -30
  71. package/src/minimal/card.css +13 -13
  72. package/src/minimal/chart.css +6 -6
  73. package/src/minimal/code-block.css +33 -0
  74. package/src/minimal/dropdown.css +11 -11
  75. package/src/minimal/floating-action.css +10 -10
  76. package/src/minimal/floating-navigation.css +12 -12
  77. package/src/minimal/frame.css +17 -0
  78. package/src/minimal/index.css +2 -0
  79. package/src/minimal/input.css +24 -24
  80. package/src/minimal/list.css +63 -23
  81. package/src/minimal/menu.css +15 -15
  82. package/src/minimal/message.css +8 -8
  83. package/src/minimal/range.css +7 -7
  84. package/src/minimal/search-filter.css +8 -8
  85. package/src/minimal/select.css +27 -39
  86. package/src/minimal/status-list.css +17 -17
  87. package/src/minimal/step-indicator.css +8 -8
  88. package/src/minimal/swatch.css +3 -3
  89. package/src/minimal/switch.css +6 -6
  90. package/src/minimal/table.css +16 -16
  91. package/src/minimal/tabs.css +14 -14
  92. package/src/minimal/timeline.css +4 -4
  93. package/src/minimal/toc.css +4 -4
  94. package/src/minimal/toggle.css +7 -7
  95. package/src/minimal/toolbar.css +14 -14
  96. package/src/minimal/tree.css +24 -18
  97. package/src/rokkit/avatar.css +6 -6
  98. package/src/rokkit/badge.css +5 -5
  99. package/src/rokkit/button.css +55 -37
  100. package/src/rokkit/card.css +11 -11
  101. package/src/rokkit/chart.css +6 -6
  102. package/src/rokkit/code-block.css +33 -0
  103. package/src/rokkit/connector.css +1 -1
  104. package/src/rokkit/divider.css +5 -5
  105. package/src/rokkit/dropdown.css +11 -11
  106. package/src/rokkit/floating-action.css +11 -11
  107. package/src/rokkit/floating-navigation.css +15 -15
  108. package/src/rokkit/frame.css +17 -0
  109. package/src/rokkit/grid.css +8 -8
  110. package/src/rokkit/index.css +2 -1
  111. package/src/rokkit/input.css +17 -17
  112. package/src/rokkit/list.css +46 -21
  113. package/src/rokkit/menu.css +14 -14
  114. package/src/rokkit/message.css +12 -12
  115. package/src/rokkit/range.css +10 -10
  116. package/src/rokkit/search-filter.css +8 -8
  117. package/src/rokkit/select.css +34 -34
  118. package/src/rokkit/status-list.css +17 -17
  119. package/src/rokkit/step-indicator.css +8 -9
  120. package/src/rokkit/swatch.css +3 -3
  121. package/src/rokkit/switch.css +6 -6
  122. package/src/rokkit/table.css +16 -16
  123. package/src/rokkit/tabs.css +31 -28
  124. package/src/rokkit/timeline.css +5 -6
  125. package/src/rokkit/toc.css +4 -4
  126. package/src/rokkit/toggle.css +21 -10
  127. package/src/rokkit/toolbar.css +15 -15
  128. package/src/rokkit/tooltip.css +1 -1
  129. package/src/rokkit/tree.css +23 -23
  130. package/src/rokkit/upload-progress.css +18 -18
  131. package/src/rokkit/upload-target.css +8 -8
  132. package/src/zen-sumi/button.css +176 -0
  133. package/src/zen-sumi/card.css +104 -0
  134. package/src/zen-sumi/chart.css +41 -0
  135. package/src/zen-sumi/code-block.css +35 -0
  136. package/src/zen-sumi/dropdown.css +53 -0
  137. package/src/zen-sumi/floating-action.css +68 -0
  138. package/src/zen-sumi/floating-navigation.css +74 -0
  139. package/src/zen-sumi/frame.css +20 -0
  140. package/src/zen-sumi/index.css +53 -0
  141. package/src/zen-sumi/input.css +171 -0
  142. package/src/zen-sumi/list.css +128 -0
  143. package/src/zen-sumi/menu.css +91 -0
  144. package/src/zen-sumi/message.css +37 -0
  145. package/src/zen-sumi/range.css +62 -0
  146. package/src/zen-sumi/search-filter.css +49 -0
  147. package/src/zen-sumi/select.css +160 -0
  148. package/src/zen-sumi/status-list.css +66 -0
  149. package/src/zen-sumi/step-indicator.css +40 -0
  150. package/src/zen-sumi/swatch.css +21 -0
  151. package/src/zen-sumi/switch.css +34 -0
  152. package/src/zen-sumi/table.css +118 -0
  153. package/src/zen-sumi/tabs.css +78 -0
  154. package/src/zen-sumi/timeline.css +46 -0
  155. package/src/zen-sumi/toc.css +22 -0
  156. package/src/zen-sumi/toggle.css +59 -0
  157. package/src/zen-sumi/toolbar.css +86 -0
  158. package/src/zen-sumi/tree.css +137 -0
  159. package/dist/ant-design.css +0 -2129
  160. package/dist/base.css +0 -6506
  161. package/dist/bits-ui.css +0 -2113
  162. package/dist/carbon.css +0 -2123
  163. package/dist/daisy-ui.css +0 -2138
  164. package/dist/frosted.css +0 -1953
  165. package/dist/grada-ui.css +0 -1915
  166. package/dist/index.css +0 -27359
  167. package/dist/material.css +0 -1924
  168. package/dist/minimal.css +0 -1978
  169. package/dist/rokkit.css +0 -2471
  170. package/dist/shadcn.css +0 -2099
  171. package/src/ant-design/button.css +0 -190
  172. package/src/ant-design/card.css +0 -100
  173. package/src/ant-design/chart.css +0 -34
  174. package/src/ant-design/connector.css +0 -11
  175. package/src/ant-design/dropdown.css +0 -50
  176. package/src/ant-design/floating-action.css +0 -63
  177. package/src/ant-design/floating-navigation.css +0 -70
  178. package/src/ant-design/grid.css +0 -46
  179. package/src/ant-design/index.css +0 -35
  180. package/src/ant-design/input.css +0 -151
  181. package/src/ant-design/list.css +0 -126
  182. package/src/ant-design/menu.css +0 -88
  183. package/src/ant-design/message.css +0 -35
  184. package/src/ant-design/range.css +0 -61
  185. package/src/ant-design/search-filter.css +0 -49
  186. package/src/ant-design/select.css +0 -158
  187. package/src/ant-design/status-list.css +0 -66
  188. package/src/ant-design/step-indicator.css +0 -38
  189. package/src/ant-design/switch.css +0 -29
  190. package/src/ant-design/table.css +0 -91
  191. package/src/ant-design/tabs.css +0 -153
  192. package/src/ant-design/timeline.css +0 -45
  193. package/src/ant-design/toc.css +0 -18
  194. package/src/ant-design/toggle.css +0 -48
  195. package/src/ant-design/toolbar.css +0 -85
  196. package/src/ant-design/tree.css +0 -137
  197. package/src/ant-design/upload-progress.css +0 -102
  198. package/src/ant-design/upload-target.css +0 -50
  199. package/src/bits-ui/button.css +0 -176
  200. package/src/bits-ui/card.css +0 -99
  201. package/src/bits-ui/chart.css +0 -34
  202. package/src/bits-ui/connector.css +0 -11
  203. package/src/bits-ui/dropdown.css +0 -50
  204. package/src/bits-ui/floating-action.css +0 -63
  205. package/src/bits-ui/floating-navigation.css +0 -70
  206. package/src/bits-ui/grid.css +0 -46
  207. package/src/bits-ui/index.css +0 -35
  208. package/src/bits-ui/input.css +0 -154
  209. package/src/bits-ui/list.css +0 -126
  210. package/src/bits-ui/menu.css +0 -88
  211. package/src/bits-ui/message.css +0 -35
  212. package/src/bits-ui/range.css +0 -61
  213. package/src/bits-ui/search-filter.css +0 -49
  214. package/src/bits-ui/select.css +0 -158
  215. package/src/bits-ui/status-list.css +0 -66
  216. package/src/bits-ui/step-indicator.css +0 -40
  217. package/src/bits-ui/switch.css +0 -29
  218. package/src/bits-ui/table.css +0 -89
  219. package/src/bits-ui/tabs.css +0 -151
  220. package/src/bits-ui/timeline.css +0 -45
  221. package/src/bits-ui/toc.css +0 -18
  222. package/src/bits-ui/toggle.css +0 -48
  223. package/src/bits-ui/toolbar.css +0 -85
  224. package/src/bits-ui/tree.css +0 -135
  225. package/src/bits-ui/upload-progress.css +0 -102
  226. package/src/bits-ui/upload-target.css +0 -50
  227. package/src/carbon/button.css +0 -186
  228. package/src/carbon/card.css +0 -97
  229. package/src/carbon/chart.css +0 -34
  230. package/src/carbon/connector.css +0 -11
  231. package/src/carbon/dropdown.css +0 -50
  232. package/src/carbon/floating-action.css +0 -63
  233. package/src/carbon/floating-navigation.css +0 -70
  234. package/src/carbon/grid.css +0 -46
  235. package/src/carbon/index.css +0 -34
  236. package/src/carbon/input.css +0 -148
  237. package/src/carbon/list.css +0 -124
  238. package/src/carbon/menu.css +0 -88
  239. package/src/carbon/message.css +0 -37
  240. package/src/carbon/range.css +0 -61
  241. package/src/carbon/search-filter.css +0 -49
  242. package/src/carbon/select.css +0 -158
  243. package/src/carbon/status-list.css +0 -66
  244. package/src/carbon/step-indicator.css +0 -40
  245. package/src/carbon/switch.css +0 -31
  246. package/src/carbon/table.css +0 -93
  247. package/src/carbon/tabs.css +0 -151
  248. package/src/carbon/timeline.css +0 -45
  249. package/src/carbon/toc.css +0 -22
  250. package/src/carbon/toggle.css +0 -48
  251. package/src/carbon/toolbar.css +0 -84
  252. package/src/carbon/tree.css +0 -135
  253. package/src/carbon/upload-progress.css +0 -102
  254. package/src/carbon/upload-target.css +0 -50
  255. package/src/daisy-ui/button.css +0 -196
  256. package/src/daisy-ui/card.css +0 -99
  257. package/src/daisy-ui/chart.css +0 -34
  258. package/src/daisy-ui/connector.css +0 -11
  259. package/src/daisy-ui/dropdown.css +0 -50
  260. package/src/daisy-ui/floating-action.css +0 -63
  261. package/src/daisy-ui/floating-navigation.css +0 -70
  262. package/src/daisy-ui/grid.css +0 -46
  263. package/src/daisy-ui/index.css +0 -34
  264. package/src/daisy-ui/input.css +0 -148
  265. package/src/daisy-ui/list.css +0 -127
  266. package/src/daisy-ui/menu.css +0 -88
  267. package/src/daisy-ui/message.css +0 -37
  268. package/src/daisy-ui/range.css +0 -61
  269. package/src/daisy-ui/search-filter.css +0 -49
  270. package/src/daisy-ui/select.css +0 -158
  271. package/src/daisy-ui/status-list.css +0 -66
  272. package/src/daisy-ui/step-indicator.css +0 -37
  273. package/src/daisy-ui/switch.css +0 -31
  274. package/src/daisy-ui/table.css +0 -91
  275. package/src/daisy-ui/tabs.css +0 -153
  276. package/src/daisy-ui/timeline.css +0 -45
  277. package/src/daisy-ui/toc.css +0 -22
  278. package/src/daisy-ui/toggle.css +0 -48
  279. package/src/daisy-ui/toolbar.css +0 -85
  280. package/src/daisy-ui/tree.css +0 -137
  281. package/src/daisy-ui/upload-progress.css +0 -102
  282. package/src/daisy-ui/upload-target.css +0 -50
  283. package/src/grada-ui/button.css +0 -249
  284. package/src/grada-ui/card.css +0 -96
  285. package/src/grada-ui/chart.css +0 -34
  286. package/src/grada-ui/dropdown.css +0 -58
  287. package/src/grada-ui/floating-action.css +0 -66
  288. package/src/grada-ui/floating-navigation.css +0 -69
  289. package/src/grada-ui/index.css +0 -56
  290. package/src/grada-ui/input.css +0 -154
  291. package/src/grada-ui/list.css +0 -124
  292. package/src/grada-ui/menu.css +0 -81
  293. package/src/grada-ui/message.css +0 -48
  294. package/src/grada-ui/range.css +0 -59
  295. package/src/grada-ui/search-filter.css +0 -47
  296. package/src/grada-ui/select.css +0 -190
  297. package/src/grada-ui/status-list.css +0 -66
  298. package/src/grada-ui/step-indicator.css +0 -37
  299. package/src/grada-ui/switch.css +0 -35
  300. package/src/grada-ui/table.css +0 -79
  301. package/src/grada-ui/tabs.css +0 -59
  302. package/src/grada-ui/timeline.css +0 -46
  303. package/src/grada-ui/toc.css +0 -24
  304. package/src/grada-ui/toggle.css +0 -47
  305. package/src/grada-ui/toolbar.css +0 -91
  306. package/src/grada-ui/tree.css +0 -100
  307. package/src/rokkit/stack.css +0 -6
  308. package/src/shadcn/button.css +0 -175
  309. package/src/shadcn/card.css +0 -99
  310. package/src/shadcn/chart.css +0 -34
  311. package/src/shadcn/connector.css +0 -11
  312. package/src/shadcn/dropdown.css +0 -50
  313. package/src/shadcn/floating-action.css +0 -63
  314. package/src/shadcn/floating-navigation.css +0 -70
  315. package/src/shadcn/grid.css +0 -46
  316. package/src/shadcn/index.css +0 -35
  317. package/src/shadcn/input.css +0 -143
  318. package/src/shadcn/list.css +0 -124
  319. package/src/shadcn/menu.css +0 -88
  320. package/src/shadcn/message.css +0 -35
  321. package/src/shadcn/range.css +0 -61
  322. package/src/shadcn/search-filter.css +0 -49
  323. package/src/shadcn/select.css +0 -158
  324. package/src/shadcn/status-list.css +0 -66
  325. package/src/shadcn/step-indicator.css +0 -37
  326. package/src/shadcn/switch.css +0 -31
  327. package/src/shadcn/table.css +0 -89
  328. package/src/shadcn/tabs.css +0 -151
  329. package/src/shadcn/timeline.css +0 -45
  330. package/src/shadcn/toc.css +0 -20
  331. package/src/shadcn/toggle.css +0 -48
  332. package/src/shadcn/toolbar.css +0 -84
  333. package/src/shadcn/tree.css +0 -135
  334. package/src/shadcn/upload-progress.css +0 -102
  335. package/src/shadcn/upload-target.css +0 -50
package/README.md CHANGED
@@ -16,19 +16,14 @@ bun add @rokkit/themes
16
16
 
17
17
  Available themes:
18
18
 
19
- | Theme | Description |
20
- | ------------ | -------------------------------------------------------------------- |
21
- | `rokkit` | Default — gradients and glowing borders |
22
- | `minimal` | Clean and subtle |
23
- | `material` | Elevation and shadows |
24
- | `frosted` | Frosted glass and blur |
25
- | `shadcn` | Flat borders and ring focus |
26
- | `daisy-ui` | Rounded-full and bold fills |
27
- | `bits-ui` | Rounded-lg and shadow-sm |
28
- | `carbon` | Square corners and bottom-border inputs |
29
- | `ant-design` | Thin borders and dense layout |
30
- | `grada-ui` | Coral/purple gradient identity |
31
- | `base` | Structural styles only (layout and positioning, no visual treatment) |
19
+ | Theme | Description |
20
+ | ---------- | -------------------------------------------------------------------- |
21
+ | `rokkit` | Default — gradients and glowing borders |
22
+ | `minimal` | Clean and subtle |
23
+ | `material` | Elevation and shadows |
24
+ | `frosted` | Frosted glass and blur |
25
+ | `zen-sumi` | Ink on paper no shadows, no gradients |
26
+ | `base` | Structural styles only (layout and positioning, no visual treatment) |
32
27
 
33
28
  ## Usage
34
29
 
@@ -54,6 +49,8 @@ import '@rokkit/themes'
54
49
  @import '@rokkit/themes/material.css';
55
50
  /* or */
56
51
  @import '@rokkit/themes/frosted.css';
52
+ /* or */
53
+ @import '@rokkit/themes/zen-sumi.css';
57
54
  ```
58
55
 
59
56
  ### Base structural styles only
@@ -108,12 +105,7 @@ src/
108
105
  minimal/ -- Clean + subtle theme
109
106
  material/ -- Elevation + shadows theme
110
107
  frosted/ -- Frosted glass + blur theme
111
- shadcn/ -- Flat borders + ring focus theme
112
- daisy-ui/ -- Rounded-full + bold fills theme
113
- bits-ui/ -- Rounded-lg + shadow-sm theme
114
- carbon/ -- Square + bottom-border inputs theme
115
- ant-design/ -- Thin borders + dense layout theme
116
- grada-ui/ -- Coral/purple gradient identity theme
108
+ zen-sumi/ -- Ink on paper theme (no shadows, no gradients)
117
109
  index.css -- Full bundle entry point
118
110
  ```
119
111
 
package/build.mjs CHANGED
@@ -19,6 +19,7 @@
19
19
 
20
20
  import { createGenerator, presetWind3, transformerDirectives } from 'unocss'
21
21
  import { Theme } from '@rokkit/core'
22
+ import { buildNamedShortcuts } from '@rokkit/unocss'
22
23
  import { readFileSync, writeFileSync, mkdirSync } from 'fs'
23
24
  import { resolve, dirname, join } from 'path'
24
25
  import { fileURLToPath } from 'url'
@@ -40,7 +41,7 @@ const uno = await createGenerator({
40
41
  })
41
42
  ],
42
43
  shortcuts: [
43
- ['skin-default', theme.getPalette()],
44
+ ['skin-default', { ...theme.getPalette(), ...theme.getNamedTokens() }],
44
45
  ...theme.getShortcuts('surface'),
45
46
  ...theme.getShortcuts('primary'),
46
47
  ...theme.getShortcuts('secondary'),
@@ -50,13 +51,7 @@ const uno = await createGenerator({
50
51
  ...theme.getShortcuts('danger'),
51
52
  ...theme.getShortcuts('error'),
52
53
  ...theme.getShortcuts('info'),
53
- [/^text-on-primary(\/\d+)?$/, ([, end]) => `text-surface-50${end || ''}`],
54
- [/^text-on-secondary(\/\d+)?$/, ([, end]) => `text-surface-50${end || ''}`],
55
- [/^text-on-info(\/\d+)?$/, ([, end]) => `text-surface-50${end || ''}`],
56
- [/^text-on-success(\/\d+)?$/, ([, end]) => `text-surface-50${end || ''}`],
57
- [/^text-on-warning(\/\d+)?$/, ([, end]) => `text-surface-50${end || ''}`],
58
- [/^text-on-error(\/\d+)?$/, ([, end]) => `text-surface-50${end || ''}`],
59
- [/^text-on-surface(\/\d+)?$/, ([, end]) => `text-surface-50${end || ''}`]
54
+ ...buildNamedShortcuts()
60
55
  ],
61
56
  theme: {
62
57
  colors: theme.getColorRules()
@@ -190,7 +185,7 @@ async function buildFile(inputPath, outputName, label) {
190
185
  const fullCSS = resolveImports(inputPath)
191
186
  const compiled = await processCSS(fullCSS, outputName)
192
187
  const fixed = fixModeSelectors(compiled)
193
- writeFileSync(join(distDir, outputName), fixed, 'utf-8')
188
+ writeFileSync(join(distDir, outputName), fixed, 'utf-8') // nosemgrep: javascript.lang.security.audit.path-traversal.path-join-resolve-traversal.path-join-resolve-traversal — outputName is derived from a hardcoded string array, not user input
194
189
  console.log(`✓ dist/${outputName} (${label})`)
195
190
  }
196
191
 
@@ -213,12 +208,7 @@ async function build() {
213
208
  ['minimal', 'clean + subtle'],
214
209
  ['material', 'elevation + shadows'],
215
210
  ['frosted', 'frosted glass + blur'],
216
- ['grada-ui', 'coral/purple gradient identity'],
217
- ['shadcn', 'flat borders + ring focus'],
218
- ['daisy-ui', 'rounded-full + bold fills'],
219
- ['bits-ui', 'rounded-lg + shadow-sm'],
220
- ['carbon', 'square + bottom-border inputs'],
221
- ['ant-design', 'thin borders + dense layout']
211
+ ['zen-sumi', 'ink on paper — no shadows, no gradients']
222
212
  ]) {
223
213
  await buildFile(join(srcDir, name, 'index.css'), `${name}.css`, label)
224
214
  }
@@ -230,13 +220,9 @@ async function build() {
230
220
  'minimal',
231
221
  'material',
232
222
  'frosted',
233
- 'grada-ui',
234
- 'shadcn',
235
- 'daisy-ui',
236
- 'bits-ui',
237
- 'carbon',
238
- 'ant-design'
223
+ 'zen-sumi'
239
224
  ]
225
+ // nosemgrep: javascript.lang.security.audit.path-traversal.path-join-resolve-traversal.path-join-resolve-traversal — name is from a hardcoded string array, not user input
240
226
  const bundleParts = allThemes.map((name) => readFileSync(join(distDir, `${name}.css`), 'utf-8'))
241
227
  writeFileSync(join(distDir, 'index.css'), bundleParts.join('\n'), 'utf-8')
242
228
  console.log('✓ dist/index.css (full bundle)')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rokkit/themes",
3
- "version": "1.0.4",
3
+ "version": "1.1.0",
4
4
  "description": "Theme styles for @rokkit/ui components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,97 +18,29 @@
18
18
  "style": "./src/index.css",
19
19
  "default": "./src/index.css"
20
20
  },
21
- "./dist": {
22
- "style": "./dist/index.css",
23
- "default": "./dist/index.css"
24
- },
25
- "./dist/base": {
26
- "style": "./dist/base.css",
27
- "default": "./dist/base.css"
28
- },
29
- "./dist/rokkit": {
30
- "style": "./dist/rokkit.css",
31
- "default": "./dist/rokkit.css"
32
- },
33
- "./dist/minimal": {
34
- "style": "./dist/minimal.css",
35
- "default": "./dist/minimal.css"
36
- },
37
- "./dist/material": {
38
- "style": "./dist/material.css",
39
- "default": "./dist/material.css"
40
- },
41
- "./dist/frosted": {
42
- "style": "./dist/frosted.css",
43
- "default": "./dist/frosted.css"
44
- },
45
- "./dist/grada-ui": {
46
- "style": "./dist/grada-ui.css",
47
- "default": "./dist/grada-ui.css"
48
- },
49
- "./dist/daisy-ui": {
50
- "style": "./dist/daisy-ui.css",
51
- "default": "./dist/daisy-ui.css"
52
- },
53
- "./dist/shadcn": {
54
- "style": "./dist/shadcn.css",
55
- "default": "./dist/shadcn.css"
56
- },
57
- "./dist/bits-ui": {
58
- "style": "./dist/bits-ui.css",
59
- "default": "./dist/bits-ui.css"
60
- },
61
- "./dist/carbon": {
62
- "style": "./dist/carbon.css",
63
- "default": "./dist/carbon.css"
64
- },
65
- "./dist/ant-design": {
66
- "style": "./dist/ant-design.css",
67
- "default": "./dist/ant-design.css"
68
- },
69
- "./base.css": {
70
- "style": "./dist/base.css",
71
- "default": "./dist/base.css"
21
+ "./base.css": {
22
+ "style": "./src/base/index.css",
23
+ "default": "./src/base/index.css"
72
24
  },
73
25
  "./rokkit.css": {
74
- "style": "./dist/rokkit.css",
75
- "default": "./dist/rokkit.css"
26
+ "style": "./src/rokkit/index.css",
27
+ "default": "./src/rokkit/index.css"
76
28
  },
77
29
  "./minimal.css": {
78
- "style": "./dist/minimal.css",
79
- "default": "./dist/minimal.css"
30
+ "style": "./src/minimal/index.css",
31
+ "default": "./src/minimal/index.css"
80
32
  },
81
33
  "./material.css": {
82
- "style": "./dist/material.css",
83
- "default": "./dist/material.css"
34
+ "style": "./src/material/index.css",
35
+ "default": "./src/material/index.css"
84
36
  },
85
37
  "./frosted.css": {
86
- "style": "./dist/frosted.css",
87
- "default": "./dist/frosted.css"
88
- },
89
- "./grada-ui.css": {
90
- "style": "./dist/grada-ui.css",
91
- "default": "./dist/grada-ui.css"
92
- },
93
- "./daisy-ui.css": {
94
- "style": "./dist/daisy-ui.css",
95
- "default": "./dist/daisy-ui.css"
96
- },
97
- "./shadcn.css": {
98
- "style": "./dist/shadcn.css",
99
- "default": "./dist/shadcn.css"
100
- },
101
- "./bits-ui.css": {
102
- "style": "./dist/bits-ui.css",
103
- "default": "./dist/bits-ui.css"
104
- },
105
- "./carbon.css": {
106
- "style": "./dist/carbon.css",
107
- "default": "./dist/carbon.css"
38
+ "style": "./src/frosted/index.css",
39
+ "default": "./src/frosted/index.css"
108
40
  },
109
- "./ant-design.css": {
110
- "style": "./dist/ant-design.css",
111
- "default": "./dist/ant-design.css"
41
+ "./zen-sumi.css": {
42
+ "style": "./src/zen-sumi/index.css",
43
+ "default": "./src/zen-sumi/index.css"
112
44
  },
113
45
  "./base": {
114
46
  "style": "./src/base/index.css",
@@ -150,71 +82,31 @@
150
82
  "style": "./src/frosted/*.css",
151
83
  "default": "./src/frosted/*.css"
152
84
  },
153
- "./grada-ui": {
154
- "style": "./src/grada-ui/index.css",
155
- "default": "./src/grada-ui/index.css"
156
- },
157
- "./grada-ui/*": {
158
- "style": "./src/grada-ui/*.css",
159
- "default": "./src/grada-ui/*.css"
160
- },
161
- "./daisy-ui": {
162
- "style": "./src/daisy-ui/index.css",
163
- "default": "./src/daisy-ui/index.css"
164
- },
165
- "./daisy-ui/*": {
166
- "style": "./src/daisy-ui/*.css",
167
- "default": "./src/daisy-ui/*.css"
168
- },
169
- "./shadcn": {
170
- "style": "./src/shadcn/index.css",
171
- "default": "./src/shadcn/index.css"
172
- },
173
- "./shadcn/*": {
174
- "style": "./src/shadcn/*.css",
175
- "default": "./src/shadcn/*.css"
176
- },
177
- "./bits-ui": {
178
- "style": "./src/bits-ui/index.css",
179
- "default": "./src/bits-ui/index.css"
180
- },
181
- "./bits-ui/*": {
182
- "style": "./src/bits-ui/*.css",
183
- "default": "./src/bits-ui/*.css"
184
- },
185
- "./carbon": {
186
- "style": "./src/carbon/index.css",
187
- "default": "./src/carbon/index.css"
188
- },
189
- "./carbon/*": {
190
- "style": "./src/carbon/*.css",
191
- "default": "./src/carbon/*.css"
192
- },
193
- "./ant-design": {
194
- "style": "./src/ant-design/index.css",
195
- "default": "./src/ant-design/index.css"
85
+ "./zen-sumi": {
86
+ "style": "./src/zen-sumi/index.css",
87
+ "default": "./src/zen-sumi/index.css"
196
88
  },
197
- "./ant-design/*": {
198
- "style": "./src/ant-design/*.css",
199
- "default": "./src/ant-design/*.css"
89
+ "./zen-sumi/*": {
90
+ "style": "./src/zen-sumi/*.css",
91
+ "default": "./src/zen-sumi/*.css"
200
92
  }
201
93
  },
202
94
  "files": [
203
95
  "src",
204
- "dist",
205
96
  "build.mjs",
206
97
  "README.md",
207
98
  "LICENSE"
208
99
  ],
209
100
  "scripts": {
210
- "prepublishOnly": "cp ../../LICENSE . && bun run build.mjs",
101
+ "prepublishOnly": "cp ../../LICENSE .",
211
102
  "postpublish": "rm -f LICENSE",
212
103
  "build": "bun run build.mjs"
213
104
  },
214
105
  "dependencies": {
215
- "@rokkit/core": "1.0.4"
106
+ "@rokkit/core": "1.1.0"
216
107
  },
217
108
  "devDependencies": {
109
+ "@rokkit/unocss": "1.1.0",
218
110
  "magic-string": "^0.30.21",
219
111
  "unocss": "^66.5.1"
220
112
  },
@@ -71,8 +71,8 @@
71
71
  border: none;
72
72
  border-radius: 9999px;
73
73
  cursor: pointer;
74
- background: rgba(0, 0, 0, 0.3);
75
- color: white;
74
+ background-color: color-mix(in srgb, var(--ink) 30%, transparent);
75
+ color: var(--paper);
76
76
  font-size: 1.25rem;
77
77
  z-index: 1;
78
78
  opacity: 0.7;
@@ -0,0 +1,76 @@
1
+ /**
2
+ * CodeBlock — base structural styles for the internals.
3
+ *
4
+ * The outer chrome (border, radius, header divider) is Frame's job.
5
+ * This file just lays out what CodeBlock puts INSIDE the frame header
6
+ * (icon, filename, lang chip, action buttons) and body (<pre>/<code>).
7
+ * Per-theme files add colour and typography accents.
8
+ */
9
+
10
+ [data-code-block-header] {
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: space-between;
14
+ gap: var(--density-spacing-sm);
15
+ }
16
+
17
+ [data-code-block-title] {
18
+ display: inline-flex;
19
+ align-items: center;
20
+ gap: var(--density-spacing-sm);
21
+ }
22
+
23
+ [data-code-block-icon] {
24
+ display: inline-block;
25
+ width: 13px;
26
+ height: 13px;
27
+ }
28
+
29
+ [data-code-block-lang] {
30
+ padding: 2px 6px;
31
+ border-radius: 3px;
32
+ letter-spacing: 0.12em;
33
+ text-transform: uppercase;
34
+ }
35
+
36
+ [data-code-block-actions] {
37
+ display: inline-flex;
38
+ gap: 2px;
39
+ }
40
+
41
+ [data-code-block-actions] button {
42
+ display: inline-flex;
43
+ align-items: center;
44
+ gap: 5px;
45
+ height: 22px;
46
+ padding: 0 8px;
47
+ border: 0;
48
+ background: transparent;
49
+ cursor: pointer;
50
+ border-radius: 3px;
51
+ letter-spacing: 0.02em;
52
+ }
53
+
54
+ [data-code-block-actions] button > span:first-child {
55
+ display: inline-block;
56
+ width: 12px;
57
+ height: 12px;
58
+ }
59
+
60
+ [data-code-block-body] {
61
+ overflow: auto;
62
+ }
63
+
64
+ [data-code-block-body] pre {
65
+ margin: 0;
66
+ padding: 10px 12px;
67
+ overflow-x: auto;
68
+ background: transparent;
69
+ }
70
+
71
+ [data-code-block-body] code {
72
+ font: inherit;
73
+ background: transparent;
74
+ border: 0;
75
+ padding: 0;
76
+ }
@@ -6,7 +6,8 @@
6
6
  }
7
7
 
8
8
  [data-display-title] {
9
- @apply text-on-surface text-sm font-semibold;
9
+ color: var(--ink);
10
+ @apply text-sm font-semibold;
10
11
  }
11
12
 
12
13
  [data-display-field] {
@@ -14,16 +15,19 @@
14
15
  }
15
16
 
16
17
  [data-display-label] {
17
- @apply text-on-surface/70 shrink-0 text-sm;
18
+ color: color-mix(in srgb, var(--ink) 70%, transparent);
19
+ @apply shrink-0 text-sm;
18
20
  }
19
21
 
20
22
  [data-display-value] {
21
- @apply text-on-surface text-right text-sm;
23
+ color: var(--ink);
24
+ @apply text-right text-sm;
22
25
  }
23
26
 
24
27
  /* Badge format: pill style */
25
28
  [data-display-value][data-format='badge'] {
26
- @apply bg-surface-z2 rounded-full px-2 py-0.5 text-xs font-medium;
29
+ background-color: var(--paper-mute);
30
+ @apply rounded-full px-2 py-0.5 text-xs font-medium;
27
31
  }
28
32
 
29
33
  /* Boolean format */
@@ -58,11 +62,14 @@
58
62
  }
59
63
 
60
64
  [data-display-card] {
61
- @apply border-surface-z2 bg-surface flex flex-col gap-1 rounded border p-3;
65
+ border-color: var(--paper-mute);
66
+ background-color: var(--paper-edge);
67
+ @apply flex flex-col gap-1 rounded border p-3;
62
68
  }
63
69
 
64
70
  [data-display-card][data-selected] {
65
- @apply border-primary ring-primary ring-1;
71
+ border-color: var(--primary);
72
+ @apply ring-primary ring-1;
66
73
  }
67
74
 
68
75
  [data-selectable] [data-display-card] {
@@ -70,7 +77,7 @@
70
77
  }
71
78
 
72
79
  [data-selectable] [data-display-card]:hover {
73
- @apply bg-surface-z1;
80
+ background-color: var(--paper-soft);
74
81
  }
75
82
 
76
83
  /* Display list */
@@ -83,7 +90,8 @@
83
90
  }
84
91
 
85
92
  [data-display-list-item] {
86
- @apply border-surface-z2 flex items-baseline gap-4 border-b py-1 last:border-0;
93
+ border-color: var(--paper-mute);
94
+ @apply flex items-baseline gap-4 border-b py-1 last:border-0;
87
95
  }
88
96
 
89
97
  [data-display-list-item] [data-display-field] {
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Frame — base structural styles.
3
+ *
4
+ * Layout / spacing only. Per-theme files (zen-sumi/frame.css,
5
+ * material/frame.css, …) add the visual decoration (border, background,
6
+ * shadow) using the same `[data-frame-*]` hooks.
7
+ */
8
+
9
+ [data-frame] {
10
+ display: flex;
11
+ flex-direction: column;
12
+ border-radius: var(--density-radius-base);
13
+ overflow: hidden;
14
+ }
15
+
16
+ [data-frame-header] {
17
+ padding-block: var(--density-spacing-sm);
18
+ padding-inline: var(--density-spacing-md);
19
+ }
20
+
21
+ [data-frame-body] {
22
+ padding: var(--density-spacing-md);
23
+ flex: 1;
24
+ min-height: 0;
25
+ }
26
+
27
+ /* Artifacts that own their padding (charts, <pre> blocks, tables) opt
28
+ * out of the body padding via `flush`. */
29
+ [data-frame-body][data-flush] {
30
+ padding: 0;
31
+ }
32
+
33
+ [data-frame-footer] {
34
+ padding-block: var(--density-spacing-sm);
35
+ padding-inline: var(--density-spacing-md);
36
+ }
@@ -28,6 +28,8 @@
28
28
  @import './shine.css';
29
29
  @import './breadcrumbs.css';
30
30
  @import './card.css';
31
+ @import './frame.css';
32
+ @import './code-block.css';
31
33
  @import './progress.css';
32
34
  @import './carousel.css';
33
35
  @import './pill.css';