@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
@@ -0,0 +1,74 @@
1
+ /**
2
+ * FloatingNavigation - Zen-Sumi Theme Styles
3
+ *
4
+ * Paper bg, hairline border, no shadow.
5
+ * Items: text-only default, surface-z2 wash on hover.
6
+ * Active: ink text + surface-z1 bg + primary indicator.
7
+ */
8
+
9
+ /* =============================================================================
10
+ Container
11
+ ============================================================================= */
12
+
13
+ [data-style='zen-sumi'] [data-floating-nav] {
14
+ @apply bg-paper border-paper-mute border bg-none;
15
+ box-shadow: none;
16
+ }
17
+
18
+ /* =============================================================================
19
+ Header
20
+ ============================================================================= */
21
+
22
+ [data-style='zen-sumi'] [data-floating-nav-title] {
23
+ @apply text-paper-edge;
24
+ }
25
+
26
+ [data-style='zen-sumi'] [data-floating-nav-pin] {
27
+ @apply text-paper-edge;
28
+ }
29
+
30
+ [data-style='zen-sumi'] [data-floating-nav-pin]:hover {
31
+ @apply text-ink-soft;
32
+ }
33
+
34
+ [data-style='zen-sumi'] [data-floating-nav-pin][aria-pressed='true'] {
35
+ @apply text-ink-mute;
36
+ }
37
+
38
+ /* =============================================================================
39
+ Items
40
+ ============================================================================= */
41
+
42
+ [data-style='zen-sumi'] [data-floating-nav-item] {
43
+ @apply text-ink-soft;
44
+ }
45
+
46
+ [data-style='zen-sumi'] [data-floating-nav-item]:hover {
47
+ @apply bg-paper-mute text-ink-mute bg-none;
48
+ }
49
+
50
+ [data-style='zen-sumi'] [data-floating-nav-item][data-active] {
51
+ @apply bg-paper-soft text-ink-mute bg-none;
52
+ }
53
+
54
+ [data-style='zen-sumi'] [data-floating-nav-item]:focus-visible {
55
+ @apply outline-none;
56
+ box-shadow: inset 0 0 0 1px var(--color-surface-z4);
57
+ }
58
+
59
+ /* Icon */
60
+ [data-style='zen-sumi'] [data-floating-nav-icon] {
61
+ @apply text-paper-edge;
62
+ }
63
+
64
+ [data-style='zen-sumi'] [data-floating-nav-item][data-active] [data-floating-nav-icon] {
65
+ @apply text-primary;
66
+ }
67
+
68
+ /* =============================================================================
69
+ Active Indicator
70
+ ============================================================================= */
71
+
72
+ [data-style='zen-sumi'] [data-floating-nav-indicator] {
73
+ @apply bg-primary bg-none;
74
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Frame — Zen-Sumi theme.
3
+ *
4
+ * Paper bg with hairline border. Header sits on the recessed paper-soft
5
+ * surface, footer carries a dashed top divider. No shadows.
6
+ */
7
+
8
+ [data-style='zen-sumi'] [data-frame] {
9
+ @apply bg-paper border-paper-edge border;
10
+ box-shadow: none;
11
+ }
12
+
13
+ [data-style='zen-sumi'] [data-frame-header] {
14
+ @apply bg-paper-soft border-paper-edge border-b;
15
+ }
16
+
17
+ [data-style='zen-sumi'] [data-frame-footer] {
18
+ @apply bg-paper border-paper-edge;
19
+ border-top: 1px dashed var(--paper-edge);
20
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @rokkit/themes - Zen-Sumi Theme
3
+ *
4
+ * 禅墨 — The aesthetic of ink on paper. Restraint as luxury.
5
+ *
6
+ * Key principles:
7
+ * - No shadows. Depth through background tone variation only.
8
+ * - No gradients. Color conveys meaning, not decoration.
9
+ * - Hairline borders (surface-z2). Paper-edge precision.
10
+ * - Ink-on-paper primary: surface-z9 bg / surface-z0 text.
11
+ * - Single accent: primary (shu/vermillion) for active and CTA.
12
+ * - Focus: border darkens — no glow rings.
13
+ *
14
+ * Use with data-style="zen-sumi" wrapper.
15
+ */
16
+
17
+ @import './button.css';
18
+ @import './toolbar.css';
19
+ @import './tabs.css';
20
+ @import './toggle.css';
21
+ @import './switch.css';
22
+ @import './list.css';
23
+ @import './tree.css';
24
+ @import './select.css';
25
+ @import './menu.css';
26
+ @import './dropdown.css';
27
+ @import './floating-action.css';
28
+ @import './input.css';
29
+ @import './table.css';
30
+ @import './search-filter.css';
31
+ @import './range.css';
32
+ @import './timeline.css';
33
+ @import './floating-navigation.css';
34
+ @import './toc.css';
35
+ @import './card.css';
36
+ @import './frame.css';
37
+ @import './code-block.css';
38
+ @import './message.css';
39
+ @import './status-list.css';
40
+ @import './step-indicator.css';
41
+ @import './chart.css';
42
+ @import './swatch.css';
43
+
44
+ /* =============================================================================
45
+ Layout overrides — Ma (間) generous spacing
46
+ ============================================================================= */
47
+
48
+ [data-style='zen-sumi'] {
49
+ --layout-section-gap: 2.5rem;
50
+ --layout-section-padding: 1.75rem;
51
+ --layout-content-padding: 2rem;
52
+ --layout-card-gap: 0.75rem;
53
+ }
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Input - Zen-Sumi Theme Styles
3
+ *
4
+ * Calm, bordered inputs. No glow on focus — just border darkening.
5
+ * Error: border becomes danger-z4. No background fill on error state.
6
+ */
7
+
8
+ /* Input root: subtle border, paper background.
9
+ Uses raw var() refs (not @apply) so the bg/border respect the
10
+ runtime [data-mode="dark"] cascade on body — UnoCSS @apply
11
+ compilation for z-tokens doesn't always flip with body's
12
+ data-mode in dev mode. */
13
+ [data-style='zen-sumi'] [data-input-root] {
14
+ @apply relative flex items-center border;
15
+ background: var(--color-surface-z1);
16
+ border-color: var(--color-surface-z3);
17
+ background-image: none;
18
+ transition: border-color 150ms ease;
19
+ }
20
+
21
+ /* Toggle / Switch fields bring their own pill chrome via Toggle's
22
+ [data-toggle] container and the switch track — the surrounding
23
+ input-root border just paints a second, thicker frame around it.
24
+ Drop the wrapper border + background for these field types so
25
+ the control's own shape is the only one the eye reads. */
26
+ [data-style='zen-sumi'] [data-field-type='toggle'] [data-input-root],
27
+ [data-style='zen-sumi'] [data-field-type='switch'] [data-input-root] {
28
+ border-color: transparent;
29
+ background: transparent;
30
+ background-image: none;
31
+ }
32
+
33
+ [data-style='zen-sumi'] [data-field-type='toggle'] [data-input-root]:hover:not(:focus-within),
34
+ [data-style='zen-sumi'] [data-field-type='switch'] [data-input-root]:hover:not(:focus-within),
35
+ [data-style='zen-sumi'] [data-field-type='toggle'] [data-input-root]:focus-within,
36
+ [data-style='zen-sumi'] [data-field-type='switch'] [data-input-root]:focus-within {
37
+ border-color: transparent;
38
+ }
39
+
40
+ /* Hover: border darkens slightly */
41
+ [data-style='zen-sumi'] [data-input-root]:hover:not(:focus-within) {
42
+ border-color: var(--color-surface-z4);
43
+ background-image: none;
44
+ }
45
+
46
+ /* Focus: border darkens — no glow */
47
+ [data-style='zen-sumi'] [data-input-root]:focus-within {
48
+ border-color: var(--color-surface-z6);
49
+ background-image: none;
50
+ }
51
+
52
+ /* Inputs inside wrapper */
53
+ [data-style='zen-sumi']
54
+ [data-input-root]
55
+ input:not([type='checkbox'], [type='radio'], [type='color']),
56
+ [data-style='zen-sumi'] [data-input-root] textarea,
57
+ [data-style='zen-sumi'] [data-input-root] select {
58
+ @apply w-full border-none bg-transparent px-2 py-1.5 outline-none;
59
+ color: var(--color-ink-z1);
60
+ font-size: 0.8125rem;
61
+ line-height: 1.25rem;
62
+ }
63
+
64
+ [data-style='zen-sumi'] [data-input-root] textarea {
65
+ @apply resize-vertical min-h-20 py-2;
66
+ }
67
+
68
+ /* Select inside input-root */
69
+ [data-style='zen-sumi'] [data-input-root] [data-select-trigger] {
70
+ @apply text-ink-mute border-none bg-transparent px-2 shadow-none ring-0 focus:outline-none;
71
+ font-size: 0.8125rem;
72
+ background-image: none;
73
+ }
74
+
75
+ [data-style='zen-sumi'] [data-input-root] [data-select-trigger]:hover:not(:disabled) {
76
+ @apply bg-transparent;
77
+ background-image: none;
78
+ }
79
+
80
+ [data-style='zen-sumi'] [data-input-root] [data-select][data-open='true'] [data-select-trigger] {
81
+ @apply border-none bg-transparent shadow-none ring-0;
82
+ }
83
+
84
+ /* Labels: smaller, spaced */
85
+ [data-style='zen-sumi'] [data-field] > label {
86
+ @apply text-ink-soft text-xs tracking-wide;
87
+ transition: color 150ms ease;
88
+ }
89
+
90
+ [data-style='zen-sumi'] [data-form-root] label {
91
+ @apply text-ink-soft text-xs tracking-wide;
92
+ }
93
+
94
+ /* Focused label: primary accent */
95
+ [data-style='zen-sumi'] [data-field]:has([data-input-root]:focus-within) > label {
96
+ @apply text-primary;
97
+ }
98
+
99
+ /* Field root */
100
+ [data-style='zen-sumi'] [data-field-root] {
101
+ @apply gap-1;
102
+ }
103
+
104
+ /* Info field value */
105
+ [data-style='zen-sumi'] [data-field-info] {
106
+ @apply text-primary;
107
+ }
108
+
109
+ /* Separator */
110
+ [data-style='zen-sumi'] [data-form-separator] {
111
+ @apply border-paper-mute;
112
+ }
113
+
114
+ /* Disabled state */
115
+ [data-style='zen-sumi'] [data-field-disabled] [data-input-root] {
116
+ @apply border-paper-mute cursor-not-allowed opacity-40;
117
+ }
118
+
119
+ /* Error state — border becomes shu (primary/danger) */
120
+ [data-style='zen-sumi'] [data-field-state='fail'] [data-input-root] {
121
+ @apply border-danger;
122
+ }
123
+
124
+ [data-style='zen-sumi'] [data-field-state='fail'] [data-input-root]:hover:not(:focus-within) {
125
+ @apply border-danger;
126
+ }
127
+
128
+ [data-style='zen-sumi'] [data-field-state='fail'] [data-input-root]:focus-within {
129
+ @apply border-danger;
130
+ }
131
+
132
+ /* Pass state */
133
+ [data-style='zen-sumi'] [data-field-state='pass'] [data-input-root] {
134
+ @apply border-success;
135
+ }
136
+
137
+ [data-style='zen-sumi'] [data-field-state='pass'] [data-input-root]:focus-within {
138
+ @apply border-success;
139
+ }
140
+
141
+ /* Description */
142
+ [data-style='zen-sumi'] [data-description] {
143
+ @apply text-paper-edge mt-0.5 text-xs;
144
+ }
145
+
146
+ /* Message */
147
+ [data-style='zen-sumi'] [data-message] {
148
+ @apply text-danger mt-0.5 text-xs;
149
+ }
150
+
151
+ /* Checkbox */
152
+ [data-style='zen-sumi'] [data-checkbox-icon] {
153
+ @apply text-paper-edge text-lg;
154
+ }
155
+
156
+ [data-style='zen-sumi']
157
+ [data-checkbox-root][data-variant='custom']:has(input:checked)
158
+ [data-checkbox-icon] {
159
+ @apply text-primary;
160
+ }
161
+
162
+ /* Checkbox label: primary on focus */
163
+ [data-style='zen-sumi'] [data-field-type='checkbox'] [data-field]:has(:focus-within) > label {
164
+ @apply text-primary;
165
+ }
166
+
167
+ /* Placeholders */
168
+ [data-style='zen-sumi'] [data-input-root] input::placeholder,
169
+ [data-style='zen-sumi'] [data-input-root] textarea::placeholder {
170
+ color: var(--color-surface-z4);
171
+ }
@@ -0,0 +1,128 @@
1
+ /**
2
+ * List - Zen-Sumi Theme Styles
3
+ *
4
+ * Transparent default. Paper-2 on hover. Ink bg + paper text on active.
5
+ * Primary (shu) accent on active icon.
6
+ * No shadows. Clean state transitions through background tone only.
7
+ */
8
+
9
+ /* =============================================================================
10
+ List Container
11
+ ============================================================================= */
12
+
13
+ [data-style='zen-sumi'] [data-list]:focus-within {
14
+ @apply outline-none;
15
+ }
16
+
17
+ /* =============================================================================
18
+ List Items
19
+ ============================================================================= */
20
+
21
+ [data-style='zen-sumi'] [data-list] [data-list-item] {
22
+ @apply text-ink-soft border-0 border-solid border-transparent bg-transparent;
23
+ }
24
+
25
+ [data-style='zen-sumi'] [data-list] a[data-list-item],
26
+ [data-style='zen-sumi'] [data-list] button[data-list-item] {
27
+ @apply text-ink-soft;
28
+ }
29
+
30
+ /* Hover and focus — subtle paper wash */
31
+ [data-style='zen-sumi']
32
+ [data-list]
33
+ [data-list-item]:hover:not(:disabled):not([data-disabled='true']),
34
+ [data-style='zen-sumi']
35
+ [data-list]
36
+ [data-list-item]:focus:not(:disabled):not([data-disabled='true']) {
37
+ @apply bg-paper-mute text-ink-mute bg-none outline-none;
38
+ }
39
+
40
+ /* Active state — ink wash background */
41
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true'] {
42
+ @apply bg-paper-soft text-ink-mute bg-none;
43
+ }
44
+
45
+ /* Active state — richer ink when list has focus */
46
+ [data-style='zen-sumi'] [data-list]:focus-within [data-list-item][data-active='true'] {
47
+ @apply bg-paper-mute text-ink-mute bg-none;
48
+ }
49
+
50
+ /* Active + hover/focus */
51
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true']:hover:not(:disabled),
52
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true']:focus:not(:disabled) {
53
+ @apply bg-paper-mute bg-none;
54
+ }
55
+
56
+ /* =============================================================================
57
+ Item Elements
58
+ ============================================================================= */
59
+
60
+ [data-style='zen-sumi'] [data-list] [data-list-item] [data-item-icon] {
61
+ @apply text-paper-edge;
62
+ }
63
+
64
+ [data-style='zen-sumi'] [data-list] [data-list-item]:hover:not(:disabled) [data-item-icon],
65
+ [data-style='zen-sumi'] [data-list] [data-list-item]:focus:not(:disabled) [data-item-icon] {
66
+ @apply text-ink-soft;
67
+ }
68
+
69
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true'] [data-item-icon] {
70
+ @apply text-primary;
71
+ }
72
+
73
+ [data-style='zen-sumi'] [data-list] [data-list-item] [data-item-description] {
74
+ @apply text-paper-edge;
75
+ }
76
+
77
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true'] [data-item-description] {
78
+ @apply text-ink-soft;
79
+ }
80
+
81
+ [data-style='zen-sumi'] [data-list] [data-list-item] [data-item-badge] {
82
+ @apply text-ink-soft border-paper-mute border bg-transparent bg-none;
83
+ }
84
+
85
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-active='true'] [data-item-badge] {
86
+ @apply text-ink-mute border-paper-edge bg-none;
87
+ }
88
+
89
+ /* =============================================================================
90
+ Groups
91
+ ============================================================================= */
92
+
93
+ [data-style='zen-sumi'] [data-list] [data-list-group] {
94
+ @apply text-paper-edge;
95
+ }
96
+
97
+ [data-style='zen-sumi'] [data-list] [data-list-group]:hover:not(:disabled),
98
+ [data-style='zen-sumi'] [data-list] [data-list-group]:focus:not(:disabled) {
99
+ @apply text-ink-soft bg-none;
100
+ }
101
+
102
+ /* =============================================================================
103
+ Separator
104
+ ============================================================================= */
105
+
106
+ [data-style='zen-sumi'] [data-list] [data-list-separator] {
107
+ @apply bg-paper-mute bg-none;
108
+ }
109
+
110
+ /* =============================================================================
111
+ Multi-Selection
112
+ ============================================================================= */
113
+
114
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-selected='true'] {
115
+ @apply text-primary border-primary border-l-2;
116
+ }
117
+
118
+ [data-style='zen-sumi'] [data-list]:focus-within [data-list-item][data-selected='true'] {
119
+ @apply text-primary border-primary border-l-2;
120
+ }
121
+
122
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-selected='true']:hover:not(:disabled) {
123
+ @apply text-primary;
124
+ }
125
+
126
+ [data-style='zen-sumi'] [data-list] [data-list-item][data-selected='true'] [data-item-icon] {
127
+ @apply text-primary;
128
+ }
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Menu - Zen-Sumi Theme Styles
3
+ *
4
+ * Hairline trigger. Dropdown: paper bg, hairline border, no shadow.
5
+ * Items: transparent default, surface-z2 hover.
6
+ */
7
+
8
+ /* =============================================================================
9
+ Menu Trigger
10
+ ============================================================================= */
11
+
12
+ [data-style='zen-sumi'] [data-menu-trigger] {
13
+ @apply border-paper-mute text-ink-soft border bg-transparent bg-none;
14
+ }
15
+
16
+ [data-style='zen-sumi'] [data-menu-trigger]:hover:not(:disabled) {
17
+ @apply text-ink-mute border-paper-edge bg-none;
18
+ }
19
+
20
+ [data-style='zen-sumi'] [data-menu-trigger]:focus-visible {
21
+ @apply outline-none;
22
+ box-shadow: 0 0 0 1px var(--color-surface-z5);
23
+ }
24
+
25
+ [data-style='zen-sumi'] [data-menu][data-open='true'] [data-menu-trigger] {
26
+ @apply border-ink-soft bg-none;
27
+ }
28
+
29
+ /* Trigger elements */
30
+ [data-style='zen-sumi'] [data-menu-trigger] [data-menu-icon] {
31
+ @apply text-paper-edge;
32
+ }
33
+
34
+ [data-style='zen-sumi'] [data-menu-trigger]:hover:not(:disabled) [data-menu-icon] {
35
+ @apply text-ink-soft;
36
+ }
37
+
38
+ [data-style='zen-sumi'] [data-menu-trigger] [data-menu-arrow] {
39
+ @apply text-paper-edge;
40
+ }
41
+
42
+ /* =============================================================================
43
+ Menu Dropdown — paper bg, hairline border, no shadow
44
+ ============================================================================= */
45
+
46
+ [data-style='zen-sumi'] [data-menu-dropdown] {
47
+ @apply bg-paper border-paper-mute border bg-none;
48
+ box-shadow: none;
49
+ }
50
+
51
+ /* =============================================================================
52
+ Menu Items
53
+ ============================================================================= */
54
+
55
+ [data-style='zen-sumi'] [data-menu-item] {
56
+ @apply text-ink-soft border-0 border-solid border-transparent;
57
+ }
58
+
59
+ [data-style='zen-sumi'] [data-menu-item]:hover:not(:disabled),
60
+ [data-style='zen-sumi'] [data-menu-item]:focus:not(:disabled) {
61
+ @apply bg-paper-mute text-ink-mute bg-none outline-none;
62
+ }
63
+
64
+ /* Item elements */
65
+ [data-style='zen-sumi'] [data-menu-item] [data-item-icon] {
66
+ @apply text-paper-edge;
67
+ }
68
+
69
+ [data-style='zen-sumi'] [data-menu-item]:hover:not(:disabled) [data-item-icon] {
70
+ @apply text-ink-soft;
71
+ }
72
+
73
+ [data-style='zen-sumi'] [data-menu-item] [data-item-description] {
74
+ @apply text-paper-edge;
75
+ }
76
+
77
+ /* =============================================================================
78
+ Groups
79
+ ============================================================================= */
80
+
81
+ [data-style='zen-sumi'] [data-menu-group] {
82
+ @apply text-paper-edge;
83
+ }
84
+
85
+ /* =============================================================================
86
+ Divider
87
+ ============================================================================= */
88
+
89
+ [data-style='zen-sumi'] [data-menu-separator] {
90
+ @apply bg-paper-mute bg-none;
91
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Message - Zen-Sumi Theme Styles
3
+ *
4
+ * Restrained message banners. No shadows. Light tint bg with hairline border.
5
+ */
6
+
7
+ [data-style='zen-sumi'] [data-message-root][data-type='error'] {
8
+ @apply bg-error-soft border-error-soft text-error;
9
+ }
10
+ [data-style='zen-sumi'] [data-message-root][data-type='error'] [data-message-icon],
11
+ [data-style='zen-sumi'] [data-message-root][data-type='error'] [data-message-dismiss] {
12
+ @apply text-error;
13
+ }
14
+
15
+ [data-style='zen-sumi'] [data-message-root][data-type='warning'] {
16
+ @apply bg-warning-soft border-warning-soft text-warning;
17
+ }
18
+ [data-style='zen-sumi'] [data-message-root][data-type='warning'] [data-message-icon],
19
+ [data-style='zen-sumi'] [data-message-root][data-type='warning'] [data-message-dismiss] {
20
+ @apply text-warning;
21
+ }
22
+
23
+ [data-style='zen-sumi'] [data-message-root][data-type='info'] {
24
+ @apply bg-info-soft border-info-soft text-info;
25
+ }
26
+ [data-style='zen-sumi'] [data-message-root][data-type='info'] [data-message-icon],
27
+ [data-style='zen-sumi'] [data-message-root][data-type='info'] [data-message-dismiss] {
28
+ @apply text-info;
29
+ }
30
+
31
+ [data-style='zen-sumi'] [data-message-root][data-type='success'] {
32
+ @apply bg-success-soft border-success-soft text-success;
33
+ }
34
+ [data-style='zen-sumi'] [data-message-root][data-type='success'] [data-message-icon],
35
+ [data-style='zen-sumi'] [data-message-root][data-type='success'] [data-message-dismiss] {
36
+ @apply text-success;
37
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Range - Zen-Sumi Theme Styles
3
+ *
4
+ * Surface-z3 track. Primary (shu) fill for selected range.
5
+ * Paper-z0 thumb with primary border.
6
+ */
7
+
8
+ /* =============================================================================
9
+ Track
10
+ ============================================================================= */
11
+
12
+ [data-style='zen-sumi'] [data-range-bar] {
13
+ @apply bg-paper-mute;
14
+ }
15
+
16
+ [data-style='zen-sumi'] [data-range-selected] {
17
+ @apply bg-primary bg-none;
18
+ }
19
+
20
+ /* =============================================================================
21
+ Thumb
22
+ ============================================================================= */
23
+
24
+ [data-style='zen-sumi'] [data-range-thumb] {
25
+ @apply bg-paper border-primary border-2;
26
+ }
27
+
28
+ [data-style='zen-sumi'] [data-range-thumb][data-sliding] {
29
+ @apply bg-primary;
30
+ }
31
+
32
+ [data-style='zen-sumi'] [data-range-thumb]:focus-visible {
33
+ @apply bg-primary;
34
+ }
35
+
36
+ /* =============================================================================
37
+ Ticks
38
+ ============================================================================= */
39
+
40
+ [data-style='zen-sumi'] [data-range-tick] {
41
+ @apply text-paper-edge;
42
+ }
43
+
44
+ [data-style='zen-sumi'] [data-tick-bar] {
45
+ @apply border-paper-mute;
46
+ }
47
+
48
+ [data-style='zen-sumi'] [data-tick-label] {
49
+ @apply text-paper-edge;
50
+ }
51
+
52
+ /* =============================================================================
53
+ Disabled
54
+ ============================================================================= */
55
+
56
+ [data-style='zen-sumi'] [data-range][data-disabled] [data-range-thumb] {
57
+ @apply bg-paper-mute border-paper-mute;
58
+ }
59
+
60
+ [data-style='zen-sumi'] [data-range][data-disabled] [data-range-selected] {
61
+ @apply bg-paper-mute;
62
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * SearchFilter - Zen-Sumi Theme Styles
3
+ *
4
+ * Hairline bordered input. Focus: border darkens. No ring glow.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Input
9
+ ============================================================================= */
10
+
11
+ [data-style='zen-sumi'] [data-search-input] {
12
+ @apply text-ink-mute border-paper-mute border bg-transparent;
13
+ }
14
+
15
+ [data-style='zen-sumi'] [data-search-input]:focus {
16
+ @apply border-ink-soft outline-none;
17
+ }
18
+
19
+ [data-style='zen-sumi'] [data-search-input]::placeholder {
20
+ @apply text-paper-edge;
21
+ }
22
+
23
+ /* =============================================================================
24
+ Clear Button
25
+ ============================================================================= */
26
+
27
+ [data-style='zen-sumi'] [data-search-clear] {
28
+ @apply text-paper-edge;
29
+ }
30
+
31
+ [data-style='zen-sumi'] [data-search-clear]:hover {
32
+ @apply text-ink-soft;
33
+ }
34
+
35
+ /* =============================================================================
36
+ Tags
37
+ ============================================================================= */
38
+
39
+ [data-style='zen-sumi'] [data-search-tag] {
40
+ @apply text-ink-soft border-paper-mute border bg-transparent bg-none;
41
+ }
42
+
43
+ [data-style='zen-sumi'] [data-search-tag-remove] {
44
+ @apply text-paper-edge;
45
+ }
46
+
47
+ [data-style='zen-sumi'] [data-search-tag-remove]:hover {
48
+ @apply text-ink-mute;
49
+ }