@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,87 @@
1
+ /**
2
+ * Table - Minimal Theme Styles
3
+ *
4
+ * Clean, understated table with subtle borders.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Header
9
+ ============================================================================= */
10
+
11
+ [data-style='minimal'] [data-table-header] th {
12
+ @apply text-surface-z6 border-b border-surface-z4;
13
+ }
14
+
15
+ [data-style='minimal'] [data-table-header-cell][data-sortable='true']:hover {
16
+ @apply text-surface-z8;
17
+ }
18
+
19
+ [data-style='minimal'] [data-table-header-cell][data-sort-order='ascending'],
20
+ [data-style='minimal'] [data-table-header-cell][data-sort-order='descending'] {
21
+ @apply text-primary-z7;
22
+ }
23
+
24
+ [data-style='minimal'] [data-table-sort-icon] {
25
+ @apply text-surface-z5;
26
+ }
27
+
28
+ [data-style='minimal'] [data-table-header-cell][data-sort-order='ascending'] [data-table-sort-icon],
29
+ [data-style='minimal'] [data-table-header-cell][data-sort-order='descending'] [data-table-sort-icon] {
30
+ @apply text-primary-z6;
31
+ }
32
+
33
+ /* =============================================================================
34
+ Caption
35
+ ============================================================================= */
36
+
37
+ [data-style='minimal'] [data-table-caption] {
38
+ @apply text-surface-z7;
39
+ }
40
+
41
+ /* =============================================================================
42
+ Rows
43
+ ============================================================================= */
44
+
45
+ [data-style='minimal'] [data-table-row] {
46
+ @apply text-surface-z7 border-b border-surface-z3;
47
+ }
48
+
49
+ [data-style='minimal'] [data-table-row]:hover {
50
+ @apply text-surface-z9;
51
+ }
52
+
53
+ [data-style='minimal'] [data-table-row]:focus {
54
+ @apply text-surface-z9 outline-none ring-1 ring-surface-z5;
55
+ }
56
+
57
+ [data-style='minimal'] [data-table-row][data-selected='true'] {
58
+ @apply text-primary-z8 border-l-primary-z4 border-l-2;
59
+ }
60
+
61
+ /* =============================================================================
62
+ Striped
63
+ ============================================================================= */
64
+
65
+ [data-style='minimal'] [data-striped='true'] [data-table-body] tr:nth-child(even) {
66
+ @apply bg-surface-z1;
67
+ }
68
+
69
+ /* =============================================================================
70
+ Empty
71
+ ============================================================================= */
72
+
73
+ [data-style='minimal'] [data-table-empty] {
74
+ @apply text-surface-z5;
75
+ }
76
+
77
+ /* =============================================================================
78
+ Cell Icon
79
+ ============================================================================= */
80
+
81
+ [data-style='minimal'] [data-table-cell] [data-cell-icon] {
82
+ @apply text-surface-z5;
83
+ }
84
+
85
+ [data-style='minimal'] [data-table-row][data-selected='true'] [data-cell-icon] {
86
+ @apply text-primary-z6;
87
+ }
@@ -1,44 +1,66 @@
1
- [data-style='minimal'] rk-tabs:focus {
2
- @apply outline-none;
3
- }
4
- [data-style='minimal'] rk-tabs {
5
- @apply border-surface-z2 box-border cursor-pointer select-none gap-2 border-b-2 px-2;
6
- }
7
- [data-style='minimal'] rk-tabs .tab {
8
- @apply text-z2 px-2 leading-8;
9
- }
10
- [data-style='minimal'] rk-tabs .tab rk-icon[role='img'] {
11
- @apply h-6 w-6;
1
+ /**
2
+ * Tabs - Minimal Theme Styles
3
+ *
4
+ * Clean, understated tabs with subtle bottom-border indicators.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Tab List
9
+ ============================================================================= */
10
+
11
+ [data-style='minimal'] [data-tabs-list] {
12
+ @apply border-surface-z3 gap-1 border-b;
12
13
  }
13
- [data-style='minimal'] rk-tabs .tab rk-icon[role='button'] {
14
- @apply h-4 w-4;
14
+
15
+ [data-style='minimal'] [data-tabs][data-position='after'] [data-tabs-list] {
16
+ @apply border-b-0 border-t;
15
17
  }
16
- [data-style='minimal'] rk-tabs.is-below {
17
- @apply border-b-none border-t-2;
18
+
19
+ [data-style='minimal'] [data-tabs][data-orientation='vertical'] [data-tabs-list] {
20
+ @apply border-b-0 border-r;
18
21
  }
19
- [data-style='minimal'] rk-tabs > p {
20
- @apply pr-4;
22
+
23
+ [data-style='minimal'] [data-tabs][data-orientation='vertical'][data-position='after'] [data-tabs-list] {
24
+ @apply border-r-0 border-l;
21
25
  }
22
- [data-style='minimal'] rk-tabs .tab {
23
- @apply relative flex items-center gap-1;
26
+
27
+ /* =============================================================================
28
+ Tab Triggers
29
+ ============================================================================= */
30
+
31
+ [data-style='minimal'] [data-tabs-trigger] {
32
+ @apply text-surface-z6 border-b-2 border-b-transparent;
24
33
  }
25
- [data-style='minimal'] rk-tabs .tab > img {
26
- @apply h-5 w-5;
34
+
35
+ [data-style='minimal'] [data-tabs-trigger]:hover:not(:disabled):not([data-disabled]) {
36
+ @apply text-surface-z8 border-b-surface-z4;
27
37
  }
28
38
 
29
- [data-style='minimal'] rk-tabs .tab[aria-selected='true'] {
30
- @apply -mb-2px border-secondary-600 border-b-2;
39
+ /* Selected state */
40
+ [data-style='minimal'] [data-tabs-trigger][data-selected] {
41
+ @apply text-surface-z9 border-b-primary-z4;
31
42
  }
32
- [data-style='minimal'] rk-tabs.is-below .tab {
33
- @apply pt-2px;
43
+
44
+ /* =============================================================================
45
+ Tab Icon
46
+ ============================================================================= */
47
+
48
+ [data-style='minimal'] [data-tabs-trigger] [data-tabs-icon] {
49
+ @apply text-surface-z5;
34
50
  }
35
- [data-style='minimal'] rk-tabs.is-below .tab[aria-selected='true'] {
36
- @apply -mt-2px border-b-none border-b-secondary-600 mb-0 border-t-2;
51
+
52
+ [data-style='minimal'] [data-tabs-trigger]:hover:not(:disabled) [data-tabs-icon] {
53
+ @apply text-surface-z7;
37
54
  }
38
55
 
39
- [data-style='minimal'] .small rk-tabs .tab {
40
- @apply px-2 text-sm leading-8;
56
+ [data-style='minimal'] [data-tabs-trigger][data-selected] [data-tabs-icon] {
57
+ @apply text-surface-z8;
41
58
  }
42
- [data-style='minimal'] .small rk-tabs rk-tab > img {
43
- @apply h-5 w-5;
59
+
60
+ /* =============================================================================
61
+ Tab Panel
62
+ ============================================================================= */
63
+
64
+ [data-style='minimal'] [data-tabs-content] {
65
+ @apply text-surface-z8;
44
66
  }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Timeline - Minimal Theme Styles
3
+ *
4
+ * Clean, understated styling with subtle borders.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Circle
9
+ ============================================================================= */
10
+
11
+ [data-style='minimal'] [data-timeline-circle] {
12
+ @apply border-surface-z4 text-surface-z6;
13
+ }
14
+
15
+ [data-style='minimal'] [data-timeline-item][data-completed] [data-timeline-circle] {
16
+ @apply border-primary text-primary;
17
+ }
18
+
19
+ [data-style='minimal'] [data-timeline-item][data-active] [data-timeline-circle] {
20
+ @apply border-primary text-primary border-b-2;
21
+ }
22
+
23
+ /* =============================================================================
24
+ Connector
25
+ ============================================================================= */
26
+
27
+ [data-style='minimal'] [data-timeline-connector] {
28
+ @apply bg-surface-z3;
29
+ }
30
+
31
+ [data-style='minimal'] [data-timeline-item][data-completed] [data-timeline-connector] {
32
+ @apply bg-primary;
33
+ }
34
+
35
+ /* =============================================================================
36
+ Body
37
+ ============================================================================= */
38
+
39
+ [data-style='minimal'] [data-timeline-title] {
40
+ @apply text-surface-z8;
41
+ }
42
+
43
+ [data-style='minimal'] [data-timeline-description] {
44
+ @apply text-surface-z6;
45
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Toggle - Minimal Theme Styles
3
+ *
4
+ * Clean, understated toggle with subtle borders.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Toggle Container
9
+ ============================================================================= */
10
+
11
+ [data-style='minimal'] [data-toggle] {
12
+ @apply bg-transparent border-surface-z3 rounded-lg border;
13
+ }
14
+
15
+ /* =============================================================================
16
+ Toggle Options
17
+ ============================================================================= */
18
+
19
+ [data-style='minimal'] [data-toggle-option] {
20
+ @apply text-surface-z6 border-0 border-solid border-transparent;
21
+ }
22
+
23
+ [data-style='minimal'] [data-toggle-option]:hover:not(:disabled):not([data-disabled='true']),
24
+ [data-style='minimal'] [data-toggle-option]:focus:not(:disabled):not([data-disabled='true']) {
25
+ @apply text-surface-z8 border-b-surface-z2 border-b-2;
26
+ }
27
+
28
+ /* Selected state */
29
+ [data-style='minimal'] [data-toggle-option][data-selected='true'] {
30
+ @apply text-surface-z9 border-b-primary-z4 border-b-2;
31
+ }
32
+
33
+ /* =============================================================================
34
+ Toggle Icon
35
+ ============================================================================= */
36
+
37
+ [data-style='minimal'] [data-toggle-option] [data-toggle-icon] {
38
+ @apply text-surface-z5;
39
+ }
40
+
41
+ [data-style='minimal'] [data-toggle-option]:hover:not(:disabled) [data-toggle-icon],
42
+ [data-style='minimal'] [data-toggle-option]:focus:not(:disabled) [data-toggle-icon] {
43
+ @apply text-surface-z7;
44
+ }
45
+
46
+ [data-style='minimal'] [data-toggle-option][data-selected='true'] [data-toggle-icon] {
47
+ @apply text-surface-z8;
48
+ }
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Toolbar - Minimal Theme Styles
3
+ *
4
+ * Clean, understated styling with subtle borders.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Toolbar Container
9
+ ============================================================================= */
10
+
11
+ [data-style='minimal'] [data-toolbar] {
12
+ @apply bg-transparent;
13
+ }
14
+
15
+ /* Position-based borders */
16
+ [data-style='minimal'] [data-toolbar][data-toolbar-position='top'],
17
+ [data-style='minimal'] [data-toolbar]:not([data-toolbar-position]) {
18
+ @apply border-surface-z3 border-b;
19
+ }
20
+
21
+ [data-style='minimal'] [data-toolbar][data-toolbar-position='bottom'] {
22
+ @apply border-surface-z3 border-t;
23
+ }
24
+
25
+ [data-style='minimal'] [data-toolbar][data-toolbar-position='left'] {
26
+ @apply border-surface-z3 border-r;
27
+ }
28
+
29
+ [data-style='minimal'] [data-toolbar][data-toolbar-position='right'] {
30
+ @apply border-surface-z3 border-l;
31
+ }
32
+
33
+ /* =============================================================================
34
+ Toolbar Items
35
+ ============================================================================= */
36
+
37
+ [data-style='minimal'] [data-toolbar-item] {
38
+ @apply text-surface-z6;
39
+ }
40
+
41
+ [data-style='minimal'] [data-toolbar-item]:hover:not(:disabled):not([data-disabled='true']) {
42
+ @apply text-surface-z9;
43
+ }
44
+
45
+ [data-style='minimal'] [data-toolbar-item]:focus-visible:not(:disabled):not([data-disabled='true']) {
46
+ @apply text-surface-z9 outline-none ring-1 ring-surface-z5;
47
+ }
48
+
49
+ /* Active/pressed state */
50
+ [data-style='minimal'] [data-toolbar-item][data-active='true'] {
51
+ @apply text-primary-z7;
52
+ }
53
+
54
+ [data-style='minimal'] [data-toolbar-item][data-active='true']:hover:not(:disabled) {
55
+ @apply text-primary-z8;
56
+ }
57
+
58
+ /* =============================================================================
59
+ Toolbar Icon
60
+ ============================================================================= */
61
+
62
+ [data-style='minimal'] [data-toolbar-item] [data-toolbar-icon] {
63
+ @apply text-surface-z5;
64
+ }
65
+
66
+ [data-style='minimal'] [data-toolbar-item]:hover:not(:disabled) [data-toolbar-icon] {
67
+ @apply text-surface-z8;
68
+ }
69
+
70
+ [data-style='minimal'] [data-toolbar-item][data-active='true'] [data-toolbar-icon] {
71
+ @apply text-primary-z6;
72
+ }
73
+
74
+ /* =============================================================================
75
+ Separator & Divider
76
+ ============================================================================= */
77
+
78
+ [data-style='minimal'] [data-toolbar-separator] {
79
+ @apply bg-surface-z3;
80
+ }
81
+
82
+ [data-style='minimal'] [data-toolbar-divider] {
83
+ @apply bg-surface-z3;
84
+ }
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Tree - Minimal Theme Styles
3
+ *
4
+ * Clean, understated tree with subtle borders.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Tree Container
9
+ ============================================================================= */
10
+
11
+ [data-style='minimal'] [data-tree]:focus-within {
12
+ @apply outline-none;
13
+ }
14
+
15
+ /* =============================================================================
16
+ Tree Toggle Button
17
+ ============================================================================= */
18
+
19
+ [data-style='minimal'] [data-tree-toggle-btn] {
20
+ @apply text-surface-z4;
21
+ }
22
+
23
+ [data-style='minimal'] [data-tree-toggle-btn]:hover {
24
+ @apply text-surface-z6;
25
+ }
26
+
27
+ /* =============================================================================
28
+ Tree Item Content
29
+ ============================================================================= */
30
+
31
+ [data-style='minimal'] [data-tree-item-content] {
32
+ @apply text-surface-z7;
33
+ }
34
+
35
+ [data-style='minimal'] [data-tree-item-content]:hover:not(:disabled),
36
+ [data-style='minimal'] [data-tree-item-content]:focus:not(:disabled) {
37
+ @apply text-surface-z9 outline-none;
38
+ }
39
+
40
+ /* Focus visible for keyboard navigation */
41
+ [data-style='minimal'] [data-tree-item-content]:focus-visible {
42
+ @apply outline-none ring-1 ring-surface-z5;
43
+ }
44
+
45
+ /* Active/selected state */
46
+ [data-style='minimal'] [data-tree-item-content][data-active='true'] {
47
+ @apply text-primary-z7 border-primary-z4 border-l-2;
48
+ }
49
+
50
+ [data-style='minimal'] [data-tree-item-content][data-active='true']:hover:not(:disabled) {
51
+ @apply text-primary-z8;
52
+ }
53
+
54
+ /* =============================================================================
55
+ Item Elements
56
+ ============================================================================= */
57
+
58
+ [data-style='minimal'] [data-tree-item-content] [data-item-icon] {
59
+ @apply text-surface-z5;
60
+ }
61
+
62
+ [data-style='minimal'] [data-tree-item-content]:hover:not(:disabled) [data-item-icon] {
63
+ @apply text-surface-z6;
64
+ }
65
+
66
+ [data-style='minimal'] [data-tree-item-content][data-active='true'] [data-item-icon] {
67
+ @apply text-primary-z5;
68
+ }
69
+
70
+ [data-style='minimal'] [data-tree-item-content] [data-item-description] {
71
+ @apply text-surface-z5;
72
+ }
73
+
74
+ [data-style='minimal'] [data-tree-item-content][data-active='true'] [data-item-description] {
75
+ @apply text-primary-z6;
76
+ }
77
+
78
+ [data-style='minimal'] [data-tree-item-content] [data-item-badge] {
79
+ @apply text-surface-z6 bg-transparent border-surface-z4 border;
80
+ }
81
+
82
+ [data-style='minimal'] [data-tree-item-content][data-active='true'] [data-item-badge] {
83
+ @apply text-primary-z7 border-primary-z4;
84
+ }
85
+
86
+ /* =============================================================================
87
+ Multi-Selection
88
+ ============================================================================= */
89
+
90
+ [data-style='minimal'] [data-tree-node][data-selected='true'] [data-tree-item-content] {
91
+ @apply text-primary-z7 border-primary-z3 border-l-2;
92
+ }
93
+
94
+ [data-style='minimal'] [data-tree]:focus-within [data-tree-node][data-selected='true'] [data-tree-item-content] {
95
+ @apply text-primary-z7 border-primary-z4 border-l-2;
96
+ }
97
+
98
+ [data-style='minimal'] [data-tree-node][data-selected='true'] [data-tree-item-content] [data-item-icon] {
99
+ @apply text-primary-z5;
100
+ }
@@ -0,0 +1,225 @@
1
+ /**
2
+ * Button - Rokkit Theme Styles
3
+ *
4
+ * Rich gradients and glowing borders.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Default Style (filled)
9
+ ============================================================================= */
10
+
11
+ /* Default variant */
12
+ [data-style='rokkit'] [data-button][data-style='default'][data-variant='default'],
13
+ [data-style='rokkit'] [data-button]:not([data-style])[data-variant='default'],
14
+ [data-style='rokkit'] [data-button][data-style='default']:not([data-variant]),
15
+ [data-style='rokkit'] [data-button]:not([data-style]):not([data-variant]) {
16
+ @apply from-surface-z3 to-surface-z2 border-surface-z4 text-surface-z8 border bg-gradient-to-b;
17
+ }
18
+
19
+ /* Primary variant */
20
+ [data-style='rokkit'] [data-button][data-style='default'][data-variant='primary'],
21
+ [data-style='rokkit'] [data-button]:not([data-style])[data-variant='primary'] {
22
+ @apply from-primary-z5 to-secondary-z5 border-primary-z5 text-on-primary border bg-gradient-to-b;
23
+ }
24
+
25
+ /* Secondary variant */
26
+ [data-style='rokkit'] [data-button][data-style='default'][data-variant='secondary'],
27
+ [data-style='rokkit'] [data-button]:not([data-style])[data-variant='secondary'] {
28
+ @apply from-secondary-z4 to-secondary-z3 border-secondary-z5 text-on-secondary border bg-gradient-to-b;
29
+ }
30
+
31
+ /* Danger variant */
32
+ [data-style='rokkit'] [data-button][data-style='default'][data-variant='danger'],
33
+ [data-style='rokkit'] [data-button]:not([data-style])[data-variant='danger'] {
34
+ @apply from-danger-z4 to-danger-z3 border-danger-z5 text-on-danger border bg-gradient-to-b;
35
+ }
36
+
37
+ /* =============================================================================
38
+ Outline Style
39
+ ============================================================================= */
40
+
41
+ [data-style='rokkit'] [data-button][data-style='outline'][data-variant='default'],
42
+ [data-style='rokkit'] [data-button][data-style='outline']:not([data-variant]) {
43
+ @apply border-surface-z4 text-surface-z7 border bg-transparent;
44
+ }
45
+
46
+ [data-style='rokkit'] [data-button][data-style='outline'][data-variant='primary'] {
47
+ @apply border-primary-z4 text-primary-z6 border bg-transparent;
48
+ }
49
+
50
+ [data-style='rokkit'] [data-button][data-style='outline'][data-variant='secondary'] {
51
+ @apply border-secondary-z4 text-secondary-z6 border bg-transparent;
52
+ }
53
+
54
+ [data-style='rokkit'] [data-button][data-style='outline'][data-variant='danger'] {
55
+ @apply border-danger-z4 text-danger-z4 border bg-transparent;
56
+ }
57
+
58
+ /* =============================================================================
59
+ Ghost Style
60
+ ============================================================================= */
61
+
62
+ [data-style='rokkit'] [data-button][data-style='ghost'] {
63
+ @apply border-transparent bg-transparent;
64
+ }
65
+
66
+ [data-style='rokkit'] [data-button][data-style='ghost'][data-variant='default'],
67
+ [data-style='rokkit'] [data-button][data-style='ghost']:not([data-variant]) {
68
+ @apply text-surface-z7;
69
+ }
70
+
71
+ [data-style='rokkit'] [data-button][data-style='ghost'][data-variant='primary'] {
72
+ @apply text-primary-z6;
73
+ }
74
+
75
+ [data-style='rokkit'] [data-button][data-style='ghost'][data-variant='secondary'] {
76
+ @apply text-secondary-z6;
77
+ }
78
+
79
+ [data-style='rokkit'] [data-button][data-style='ghost'][data-variant='danger'] {
80
+ @apply text-danger-z4;
81
+ }
82
+
83
+ /* =============================================================================
84
+ Gradient Style
85
+ ============================================================================= */
86
+
87
+ [data-style='rokkit'] [data-button][data-style='gradient'][data-variant='default'],
88
+ [data-style='rokkit'] [data-button][data-style='gradient']:not([data-variant]) {
89
+ @apply from-surface-z4 to-surface-z2 text-surface-z10 bg-gradient-to-br;
90
+ }
91
+
92
+ [data-style='rokkit'] [data-button][data-style='gradient'][data-variant='primary'] {
93
+ @apply from-primary-z5 to-primary-z3 text-on-primary bg-gradient-to-br;
94
+ }
95
+
96
+ [data-style='rokkit'] [data-button][data-style='gradient'][data-variant='secondary'] {
97
+ @apply from-secondary-z5 to-secondary-z3 text-on-secondary bg-gradient-to-br;
98
+ }
99
+
100
+ [data-style='rokkit'] [data-button][data-style='gradient'][data-variant='danger'] {
101
+ @apply from-danger-z5 to-danger-z3 text-on-danger bg-gradient-to-br;
102
+ }
103
+
104
+ [data-style='rokkit'] [data-button][data-style='gradient']:hover:not(:disabled):not([data-disabled]) {
105
+ filter: brightness(1.1);
106
+ }
107
+
108
+ /* =============================================================================
109
+ Link Style
110
+ ============================================================================= */
111
+
112
+ [data-style='rokkit'] [data-button][data-style='link'][data-variant='default'],
113
+ [data-style='rokkit'] [data-button][data-style='link']:not([data-variant]) {
114
+ @apply text-surface-z7;
115
+ }
116
+
117
+ [data-style='rokkit'] [data-button][data-style='link'][data-variant='primary'] {
118
+ @apply text-primary-z6;
119
+ }
120
+
121
+ [data-style='rokkit'] [data-button][data-style='link'][data-variant='secondary'] {
122
+ @apply text-secondary-z6;
123
+ }
124
+
125
+ [data-style='rokkit'] [data-button][data-style='link'][data-variant='danger'] {
126
+ @apply text-danger-z4;
127
+ }
128
+
129
+ [data-style='rokkit'] [data-button][data-style='link']:hover:not(:disabled):not([data-disabled]) {
130
+ @apply text-primary-z7;
131
+ }
132
+
133
+ /* =============================================================================
134
+ Hover States
135
+ ============================================================================= */
136
+
137
+ /* Default style hover */
138
+ [data-style='rokkit'] [data-button][data-style='default']:hover:not(:disabled):not([data-disabled]),
139
+ [data-style='rokkit'] [data-button]:not([data-style]):hover:not(:disabled):not([data-disabled]) {
140
+ @apply opacity-90;
141
+ }
142
+
143
+ /* Outline style hover */
144
+ [data-style='rokkit'] [data-button][data-style='outline']:hover:not(:disabled):not([data-disabled])[data-variant='default'],
145
+ [data-style='rokkit'] [data-button][data-style='outline']:hover:not(:disabled):not([data-disabled]):not([data-variant]) {
146
+ @apply from-surface-z2 to-surface-z1 bg-gradient-to-b;
147
+ }
148
+
149
+ [data-style='rokkit'] [data-button][data-style='outline']:hover:not(:disabled):not([data-disabled])[data-variant='primary'] {
150
+ @apply from-primary-z2 to-primary-z1 bg-gradient-to-b;
151
+ }
152
+
153
+ [data-style='rokkit'] [data-button][data-style='outline']:hover:not(:disabled):not([data-disabled])[data-variant='secondary'] {
154
+ @apply from-secondary-z2 to-secondary-z1 bg-gradient-to-b;
155
+ }
156
+
157
+ [data-style='rokkit'] [data-button][data-style='outline']:hover:not(:disabled):not([data-disabled])[data-variant='danger'] {
158
+ @apply from-danger-z2 to-danger-z1 bg-gradient-to-b;
159
+ }
160
+
161
+ /* Ghost style hover */
162
+ [data-style='rokkit'] [data-button][data-style='ghost']:hover:not(:disabled):not([data-disabled])[data-variant='default'],
163
+ [data-style='rokkit'] [data-button][data-style='ghost']:hover:not(:disabled):not([data-disabled]):not([data-variant]) {
164
+ @apply bg-surface-z2;
165
+ }
166
+
167
+ [data-style='rokkit'] [data-button][data-style='ghost']:hover:not(:disabled):not([data-disabled])[data-variant='primary'] {
168
+ @apply bg-primary-z1;
169
+ }
170
+
171
+ [data-style='rokkit'] [data-button][data-style='ghost']:hover:not(:disabled):not([data-disabled])[data-variant='secondary'] {
172
+ @apply bg-secondary-z1;
173
+ }
174
+
175
+ [data-style='rokkit'] [data-button][data-style='ghost']:hover:not(:disabled):not([data-disabled])[data-variant='danger'] {
176
+ @apply bg-danger-z1;
177
+ }
178
+
179
+ /* =============================================================================
180
+ Active/Pressed State
181
+ ============================================================================= */
182
+
183
+ [data-style='rokkit'] [data-button]:active:not(:disabled):not([data-disabled]) {
184
+ @apply scale-95;
185
+ animation: button-pop 0.25s ease-out;
186
+ }
187
+
188
+ /* =============================================================================
189
+ Focus
190
+ ============================================================================= */
191
+
192
+ [data-style='rokkit'] [data-button]:focus-visible {
193
+ @apply ring-primary-z4 ring-2 outline-none;
194
+ }
195
+
196
+ /* =============================================================================
197
+ Icon Colors
198
+ ============================================================================= */
199
+
200
+ [data-style='rokkit'] [data-button] [data-item-icon],
201
+ [data-style='rokkit'] [data-button] [data-button-icon-right] {
202
+ color: inherit;
203
+ opacity: 0.8;
204
+ }
205
+
206
+ [data-style='rokkit'] [data-button]:hover [data-item-icon],
207
+ [data-style='rokkit'] [data-button]:hover [data-button-icon-right] {
208
+ opacity: 1;
209
+ }
210
+
211
+ /* =============================================================================
212
+ Button Group
213
+ ============================================================================= */
214
+
215
+ [data-style='rokkit'] [data-button-group] {
216
+ @apply gap-px;
217
+ }
218
+
219
+ [data-style='rokkit'] [data-button-group] [data-button]:first-child {
220
+ @apply rounded-l-lg rounded-r-none;
221
+ }
222
+
223
+ [data-style='rokkit'] [data-button-group] [data-button]:last-child {
224
+ @apply rounded-l-none rounded-r-lg;
225
+ }