@rokkit/themes 1.0.0-next.125 → 1.0.0-next.128

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 (137) hide show
  1. package/README.md +118 -9
  2. package/build.mjs +237 -0
  3. package/package.json +43 -28
  4. package/src/base/breadcrumbs.css +46 -0
  5. package/src/base/button.css +247 -0
  6. package/src/base/card.css +36 -0
  7. package/src/base/carousel.css +122 -12
  8. package/src/base/connector.css +92 -0
  9. package/src/base/display.css +91 -0
  10. package/src/base/floating-action.css +388 -0
  11. package/src/base/floating-navigation.css +381 -0
  12. package/src/base/grid.css +93 -0
  13. package/src/base/index.css +39 -0
  14. package/src/base/input.css +198 -39
  15. package/src/base/item.css +78 -0
  16. package/src/base/list.css +179 -0
  17. package/src/base/menu.css +274 -0
  18. package/src/base/pill.css +57 -0
  19. package/src/base/progress.css +28 -15
  20. package/src/base/range.css +121 -0
  21. package/src/base/rating.css +40 -0
  22. package/src/base/reveal.css +37 -0
  23. package/src/base/search-filter.css +132 -0
  24. package/src/base/select.css +411 -0
  25. package/src/base/shine.css +14 -0
  26. package/src/base/stepper.css +140 -0
  27. package/src/base/switch.css +152 -0
  28. package/src/base/table.css +143 -33
  29. package/src/base/tabs.css +171 -0
  30. package/src/base/tilt.css +14 -0
  31. package/src/base/timeline.css +84 -0
  32. package/src/base/toggle.css +138 -0
  33. package/src/base/toolbar.css +337 -0
  34. package/src/base/tree.css +195 -11
  35. package/src/base/upload-progress.css +155 -0
  36. package/src/base/upload-target.css +67 -0
  37. package/src/glass/button.css +152 -0
  38. package/src/glass/floating-action.css +61 -0
  39. package/src/glass/floating-navigation.css +74 -0
  40. package/src/glass/index.css +23 -0
  41. package/src/glass/input.css +124 -0
  42. package/src/glass/list.css +122 -0
  43. package/src/glass/menu.css +92 -0
  44. package/src/glass/range.css +61 -0
  45. package/src/glass/search-filter.css +49 -0
  46. package/src/glass/select.css +178 -0
  47. package/src/glass/switch.css +28 -0
  48. package/src/glass/table.css +87 -0
  49. package/src/glass/tabs.css +58 -0
  50. package/src/glass/timeline.css +46 -0
  51. package/src/glass/toggle.css +48 -0
  52. package/src/glass/toolbar.css +84 -0
  53. package/src/glass/tree.css +104 -0
  54. package/src/index.css +18 -0
  55. package/src/index.js +25 -2
  56. package/src/material/button.css +153 -0
  57. package/src/material/floating-action.css +60 -0
  58. package/src/material/floating-navigation.css +74 -0
  59. package/src/material/index.css +23 -0
  60. package/src/material/input.css +118 -40
  61. package/src/material/list.css +90 -64
  62. package/src/material/menu.css +92 -0
  63. package/src/material/range.css +62 -0
  64. package/src/material/search-filter.css +49 -0
  65. package/src/material/select.css +170 -0
  66. package/src/material/switch.css +28 -0
  67. package/src/material/table.css +87 -0
  68. package/src/material/tabs.css +62 -0
  69. package/src/material/timeline.css +46 -0
  70. package/src/material/toggle.css +48 -0
  71. package/src/material/toolbar.css +84 -0
  72. package/src/material/tree.css +100 -0
  73. package/src/minimal/button.css +152 -0
  74. package/src/minimal/floating-action.css +59 -0
  75. package/src/minimal/floating-navigation.css +70 -0
  76. package/src/minimal/index.css +23 -0
  77. package/src/minimal/input.css +81 -120
  78. package/src/minimal/list.css +90 -104
  79. package/src/minimal/menu.css +88 -0
  80. package/src/minimal/range.css +61 -0
  81. package/src/minimal/search-filter.css +49 -0
  82. package/src/minimal/select.css +168 -0
  83. package/src/minimal/switch.css +28 -0
  84. package/src/minimal/table.css +87 -0
  85. package/src/minimal/tabs.css +53 -31
  86. package/src/minimal/timeline.css +45 -0
  87. package/src/minimal/toggle.css +48 -0
  88. package/src/minimal/toolbar.css +84 -0
  89. package/src/minimal/tree.css +100 -0
  90. package/src/rokkit/button.css +225 -0
  91. package/src/rokkit/connector.css +11 -0
  92. package/src/rokkit/floating-action.css +65 -0
  93. package/src/rokkit/floating-navigation.css +83 -0
  94. package/src/rokkit/grid.css +46 -0
  95. package/src/rokkit/index.css +27 -0
  96. package/src/rokkit/input.css +130 -0
  97. package/src/rokkit/list.css +127 -0
  98. package/src/rokkit/menu.css +93 -0
  99. package/src/rokkit/range.css +62 -0
  100. package/src/rokkit/search-filter.css +49 -0
  101. package/src/rokkit/select.css +185 -0
  102. package/src/rokkit/switch.css +28 -0
  103. package/src/rokkit/table.css +68 -38
  104. package/src/rokkit/tabs.css +82 -0
  105. package/src/rokkit/timeline.css +46 -0
  106. package/src/rokkit/toggle.css +36 -52
  107. package/src/rokkit/toolbar.css +84 -0
  108. package/src/rokkit/tree.css +123 -0
  109. package/src/rokkit/upload-progress.css +102 -0
  110. package/src/rokkit/upload-target.css +50 -0
  111. package/src/base/alert.css +0 -30
  112. package/src/base/animation.css +0 -37
  113. package/src/base/atoms.css +0 -58
  114. package/src/base/core.css +0 -107
  115. package/src/base/layout.css +0 -65
  116. package/src/base/molecules.css +0 -109
  117. package/src/base/organisms.css +0 -66
  118. package/src/base/scrollbar.css +0 -16
  119. package/src/base/toggles.css +0 -17
  120. package/src/base.css +0 -13
  121. package/src/markdown.css +0 -955
  122. package/src/material/base.css +0 -12
  123. package/src/material/form.css +0 -30
  124. package/src/material.css +0 -9
  125. package/src/minimal/base.css +0 -8
  126. package/src/minimal/form.css +0 -87
  127. package/src/minimal.css +0 -11
  128. package/src/mixins/mixins.scss +0 -66
  129. package/src/mixins/palette.scss +0 -48
  130. package/src/prism.css +0 -102
  131. package/src/rokkit/alert.css +0 -4
  132. package/src/rokkit/atoms.css +0 -52
  133. package/src/rokkit/carousel.css +0 -19
  134. package/src/rokkit/layout.css +0 -17
  135. package/src/rokkit/molecules.css +0 -124
  136. package/src/rokkit/organisms.css +0 -307
  137. package/src/rokkit.css +0 -11
@@ -0,0 +1,67 @@
1
+ /**
2
+ * UploadTarget - Base Structural Styles
3
+ *
4
+ * Layout: flex centering, dashed border, sizing, transitions.
5
+ * No colors or visual theming - those belong in theme styles.
6
+ */
7
+
8
+ /* =============================================================================
9
+ Drop Zone Container
10
+ ============================================================================= */
11
+
12
+ [data-upload-target] {
13
+ display: flex;
14
+ flex-direction: column;
15
+ align-items: center;
16
+ justify-content: center;
17
+ gap: 0.75rem;
18
+ min-height: 10rem;
19
+ padding: 2rem;
20
+ border: 2px dashed currentColor;
21
+ border-radius: 0.5rem;
22
+ cursor: pointer;
23
+ transition:
24
+ border-color 150ms ease,
25
+ background-color 150ms ease;
26
+ user-select: none;
27
+ }
28
+
29
+ [data-upload-target]:focus {
30
+ outline: none;
31
+ }
32
+
33
+ [data-upload-target][data-disabled] {
34
+ pointer-events: none;
35
+ opacity: 0.5;
36
+ cursor: not-allowed;
37
+ }
38
+
39
+ /* =============================================================================
40
+ Upload Icon
41
+ ============================================================================= */
42
+
43
+ [data-upload-target] [data-upload-icon] {
44
+ font-size: 2rem;
45
+ }
46
+
47
+ /* =============================================================================
48
+ Browse Button
49
+ ============================================================================= */
50
+
51
+ [data-upload-target] [data-upload-button] {
52
+ padding: 0.375rem 0.75rem;
53
+ border-radius: 0.375rem;
54
+ font-size: 0.875rem;
55
+ font-weight: 500;
56
+ cursor: pointer;
57
+ border: 1px solid currentColor;
58
+ background: transparent;
59
+ transition:
60
+ background-color 150ms ease,
61
+ color 150ms ease;
62
+ }
63
+
64
+ [data-upload-target] [data-upload-button]:disabled {
65
+ pointer-events: none;
66
+ opacity: 0.5;
67
+ }
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Button - Glass Theme Styles
3
+ *
4
+ * Glassmorphism styling with blur and transparency.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Default Style (filled)
9
+ ============================================================================= */
10
+
11
+ [data-style='glass'] [data-button][data-style='default'][data-variant='default'],
12
+ [data-style='glass'] [data-button]:not([data-style])[data-variant='default'],
13
+ [data-style='glass'] [data-button][data-style='default']:not([data-variant]),
14
+ [data-style='glass'] [data-button]:not([data-style]):not([data-variant]) {
15
+ @apply backdrop-blur-md border shadow-sm bg-surface-z2/70 border-surface-z5/20 text-surface-z9;
16
+ }
17
+
18
+ [data-style='glass'] [data-button][data-style='default'][data-variant='primary'],
19
+ [data-style='glass'] [data-button]:not([data-style])[data-variant='primary'] {
20
+ @apply backdrop-blur-md shadow-sm bg-primary-z5/80 text-on-primary;
21
+ }
22
+
23
+ [data-style='glass'] [data-button][data-style='default'][data-variant='secondary'],
24
+ [data-style='glass'] [data-button]:not([data-style])[data-variant='secondary'] {
25
+ @apply backdrop-blur-md shadow-sm bg-secondary-z4/80 text-on-secondary;
26
+ }
27
+
28
+ [data-style='glass'] [data-button][data-style='default'][data-variant='danger'],
29
+ [data-style='glass'] [data-button]:not([data-style])[data-variant='danger'] {
30
+ @apply backdrop-blur-md shadow-sm bg-danger-z4/80 text-on-danger;
31
+ }
32
+
33
+ /* =============================================================================
34
+ Outline Style
35
+ ============================================================================= */
36
+
37
+ [data-style='glass'] [data-button][data-style='outline'][data-variant='default'],
38
+ [data-style='glass'] [data-button][data-style='outline']:not([data-variant]) {
39
+ @apply border-surface-z5/30 text-surface-z8 border bg-transparent;
40
+ }
41
+
42
+ [data-style='glass'] [data-button][data-style='outline'][data-variant='primary'] {
43
+ @apply border-primary-z4/40 text-primary-z6 border bg-transparent;
44
+ }
45
+
46
+ [data-style='glass'] [data-button][data-style='outline'][data-variant='secondary'] {
47
+ @apply border-secondary-z4/40 text-secondary-z6 border bg-transparent;
48
+ }
49
+
50
+ [data-style='glass'] [data-button][data-style='outline'][data-variant='danger'] {
51
+ @apply border-danger-z4/40 text-danger-z4 border bg-transparent;
52
+ }
53
+
54
+ /* =============================================================================
55
+ Ghost Style
56
+ ============================================================================= */
57
+
58
+ [data-style='glass'] [data-button][data-style='ghost'] {
59
+ @apply border-transparent bg-transparent;
60
+ }
61
+
62
+ [data-style='glass'] [data-button][data-style='ghost'][data-variant='default'],
63
+ [data-style='glass'] [data-button][data-style='ghost']:not([data-variant]) {
64
+ @apply text-surface-z8;
65
+ }
66
+
67
+ [data-style='glass'] [data-button][data-style='ghost'][data-variant='primary'] {
68
+ @apply text-primary-z6;
69
+ }
70
+
71
+ [data-style='glass'] [data-button][data-style='ghost'][data-variant='secondary'] {
72
+ @apply text-secondary-z6;
73
+ }
74
+
75
+ [data-style='glass'] [data-button][data-style='ghost'][data-variant='danger'] {
76
+ @apply text-danger-z4;
77
+ }
78
+
79
+ /* =============================================================================
80
+ Gradient Style
81
+ ============================================================================= */
82
+
83
+ [data-style='glass'] [data-button][data-style='gradient'][data-variant='default'],
84
+ [data-style='glass'] [data-button][data-style='gradient']:not([data-variant]) {
85
+ @apply from-surface-z3/80 to-surface-z1/60 text-surface-z10 backdrop-blur-md bg-gradient-to-br;
86
+ }
87
+
88
+ [data-style='glass'] [data-button][data-style='gradient'][data-variant='primary'] {
89
+ @apply from-primary-z5/80 to-primary-z3/60 text-on-primary backdrop-blur-md bg-gradient-to-br;
90
+ }
91
+
92
+ [data-style='glass'] [data-button][data-style='gradient'][data-variant='secondary'] {
93
+ @apply from-secondary-z5/80 to-secondary-z3/60 text-on-secondary backdrop-blur-md bg-gradient-to-br;
94
+ }
95
+
96
+ [data-style='glass'] [data-button][data-style='gradient'][data-variant='danger'] {
97
+ @apply from-danger-z5/80 to-danger-z3/60 text-on-danger backdrop-blur-md bg-gradient-to-br;
98
+ }
99
+
100
+ [data-style='glass'] [data-button][data-style='gradient']:hover:not(:disabled):not([data-disabled]) {
101
+ filter: brightness(1.1);
102
+ }
103
+
104
+ /* =============================================================================
105
+ Link Style
106
+ ============================================================================= */
107
+
108
+ [data-style='glass'] [data-button][data-style='link'][data-variant='default'],
109
+ [data-style='glass'] [data-button][data-style='link']:not([data-variant]) {
110
+ @apply text-surface-z8;
111
+ }
112
+
113
+ [data-style='glass'] [data-button][data-style='link'][data-variant='primary'] {
114
+ @apply text-primary-z6;
115
+ }
116
+
117
+ [data-style='glass'] [data-button][data-style='link'][data-variant='secondary'] {
118
+ @apply text-secondary-z6;
119
+ }
120
+
121
+ [data-style='glass'] [data-button][data-style='link'][data-variant='danger'] {
122
+ @apply text-danger-z4;
123
+ }
124
+
125
+ [data-style='glass'] [data-button][data-style='link']:hover:not(:disabled):not([data-disabled]) {
126
+ @apply text-primary-z7;
127
+ }
128
+
129
+ /* =============================================================================
130
+ Hover States
131
+ ============================================================================= */
132
+
133
+ [data-style='glass'] [data-button][data-style='default']:hover:not(:disabled):not([data-disabled]),
134
+ [data-style='glass'] [data-button]:not([data-style]):hover:not(:disabled):not([data-disabled]) {
135
+ @apply shadow-md;
136
+ }
137
+
138
+ [data-style='glass'] [data-button][data-style='outline']:hover:not(:disabled):not([data-disabled]) {
139
+ @apply bg-surface-z2/40;
140
+ }
141
+
142
+ [data-style='glass'] [data-button][data-style='ghost']:hover:not(:disabled):not([data-disabled]) {
143
+ @apply bg-surface-z2/30;
144
+ }
145
+
146
+ /* =============================================================================
147
+ Focus
148
+ ============================================================================= */
149
+
150
+ [data-style='glass'] [data-button]:focus-visible {
151
+ @apply outline-none ring-2 ring-surface-z5/40;
152
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * FloatingAction - Glass Theme Styles
3
+ *
4
+ * Glassmorphism styling with blur and transparency.
5
+ */
6
+
7
+ /* =============================================================================
8
+ FAB Trigger Button
9
+ ============================================================================= */
10
+
11
+ [data-style='glass'] [data-fab-trigger] {
12
+ @apply text-white backdrop-blur-md bg-primary-z5/80 shadow-lg;
13
+ }
14
+
15
+ [data-style='glass'] [data-fab-trigger]:hover:not(:disabled) {
16
+ @apply bg-primary-z5/90 shadow-xl;
17
+ transform: scale(1.05);
18
+ }
19
+
20
+ [data-style='glass'] [data-fab-trigger]:focus-visible {
21
+ @apply outline-none ring-2 ring-surface-z5/40;
22
+ }
23
+
24
+ [data-style='glass'] [data-fab][data-open='true'] [data-fab-trigger] {
25
+ @apply bg-surface-z6/80;
26
+ transform: rotate(45deg);
27
+ }
28
+
29
+ /* =============================================================================
30
+ FAB Items
31
+ ============================================================================= */
32
+
33
+ [data-style='glass'] [data-fab-item] {
34
+ @apply text-surface-z9 backdrop-blur-md border shadow-md bg-surface-z1/70 border-surface-z5/20;
35
+ }
36
+
37
+ [data-style='glass'] [data-fab-item]:hover:not(:disabled) {
38
+ @apply text-surface-z10 bg-surface-z2/80 shadow-lg;
39
+ }
40
+
41
+ [data-style='glass'] [data-fab-item]:focus-visible {
42
+ @apply outline-none ring-2 ring-surface-z5/40;
43
+ }
44
+
45
+ /* Item icon */
46
+ [data-style='glass'] [data-fab-item] [data-fab-item-icon] {
47
+ @apply text-primary-z6;
48
+ }
49
+
50
+ [data-style='glass'] [data-fab-item]:hover:not(:disabled) [data-fab-item-icon] {
51
+ @apply text-primary-z7;
52
+ }
53
+
54
+ /* =============================================================================
55
+ Backdrop
56
+ ============================================================================= */
57
+
58
+ [data-style='glass'] [data-fab-backdrop] {
59
+ background: rgba(0, 0, 0, 0.3);
60
+ backdrop-filter: blur(4px);
61
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * FloatingNavigation - Glass Theme Styles
3
+ *
4
+ * Glassmorphism styling with blur and transparency.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Container
9
+ ============================================================================= */
10
+
11
+ [data-style='glass'] [data-floating-nav] {
12
+ @apply backdrop-blur-xl border shadow-xl bg-surface-z1/70 border-surface-z5/20;
13
+ }
14
+
15
+ /* =============================================================================
16
+ Header
17
+ ============================================================================= */
18
+
19
+ [data-style='glass'] [data-floating-nav-title] {
20
+ @apply text-surface-z6;
21
+ }
22
+
23
+ [data-style='glass'] [data-floating-nav-pin] {
24
+ @apply text-surface-z6;
25
+ }
26
+
27
+ [data-style='glass'] [data-floating-nav-pin]:hover {
28
+ @apply text-primary-z6;
29
+ }
30
+
31
+ [data-style='glass'] [data-floating-nav-pin][aria-pressed='true'] {
32
+ @apply text-primary-z7;
33
+ }
34
+
35
+ /* =============================================================================
36
+ Items
37
+ ============================================================================= */
38
+
39
+ [data-style='glass'] [data-floating-nav-item] {
40
+ @apply text-surface-z8;
41
+ }
42
+
43
+ [data-style='glass'] [data-floating-nav-item]:hover {
44
+ @apply text-surface-z10 bg-surface-z2/50;
45
+ }
46
+
47
+ [data-style='glass'] [data-floating-nav-item][data-active] {
48
+ @apply text-primary-z7 bg-primary-z5/10;
49
+ }
50
+
51
+ [data-style='glass'] [data-floating-nav-item]:focus-visible {
52
+ @apply outline-none ring-2 ring-surface-z5/40;
53
+ }
54
+
55
+ /* Icon */
56
+ [data-style='glass'] [data-floating-nav-icon] {
57
+ @apply text-surface-z6;
58
+ }
59
+
60
+ [data-style='glass'] [data-floating-nav-item]:hover [data-floating-nav-icon] {
61
+ @apply text-primary-z6;
62
+ }
63
+
64
+ [data-style='glass'] [data-floating-nav-item][data-active] [data-floating-nav-icon] {
65
+ @apply text-primary-z7;
66
+ }
67
+
68
+ /* =============================================================================
69
+ Active Indicator
70
+ ============================================================================= */
71
+
72
+ [data-style='glass'] [data-floating-nav-indicator] {
73
+ @apply bg-primary-z5/80;
74
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @rokkit/themes - Glass Theme
3
+ *
4
+ * Glassmorphism styling with blur, transparency, and subtle borders.
5
+ * Use with data-style="glass" wrapper.
6
+ */
7
+
8
+ @import './button.css';
9
+ @import './input.css';
10
+ @import './toolbar.css';
11
+ @import './tabs.css';
12
+ @import './toggle.css';
13
+ @import './switch.css';
14
+ @import './list.css';
15
+ @import './tree.css';
16
+ @import './select.css';
17
+ @import './menu.css';
18
+ @import './floating-action.css';
19
+ @import './table.css';
20
+ @import './search-filter.css';
21
+ @import './range.css';
22
+ @import './timeline.css';
23
+ @import './floating-navigation.css';
@@ -0,0 +1,124 @@
1
+ /* Glass Theme - Form field and input styles
2
+ * Glassmorphism inputs with blur, transparency, and subtle borders.
3
+ */
4
+
5
+ /* Field root: text color, spacing */
6
+ [data-style='glass'] [data-field-root] {
7
+ @apply text-surface-z9 gap-1 rounded-md transition-all;
8
+ }
9
+
10
+ /* Disabled state */
11
+ [data-style='glass'] [data-field-root][data-field-disabled] [data-input-root] {
12
+ @apply cursor-not-allowed opacity-50;
13
+ }
14
+
15
+ /* Labels */
16
+ [data-style='glass'] [data-field] > label {
17
+ @apply text-surface-z7;
18
+ }
19
+
20
+ [data-style='glass'] [data-form-root] label {
21
+ @apply text-surface-z7;
22
+ }
23
+
24
+ /* Info field value */
25
+ [data-style='glass'] [data-field-info] {
26
+ @apply text-primary-z6 font-medium;
27
+ }
28
+
29
+ /* Separator */
30
+ [data-style='glass'] [data-form-separator] {
31
+ @apply border-surface-z5/20;
32
+ }
33
+
34
+ /* Input root: glass container — p-0.5 gives a small gap between border and content.
35
+ * No backdrop-blur here: it creates a stacking context that traps select dropdowns.
36
+ * The semi-transparent background provides the frosted glass look. */
37
+ [data-style='glass'] [data-input-root] {
38
+ @apply flex items-center rounded-md p-0.5 transition-all border bg-surface-z1/70 border-surface-z5/20;
39
+ }
40
+
41
+ [data-style='glass'] [data-input-root]:hover {
42
+ @apply border-surface-z5/30;
43
+ }
44
+
45
+ [data-style='glass'] [data-input-root]:focus-within {
46
+ @apply border-primary-z5/50 bg-surface-z1/70;
47
+ }
48
+
49
+ /* Standard inputs inside wrapper */
50
+ [data-style='glass'] [data-input-root] input:not([type='checkbox'], [type='radio'], [type='color']),
51
+ [data-style='glass'] [data-input-root] select {
52
+ @apply bg-transparent text-surface-z8 rounded-md border-none px-3 focus:outline-none;
53
+ font-size: 0.875rem;
54
+ height: 2.25rem;
55
+ }
56
+
57
+ [data-style='glass'] [data-input-root] textarea {
58
+ @apply bg-transparent text-surface-z8 rounded-md border-none px-3 py-2 focus:outline-none;
59
+ font-size: 0.875rem;
60
+ }
61
+
62
+ /* Select inside input-root: suppress standalone glass select styles */
63
+ [data-style='glass'] [data-input-root] [data-select-trigger] {
64
+ @apply border-none bg-transparent text-surface-z8 rounded-md shadow-none ring-0 focus:outline-none;
65
+ background-image: none;
66
+ backdrop-filter: none;
67
+ }
68
+
69
+ /* Suppress standalone select open-state when inside input-root */
70
+ [data-style='glass'] [data-input-root] [data-select][data-open='true'] [data-select-trigger] {
71
+ @apply border-none ring-0 shadow-none;
72
+ }
73
+
74
+ /* Placeholders */
75
+ [data-style='glass'] [data-input-root] input::placeholder,
76
+ [data-style='glass'] [data-input-root] textarea::placeholder {
77
+ @apply text-surface-z5;
78
+ }
79
+
80
+ /* Checkbox field */
81
+ [data-style='glass'] [data-field-type='checkbox'] [data-field] {
82
+ @apply flex items-center leading-loose;
83
+ }
84
+
85
+ /* Checkbox icon */
86
+ [data-style='glass'] [data-checkbox-icon] {
87
+ @apply text-surface-z5 cursor-pointer transition-colors text-lg rounded;
88
+ }
89
+
90
+ [data-style='glass'] [data-checkbox-icon]:focus-visible {
91
+ @apply outline-2 outline-primary-z4 outline-offset-2;
92
+ }
93
+
94
+ [data-style='glass'] [data-checkbox-root][data-variant='custom']:has(input:checked) [data-checkbox-icon] {
95
+ @apply text-primary-z6;
96
+ }
97
+
98
+ [data-style='glass'] [data-field] textarea {
99
+ @apply resize-vertical min-h-20 py-2;
100
+ }
101
+
102
+ /* Color input */
103
+ [data-style='glass'] [data-field-type='color'] [data-input-root] {
104
+ @apply overflow-hidden;
105
+ }
106
+
107
+ [data-style='glass'] [data-field-type='color'] input[type='color'] {
108
+ @apply bg-transparent flex min-h-11 flex-1 rounded-md focus:outline-none;
109
+ }
110
+
111
+ /* Description and message */
112
+ [data-style='glass'] [data-description],
113
+ [data-style='glass'] [data-message] {
114
+ @apply text-surface-z6;
115
+ }
116
+
117
+ [data-style='glass'] [data-message] {
118
+ @apply rounded-md px-2 py-1;
119
+ }
120
+
121
+ /* Error state */
122
+ [data-style='glass'] [data-field-root][data-field-state='fail'] [data-input-root] {
123
+ @apply border-danger-z5/50;
124
+ }
@@ -0,0 +1,122 @@
1
+ /**
2
+ * List - Glass Theme Styles
3
+ *
4
+ * Glassmorphism styling with blur and transparency.
5
+ */
6
+
7
+ /* =============================================================================
8
+ List Container
9
+ ============================================================================= */
10
+
11
+ [data-style='glass'] [data-list]:focus-within {
12
+ @apply ring-1 rounded ring-surface-z5/40;
13
+ }
14
+
15
+ /* =============================================================================
16
+ List Items
17
+ ============================================================================= */
18
+
19
+ [data-style='glass'] [data-list] [data-list-item] {
20
+ @apply text-surface-z8;
21
+ }
22
+
23
+ [data-style='glass'] [data-list] a[data-list-item],
24
+ [data-style='glass'] [data-list] button[data-list-item] {
25
+ @apply text-surface-z7;
26
+ }
27
+
28
+ /* Hover and focus (keyboard navigation) */
29
+ [data-style='glass'] [data-list] [data-list-item]:hover:not(:disabled):not([data-disabled='true']),
30
+ [data-style='glass'] [data-list] [data-list-item]:focus:not(:disabled):not([data-disabled='true']) {
31
+ @apply text-surface-z10 outline-none bg-surface-z2/15;
32
+ }
33
+
34
+ /* Active state — muted when list not focused */
35
+ [data-style='glass'] [data-list] [data-list-item][data-active='true'] {
36
+ @apply bg-surface-z2/15 text-primary-z9;
37
+ }
38
+
39
+ /* Active state — full highlight when list has focus */
40
+ [data-style='glass'] [data-list]:focus-within [data-list-item][data-active='true'] {
41
+ @apply bg-primary-z5/30 text-primary-z9;
42
+ }
43
+
44
+ /* Active + hover/focus */
45
+ [data-style='glass'] [data-list] [data-list-item][data-active='true']:hover:not(:disabled),
46
+ [data-style='glass'] [data-list] [data-list-item][data-active='true']:focus:not(:disabled) {
47
+ @apply bg-primary-z5/40;
48
+ }
49
+
50
+ /* =============================================================================
51
+ Item Elements
52
+ ============================================================================= */
53
+
54
+ [data-style='glass'] [data-list] [data-list-item] [data-item-icon] {
55
+ @apply text-surface-z5;
56
+ }
57
+
58
+ [data-style='glass'] [data-list] [data-list-item]:hover:not(:disabled) [data-item-icon],
59
+ [data-style='glass'] [data-list] [data-list-item]:focus:not(:disabled) [data-item-icon] {
60
+ @apply text-surface-z7;
61
+ }
62
+
63
+ [data-style='glass'] [data-list] [data-list-item][data-active='true'] [data-item-icon] {
64
+ @apply text-primary-z6;
65
+ }
66
+
67
+ [data-style='glass'] [data-list] [data-list-item] [data-item-description] {
68
+ @apply text-surface-z5;
69
+ }
70
+
71
+ [data-style='glass'] [data-list] [data-list-item][data-active='true'] [data-item-description] {
72
+ @apply text-primary-z7;
73
+ }
74
+
75
+ [data-style='glass'] [data-list] [data-list-item] [data-item-badge] {
76
+ @apply text-surface-z6 bg-surface-z2/15;
77
+ }
78
+
79
+ [data-style='glass'] [data-list] [data-list-item][data-active='true'] [data-item-badge] {
80
+ @apply text-primary-z8 bg-primary-z5/25;
81
+ }
82
+
83
+ /* =============================================================================
84
+ Groups
85
+ ============================================================================= */
86
+
87
+ [data-style='glass'] [data-list] [data-list-group] {
88
+ @apply text-surface-z6;
89
+ }
90
+
91
+ [data-style='glass'] [data-list] [data-list-group]:hover:not(:disabled),
92
+ [data-style='glass'] [data-list] [data-list-group]:focus:not(:disabled) {
93
+ @apply bg-surface-z3/25 text-surface-z8;
94
+ }
95
+
96
+ /* =============================================================================
97
+ Separator
98
+ ============================================================================= */
99
+
100
+ [data-style='glass'] [data-list] [data-list-separator] {
101
+ @apply bg-surface-z5/20;
102
+ }
103
+
104
+ /* =============================================================================
105
+ Multi-Selection
106
+ ============================================================================= */
107
+
108
+ [data-style='glass'] [data-list] [data-list-item][data-selected='true'] {
109
+ @apply bg-primary-z5/20 text-primary-z9;
110
+ }
111
+
112
+ [data-style='glass'] [data-list]:focus-within [data-list-item][data-selected='true'] {
113
+ @apply bg-primary-z5/30;
114
+ }
115
+
116
+ [data-style='glass'] [data-list] [data-list-item][data-selected='true']:hover:not(:disabled) {
117
+ @apply bg-primary-z5/40;
118
+ }
119
+
120
+ [data-style='glass'] [data-list] [data-list-item][data-selected='true'] [data-item-icon] {
121
+ @apply text-primary-z6;
122
+ }