@kushagradhawan/kookie-ui 0.1.17 → 0.1.19

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 (276) hide show
  1. package/components.css +3730 -1072
  2. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  3. package/dist/cjs/components/_internal/base-button.js +1 -1
  4. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  5. package/dist/cjs/components/_internal/base-button.props.d.ts +9 -0
  6. package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
  7. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  8. package/dist/cjs/components/_internal/base-button.props.js.map +3 -3
  9. package/dist/cjs/components/_internal/base-menu.props.d.ts +5 -0
  10. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  11. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  12. package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
  13. package/dist/cjs/components/_internal/base-tab-list.props.d.ts +5 -0
  14. package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -1
  15. package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
  16. package/dist/cjs/components/_internal/base-tab-list.props.js.map +3 -3
  17. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  18. package/dist/cjs/components/alert-dialog.js +1 -1
  19. package/dist/cjs/components/alert-dialog.js.map +3 -3
  20. package/dist/cjs/components/avatar.d.ts.map +1 -1
  21. package/dist/cjs/components/avatar.js +1 -1
  22. package/dist/cjs/components/avatar.js.map +3 -3
  23. package/dist/cjs/components/avatar.props.d.ts +6 -1
  24. package/dist/cjs/components/avatar.props.d.ts.map +1 -1
  25. package/dist/cjs/components/avatar.props.js +1 -1
  26. package/dist/cjs/components/avatar.props.js.map +3 -3
  27. package/dist/cjs/components/badge.d.ts.map +1 -1
  28. package/dist/cjs/components/badge.js +1 -1
  29. package/dist/cjs/components/badge.js.map +3 -3
  30. package/dist/cjs/components/badge.props.d.ts +6 -1
  31. package/dist/cjs/components/badge.props.d.ts.map +1 -1
  32. package/dist/cjs/components/badge.props.js +1 -1
  33. package/dist/cjs/components/badge.props.js.map +2 -2
  34. package/dist/cjs/components/callout.d.ts.map +1 -1
  35. package/dist/cjs/components/callout.js +1 -1
  36. package/dist/cjs/components/callout.js.map +3 -3
  37. package/dist/cjs/components/callout.props.d.ts +5 -0
  38. package/dist/cjs/components/callout.props.d.ts.map +1 -1
  39. package/dist/cjs/components/callout.props.js +1 -1
  40. package/dist/cjs/components/callout.props.js.map +3 -3
  41. package/dist/cjs/components/card.d.ts.map +1 -1
  42. package/dist/cjs/components/card.js +1 -1
  43. package/dist/cjs/components/card.js.map +3 -3
  44. package/dist/cjs/components/card.props.d.ts +11 -2
  45. package/dist/cjs/components/card.props.d.ts.map +1 -1
  46. package/dist/cjs/components/card.props.js +1 -1
  47. package/dist/cjs/components/card.props.js.map +3 -3
  48. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  49. package/dist/cjs/components/context-menu.js +1 -1
  50. package/dist/cjs/components/context-menu.js.map +3 -3
  51. package/dist/cjs/components/dialog.d.ts.map +1 -1
  52. package/dist/cjs/components/dialog.js +1 -1
  53. package/dist/cjs/components/dialog.js.map +3 -3
  54. package/dist/cjs/components/dialog.props.d.ts +5 -0
  55. package/dist/cjs/components/dialog.props.d.ts.map +1 -1
  56. package/dist/cjs/components/dialog.props.js +1 -1
  57. package/dist/cjs/components/dialog.props.js.map +3 -3
  58. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  59. package/dist/cjs/components/dropdown-menu.js +1 -1
  60. package/dist/cjs/components/dropdown-menu.js.map +3 -3
  61. package/dist/cjs/components/image.d.ts +6 -1
  62. package/dist/cjs/components/image.d.ts.map +1 -1
  63. package/dist/cjs/components/image.js +1 -1
  64. package/dist/cjs/components/image.js.map +3 -3
  65. package/dist/cjs/components/popover.d.ts.map +1 -1
  66. package/dist/cjs/components/popover.js +1 -1
  67. package/dist/cjs/components/popover.js.map +3 -3
  68. package/dist/cjs/components/popover.props.d.ts +5 -0
  69. package/dist/cjs/components/popover.props.d.ts.map +1 -1
  70. package/dist/cjs/components/popover.props.js +1 -1
  71. package/dist/cjs/components/popover.props.js.map +3 -3
  72. package/dist/cjs/components/select.d.ts.map +1 -1
  73. package/dist/cjs/components/select.js +1 -1
  74. package/dist/cjs/components/select.js.map +3 -3
  75. package/dist/cjs/components/select.props.d.ts +6 -1
  76. package/dist/cjs/components/select.props.d.ts.map +1 -1
  77. package/dist/cjs/components/select.props.js +1 -1
  78. package/dist/cjs/components/select.props.js.map +2 -2
  79. package/dist/cjs/components/sidebar.d.ts +17 -6
  80. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  81. package/dist/cjs/components/sidebar.js +1 -1
  82. package/dist/cjs/components/sidebar.js.map +3 -3
  83. package/dist/cjs/components/sidebar.props.d.ts +5 -0
  84. package/dist/cjs/components/sidebar.props.d.ts.map +1 -1
  85. package/dist/cjs/components/sidebar.props.js +1 -1
  86. package/dist/cjs/components/sidebar.props.js.map +2 -2
  87. package/dist/cjs/components/tabs.d.ts.map +1 -1
  88. package/dist/cjs/components/tabs.js +1 -1
  89. package/dist/cjs/components/tabs.js.map +3 -3
  90. package/dist/cjs/components/text-area.d.ts.map +1 -1
  91. package/dist/cjs/components/text-area.js +1 -1
  92. package/dist/cjs/components/text-area.js.map +3 -3
  93. package/dist/cjs/components/text-area.props.d.ts +6 -1
  94. package/dist/cjs/components/text-area.props.d.ts.map +1 -1
  95. package/dist/cjs/components/text-area.props.js +1 -1
  96. package/dist/cjs/components/text-area.props.js.map +3 -3
  97. package/dist/cjs/components/text-field.d.ts.map +1 -1
  98. package/dist/cjs/components/text-field.js +2 -2
  99. package/dist/cjs/components/text-field.js.map +3 -3
  100. package/dist/cjs/components/text-field.props.d.ts +6 -1
  101. package/dist/cjs/components/text-field.props.d.ts.map +1 -1
  102. package/dist/cjs/components/text-field.props.js +1 -1
  103. package/dist/cjs/components/text-field.props.js.map +3 -3
  104. package/dist/cjs/components/theme.d.ts.map +1 -1
  105. package/dist/cjs/components/theme.js +1 -1
  106. package/dist/cjs/components/theme.js.map +2 -2
  107. package/dist/cjs/helpers/map-prop-values.js +1 -1
  108. package/dist/cjs/helpers/map-prop-values.js.map +2 -2
  109. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  110. package/dist/esm/components/_internal/base-button.js +1 -1
  111. package/dist/esm/components/_internal/base-button.js.map +3 -3
  112. package/dist/esm/components/_internal/base-button.props.d.ts +9 -0
  113. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  114. package/dist/esm/components/_internal/base-button.props.js +1 -1
  115. package/dist/esm/components/_internal/base-button.props.js.map +3 -3
  116. package/dist/esm/components/_internal/base-menu.props.d.ts +5 -0
  117. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  118. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  119. package/dist/esm/components/_internal/base-menu.props.js.map +3 -3
  120. package/dist/esm/components/_internal/base-tab-list.props.d.ts +5 -0
  121. package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -1
  122. package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
  123. package/dist/esm/components/_internal/base-tab-list.props.js.map +3 -3
  124. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  125. package/dist/esm/components/alert-dialog.js +1 -1
  126. package/dist/esm/components/alert-dialog.js.map +3 -3
  127. package/dist/esm/components/avatar.d.ts.map +1 -1
  128. package/dist/esm/components/avatar.js +1 -1
  129. package/dist/esm/components/avatar.js.map +3 -3
  130. package/dist/esm/components/avatar.props.d.ts +6 -1
  131. package/dist/esm/components/avatar.props.d.ts.map +1 -1
  132. package/dist/esm/components/avatar.props.js +1 -1
  133. package/dist/esm/components/avatar.props.js.map +3 -3
  134. package/dist/esm/components/badge.d.ts.map +1 -1
  135. package/dist/esm/components/badge.js +1 -1
  136. package/dist/esm/components/badge.js.map +3 -3
  137. package/dist/esm/components/badge.props.d.ts +6 -1
  138. package/dist/esm/components/badge.props.d.ts.map +1 -1
  139. package/dist/esm/components/badge.props.js +1 -1
  140. package/dist/esm/components/badge.props.js.map +2 -2
  141. package/dist/esm/components/callout.d.ts.map +1 -1
  142. package/dist/esm/components/callout.js +1 -1
  143. package/dist/esm/components/callout.js.map +3 -3
  144. package/dist/esm/components/callout.props.d.ts +5 -0
  145. package/dist/esm/components/callout.props.d.ts.map +1 -1
  146. package/dist/esm/components/callout.props.js +1 -1
  147. package/dist/esm/components/callout.props.js.map +3 -3
  148. package/dist/esm/components/card.d.ts.map +1 -1
  149. package/dist/esm/components/card.js +1 -1
  150. package/dist/esm/components/card.js.map +3 -3
  151. package/dist/esm/components/card.props.d.ts +11 -2
  152. package/dist/esm/components/card.props.d.ts.map +1 -1
  153. package/dist/esm/components/card.props.js +1 -1
  154. package/dist/esm/components/card.props.js.map +3 -3
  155. package/dist/esm/components/context-menu.d.ts.map +1 -1
  156. package/dist/esm/components/context-menu.js +1 -1
  157. package/dist/esm/components/context-menu.js.map +3 -3
  158. package/dist/esm/components/dialog.d.ts.map +1 -1
  159. package/dist/esm/components/dialog.js +1 -1
  160. package/dist/esm/components/dialog.js.map +3 -3
  161. package/dist/esm/components/dialog.props.d.ts +5 -0
  162. package/dist/esm/components/dialog.props.d.ts.map +1 -1
  163. package/dist/esm/components/dialog.props.js +1 -1
  164. package/dist/esm/components/dialog.props.js.map +3 -3
  165. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  166. package/dist/esm/components/dropdown-menu.js +1 -1
  167. package/dist/esm/components/dropdown-menu.js.map +3 -3
  168. package/dist/esm/components/image.d.ts +6 -1
  169. package/dist/esm/components/image.d.ts.map +1 -1
  170. package/dist/esm/components/image.js +1 -1
  171. package/dist/esm/components/image.js.map +3 -3
  172. package/dist/esm/components/popover.d.ts.map +1 -1
  173. package/dist/esm/components/popover.js +1 -1
  174. package/dist/esm/components/popover.js.map +3 -3
  175. package/dist/esm/components/popover.props.d.ts +5 -0
  176. package/dist/esm/components/popover.props.d.ts.map +1 -1
  177. package/dist/esm/components/popover.props.js +1 -1
  178. package/dist/esm/components/popover.props.js.map +3 -3
  179. package/dist/esm/components/select.d.ts.map +1 -1
  180. package/dist/esm/components/select.js +1 -1
  181. package/dist/esm/components/select.js.map +3 -3
  182. package/dist/esm/components/select.props.d.ts +6 -1
  183. package/dist/esm/components/select.props.d.ts.map +1 -1
  184. package/dist/esm/components/select.props.js +1 -1
  185. package/dist/esm/components/select.props.js.map +2 -2
  186. package/dist/esm/components/sidebar.d.ts +17 -6
  187. package/dist/esm/components/sidebar.d.ts.map +1 -1
  188. package/dist/esm/components/sidebar.js +1 -1
  189. package/dist/esm/components/sidebar.js.map +3 -3
  190. package/dist/esm/components/sidebar.props.d.ts +5 -0
  191. package/dist/esm/components/sidebar.props.d.ts.map +1 -1
  192. package/dist/esm/components/sidebar.props.js +1 -1
  193. package/dist/esm/components/sidebar.props.js.map +2 -2
  194. package/dist/esm/components/tabs.d.ts.map +1 -1
  195. package/dist/esm/components/tabs.js +1 -1
  196. package/dist/esm/components/tabs.js.map +3 -3
  197. package/dist/esm/components/text-area.d.ts.map +1 -1
  198. package/dist/esm/components/text-area.js +1 -1
  199. package/dist/esm/components/text-area.js.map +3 -3
  200. package/dist/esm/components/text-area.props.d.ts +6 -1
  201. package/dist/esm/components/text-area.props.d.ts.map +1 -1
  202. package/dist/esm/components/text-area.props.js +1 -1
  203. package/dist/esm/components/text-area.props.js.map +3 -3
  204. package/dist/esm/components/text-field.d.ts.map +1 -1
  205. package/dist/esm/components/text-field.js +2 -2
  206. package/dist/esm/components/text-field.js.map +3 -3
  207. package/dist/esm/components/text-field.props.d.ts +6 -1
  208. package/dist/esm/components/text-field.props.d.ts.map +1 -1
  209. package/dist/esm/components/text-field.props.js +1 -1
  210. package/dist/esm/components/text-field.props.js.map +3 -3
  211. package/dist/esm/components/theme.d.ts.map +1 -1
  212. package/dist/esm/components/theme.js +1 -1
  213. package/dist/esm/components/theme.js.map +2 -2
  214. package/dist/esm/helpers/map-prop-values.js +1 -1
  215. package/dist/esm/helpers/map-prop-values.js.map +2 -2
  216. package/package.json +1 -1
  217. package/src/components/_internal/base-button.css +518 -110
  218. package/src/components/_internal/base-button.props.ts +5 -0
  219. package/src/components/_internal/base-button.tsx +4 -0
  220. package/src/components/_internal/base-card.css +59 -11
  221. package/src/components/_internal/base-dialog.css +26 -9
  222. package/src/components/_internal/base-menu.css +192 -21
  223. package/src/components/_internal/base-menu.props.ts +7 -0
  224. package/src/components/_internal/base-tab-list.css +56 -5
  225. package/src/components/_internal/base-tab-list.props.ts +3 -0
  226. package/src/components/alert-dialog.tsx +22 -7
  227. package/src/components/animations.css +31 -0
  228. package/src/components/avatar.css +436 -9
  229. package/src/components/avatar.props.tsx +4 -1
  230. package/src/components/avatar.tsx +19 -6
  231. package/src/components/badge.css +222 -7
  232. package/src/components/badge.props.tsx +3 -1
  233. package/src/components/badge.tsx +3 -2
  234. package/src/components/button.css +17 -17
  235. package/src/components/callout.css +75 -6
  236. package/src/components/callout.props.tsx +3 -0
  237. package/src/components/callout.tsx +6 -5
  238. package/src/components/card.css +361 -44
  239. package/src/components/card.props.tsx +7 -2
  240. package/src/components/card.tsx +7 -1
  241. package/src/components/context-menu.tsx +47 -22
  242. package/src/components/dialog.props.tsx +3 -0
  243. package/src/components/dialog.tsx +22 -7
  244. package/src/components/dropdown-menu.css +10 -10
  245. package/src/components/dropdown-menu.tsx +37 -11
  246. package/src/components/icon-button.css +36 -8
  247. package/src/components/image.tsx +92 -73
  248. package/src/components/kbd.css +122 -54
  249. package/src/components/popover.css +22 -3
  250. package/src/components/popover.props.tsx +3 -0
  251. package/src/components/popover.tsx +15 -8
  252. package/src/components/select.css +386 -95
  253. package/src/components/select.props.tsx +7 -1
  254. package/src/components/select.tsx +21 -13
  255. package/src/components/sidebar.css +201 -86
  256. package/src/components/sidebar.props.tsx +15 -3
  257. package/src/components/sidebar.tsx +313 -242
  258. package/src/components/tabs.css +3 -1
  259. package/src/components/tabs.tsx +8 -3
  260. package/src/components/text-area.css +323 -32
  261. package/src/components/text-area.props.tsx +4 -1
  262. package/src/components/text-area.tsx +3 -2
  263. package/src/components/text-field.css +336 -15
  264. package/src/components/text-field.props.tsx +4 -1
  265. package/src/components/text-field.tsx +5 -7
  266. package/src/components/theme.tsx +11 -9
  267. package/src/helpers/map-prop-values.ts +1 -1
  268. package/src/styles/tokens/color.css +19 -5
  269. package/src/styles/tokens/constants.css +118 -0
  270. package/src/styles/tokens/index.css +1 -0
  271. package/src/styles/tokens/radius.css +9 -6
  272. package/src/styles/tokens/shadow.css +10 -10
  273. package/src/styles/tokens/transition.css +33 -1
  274. package/styles.css +3846 -1089
  275. package/tokens/base.css +51 -22
  276. package/tokens.css +133 -34
@@ -81,104 +81,118 @@
81
81
 
82
82
  /* classic */
83
83
 
84
- /* prettier-ignore */
85
- :where(.radix-themes) {
86
- --base-button-classic-shadow: var(--shadow-3);
87
- --base-button-classic-hover-shadow: var(--shadow-3);
88
- --base-button-classic-active-shadow: var(--shadow-2);
89
- --base-button-classic-disabled-shadow: none;
90
- --base-button-classic-hover-filter: brightness(1.08) saturate(1.02) contrast(1.02);
91
- --base-button-classic-active-filter: brightness(0.88) saturate(1.05) contrast(1.1);
92
- }
93
- /* prettier-ignore */
94
- :is(.dark, .dark-theme),
95
- :is(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) {
96
- --base-button-classic-shadow: var(--shadow-3);
97
- --base-button-classic-hover-shadow: var(--shadow-3);
98
- --base-button-classic-active-shadow: var(--shadow-2);
99
- --base-button-classic-disabled-shadow: none;
100
- --base-button-classic-hover-filter: brightness(1.12) saturate(1.05) contrast(1.02);
101
- --base-button-classic-active-filter: brightness(0.92) saturate(1.1) contrast(1.05);
102
- }
103
-
104
84
  .rt-BaseButton:where(.rt-variant-classic) {
105
- background: linear-gradient(to bottom, var(--accent-9), var(--accent-10));
106
- color: var(--accent-contrast);
107
- box-shadow: var(--base-button-classic-shadow);
85
+ position: relative;
86
+ top: var(--classic-elevation-offset);
87
+ color: var(--accent-a11);
88
+ background-color: var(--accent-2);
89
+ /* prettier-ignore */
90
+ box-shadow:
91
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a2),
92
+ inset 0 var(--classic-border-width) var(--white-a12),
93
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
94
+ inset 0 calc(-1 * var(--classic-border-width)) var(--accent-a6),
95
+ 0 0 0 var(--classic-border-width) var(--accent-a5),
96
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--accent-a7);
97
+
98
+ :where(.dark, .dark-theme) &,
99
+ :where(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) & {
100
+ /* prettier-ignore */
101
+ box-shadow:
102
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a3),
103
+ inset 0 var(--classic-border-width) var(--accent-a11),
104
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
105
+ inset 0 calc(-2 * var(--classic-border-width)) var(--black-a11),
106
+ 0 0 0 var(--classic-border-width-thick) var(--accent-a7),
107
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--black-a12);
108
+ }
108
109
 
109
110
  &:where(.rt-high-contrast) {
110
- background: linear-gradient(to bottom, var(--accent-11), var(--accent-12));
111
- color: var(--gray-1);
112
-
113
- /* Use solid color for non-gray accent colors */
114
- &:where(:not([data-accent-color='gray'])) {
115
- background: var(--accent-12);
116
- }
117
- }
118
- /* Better -webkit-tap-highlight-color */
119
- @media (pointer: coarse) {
120
- &:where(:active:not([data-state='open'])) {
121
- outline: 0.5em solid var(--accent-a4);
122
- outline-offset: 0;
123
- }
111
+ color: var(--accent-12);
112
+ background-color: var(--accent-2);
124
113
  }
114
+
125
115
  &:where(:focus-visible) {
126
116
  outline: 2px solid var(--focus-8);
127
117
  outline-offset: 2px;
128
118
  }
119
+
129
120
  @media (hover: hover) {
130
121
  &:where(:hover) {
131
- background: linear-gradient(to bottom, var(--accent-9), var(--accent-10));
132
- box-shadow: var(--base-button-classic-hover-shadow);
133
- filter: var(--base-button-classic-hover-filter);
134
- &:where(.rt-high-contrast) {
135
- background: linear-gradient(to bottom, var(--accent-11), var(--accent-12));
136
- filter: contrast(0.88) saturate(1.1) brightness(1.1);
137
-
138
- /* Use solid color for non-gray accent colors */
139
- &:where(:not([data-accent-color='gray'])) {
140
- background: var(--accent-12);
141
- }
122
+ background-color: var(--accent-3);
123
+ /* prettier-ignore */
124
+ box-shadow:
125
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a2),
126
+ inset 0 var(--classic-border-width) var(--white-a12),
127
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
128
+ inset 0 calc(-1 * var(--classic-border-width)) var(--accent-a6),
129
+ 0 0 0 var(--classic-border-width) var(--accent-a5),
130
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--accent-a7),
131
+ 0 0 0 var(--classic-border-width) var(--accent-a5);
132
+
133
+ :where(.dark, .dark-theme) &,
134
+ :where(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) & {
135
+ /* prettier-ignore */
136
+ box-shadow:
137
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a3),
138
+ inset 0 var(--classic-border-width) var(--accent-a11),
139
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
140
+ inset 0 var(--classic-shadow-offset-negative) var(--black-a11),
141
+ 0 0 0 var(--classic-border-width-thick) var(--accent-a7),
142
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--black-a12),
143
+ 0 0 0 var(--classic-border-width) var(--accent-a5);
142
144
  }
143
145
  }
144
146
  }
145
- &:where([data-state='open']) {
146
- background: linear-gradient(to bottom, var(--accent-9), var(--accent-10));
147
- box-shadow: var(--base-button-classic-hover-shadow);
148
- filter: var(--base-button-classic-hover-filter);
149
- &:where(.rt-high-contrast) {
150
- background: linear-gradient(to bottom, var(--accent-11), var(--accent-12));
151
- filter: contrast(0.88) saturate(1.1) brightness(1.1);
152
147
 
153
- /* Use solid color for non-gray accent colors */
154
- &:where(:not([data-accent-color='gray'])) {
155
- background: var(--accent-12);
156
- }
148
+ &:where([data-state='open']) {
149
+ background-color: var(--accent-3);
150
+ /* prettier-ignore */
151
+ box-shadow:
152
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a2),
153
+ inset 0 var(--classic-border-width) var(--white-a12),
154
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
155
+ inset 0 calc(-1 * var(--classic-border-width)) var(--accent-a6),
156
+ 0 0 0 var(--classic-border-width) var(--accent-a5),
157
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--accent-a7),
158
+ 0 0 0 var(--classic-border-width) var(--accent-a5);
159
+
160
+ :where(.dark, .dark-theme) &,
161
+ :where(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) & {
162
+ /* prettier-ignore */
163
+ box-shadow:
164
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--accent-a3),
165
+ inset 0 var(--classic-border-width) var(--accent-a11),
166
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--accent-a2),
167
+ inset 0 var(--classic-shadow-offset-negative) var(--black-a11),
168
+ 0 0 0 var(--classic-border-width-thick) var(--accent-a7),
169
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--black-a12),
170
+ 0 0 0 var(--classic-border-width) var(--accent-a5);
157
171
  }
158
172
  }
159
- &:where(:active:not([data-state='open'], [data-disabled])) {
160
- background: linear-gradient(to bottom, var(--accent-9), var(--accent-10));
161
- box-shadow: var(--base-button-classic-active-shadow);
162
- filter: var(--base-button-classic-active-filter);
163
173
 
164
- &:where(.rt-high-contrast) {
165
- background: linear-gradient(to bottom, var(--accent-11), var(--accent-12));
166
- filter: contrast(0.82) saturate(1.2) brightness(1.16);
174
+ &:where(:active:not([data-state='open'], [data-disabled])) {
175
+ padding-top: var(--base-button-classic-active-padding-top);
176
+ padding-bottom: 0;
177
+ background-color: var(--accent-3);
178
+ box-shadow: inset 0 var(--classic-border-width) var(--black-a3), 0 0 0 var(--classic-border-width) var(--accent-a7);
179
+ }
167
180
 
168
- /* Use solid color for non-gray accent colors */
169
- &:where(:not([data-accent-color='gray'])) {
170
- background: var(--accent-12);
171
- }
181
+ @media (pointer: coarse) {
182
+ &:where(:active:not([data-state='open'])) {
183
+ outline: var(--classic-shadow-blur-large) solid var(--accent-a4);
184
+ outline-offset: 0;
172
185
  }
173
186
  }
187
+
174
188
  &:where([data-disabled]) {
175
189
  color: var(--gray-a8);
176
- background: var(--gray-a3);
177
- box-shadow: var(--base-button-classic-disabled-shadow);
190
+ background-color: var(--gray-a3);
191
+ box-shadow: none;
178
192
  outline: none;
179
- filter: none;
180
193
  cursor: not-allowed;
181
194
  pointer-events: none;
195
+ top: 0;
182
196
  }
183
197
  }
184
198
 
@@ -215,7 +229,7 @@
215
229
  /* Better -webkit-tap-highlight-color */
216
230
  @media (pointer: coarse) {
217
231
  &:where(:active:not([data-state='open'])) {
218
- outline: 0.5em solid var(--accent-a4);
232
+ outline: var(--classic-shadow-blur-large) solid var(--accent-a4);
219
233
  outline-offset: 0;
220
234
  }
221
235
  }
@@ -269,7 +283,27 @@
269
283
  }
270
284
 
271
285
  .rt-BaseButton:where(.rt-variant-soft) {
272
- background-color: var(--accent-a3);
286
+ /* Base state: solid color for solid panels */
287
+ background-color: var(--accent-3);
288
+
289
+ /* Theme-level translucent override */
290
+ :where([data-panel-background='translucent']) & {
291
+ background-color: var(--accent-a3);
292
+ backdrop-filter: var(--backdrop-filter-components);
293
+ }
294
+
295
+ /* Component-level overrides (higher specificity) */
296
+ &:where([data-panel-background='solid']) {
297
+ background-color: var(--accent-3);
298
+ backdrop-filter: none;
299
+ --backdrop-filter-components: none;
300
+ }
301
+
302
+ &:where([data-panel-background='translucent']) {
303
+ background-color: var(--accent-a3);
304
+ backdrop-filter: var(--backdrop-filter-components);
305
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
306
+ }
273
307
 
274
308
  &:where(:focus-visible) {
275
309
  outline: 2px solid var(--accent-8);
@@ -277,14 +311,68 @@
277
311
  }
278
312
  @media (hover: hover) {
279
313
  &:where(:hover) {
280
- background-color: var(--accent-a4);
314
+ background-color: var(--accent-4);
315
+
316
+ /* Theme-level translucent override for hover */
317
+ :where([data-panel-background='translucent']) & {
318
+ background-color: var(--accent-a4);
319
+ }
320
+
321
+ /* Component-level overrides for hover */
322
+ &:where([data-panel-background='solid']) {
323
+ background-color: var(--accent-4);
324
+ backdrop-filter: none;
325
+ --backdrop-filter-components: none;
326
+ }
327
+
328
+ &:where([data-panel-background='translucent']) {
329
+ background-color: var(--accent-a4);
330
+ backdrop-filter: var(--backdrop-filter-components);
331
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
332
+ }
281
333
  }
282
334
  }
283
335
  &:where([data-state='open']) {
284
- background-color: var(--accent-a4);
336
+ background-color: var(--accent-4);
337
+
338
+ /* Theme-level translucent override for open */
339
+ :where([data-panel-background='translucent']) & {
340
+ background-color: var(--accent-a4);
341
+ }
342
+
343
+ /* Component-level overrides for open */
344
+ &:where([data-panel-background='solid']) {
345
+ background-color: var(--accent-4);
346
+ backdrop-filter: none;
347
+ --backdrop-filter-components: none;
348
+ }
349
+
350
+ &:where([data-panel-background='translucent']) {
351
+ background-color: var(--accent-a4);
352
+ backdrop-filter: var(--backdrop-filter-components);
353
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
354
+ }
285
355
  }
286
356
  &:where(:active:not([data-state='open'])) {
287
- background-color: var(--accent-a5);
357
+ background-color: var(--accent-5);
358
+
359
+ /* Theme-level translucent override for active */
360
+ :where([data-panel-background='translucent']) & {
361
+ background-color: var(--accent-a5);
362
+ }
363
+
364
+ /* Component-level overrides for active */
365
+ &:where([data-panel-background='solid']) {
366
+ background-color: var(--accent-5);
367
+ backdrop-filter: none;
368
+ --backdrop-filter-components: none;
369
+ }
370
+
371
+ &:where([data-panel-background='translucent']) {
372
+ background-color: var(--accent-a5);
373
+ backdrop-filter: var(--backdrop-filter-components);
374
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
375
+ }
288
376
  }
289
377
  &:where([data-disabled]) {
290
378
  color: var(--gray-a8);
@@ -295,9 +383,61 @@
295
383
  }
296
384
 
297
385
  .rt-BaseButton:where(.rt-variant-ghost) {
386
+ &:where([data-flush='true']) {
387
+ /* We reset the defined margin variables to avoid inheriting them from a higher component */
388
+ /* If a margin IS defined on the component itself, the utility class will win and reset it */
389
+ --margin-top: 0px;
390
+ --margin-right: 0px;
391
+ --margin-bottom: 0px;
392
+ --margin-left: 0px;
393
+
394
+ /* Calculate padding values for different button sizes */
395
+ --button-padding-x: calc(var(--base-button-height) * var(--padding-ratio-horizontal) / 4);
396
+ --button-padding-y: calc(var(--base-button-height) / 8);
397
+
398
+ /* Define the overrides to incorporate the negative margins */
399
+ --margin-top-override: calc(var(--margin-top) - var(--button-padding-y));
400
+ --margin-right-override: calc(var(--margin-right) - var(--button-padding-x));
401
+ --margin-bottom-override: calc(var(--margin-bottom) - var(--button-padding-y));
402
+ --margin-left-override: calc(var(--margin-left) - var(--button-padding-x));
403
+
404
+ margin-top: var(--margin-top-override);
405
+ margin-right: var(--margin-right-override);
406
+ margin-bottom: var(--margin-bottom-override);
407
+ margin-left: var(--margin-left-override);
408
+
409
+ /* Reset the overrides on direct children */
410
+ :where(&) > * {
411
+ --margin-top-override: initial;
412
+ --margin-right-override: initial;
413
+ --margin-bottom-override: initial;
414
+ --margin-left-override: initial;
415
+ }
416
+ }
417
+
298
418
  @media (hover: hover) {
299
419
  &:where(:hover) {
300
- background-color: var(--accent-a3);
420
+ /* Base state: solid accent for solid panels */
421
+ background-color: var(--accent-3);
422
+
423
+ /* Theme-level translucent override for hover */
424
+ :where([data-panel-background='translucent']) & {
425
+ background-color: var(--accent-a3);
426
+ backdrop-filter: var(--backdrop-filter-components);
427
+ }
428
+
429
+ /* Component-level overrides for hover */
430
+ &:where([data-panel-background='solid']) {
431
+ background-color: var(--accent-3);
432
+ backdrop-filter: none;
433
+ --backdrop-filter-components: none;
434
+ }
435
+
436
+ &:where([data-panel-background='translucent']) {
437
+ background-color: var(--accent-a3);
438
+ backdrop-filter: var(--backdrop-filter-components);
439
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
440
+ }
301
441
  }
302
442
  }
303
443
  &:where(:focus-visible) {
@@ -305,10 +445,50 @@
305
445
  outline-offset: -1px;
306
446
  }
307
447
  &:where([data-state='open']) {
308
- background-color: var(--accent-a3);
448
+ /* Base state: solid accent for solid panels */
449
+ background-color: var(--accent-3);
450
+
451
+ /* Theme-level translucent override for open */
452
+ :where([data-panel-background='translucent']) & {
453
+ background-color: var(--accent-a3);
454
+ backdrop-filter: var(--backdrop-filter-components);
455
+ }
456
+
457
+ /* Component-level overrides for open */
458
+ &:where([data-panel-background='solid']) {
459
+ background-color: var(--accent-3);
460
+ backdrop-filter: none;
461
+ --backdrop-filter-components: none;
462
+ }
463
+
464
+ &:where([data-panel-background='translucent']) {
465
+ background-color: var(--accent-a3);
466
+ backdrop-filter: var(--backdrop-filter-components);
467
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
468
+ }
309
469
  }
310
470
  &:where(:active:not([data-state='open'])) {
311
- background-color: var(--accent-a4);
471
+ /* Base state: solid accent for solid panels */
472
+ background-color: var(--accent-4);
473
+
474
+ /* Theme-level translucent override for active */
475
+ :where([data-panel-background='translucent']) & {
476
+ background-color: var(--accent-a4);
477
+ backdrop-filter: var(--backdrop-filter-components);
478
+ }
479
+
480
+ /* Component-level overrides for active */
481
+ &:where([data-panel-background='solid']) {
482
+ background-color: var(--accent-4);
483
+ backdrop-filter: none;
484
+ --backdrop-filter-components: none;
485
+ }
486
+
487
+ &:where([data-panel-background='translucent']) {
488
+ background-color: var(--accent-a4);
489
+ backdrop-filter: var(--backdrop-filter-components);
490
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
491
+ }
312
492
  }
313
493
  &:where([data-disabled]) {
314
494
  color: var(--gray-a8);
@@ -321,19 +501,97 @@
321
501
  /* outline */
322
502
 
323
503
  .rt-BaseButton:where(.rt-variant-outline) {
324
- box-shadow: inset 0 0 0 1px var(--accent-a8);
325
- color: var(--accent-a11);
504
+ /* Base state: solid colors for solid panels */
505
+ box-shadow: inset 0 0 0 1px var(--accent-8);
506
+ color: var(--accent-11);
507
+ transition: var(--transition-background-blur);
508
+
509
+ /* Theme-level translucent override */
510
+ :where([data-panel-background='translucent']) & {
511
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
512
+ color: var(--accent-a11);
513
+ }
514
+
515
+ /* Component-level overrides (higher specificity) */
516
+ &:where([data-panel-background='solid']) {
517
+ box-shadow: inset 0 0 0 1px var(--accent-8);
518
+ color: var(--accent-11);
519
+ backdrop-filter: none;
520
+ --backdrop-filter-components: none;
521
+ }
522
+
523
+ &:where([data-panel-background='translucent']) {
524
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
525
+ color: var(--accent-a11);
526
+ }
326
527
 
327
528
  @media (hover: hover) {
328
529
  &:where(:hover) {
329
- background-color: var(--accent-a2);
530
+ background-color: var(--accent-2);
531
+
532
+ /* Theme-level translucent override for hover */
533
+ :where([data-panel-background='translucent']) & {
534
+ background-color: var(--accent-a2);
535
+ backdrop-filter: var(--backdrop-filter-components);
536
+ }
537
+
538
+ /* Component-level overrides for hover */
539
+ &:where([data-panel-background='solid']) {
540
+ background-color: var(--accent-2);
541
+ backdrop-filter: none;
542
+ --backdrop-filter-components: none;
543
+ }
544
+
545
+ &:where([data-panel-background='translucent']) {
546
+ background-color: var(--accent-a2);
547
+ backdrop-filter: var(--backdrop-filter-components);
548
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
549
+ }
330
550
  }
331
551
  }
332
552
  &:where([data-state='open']) {
333
- background-color: var(--accent-a2);
553
+ background-color: var(--accent-2);
554
+
555
+ /* Theme-level translucent override for open */
556
+ :where([data-panel-background='translucent']) & {
557
+ background-color: var(--accent-a2);
558
+ backdrop-filter: var(--backdrop-filter-components);
559
+ }
560
+
561
+ /* Component-level overrides for open */
562
+ &:where([data-panel-background='solid']) {
563
+ background-color: var(--accent-2);
564
+ backdrop-filter: none;
565
+ --backdrop-filter-components: none;
566
+ }
567
+
568
+ &:where([data-panel-background='translucent']) {
569
+ background-color: var(--accent-a2);
570
+ backdrop-filter: var(--backdrop-filter-components);
571
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
572
+ }
334
573
  }
335
574
  &:where(:active:not([data-state='open'])) {
336
- background-color: var(--accent-a3);
575
+ background-color: var(--accent-3);
576
+
577
+ /* Theme-level translucent override for active */
578
+ :where([data-panel-background='translucent']) & {
579
+ background-color: var(--accent-a3);
580
+ backdrop-filter: var(--backdrop-filter-components);
581
+ }
582
+
583
+ /* Component-level overrides for active */
584
+ &:where([data-panel-background='solid']) {
585
+ background-color: var(--accent-3);
586
+ backdrop-filter: none;
587
+ --backdrop-filter-components: none;
588
+ }
589
+
590
+ &:where([data-panel-background='translucent']) {
591
+ background-color: var(--accent-a3);
592
+ backdrop-filter: var(--backdrop-filter-components);
593
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
594
+ }
337
595
  }
338
596
  &:where(:focus-visible) {
339
597
  outline: 2px solid var(--focus-8);
@@ -341,9 +599,29 @@
341
599
  }
342
600
  &:where(.rt-high-contrast) {
343
601
  box-shadow:
344
- inset 0 0 0 1px var(--accent-a7),
345
- inset 0 0 0 1px var(--gray-a11);
602
+ inset 0 0 0 1px var(--accent-7),
603
+ inset 0 0 0 1px var(--gray-11);
346
604
  color: var(--accent-12);
605
+
606
+ /* Theme-level translucent override for high contrast */
607
+ :where([data-panel-background='translucent']) & {
608
+ box-shadow:
609
+ inset 0 0 0 1px var(--accent-a7),
610
+ inset 0 0 0 1px var(--gray-a11);
611
+ }
612
+
613
+ /* Component-level overrides for high contrast */
614
+ &:where([data-panel-background='solid']) {
615
+ box-shadow:
616
+ inset 0 0 0 1px var(--accent-7),
617
+ inset 0 0 0 1px var(--gray-11);
618
+ }
619
+
620
+ &:where([data-panel-background='translucent']) {
621
+ box-shadow:
622
+ inset 0 0 0 1px var(--accent-a7),
623
+ inset 0 0 0 1px var(--gray-a11);
624
+ }
347
625
  }
348
626
  &:where([data-disabled]) {
349
627
  color: var(--gray-a8);
@@ -357,21 +635,89 @@
357
635
  /* surface */
358
636
 
359
637
  .rt-BaseButton:where(.rt-variant-surface) {
360
- background-color: var(--accent-surface);
361
- box-shadow: inset 0 0 0 1px var(--accent-a7);
638
+ /* Base state: solid accent for solid panels */
639
+ background-color: var(--accent-2);
640
+ box-shadow: inset 0 0 0 1px var(--accent-7);
362
641
  color: var(--accent-a11);
363
642
 
643
+ /* Theme-level translucent override */
644
+ :where([data-panel-background='translucent']) & {
645
+ background-color: var(--accent-a2);
646
+ box-shadow: inset 0 0 0 1px var(--accent-a7);
647
+ backdrop-filter: var(--backdrop-filter-components);
648
+ }
649
+
650
+ /* Component-level overrides (higher specificity) */
651
+ &:where([data-panel-background='solid']) {
652
+ background-color: var(--accent-2);
653
+ box-shadow: inset 0 0 0 1px var(--accent-7);
654
+ backdrop-filter: none;
655
+ --backdrop-filter-components: none;
656
+ }
657
+
658
+ &:where([data-panel-background='translucent']) {
659
+ background-color: var(--accent-a2);
660
+ box-shadow: inset 0 0 0 1px var(--accent-a7);
661
+ backdrop-filter: var(--backdrop-filter-components);
662
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
663
+ }
664
+
364
665
  @media (hover: hover) {
365
666
  &:where(:hover) {
366
- box-shadow: inset 0 0 0 1px var(--accent-a8);
667
+ box-shadow: inset 0 0 0 1px var(--accent-8);
668
+
669
+ /* Theme-level translucent override for hover */
670
+ :where([data-panel-background='translucent']) & {
671
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
672
+ }
673
+
674
+ /* Component-level overrides for hover */
675
+ &:where([data-panel-background='solid']) {
676
+ box-shadow: inset 0 0 0 1px var(--accent-8);
677
+ }
678
+
679
+ &:where([data-panel-background='translucent']) {
680
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
681
+ }
367
682
  }
368
683
  }
369
684
  &:where([data-state='open']) {
370
- box-shadow: inset 0 0 0 1px var(--accent-a8);
685
+ box-shadow: inset 0 0 0 1px var(--accent-8);
686
+
687
+ /* Theme-level translucent override for open */
688
+ :where([data-panel-background='translucent']) & {
689
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
690
+ }
691
+
692
+ /* Component-level overrides for open */
693
+ &:where([data-panel-background='solid']) {
694
+ box-shadow: inset 0 0 0 1px var(--accent-8);
695
+ }
696
+
697
+ &:where([data-panel-background='translucent']) {
698
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
699
+ }
371
700
  }
372
701
  &:where(:active:not([data-state='open'])) {
373
- background-color: var(--accent-a3);
374
- box-shadow: inset 0 0 0 1px var(--accent-a8);
702
+ background-color: var(--accent-3);
703
+ box-shadow: inset 0 0 0 1px var(--accent-8);
704
+
705
+ /* Theme-level translucent override for active */
706
+ :where([data-panel-background='translucent']) & {
707
+ background-color: var(--accent-a3);
708
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
709
+ }
710
+
711
+ /* Component-level overrides for active */
712
+ &:where([data-panel-background='solid']) {
713
+ background-color: var(--accent-3);
714
+ box-shadow: inset 0 0 0 1px var(--accent-8);
715
+ }
716
+
717
+ &:where([data-panel-background='translucent']) {
718
+ background-color: var(--accent-a3);
719
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
720
+ }
375
721
  }
376
722
  &:where(:focus-visible) {
377
723
  outline: 2px solid var(--focus-8);
@@ -407,17 +753,13 @@
407
753
 
408
754
  /* Classic variant pressed */
409
755
  &:where(.rt-variant-classic) {
410
- background: linear-gradient(to bottom, var(--accent-9), var(--accent-10));
411
- box-shadow: var(--base-button-classic-active-shadow);
412
- filter: var(--base-button-classic-active-filter);
756
+ padding-top: var(--base-button-classic-active-padding-top);
757
+ padding-bottom: 0;
758
+ background-color: var(--accent-3);
759
+ box-shadow: inset 0 var(--classic-border-width) var(--black-a3), 0 0 0 var(--classic-border-width) var(--accent-a7);
413
760
 
414
761
  &:where(.rt-high-contrast) {
415
- background: linear-gradient(to bottom, var(--accent-11), var(--accent-12));
416
- filter: contrast(0.82) saturate(1.2) brightness(1.16);
417
-
418
- &:where(:not([data-accent-color='gray'])) {
419
- background: var(--accent-12);
420
- }
762
+ background-color: var(--accent-3);
421
763
  }
422
764
  }
423
765
 
@@ -434,23 +776,87 @@
434
776
 
435
777
  /* Soft variant pressed */
436
778
  &:where(.rt-variant-soft) {
437
- background-color: var(--accent-a5);
779
+ background-color: var(--accent-4);
780
+
781
+ /* Theme-level translucent override for pressed */
782
+ :where([data-panel-background='translucent']) & {
783
+ background-color: var(--accent-a4);
784
+ }
785
+
786
+ /* Component-level overrides for pressed */
787
+ &:where([data-panel-background='solid']) {
788
+ background-color: var(--accent-4);
789
+ }
790
+
791
+ &:where([data-panel-background='translucent']) {
792
+ background-color: var(--accent-a4);
793
+ }
438
794
  }
439
795
 
440
796
  /* Ghost variant pressed */
441
797
  &:where(.rt-variant-ghost) {
442
- background-color: var(--accent-a4);
798
+ background-color: var(--accent-4);
799
+
800
+ /* Theme-level translucent override for pressed */
801
+ :where([data-panel-background='translucent']) & {
802
+ background-color: var(--accent-a4);
803
+ }
804
+
805
+ /* Component-level overrides for pressed */
806
+ &:where([data-panel-background='solid']) {
807
+ background-color: var(--accent-4);
808
+ }
809
+
810
+ &:where([data-panel-background='translucent']) {
811
+ background-color: var(--accent-a4);
812
+ }
443
813
  }
444
814
 
445
815
  /* Outline variant pressed */
446
816
  &:where(.rt-variant-outline) {
447
- background-color: var(--accent-a3);
817
+ background-color: var(--accent-3);
818
+
819
+ /* Theme-level translucent override for pressed */
820
+ :where([data-panel-background='translucent']) & {
821
+ background-color: var(--accent-a3);
822
+ backdrop-filter: var(--backdrop-filter-components);
823
+ }
824
+
825
+ /* Component-level overrides for pressed */
826
+ &:where([data-panel-background='solid']) {
827
+ background-color: var(--accent-3);
828
+ backdrop-filter: none;
829
+ --backdrop-filter-components: none;
830
+ }
831
+
832
+ &:where([data-panel-background='translucent']) {
833
+ background-color: var(--accent-a3);
834
+ backdrop-filter: var(--backdrop-filter-components);
835
+ --backdrop-filter-components: blur(var(--backdrop-blur-components));
836
+ }
448
837
  }
449
838
 
450
839
  /* Surface variant pressed */
451
840
  &:where(.rt-variant-surface) {
452
- background-color: var(--accent-a3);
453
- box-shadow: inset 0 0 0 1px var(--accent-a8);
841
+ background-color: var(--accent-3);
842
+ box-shadow: inset 0 0 0 1px var(--accent-8);
843
+
844
+ /* Theme-level translucent override for pressed */
845
+ :where([data-panel-background='translucent']) & {
846
+ background-color: var(--accent-a3);
847
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
848
+ }
849
+
850
+ /* Component-level overrides for pressed */
851
+ &:where([data-panel-background='solid']) {
852
+ background-color: var(--accent-3);
853
+ box-shadow: inset 0 0 0 1px var(--accent-8);
854
+ }
855
+
856
+ &:where([data-panel-background='translucent']) {
857
+ background-color: var(--accent-a3);
858
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
859
+ }
454
860
  }
455
861
  }
456
862
 
@@ -480,9 +886,11 @@
480
886
 
481
887
  /* Override variant-specific pressed states */
482
888
  &:where(.rt-variant-classic) {
483
- background: var(--gray-a3);
889
+ background-color: var(--gray-a3);
484
890
  box-shadow: none;
485
- filter: none;
891
+ padding-top: 0;
892
+ padding-bottom: 0;
893
+ top: 0;
486
894
  }
487
895
 
488
896
  &:where(.rt-variant-solid) {