@kushagradhawan/kookie-ui 0.1.29 → 0.1.31

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 (522) hide show
  1. package/components.css +4083 -2224
  2. package/dist/cjs/components/_internal/base-button.d.ts +36 -0
  3. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  4. package/dist/cjs/components/_internal/base-button.js +1 -1
  5. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  6. package/dist/cjs/components/_internal/base-button.props.d.ts +61 -0
  7. package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
  8. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  9. package/dist/cjs/components/_internal/base-button.props.js.map +3 -3
  10. package/dist/cjs/components/_internal/base-checkbox.props.d.ts +6 -1
  11. package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -1
  12. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
  13. package/dist/cjs/components/_internal/base-checkbox.props.js.map +3 -3
  14. package/dist/cjs/components/_internal/base-menu.props.d.ts +8 -0
  15. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  16. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  17. package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
  18. package/dist/cjs/components/_internal/base-radio.props.d.ts +6 -1
  19. package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -1
  20. package/dist/cjs/components/_internal/base-radio.props.js +1 -1
  21. package/dist/cjs/components/_internal/base-radio.props.js.map +3 -3
  22. package/dist/cjs/components/accordion.d.ts.map +1 -1
  23. package/dist/cjs/components/accordion.js +1 -1
  24. package/dist/cjs/components/accordion.js.map +3 -3
  25. package/dist/cjs/components/accordion.props.d.ts +9 -0
  26. package/dist/cjs/components/accordion.props.d.ts.map +1 -1
  27. package/dist/cjs/components/accordion.props.js +1 -1
  28. package/dist/cjs/components/accordion.props.js.map +2 -2
  29. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  30. package/dist/cjs/components/alert-dialog.js +1 -1
  31. package/dist/cjs/components/alert-dialog.js.map +3 -3
  32. package/dist/cjs/components/alert-dialog.props.d.ts +69 -2
  33. package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -1
  34. package/dist/cjs/components/alert-dialog.props.js +1 -1
  35. package/dist/cjs/components/alert-dialog.props.js.map +3 -3
  36. package/dist/cjs/components/avatar.d.ts.map +1 -1
  37. package/dist/cjs/components/avatar.js +1 -1
  38. package/dist/cjs/components/avatar.js.map +3 -3
  39. package/dist/cjs/components/avatar.props.d.ts +9 -1
  40. package/dist/cjs/components/avatar.props.d.ts.map +1 -1
  41. package/dist/cjs/components/avatar.props.js +1 -1
  42. package/dist/cjs/components/avatar.props.js.map +3 -3
  43. package/dist/cjs/components/badge.d.ts +8 -1
  44. package/dist/cjs/components/badge.d.ts.map +1 -1
  45. package/dist/cjs/components/badge.js +1 -1
  46. package/dist/cjs/components/badge.js.map +3 -3
  47. package/dist/cjs/components/badge.props.d.ts +14 -6
  48. package/dist/cjs/components/badge.props.d.ts.map +1 -1
  49. package/dist/cjs/components/badge.props.js +1 -1
  50. package/dist/cjs/components/badge.props.js.map +3 -3
  51. package/dist/cjs/components/blockquote.props.d.ts +1 -1
  52. package/dist/cjs/components/button.d.ts +53 -1
  53. package/dist/cjs/components/button.d.ts.map +1 -1
  54. package/dist/cjs/components/button.js +1 -1
  55. package/dist/cjs/components/button.js.map +3 -3
  56. package/dist/cjs/components/button.props.d.ts +17 -0
  57. package/dist/cjs/components/button.props.d.ts.map +1 -1
  58. package/dist/cjs/components/button.props.js.map +2 -2
  59. package/dist/cjs/components/callout.d.ts +4 -0
  60. package/dist/cjs/components/callout.d.ts.map +1 -1
  61. package/dist/cjs/components/callout.js +1 -1
  62. package/dist/cjs/components/callout.js.map +3 -3
  63. package/dist/cjs/components/callout.props.d.ts +9 -1
  64. package/dist/cjs/components/callout.props.d.ts.map +1 -1
  65. package/dist/cjs/components/callout.props.js +1 -1
  66. package/dist/cjs/components/callout.props.js.map +3 -3
  67. package/dist/cjs/components/card.d.ts.map +1 -1
  68. package/dist/cjs/components/card.js +1 -1
  69. package/dist/cjs/components/card.js.map +3 -3
  70. package/dist/cjs/components/card.props.d.ts +5 -0
  71. package/dist/cjs/components/card.props.d.ts.map +1 -1
  72. package/dist/cjs/components/card.props.js +1 -1
  73. package/dist/cjs/components/card.props.js.map +3 -3
  74. package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
  75. package/dist/cjs/components/checkbox-cards.js +1 -1
  76. package/dist/cjs/components/checkbox-cards.js.map +3 -3
  77. package/dist/cjs/components/checkbox-cards.props.d.ts +2 -2
  78. package/dist/cjs/components/checkbox-cards.props.js +1 -1
  79. package/dist/cjs/components/checkbox-cards.props.js.map +2 -2
  80. package/dist/cjs/components/checkbox-group.props.d.ts +6 -1
  81. package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
  82. package/dist/cjs/components/checkbox.d.ts.map +1 -1
  83. package/dist/cjs/components/checkbox.js +1 -1
  84. package/dist/cjs/components/checkbox.js.map +3 -3
  85. package/dist/cjs/components/code.js.map +1 -1
  86. package/dist/cjs/components/code.props.d.ts +1 -1
  87. package/dist/cjs/components/context-menu.d.ts +1 -1
  88. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  89. package/dist/cjs/components/context-menu.js +1 -1
  90. package/dist/cjs/components/context-menu.js.map +3 -3
  91. package/dist/cjs/components/dialog.d.ts.map +1 -1
  92. package/dist/cjs/components/dialog.js +1 -1
  93. package/dist/cjs/components/dialog.js.map +3 -3
  94. package/dist/cjs/components/dialog.props.d.ts +5 -0
  95. package/dist/cjs/components/dialog.props.d.ts.map +1 -1
  96. package/dist/cjs/components/dialog.props.js +1 -1
  97. package/dist/cjs/components/dialog.props.js.map +3 -3
  98. package/dist/cjs/components/dropdown-menu.d.ts +1 -1
  99. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  100. package/dist/cjs/components/dropdown-menu.js +1 -1
  101. package/dist/cjs/components/dropdown-menu.js.map +3 -3
  102. package/dist/cjs/components/heading.props.d.ts +1 -1
  103. package/dist/cjs/components/icon-button.d.ts +79 -1
  104. package/dist/cjs/components/icon-button.d.ts.map +1 -1
  105. package/dist/cjs/components/icon-button.js +4 -1
  106. package/dist/cjs/components/icon-button.js.map +3 -3
  107. package/dist/cjs/components/image.d.ts +131 -12
  108. package/dist/cjs/components/image.d.ts.map +1 -1
  109. package/dist/cjs/components/image.js +1 -1
  110. package/dist/cjs/components/image.js.map +3 -3
  111. package/dist/cjs/components/image.props.d.ts +136 -21
  112. package/dist/cjs/components/image.props.d.ts.map +1 -1
  113. package/dist/cjs/components/image.props.js +1 -1
  114. package/dist/cjs/components/image.props.js.map +3 -3
  115. package/dist/cjs/components/link.props.d.ts +1 -1
  116. package/dist/cjs/components/progress.props.d.ts +2 -2
  117. package/dist/cjs/components/progress.props.js +1 -1
  118. package/dist/cjs/components/progress.props.js.map +2 -2
  119. package/dist/cjs/components/radio-cards.d.ts.map +1 -1
  120. package/dist/cjs/components/radio-cards.js +1 -1
  121. package/dist/cjs/components/radio-cards.js.map +3 -3
  122. package/dist/cjs/components/radio-cards.props.d.ts +2 -2
  123. package/dist/cjs/components/radio-cards.props.js +1 -1
  124. package/dist/cjs/components/radio-cards.props.js.map +2 -2
  125. package/dist/cjs/components/radio.d.ts.map +1 -1
  126. package/dist/cjs/components/radio.js +1 -1
  127. package/dist/cjs/components/radio.js.map +3 -3
  128. package/dist/cjs/components/segmented-control.props.d.ts +3 -3
  129. package/dist/cjs/components/segmented-control.props.js +1 -1
  130. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  131. package/dist/cjs/components/select.d.ts.map +1 -1
  132. package/dist/cjs/components/select.js +1 -1
  133. package/dist/cjs/components/select.js.map +3 -3
  134. package/dist/cjs/components/select.props.d.ts +12 -0
  135. package/dist/cjs/components/select.props.d.ts.map +1 -1
  136. package/dist/cjs/components/select.props.js +1 -1
  137. package/dist/cjs/components/select.props.js.map +2 -2
  138. package/dist/cjs/components/sidebar.d.ts +5 -0
  139. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  140. package/dist/cjs/components/sidebar.js +1 -1
  141. package/dist/cjs/components/sidebar.js.map +3 -3
  142. package/dist/cjs/components/slider.d.ts +5 -0
  143. package/dist/cjs/components/slider.d.ts.map +1 -1
  144. package/dist/cjs/components/slider.js +1 -1
  145. package/dist/cjs/components/slider.js.map +3 -3
  146. package/dist/cjs/components/slider.props.d.ts +10 -2
  147. package/dist/cjs/components/slider.props.d.ts.map +1 -1
  148. package/dist/cjs/components/slider.props.js +1 -1
  149. package/dist/cjs/components/slider.props.js.map +2 -2
  150. package/dist/cjs/components/switch.d.ts.map +1 -1
  151. package/dist/cjs/components/switch.js +1 -1
  152. package/dist/cjs/components/switch.js.map +3 -3
  153. package/dist/cjs/components/switch.props.d.ts +17 -4
  154. package/dist/cjs/components/switch.props.d.ts.map +1 -1
  155. package/dist/cjs/components/switch.props.js +1 -1
  156. package/dist/cjs/components/switch.props.js.map +3 -3
  157. package/dist/cjs/components/tab-nav.d.ts.map +1 -1
  158. package/dist/cjs/components/tab-nav.js +1 -1
  159. package/dist/cjs/components/tab-nav.js.map +3 -3
  160. package/dist/cjs/components/tabs.d.ts.map +1 -1
  161. package/dist/cjs/components/tabs.js +1 -1
  162. package/dist/cjs/components/tabs.js.map +2 -2
  163. package/dist/cjs/components/text-area.d.ts.map +1 -1
  164. package/dist/cjs/components/text-area.js +1 -1
  165. package/dist/cjs/components/text-area.js.map +3 -3
  166. package/dist/cjs/components/text-area.props.d.ts +29 -0
  167. package/dist/cjs/components/text-area.props.d.ts.map +1 -1
  168. package/dist/cjs/components/text-area.props.js +1 -1
  169. package/dist/cjs/components/text-area.props.js.map +3 -3
  170. package/dist/cjs/components/text-field.d.ts.map +1 -1
  171. package/dist/cjs/components/text-field.js +4 -4
  172. package/dist/cjs/components/text-field.js.map +3 -3
  173. package/dist/cjs/components/text-field.props.d.ts +29 -0
  174. package/dist/cjs/components/text-field.props.d.ts.map +1 -1
  175. package/dist/cjs/components/text-field.props.js +1 -1
  176. package/dist/cjs/components/text-field.props.js.map +3 -3
  177. package/dist/cjs/components/text.props.d.ts +1 -1
  178. package/dist/cjs/components/theme.d.ts +3 -0
  179. package/dist/cjs/components/theme.d.ts.map +1 -1
  180. package/dist/cjs/components/theme.js +1 -1
  181. package/dist/cjs/components/theme.js.map +3 -3
  182. package/dist/cjs/components/theme.props.d.ts +14 -0
  183. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  184. package/dist/cjs/components/theme.props.js +1 -1
  185. package/dist/cjs/components/theme.props.js.map +3 -3
  186. package/dist/cjs/components/toggle-button.d.ts +52 -0
  187. package/dist/cjs/components/toggle-button.d.ts.map +1 -1
  188. package/dist/cjs/components/toggle-button.js +1 -1
  189. package/dist/cjs/components/toggle-button.js.map +3 -3
  190. package/dist/cjs/components/toggle-icon-button.d.ts +84 -2
  191. package/dist/cjs/components/toggle-icon-button.d.ts.map +1 -1
  192. package/dist/cjs/components/toggle-icon-button.js +1 -1
  193. package/dist/cjs/components/toggle-icon-button.js.map +3 -3
  194. package/dist/cjs/hooks/index.d.ts +2 -0
  195. package/dist/cjs/hooks/index.d.ts.map +1 -0
  196. package/dist/cjs/hooks/index.js +2 -0
  197. package/dist/cjs/hooks/index.js.map +7 -0
  198. package/dist/cjs/hooks/use-live-announcer.d.ts +6 -0
  199. package/dist/cjs/hooks/use-live-announcer.d.ts.map +1 -0
  200. package/dist/cjs/hooks/use-live-announcer.js +10 -0
  201. package/dist/cjs/hooks/use-live-announcer.js.map +7 -0
  202. package/dist/cjs/index.d.ts +1 -0
  203. package/dist/cjs/index.d.ts.map +1 -1
  204. package/dist/cjs/index.js +1 -1
  205. package/dist/cjs/index.js.map +2 -2
  206. package/dist/cjs/props/weight.prop.d.ts +1 -1
  207. package/dist/cjs/props/weight.prop.js +1 -1
  208. package/dist/cjs/props/weight.prop.js.map +2 -2
  209. package/dist/esm/components/_internal/base-button.d.ts +36 -0
  210. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  211. package/dist/esm/components/_internal/base-button.js +1 -1
  212. package/dist/esm/components/_internal/base-button.js.map +3 -3
  213. package/dist/esm/components/_internal/base-button.props.d.ts +61 -0
  214. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  215. package/dist/esm/components/_internal/base-button.props.js +1 -1
  216. package/dist/esm/components/_internal/base-button.props.js.map +3 -3
  217. package/dist/esm/components/_internal/base-checkbox.props.d.ts +6 -1
  218. package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
  219. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  220. package/dist/esm/components/_internal/base-checkbox.props.js.map +3 -3
  221. package/dist/esm/components/_internal/base-menu.props.d.ts +8 -0
  222. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  223. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  224. package/dist/esm/components/_internal/base-menu.props.js.map +3 -3
  225. package/dist/esm/components/_internal/base-radio.props.d.ts +6 -1
  226. package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
  227. package/dist/esm/components/_internal/base-radio.props.js +1 -1
  228. package/dist/esm/components/_internal/base-radio.props.js.map +3 -3
  229. package/dist/esm/components/accordion.d.ts.map +1 -1
  230. package/dist/esm/components/accordion.js +1 -1
  231. package/dist/esm/components/accordion.js.map +3 -3
  232. package/dist/esm/components/accordion.props.d.ts +9 -0
  233. package/dist/esm/components/accordion.props.d.ts.map +1 -1
  234. package/dist/esm/components/accordion.props.js +1 -1
  235. package/dist/esm/components/accordion.props.js.map +2 -2
  236. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  237. package/dist/esm/components/alert-dialog.js +1 -1
  238. package/dist/esm/components/alert-dialog.js.map +3 -3
  239. package/dist/esm/components/alert-dialog.props.d.ts +69 -2
  240. package/dist/esm/components/alert-dialog.props.d.ts.map +1 -1
  241. package/dist/esm/components/alert-dialog.props.js +1 -1
  242. package/dist/esm/components/alert-dialog.props.js.map +3 -3
  243. package/dist/esm/components/avatar.d.ts.map +1 -1
  244. package/dist/esm/components/avatar.js +1 -1
  245. package/dist/esm/components/avatar.js.map +3 -3
  246. package/dist/esm/components/avatar.props.d.ts +9 -1
  247. package/dist/esm/components/avatar.props.d.ts.map +1 -1
  248. package/dist/esm/components/avatar.props.js +1 -1
  249. package/dist/esm/components/avatar.props.js.map +3 -3
  250. package/dist/esm/components/badge.d.ts +8 -1
  251. package/dist/esm/components/badge.d.ts.map +1 -1
  252. package/dist/esm/components/badge.js +1 -1
  253. package/dist/esm/components/badge.js.map +3 -3
  254. package/dist/esm/components/badge.props.d.ts +14 -6
  255. package/dist/esm/components/badge.props.d.ts.map +1 -1
  256. package/dist/esm/components/badge.props.js +1 -1
  257. package/dist/esm/components/badge.props.js.map +3 -3
  258. package/dist/esm/components/blockquote.props.d.ts +1 -1
  259. package/dist/esm/components/button.d.ts +53 -1
  260. package/dist/esm/components/button.d.ts.map +1 -1
  261. package/dist/esm/components/button.js +1 -1
  262. package/dist/esm/components/button.js.map +3 -3
  263. package/dist/esm/components/button.props.d.ts +17 -0
  264. package/dist/esm/components/button.props.d.ts.map +1 -1
  265. package/dist/esm/components/button.props.js.map +2 -2
  266. package/dist/esm/components/callout.d.ts +4 -0
  267. package/dist/esm/components/callout.d.ts.map +1 -1
  268. package/dist/esm/components/callout.js +1 -1
  269. package/dist/esm/components/callout.js.map +3 -3
  270. package/dist/esm/components/callout.props.d.ts +9 -1
  271. package/dist/esm/components/callout.props.d.ts.map +1 -1
  272. package/dist/esm/components/callout.props.js +1 -1
  273. package/dist/esm/components/callout.props.js.map +3 -3
  274. package/dist/esm/components/card.d.ts.map +1 -1
  275. package/dist/esm/components/card.js +1 -1
  276. package/dist/esm/components/card.js.map +3 -3
  277. package/dist/esm/components/card.props.d.ts +5 -0
  278. package/dist/esm/components/card.props.d.ts.map +1 -1
  279. package/dist/esm/components/card.props.js +1 -1
  280. package/dist/esm/components/card.props.js.map +3 -3
  281. package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
  282. package/dist/esm/components/checkbox-cards.js +1 -1
  283. package/dist/esm/components/checkbox-cards.js.map +3 -3
  284. package/dist/esm/components/checkbox-cards.props.d.ts +2 -2
  285. package/dist/esm/components/checkbox-cards.props.js +1 -1
  286. package/dist/esm/components/checkbox-cards.props.js.map +2 -2
  287. package/dist/esm/components/checkbox-group.props.d.ts +6 -1
  288. package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
  289. package/dist/esm/components/checkbox.d.ts.map +1 -1
  290. package/dist/esm/components/checkbox.js +1 -1
  291. package/dist/esm/components/checkbox.js.map +3 -3
  292. package/dist/esm/components/code.js.map +1 -1
  293. package/dist/esm/components/code.props.d.ts +1 -1
  294. package/dist/esm/components/context-menu.d.ts +1 -1
  295. package/dist/esm/components/context-menu.d.ts.map +1 -1
  296. package/dist/esm/components/context-menu.js +1 -1
  297. package/dist/esm/components/context-menu.js.map +3 -3
  298. package/dist/esm/components/dialog.d.ts.map +1 -1
  299. package/dist/esm/components/dialog.js +1 -1
  300. package/dist/esm/components/dialog.js.map +3 -3
  301. package/dist/esm/components/dialog.props.d.ts +5 -0
  302. package/dist/esm/components/dialog.props.d.ts.map +1 -1
  303. package/dist/esm/components/dialog.props.js +1 -1
  304. package/dist/esm/components/dialog.props.js.map +3 -3
  305. package/dist/esm/components/dropdown-menu.d.ts +1 -1
  306. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  307. package/dist/esm/components/dropdown-menu.js +1 -1
  308. package/dist/esm/components/dropdown-menu.js.map +3 -3
  309. package/dist/esm/components/heading.props.d.ts +1 -1
  310. package/dist/esm/components/icon-button.d.ts +79 -1
  311. package/dist/esm/components/icon-button.d.ts.map +1 -1
  312. package/dist/esm/components/icon-button.js +4 -1
  313. package/dist/esm/components/icon-button.js.map +3 -3
  314. package/dist/esm/components/image.d.ts +131 -12
  315. package/dist/esm/components/image.d.ts.map +1 -1
  316. package/dist/esm/components/image.js +1 -1
  317. package/dist/esm/components/image.js.map +3 -3
  318. package/dist/esm/components/image.props.d.ts +136 -21
  319. package/dist/esm/components/image.props.d.ts.map +1 -1
  320. package/dist/esm/components/image.props.js +1 -1
  321. package/dist/esm/components/image.props.js.map +3 -3
  322. package/dist/esm/components/link.props.d.ts +1 -1
  323. package/dist/esm/components/progress.props.d.ts +2 -2
  324. package/dist/esm/components/progress.props.js +1 -1
  325. package/dist/esm/components/progress.props.js.map +2 -2
  326. package/dist/esm/components/radio-cards.d.ts.map +1 -1
  327. package/dist/esm/components/radio-cards.js +1 -1
  328. package/dist/esm/components/radio-cards.js.map +3 -3
  329. package/dist/esm/components/radio-cards.props.d.ts +2 -2
  330. package/dist/esm/components/radio-cards.props.js +1 -1
  331. package/dist/esm/components/radio-cards.props.js.map +2 -2
  332. package/dist/esm/components/radio.d.ts.map +1 -1
  333. package/dist/esm/components/radio.js +1 -1
  334. package/dist/esm/components/radio.js.map +3 -3
  335. package/dist/esm/components/segmented-control.props.d.ts +3 -3
  336. package/dist/esm/components/segmented-control.props.js +1 -1
  337. package/dist/esm/components/segmented-control.props.js.map +2 -2
  338. package/dist/esm/components/select.d.ts.map +1 -1
  339. package/dist/esm/components/select.js +1 -1
  340. package/dist/esm/components/select.js.map +3 -3
  341. package/dist/esm/components/select.props.d.ts +12 -0
  342. package/dist/esm/components/select.props.d.ts.map +1 -1
  343. package/dist/esm/components/select.props.js +1 -1
  344. package/dist/esm/components/select.props.js.map +2 -2
  345. package/dist/esm/components/sidebar.d.ts +5 -0
  346. package/dist/esm/components/sidebar.d.ts.map +1 -1
  347. package/dist/esm/components/sidebar.js +1 -1
  348. package/dist/esm/components/sidebar.js.map +3 -3
  349. package/dist/esm/components/slider.d.ts +5 -0
  350. package/dist/esm/components/slider.d.ts.map +1 -1
  351. package/dist/esm/components/slider.js +1 -1
  352. package/dist/esm/components/slider.js.map +3 -3
  353. package/dist/esm/components/slider.props.d.ts +10 -2
  354. package/dist/esm/components/slider.props.d.ts.map +1 -1
  355. package/dist/esm/components/slider.props.js +1 -1
  356. package/dist/esm/components/slider.props.js.map +2 -2
  357. package/dist/esm/components/switch.d.ts.map +1 -1
  358. package/dist/esm/components/switch.js +1 -1
  359. package/dist/esm/components/switch.js.map +3 -3
  360. package/dist/esm/components/switch.props.d.ts +17 -4
  361. package/dist/esm/components/switch.props.d.ts.map +1 -1
  362. package/dist/esm/components/switch.props.js +1 -1
  363. package/dist/esm/components/switch.props.js.map +3 -3
  364. package/dist/esm/components/tab-nav.d.ts.map +1 -1
  365. package/dist/esm/components/tab-nav.js +1 -1
  366. package/dist/esm/components/tab-nav.js.map +3 -3
  367. package/dist/esm/components/tabs.d.ts.map +1 -1
  368. package/dist/esm/components/tabs.js +1 -1
  369. package/dist/esm/components/tabs.js.map +2 -2
  370. package/dist/esm/components/text-area.d.ts.map +1 -1
  371. package/dist/esm/components/text-area.js +1 -1
  372. package/dist/esm/components/text-area.js.map +3 -3
  373. package/dist/esm/components/text-area.props.d.ts +29 -0
  374. package/dist/esm/components/text-area.props.d.ts.map +1 -1
  375. package/dist/esm/components/text-area.props.js +1 -1
  376. package/dist/esm/components/text-area.props.js.map +3 -3
  377. package/dist/esm/components/text-field.d.ts.map +1 -1
  378. package/dist/esm/components/text-field.js +4 -4
  379. package/dist/esm/components/text-field.js.map +3 -3
  380. package/dist/esm/components/text-field.props.d.ts +29 -0
  381. package/dist/esm/components/text-field.props.d.ts.map +1 -1
  382. package/dist/esm/components/text-field.props.js +1 -1
  383. package/dist/esm/components/text-field.props.js.map +3 -3
  384. package/dist/esm/components/text.props.d.ts +1 -1
  385. package/dist/esm/components/theme.d.ts +3 -0
  386. package/dist/esm/components/theme.d.ts.map +1 -1
  387. package/dist/esm/components/theme.js +1 -1
  388. package/dist/esm/components/theme.js.map +3 -3
  389. package/dist/esm/components/theme.props.d.ts +14 -0
  390. package/dist/esm/components/theme.props.d.ts.map +1 -1
  391. package/dist/esm/components/theme.props.js +1 -1
  392. package/dist/esm/components/theme.props.js.map +3 -3
  393. package/dist/esm/components/toggle-button.d.ts +52 -0
  394. package/dist/esm/components/toggle-button.d.ts.map +1 -1
  395. package/dist/esm/components/toggle-button.js +1 -1
  396. package/dist/esm/components/toggle-button.js.map +3 -3
  397. package/dist/esm/components/toggle-icon-button.d.ts +84 -2
  398. package/dist/esm/components/toggle-icon-button.d.ts.map +1 -1
  399. package/dist/esm/components/toggle-icon-button.js +1 -1
  400. package/dist/esm/components/toggle-icon-button.js.map +3 -3
  401. package/dist/esm/hooks/index.d.ts +2 -0
  402. package/dist/esm/hooks/index.d.ts.map +1 -0
  403. package/dist/esm/hooks/index.js +2 -0
  404. package/dist/esm/hooks/index.js.map +7 -0
  405. package/dist/esm/hooks/use-live-announcer.d.ts +6 -0
  406. package/dist/esm/hooks/use-live-announcer.d.ts.map +1 -0
  407. package/dist/esm/hooks/use-live-announcer.js +10 -0
  408. package/dist/esm/hooks/use-live-announcer.js.map +7 -0
  409. package/dist/esm/index.d.ts +1 -0
  410. package/dist/esm/index.d.ts.map +1 -1
  411. package/dist/esm/index.js +1 -1
  412. package/dist/esm/index.js.map +2 -2
  413. package/dist/esm/props/weight.prop.d.ts +1 -1
  414. package/dist/esm/props/weight.prop.js +1 -1
  415. package/dist/esm/props/weight.prop.js.map +2 -2
  416. package/layout/components.css +1 -0
  417. package/layout.css +1 -0
  418. package/package.json +2 -1
  419. package/src/components/_internal/base-button.css +483 -284
  420. package/src/components/_internal/base-button.props.ts +87 -0
  421. package/src/components/_internal/base-button.tsx +127 -10
  422. package/src/components/_internal/base-card.css +866 -83
  423. package/src/components/_internal/base-checkbox.css +252 -52
  424. package/src/components/_internal/base-checkbox.props.ts +4 -1
  425. package/src/components/_internal/base-dialog.css +39 -8
  426. package/src/components/_internal/base-menu.css +55 -32
  427. package/src/components/_internal/base-menu.props.ts +10 -0
  428. package/src/components/_internal/base-radio.css +222 -52
  429. package/src/components/_internal/base-radio.props.ts +4 -1
  430. package/src/components/_internal/base-tab-list.css +16 -0
  431. package/src/components/accordion.css +465 -62
  432. package/src/components/accordion.props.tsx +6 -0
  433. package/src/components/accordion.tsx +54 -7
  434. package/src/components/alert-dialog.props.tsx +22 -2
  435. package/src/components/alert-dialog.tsx +94 -3
  436. package/src/components/avatar.css +294 -152
  437. package/src/components/avatar.props.tsx +7 -1
  438. package/src/components/avatar.tsx +12 -2
  439. package/src/components/badge.css +160 -138
  440. package/src/components/badge.props.tsx +10 -3
  441. package/src/components/badge.tsx +71 -9
  442. package/src/components/button.css +88 -0
  443. package/src/components/button.props.tsx +17 -0
  444. package/src/components/button.tsx +107 -5
  445. package/src/components/callout.css +122 -35
  446. package/src/components/callout.props.tsx +7 -1
  447. package/src/components/callout.tsx +32 -9
  448. package/src/components/card.css +0 -597
  449. package/src/components/card.props.tsx +3 -0
  450. package/src/components/card.tsx +4 -2
  451. package/src/components/checkbox-cards.css +27 -104
  452. package/src/components/checkbox-cards.props.tsx +2 -2
  453. package/src/components/checkbox-cards.tsx +21 -3
  454. package/src/components/checkbox.tsx +2 -0
  455. package/src/components/code.css +1 -1
  456. package/src/components/code.tsx +1 -1
  457. package/src/components/container.css +1 -0
  458. package/src/components/context-menu.tsx +54 -12
  459. package/src/components/dialog.props.tsx +3 -0
  460. package/src/components/dialog.tsx +93 -3
  461. package/src/components/dropdown-menu.tsx +49 -12
  462. package/src/components/icon-button.css +73 -4
  463. package/src/components/icon-button.tsx +125 -19
  464. package/src/components/image.css +160 -91
  465. package/src/components/image.props.ts +152 -15
  466. package/src/components/image.tsx +290 -247
  467. package/src/components/kbd.css +23 -44
  468. package/src/components/progress.css +130 -149
  469. package/src/components/progress.props.tsx +2 -2
  470. package/src/components/radio-cards.css +23 -113
  471. package/src/components/radio-cards.props.tsx +2 -2
  472. package/src/components/radio-cards.tsx +45 -18
  473. package/src/components/radio.tsx +4 -3
  474. package/src/components/scroll-area.css +1 -1
  475. package/src/components/segmented-control.css +83 -64
  476. package/src/components/segmented-control.props.tsx +3 -3
  477. package/src/components/select.css +502 -224
  478. package/src/components/select.props.tsx +8 -0
  479. package/src/components/select.tsx +45 -2
  480. package/src/components/sidebar.css +17 -6
  481. package/src/components/sidebar.tsx +61 -5
  482. package/src/components/slider.css +228 -88
  483. package/src/components/slider.props.tsx +6 -2
  484. package/src/components/slider.tsx +201 -24
  485. package/src/components/spinner.css +12 -0
  486. package/src/components/switch.css +135 -216
  487. package/src/components/switch.props.tsx +16 -4
  488. package/src/components/switch.tsx +5 -3
  489. package/src/components/tab-nav.tsx +6 -3
  490. package/src/components/tabs.tsx +2 -0
  491. package/src/components/text-area.css +222 -140
  492. package/src/components/text-area.props.tsx +18 -1
  493. package/src/components/text-area.tsx +58 -7
  494. package/src/components/text-field.css +214 -131
  495. package/src/components/text-field.props.tsx +17 -0
  496. package/src/components/text-field.tsx +79 -28
  497. package/src/components/theme.props.tsx +12 -0
  498. package/src/components/theme.tsx +31 -1
  499. package/src/components/toggle-button.tsx +102 -3
  500. package/src/components/toggle-icon-button.tsx +150 -7
  501. package/src/components/tooltip.css +3 -3
  502. package/src/hooks/index.ts +1 -0
  503. package/src/hooks/use-live-announcer.ts +52 -0
  504. package/src/index.ts +1 -0
  505. package/src/props/weight.prop.ts +1 -1
  506. package/src/styles/fonts.css +27 -13
  507. package/src/styles/index.css +1 -1
  508. package/src/styles/tokens/base.css +2 -0
  509. package/src/styles/tokens/blur.css +32 -0
  510. package/src/styles/tokens/color.css +9 -9
  511. package/src/styles/tokens/constants.css +88 -140
  512. package/src/styles/tokens/index.css +2 -0
  513. package/src/styles/tokens/opacity.css +32 -0
  514. package/src/styles/tokens/radius.css +6 -10
  515. package/src/styles/tokens/shadow.css +25 -25
  516. package/src/styles/tokens/transition.css +49 -13
  517. package/src/styles/tokens/typography.css +7 -3
  518. package/src/styles/utilities/font-weight.css +16 -0
  519. package/styles.css +10689 -8708
  520. package/tokens/base.css +127 -49
  521. package/tokens.css +158 -114
  522. package/utilities.css +72 -0
@@ -1,3 +1,7 @@
1
+ /* stylelint-disable selector-max-type */
2
+ /* Disable selector-max-type rule to target `button` and `a` tags. */
3
+ /* Make sure these tags are wrapped in `:where()` for 0 specificity. */
4
+
1
5
  .rt-BaseCard {
2
6
  display: block;
3
7
  position: relative;
@@ -11,6 +15,11 @@
11
15
  font-style: normal;
12
16
  text-align: start;
13
17
 
18
+ /* Set backdrop-filter flag at component root level */
19
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
20
+ --has-backdrop-filter: true;
21
+ }
22
+
14
23
  --inset-border-width: var(--base-card-border-width);
15
24
  --inset-border-radius: var(--base-card-border-radius);
16
25
  padding-top: var(--base-card-padding-top);
@@ -82,101 +91,875 @@
82
91
 
83
92
  /* * * * * * * * * * * * * * * * * * * */
84
93
  /* */
85
- /* Shadows / Surface */
94
+ /* Sizes */
86
95
  /* */
87
96
  /* * * * * * * * * * * * * * * * * * * */
88
97
 
89
- :where(.radix-themes) {
90
- --base-card-surface-box-shadow: 0 0 0 1px var(--gray-a5);
91
- --base-card-surface-hover-box-shadow: 0 0 0 1px var(--gray-a7);
92
- --base-card-surface-active-box-shadow: 0 0 0 1px var(--gray-a6);
98
+ @breakpoints {
99
+ .rt-BaseCard {
100
+ &:where(.rt-r-size-1) {
101
+ --base-card-padding-top: var(--space-3);
102
+ --base-card-padding-right: var(--space-3);
103
+ --base-card-padding-bottom: var(--space-3);
104
+ --base-card-padding-left: var(--space-3);
105
+ --base-card-border-radius: var(--radius-3);
106
+ }
107
+ &:where(.rt-r-size-2) {
108
+ --base-card-padding-top: var(--space-4);
109
+ --base-card-padding-right: var(--space-4);
110
+ --base-card-padding-bottom: var(--space-4);
111
+ --base-card-padding-left: var(--space-4);
112
+ --base-card-border-radius: var(--radius-4);
113
+ }
114
+ &:where(.rt-r-size-3) {
115
+ --base-card-padding-top: var(--space-5);
116
+ --base-card-padding-right: var(--space-5);
117
+ --base-card-padding-bottom: var(--space-5);
118
+ --base-card-padding-left: var(--space-5);
119
+ --base-card-border-radius: var(--radius-5);
120
+ }
121
+ &:where(.rt-r-size-4) {
122
+ --base-card-padding-top: var(--space-6);
123
+ --base-card-padding-right: var(--space-6);
124
+ --base-card-padding-bottom: var(--space-6);
125
+ --base-card-padding-left: var(--space-6);
126
+ --base-card-border-radius: var(--radius-6);
127
+ }
128
+ &:where(.rt-r-size-5) {
129
+ --base-card-padding-top: var(--space-7);
130
+ --base-card-padding-right: var(--space-7);
131
+ --base-card-padding-bottom: var(--space-7);
132
+ --base-card-padding-left: var(--space-7);
133
+ --base-card-border-radius: var(--radius-7);
134
+ }
135
+ }
136
+ }
137
+
138
+
139
+ /* * * * * * * * * * * * * * * * * * * */
140
+ /* */
141
+ /* Variants / Outline */
142
+ /* */
143
+ /* * * * * * * * * * * * * * * * * * * */
144
+
145
+ .rt-BaseCard:where(.rt-variant-outline) {
146
+ --card-border-width: 1px;
147
+ --card-background-color: transparent;
148
+ transition: var(--transition-background-blur);
149
+
150
+ /* Base state: solid colors for solid panels */
151
+ box-shadow: inset 0 0 0 1px var(--gray-6);
152
+
153
+ /* Theme-level translucent override */
154
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
155
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
156
+ }
157
+
158
+ /* Component-level overrides (higher specificity) */
159
+ &:where([data-panel-background='solid'], [data-material='solid']) {
160
+ box-shadow: inset 0 0 0 1px var(--gray-6);
161
+ }
162
+
163
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
164
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
165
+ }
166
+
167
+ &::before {
168
+ background-color: var(--card-background-color);
169
+ backdrop-filter: none !important;
170
+ }
171
+
172
+ &::after {
173
+ box-shadow: none;
174
+ }
175
+
176
+ &:where(:focus-visible) {
177
+ outline: 2px solid var(--focus-8);
178
+ outline-offset: -1px;
179
+ }
180
+
181
+ &:where(:any-link, button, label) {
182
+ @media (hover: hover) {
183
+ &:where(:hover) {
184
+ background-color: var(--gray-2);
185
+ box-shadow: inset 0 0 0 1px var(--gray-7);
186
+
187
+ /* Theme-level translucent override for hover */
188
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
189
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
190
+ box-shadow: inset 0 0 0 1px var(--gray-a7);
191
+ backdrop-filter: var(--backdrop-filter-panel);
192
+ }
193
+
194
+ /* Component-level overrides for hover */
195
+ &:where([data-panel-background='solid'], [data-material='solid']) {
196
+ background-color: var(--gray-2);
197
+ box-shadow: inset 0 0 0 1px var(--gray-7);
198
+ backdrop-filter: none;
199
+ --backdrop-filter-panel: none;
200
+ }
201
+
202
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
203
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
204
+ box-shadow: inset 0 0 0 1px var(--gray-a7);
205
+ backdrop-filter: var(--backdrop-filter-panel);
206
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
207
+ }
208
+ }
209
+ }
210
+
211
+ &:where([data-state='open']) {
212
+ background-color: var(--gray-2);
213
+ box-shadow: inset 0 0 0 1px var(--gray-7);
214
+
215
+ /* Theme-level translucent override for open */
216
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
217
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
218
+ box-shadow: inset 0 0 0 1px var(--gray-a7);
219
+ backdrop-filter: var(--backdrop-filter-panel);
220
+ }
221
+
222
+ /* Component-level overrides for open */
223
+ &:where([data-panel-background='solid'], [data-material='solid']) {
224
+ background-color: var(--gray-2);
225
+ box-shadow: inset 0 0 0 1px var(--gray-7);
226
+ backdrop-filter: none;
227
+ --backdrop-filter-panel: none;
228
+ }
229
+
230
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
231
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
232
+ box-shadow: inset 0 0 0 1px var(--gray-a7);
233
+ backdrop-filter: var(--backdrop-filter-panel);
234
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
235
+ }
236
+ }
237
+
238
+ &:where(:active:not([data-state='open'])) {
239
+ background-color: var(--gray-3);
240
+ box-shadow: inset 0 0 0 1px var(--gray-8);
241
+
242
+ /* Theme-level translucent override for active */
243
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
244
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
245
+ box-shadow: inset 0 0 0 1px var(--gray-a8);
246
+ backdrop-filter: var(--backdrop-filter-panel);
247
+ }
248
+
249
+ /* Component-level overrides for active */
250
+ &:where([data-panel-background='solid'], [data-material='solid']) {
251
+ background-color: var(--gray-3);
252
+ box-shadow: inset 0 0 0 1px var(--gray-8);
253
+ backdrop-filter: none;
254
+ --backdrop-filter-panel: none;
255
+ }
256
+
257
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
258
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
259
+ box-shadow: inset 0 0 0 1px var(--gray-a8);
260
+ backdrop-filter: var(--backdrop-filter-panel);
261
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
262
+ }
263
+ }
264
+ }
93
265
 
94
- @supports (color: color-mix(in oklab, white, black)) {
95
- --base-card-surface-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a5), var(--gray-5) var(--color-mix-percentage-light));
96
- --base-card-surface-hover-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a7), var(--gray-7) var(--color-mix-percentage-light));
97
- --base-card-surface-active-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) var(--color-mix-percentage-light));
266
+ @media (pointer: coarse) {
267
+ &:where(:any-link, button, label) {
268
+ &:where(:active:not([data-state='open'])) {
269
+ &::before {
270
+ background-image: linear-gradient(var(--gray-a4), var(--gray-a4));
271
+ }
272
+ }
273
+ }
98
274
  }
99
275
  }
100
276
 
101
277
  /* * * * * * * * * * * * * * * * * * * */
102
278
  /* */
103
- /* Shadows / Classic */
279
+ /* Variants / Classic */
104
280
  /* */
105
281
  /* * * * * * * * * * * * * * * * * * * */
106
282
 
107
- /*
108
- * Using the same elevated 3D effect as Button classic variant for consistency.
109
- * Creates a sophisticated multi-layer shadow system with inset and outer shadows.
110
- */
111
-
112
- :where(.radix-themes) {
113
- /* Base state - elevated 3D effect (exact same structure as Button) */
114
- --base-card-classic-box-shadow-outer:
115
- inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--gray-a2),
116
- inset 0 var(--classic-border-width) var(--white-a12),
117
- inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--gray-a2),
118
- inset 0 calc(-1 * var(--classic-border-width)) var(--gray-a6),
119
- 0 0 0 var(--classic-border-width) var(--gray-a5),
120
- 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--gray-a7);
121
-
122
- --base-card-classic-box-shadow-inner: none;
123
-
124
- /* Hover state - enhanced elevation (exact same structure as Button) */
125
- --base-card-classic-hover-box-shadow-outer:
126
- inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--gray-a2),
127
- inset 0 var(--classic-border-width) var(--white-a12),
128
- inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--gray-a2),
129
- inset 0 calc(-1 * var(--classic-border-width)) var(--gray-a6),
130
- 0 0 0 var(--classic-border-width) var(--gray-a5),
131
- 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--gray-a7),
132
- 0 0 0 var(--classic-border-width) var(--gray-a5);
133
-
134
- --base-card-classic-hover-box-shadow-inner: none;
135
-
136
- /* Active state - pressed down effect (exact same structure as Button) */
137
- --base-card-classic-active-box-shadow-outer:
138
- inset 0 var(--classic-border-width) var(--black-a3),
139
- 0 0 0 var(--classic-border-width) var(--gray-a7);
140
-
141
- --base-card-classic-active-box-shadow-inner: none;
142
-
143
- /* Dark mode overrides (exact same structure as Button) */
144
- :where(.dark, .dark-theme) &,
145
- :where(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) {
146
- --base-card-classic-box-shadow-outer:
147
- inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--gray-a3),
148
- inset 0 var(--classic-border-width) var(--gray-a11),
149
- inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--gray-a2),
150
- inset 0 calc(-2 * var(--classic-border-width)) var(--black-a11),
151
- 0 0 0 var(--classic-border-width-thick) var(--gray-a7),
152
- 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--black-a12);
153
-
154
- --base-card-classic-hover-box-shadow-outer:
155
- inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--gray-a3),
156
- inset 0 var(--classic-border-width) var(--gray-a11),
157
- inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--gray-a2),
158
- inset 0 var(--classic-shadow-offset-negative) var(--black-a11),
159
- 0 0 0 var(--classic-border-width-thick) var(--gray-a7),
160
- 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--black-a12),
161
- 0 0 0 var(--classic-border-width) var(--gray-a5);
162
-
163
- --base-card-classic-active-box-shadow-outer:
164
- inset 0 var(--classic-border-width) var(--black-a3),
165
- 0 0 0 var(--classic-border-width) var(--gray-a7);
166
-
167
- --base-card-classic-box-shadow-inner: none;
168
- --base-card-classic-hover-box-shadow-inner: none;
169
- --base-card-classic-active-box-shadow-inner: none;
170
- }
171
-
172
- /* Border color definitions (kept for compatibility) */
173
- --base-card-classic-border-color: var(--gray-a3);
174
- --base-card-classic-hover-border-color: var(--gray-a3);
175
- --base-card-classic-active-border-color: var(--gray-a4);
283
+ .rt-BaseCard:where(.rt-variant-classic) {
284
+ position: relative;
285
+ top: var(--classic-elevation-offset);
286
+ --card-border-width: 1px;
287
+ --card-background-color: var(--color-surface-solid);
288
+
289
+ transition: var(--transition-text-field);
290
+ box-shadow: var(--shadow-2);
291
+
292
+ /* Theme-level translucent override */
293
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
294
+ --card-background-color: var(--color-surface-translucent);
295
+ }
296
+
297
+ /* Component-level overrides (higher specificity) */
298
+ &:where([data-panel-background='solid'], [data-material='solid']) {
299
+ --card-background-color: var(--color-surface-solid);
300
+ }
301
+
302
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
303
+ --card-background-color: var(--color-surface-translucent);
304
+ }
305
+
306
+ &::before {
307
+ background-color: var(--card-background-color);
308
+
309
+ /* Theme-level translucent override */
310
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
311
+ backdrop-filter: var(--backdrop-filter-panel);
312
+ }
313
+
314
+ /* Component-level overrides (higher specificity) */
315
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
316
+ backdrop-filter: none;
317
+ --backdrop-filter-panel: none;
318
+ }
319
+
320
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
321
+ backdrop-filter: var(--backdrop-filter-panel);
322
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
323
+ }
324
+ }
176
325
 
177
- @supports (color: color-mix(in oklab, white, black)) {
178
- --base-card-classic-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) var(--color-mix-percentage-light));
179
- --base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a4), var(--gray-4) var(--color-mix-percentage-light));
180
- --base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) var(--color-mix-percentage-light));
326
+ &::after {
327
+ box-shadow: none;
328
+ }
329
+
330
+ &:where(:focus-visible) {
331
+ outline: 2px solid var(--focus-8);
332
+ outline-offset: 2px;
333
+ }
334
+
335
+ &:where(:any-link, button, label) {
336
+ @media (hover: hover) {
337
+ &:where(:hover) {
338
+ transition-duration: 40ms;
339
+ box-shadow: var(--shadow-2);
340
+
341
+ &::before {
342
+ background-color: var(--gray-2);
343
+
344
+ /* Theme-level translucent override for hover */
345
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
346
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
347
+ backdrop-filter: var(--backdrop-filter-panel);
348
+ }
349
+
350
+ /* Component-level overrides for hover */
351
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
352
+ background-color: var(--gray-2);
353
+ backdrop-filter: none;
354
+ --backdrop-filter-panel: none;
355
+ }
356
+
357
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
358
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
359
+ backdrop-filter: var(--backdrop-filter-panel);
360
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
361
+ }
362
+ }
363
+
364
+ &::after {
365
+ box-shadow: none;
366
+ }
367
+ }
368
+ }
369
+
370
+ &:where([data-state='open']) {
371
+ transition-duration: 40ms;
372
+ box-shadow: var(--shadow-1);
373
+
374
+ &::before {
375
+ background-color: var(--gray-3);
376
+
377
+ /* Theme-level translucent override for open */
378
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
379
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
380
+ backdrop-filter: var(--backdrop-filter-panel);
381
+ }
382
+
383
+ /* Component-level overrides for open */
384
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
385
+ background-color: var(--gray-3);
386
+ backdrop-filter: none;
387
+ --backdrop-filter-panel: none;
388
+ }
389
+
390
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
391
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
392
+ backdrop-filter: var(--backdrop-filter-panel);
393
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
394
+ }
395
+ }
396
+
397
+ &::after {
398
+ box-shadow: none;
399
+ }
400
+ }
401
+
402
+ &:where(:active:not([data-state='open'])) {
403
+ box-shadow: var(--shadow-1);
404
+
405
+ &::before {
406
+ background-color: var(--gray-3);
407
+
408
+ /* Theme-level translucent override for active */
409
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
410
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
411
+ backdrop-filter: var(--backdrop-filter-panel);
412
+ }
413
+
414
+ /* Component-level overrides for active */
415
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
416
+ background-color: var(--gray-3);
417
+ backdrop-filter: none;
418
+ --backdrop-filter-panel: none;
419
+ }
420
+
421
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
422
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
423
+ backdrop-filter: var(--backdrop-filter-panel);
424
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
425
+ }
426
+ }
427
+
428
+ &::after {
429
+ box-shadow: none;
430
+ }
431
+ }
432
+ }
433
+
434
+ @media (pointer: coarse) {
435
+ &:where(:any-link, button, label) {
436
+ &:where(:active:not([data-state='open'])) {
437
+ &::before {
438
+ background-image: linear-gradient(var(--gray-a4), var(--gray-a4));
439
+ }
440
+ }
441
+ }
442
+ }
443
+ }
444
+
445
+ /* * * * * * * * * * * * * * * * * * * */
446
+ /* */
447
+ /* Variants / Ghost */
448
+ /* */
449
+ /* * * * * * * * * * * * * * * * * * * */
450
+
451
+ .rt-BaseCard:where(.rt-variant-ghost) {
452
+ --card-border-width: 0px;
453
+ transition: var(--transition-background-blur);
454
+
455
+ /* Disable base card backdrop-filter to prevent double blur effect */
456
+ &::before {
457
+ backdrop-filter: none !important;
458
+ }
459
+
460
+ &:where([data-flush='true']) {
461
+ /* We reset the defined margin variables to avoid inheriting them from a higher component */
462
+ /* If a margin IS defined on the component itself, the utility class will win and reset it */
463
+ --margin-top: 0px;
464
+ --margin-right: 0px;
465
+ --margin-bottom: 0px;
466
+ --margin-left: 0px;
467
+
468
+ /* Define the overrides to incorporate the negative margins */
469
+ --margin-top-override: calc(var(--margin-top) - var(--card-padding));
470
+ --margin-right-override: calc(var(--margin-right) - var(--card-padding));
471
+ --margin-bottom-override: calc(var(--margin-bottom) - var(--card-padding));
472
+ --margin-left-override: calc(var(--margin-left) - var(--card-padding));
473
+
474
+ margin-top: var(--margin-top-override);
475
+ margin-right: var(--margin-right-override);
476
+ margin-bottom: var(--margin-bottom-override);
477
+ margin-left: var(--margin-left-override);
478
+
479
+ /* Reset the overrides on direct children */
480
+ :where(&) > * {
481
+ --margin-top-override: initial;
482
+ --margin-right-override: initial;
483
+ --margin-bottom-override: initial;
484
+ --margin-left-override: initial;
485
+ }
486
+ }
487
+
488
+ &:where(:focus-visible) {
489
+ outline: 2px solid var(--focus-8);
490
+ outline-offset: -1px;
491
+ }
492
+
493
+ &:where(:any-link, button, label) {
494
+ @media (hover: hover) {
495
+ &:where(:hover) {
496
+ /* Base state: solid accent for solid panels */
497
+ background-color: var(--gray-3);
498
+
499
+ /* Theme-level translucent override for hover */
500
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
501
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
502
+ backdrop-filter: var(--backdrop-filter-panel);
503
+ }
504
+
505
+ /* Component-level overrides for hover */
506
+ &:where([data-panel-background='solid'], [data-material='solid']) {
507
+ background-color: var(--gray-3);
508
+ backdrop-filter: none;
509
+ --backdrop-filter-panel: none;
510
+ }
511
+
512
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
513
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
514
+ backdrop-filter: var(--backdrop-filter-panel);
515
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
516
+ }
517
+
518
+ /* Disable backdrop-filter when inside elements that already have backdrop-filter */
519
+ :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
520
+ backdrop-filter: none !important;
521
+ }
522
+
523
+ &:where(:focus-visible) {
524
+ background-color: var(--focus-a2);
525
+ }
526
+ }
527
+ }
528
+
529
+ &:where([data-state='open']) {
530
+ /* Base state: solid accent for solid panels */
531
+ background-color: var(--gray-3);
532
+
533
+ /* Theme-level translucent override for open */
534
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
535
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
536
+ backdrop-filter: var(--backdrop-filter-panel);
537
+ }
538
+
539
+ /* Component-level overrides for open */
540
+ &:where([data-panel-background='solid'], [data-material='solid']) {
541
+ background-color: var(--gray-3);
542
+ backdrop-filter: none;
543
+ --backdrop-filter-panel: none;
544
+ }
545
+
546
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
547
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
548
+ backdrop-filter: var(--backdrop-filter-panel);
549
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
550
+ }
551
+
552
+ /* Disable backdrop-filter when inside elements that already have backdrop-filter */
553
+ :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
554
+ backdrop-filter: none !important;
555
+ }
556
+
557
+ &:where(:focus-visible) {
558
+ background-color: var(--focus-a2);
559
+ }
560
+ }
561
+
562
+ &:where(:active:not([data-state='open'])) {
563
+ /* Base state: solid accent for solid panels */
564
+ background-color: var(--gray-4);
565
+
566
+ /* Theme-level translucent override for active */
567
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
568
+ background-color: color-mix(in srgb, var(--gray-a4), var(--gray-4) 60%);
569
+ backdrop-filter: var(--backdrop-filter-panel);
570
+ }
571
+
572
+ /* Component-level overrides for active */
573
+ &:where([data-panel-background='solid'], [data-material='solid']) {
574
+ background-color: var(--gray-4);
575
+ backdrop-filter: none;
576
+ --backdrop-filter-panel: none;
577
+ }
578
+
579
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
580
+ background-color: color-mix(in srgb, var(--gray-a4), var(--gray-4) 60%);
581
+ backdrop-filter: var(--backdrop-filter-panel);
582
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
583
+ }
584
+
585
+ /* Disable backdrop-filter when inside elements that already have backdrop-filter */
586
+ :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
587
+ backdrop-filter: none !important;
588
+ }
589
+
590
+ &:where(:focus-visible) {
591
+ background-color: var(--focus-a2);
592
+ }
593
+ }
594
+ }
595
+
596
+ @media (pointer: coarse) {
597
+ &:where(:any-link, button, label) {
598
+ &:where(:active:not([data-state='open'])) {
599
+ &::before {
600
+ background-image: linear-gradient(var(--gray-a4), var(--gray-a4));
601
+ }
602
+ }
603
+ }
604
+ }
605
+ }
606
+
607
+ /* * * * * * * * * * * * * * * * * * * */
608
+ /* */
609
+ /* Variants / Soft */
610
+ /* */
611
+ /* * * * * * * * * * * * * * * * * * * */
612
+
613
+ .rt-BaseCard:where(.rt-variant-soft) {
614
+ --card-border-width: 0px;
615
+
616
+ /* Base state: solid colors for solid panels */
617
+ --card-background-color: var(--gray-2);
618
+
619
+ /* Theme-level translucent override */
620
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
621
+ --card-background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
622
+ }
623
+
624
+ /* Component-level overrides (higher specificity) */
625
+ &:where([data-panel-background='solid'], [data-material='solid']) {
626
+ --card-background-color: var(--gray-2);
627
+ }
628
+
629
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
630
+ --card-background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
631
+ }
632
+
633
+ &::before {
634
+ background-color: var(--card-background-color);
635
+
636
+ /* Theme-level translucent override */
637
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
638
+ backdrop-filter: var(--backdrop-filter-panel);
639
+ }
640
+
641
+ /* Component-level overrides (higher specificity) */
642
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
643
+ backdrop-filter: none;
644
+ --backdrop-filter-panel: none;
645
+ }
646
+
647
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
648
+ backdrop-filter: var(--backdrop-filter-panel);
649
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
650
+ }
651
+ }
652
+
653
+ &::after {
654
+ box-shadow: none;
655
+ border: none;
656
+ outline: none;
657
+ }
658
+
659
+ &:where(:focus-visible) {
660
+ outline: 2px solid var(--gray-8);
661
+ outline-offset: -1px;
662
+ }
663
+
664
+ &:where(:any-link, button, label) {
665
+ @media (hover: hover) {
666
+ &:where(:hover) {
667
+ &::before {
668
+ /* Base state: solid colors for solid panels */
669
+ background-color: var(--gray-3);
670
+
671
+ /* Theme-level translucent override for hover */
672
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
673
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
674
+ backdrop-filter: var(--backdrop-filter-panel);
675
+ }
676
+
677
+ /* Component-level overrides for hover */
678
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
679
+ background-color: var(--gray-3);
680
+ backdrop-filter: none;
681
+ --backdrop-filter-panel: none;
682
+ }
683
+
684
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
685
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
686
+ backdrop-filter: var(--backdrop-filter-panel);
687
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
688
+ }
689
+
690
+ /* Disable backdrop-filter when inside elements that already have backdrop-filter */
691
+ :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
692
+ backdrop-filter: none !important;
693
+ }
694
+ }
695
+ }
696
+ }
697
+
698
+ &:where([data-state='open']) {
699
+ &::before {
700
+ /* Base state: solid colors for solid panels */
701
+ background-color: var(--gray-3);
702
+
703
+ /* Theme-level translucent override for open */
704
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
705
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
706
+ backdrop-filter: var(--backdrop-filter-panel);
707
+ }
708
+
709
+ /* Component-level overrides for open */
710
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
711
+ background-color: var(--gray-3);
712
+ backdrop-filter: none;
713
+ --backdrop-filter-panel: none;
714
+ }
715
+
716
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
717
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
718
+ backdrop-filter: var(--backdrop-filter-panel);
719
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
720
+ }
721
+
722
+ /* Disable backdrop-filter when inside elements that already have backdrop-filter */
723
+ :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) & {
724
+ backdrop-filter: none !important;
725
+ }
726
+ }
727
+ }
728
+
729
+ &:where(:active:not([data-state='open'])) {
730
+ &::before {
731
+ /* Base state: solid colors for solid panels */
732
+ background-color: var(--gray-4);
733
+
734
+ /* Theme-level translucent override for active */
735
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
736
+ background-color: color-mix(in srgb, var(--gray-a4), var(--gray-4) 60%);
737
+ backdrop-filter: var(--backdrop-filter-panel);
738
+ }
739
+
740
+ /* Component-level overrides for active */
741
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
742
+ background-color: var(--gray-4);
743
+ backdrop-filter: none;
744
+ --backdrop-filter-panel: none;
745
+ }
746
+
747
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
748
+ background-color: color-mix(in srgb, var(--gray-a4), var(--gray-4) 60%);
749
+ backdrop-filter: var(--backdrop-filter-panel);
750
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
751
+ }
752
+ }
753
+ }
754
+ }
755
+
756
+ @media (pointer: coarse) {
757
+ &:where(:any-link, button, label) {
758
+ &:where(:active:not([data-state='open'])) {
759
+ &::before {
760
+ background-image: linear-gradient(var(--gray-a4), var(--gray-a4));
761
+ }
762
+ }
763
+ }
764
+ }
765
+ }
766
+
767
+ /* * * * * * * * * * * * * * * * * * * */
768
+ /* */
769
+ /* Variants / Surface */
770
+ /* */
771
+ /* * * * * * * * * * * * * * * * * * * */
772
+
773
+ .rt-BaseCard:where(.rt-variant-surface) {
774
+ --card-border-width: 1px;
775
+
776
+ /* Base state: neutral gray background with lighter border (maintains card neutrality) */
777
+ --card-background-color: var(--gray-1);
778
+
779
+ /* Theme-level translucent override */
780
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
781
+ --card-background-color: color-mix(in srgb, var(--gray-a1), var(--gray-1) 60%);
782
+ }
783
+
784
+ /* Component-level overrides (higher specificity) */
785
+ &:where([data-panel-background='solid'], [data-material='solid']) {
786
+ --card-background-color: var(--gray-1);
787
+ }
788
+
789
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
790
+ --card-background-color: color-mix(in srgb, var(--gray-a1), var(--gray-1) 60%);
791
+ }
792
+
793
+ &::before {
794
+ background-color: var(--card-background-color);
795
+
796
+ /* Theme-level translucent override */
797
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
798
+ backdrop-filter: var(--backdrop-filter-panel);
799
+ }
800
+
801
+ /* Component-level overrides (higher specificity) */
802
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
803
+ backdrop-filter: none;
804
+ --backdrop-filter-panel: none;
805
+ }
806
+
807
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
808
+ backdrop-filter: var(--backdrop-filter-panel);
809
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
810
+ }
811
+ }
812
+
813
+ &::after {
814
+ box-shadow: inset 0 0 0 var(--card-border-width) var(--gray-6);
815
+
816
+ /* Theme-level translucent override */
817
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
818
+ box-shadow: inset 0 0 0 var(--card-border-width) var(--gray-a6);
819
+ }
820
+
821
+ /* Component-level overrides */
822
+ &:where([data-panel-background='solid'], [data-material='solid']) {
823
+ box-shadow: inset 0 0 0 var(--card-border-width) var(--gray-6);
824
+ }
825
+
826
+ &:where([data-panel-background='translucent'], [data-material='translucent']) {
827
+ box-shadow: inset 0 0 0 var(--card-border-width) var(--gray-a6);
828
+ }
829
+ }
830
+
831
+ &:where(:focus-visible) {
832
+ outline: 2px solid var(--focus-8);
833
+ outline-offset: -1px;
834
+ }
835
+
836
+ &:where(:any-link, button, label) {
837
+ @media (hover: hover) {
838
+ &:where(:hover) {
839
+ &::before {
840
+ /* Base state: darker gray for hover */
841
+ background-color: var(--gray-2);
842
+
843
+ /* Theme-level translucent override for hover */
844
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
845
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
846
+ backdrop-filter: var(--backdrop-filter-panel);
847
+ }
848
+
849
+ /* Component-level overrides for hover */
850
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
851
+ background-color: var(--gray-2);
852
+ backdrop-filter: none;
853
+ --backdrop-filter-panel: none;
854
+ }
855
+
856
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
857
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
858
+ backdrop-filter: var(--backdrop-filter-panel);
859
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
860
+ }
861
+ }
862
+
863
+ &::after {
864
+ box-shadow: inset 0 0 0 var(--card-border-width) var(--gray-7);
865
+
866
+ /* Theme-level translucent override */
867
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
868
+ box-shadow: inset 0 0 0 var(--card-border-width) var(--gray-a7);
869
+ }
870
+ }
871
+ }
872
+ }
873
+
874
+ &:where([data-state='open']) {
875
+ &::before {
876
+ /* Base state: darker gray for open */
877
+ background-color: var(--gray-2);
878
+
879
+ /* Theme-level translucent override for open */
880
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
881
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
882
+ backdrop-filter: var(--backdrop-filter-panel);
883
+ }
884
+
885
+ /* Component-level overrides for open */
886
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
887
+ background-color: var(--gray-2);
888
+ backdrop-filter: none;
889
+ --backdrop-filter-panel: none;
890
+ }
891
+
892
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
893
+ background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
894
+ backdrop-filter: var(--backdrop-filter-panel);
895
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
896
+ }
897
+ }
898
+
899
+ &::after {
900
+ box-shadow: inset 0 0 0 var(--card-border-width) var(--gray-7);
901
+
902
+ /* Theme-level translucent override */
903
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
904
+ box-shadow: inset 0 0 0 var(--card-border-width) var(--gray-a7);
905
+ }
906
+ }
907
+ }
908
+
909
+ &:where(:active:not([data-state='open'])) {
910
+ &::before {
911
+ /* Base state: even darker gray for active */
912
+ background-color: var(--gray-3);
913
+
914
+ /* Theme-level translucent override for active */
915
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
916
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
917
+ backdrop-filter: var(--backdrop-filter-panel);
918
+ }
919
+
920
+ /* Component-level overrides for active */
921
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) & {
922
+ background-color: var(--gray-3);
923
+ backdrop-filter: none;
924
+ --backdrop-filter-panel: none;
925
+ }
926
+
927
+ :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) & {
928
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
929
+ backdrop-filter: var(--backdrop-filter-panel);
930
+ --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
931
+ }
932
+ }
933
+
934
+ &::after {
935
+ box-shadow: inset 0 0 0 var(--card-border-width) var(--gray-7);
936
+
937
+ /* Theme-level translucent override */
938
+ :where([data-panel-background='translucent'], [data-material='translucent']) & {
939
+ box-shadow: inset 0 0 0 var(--card-border-width) var(--gray-a7);
940
+ }
941
+ }
942
+ }
943
+ }
944
+
945
+ @media (pointer: coarse) {
946
+ &:where(:any-link, button, label) {
947
+ &:where(:active:not([data-state='open'])) {
948
+ &::before {
949
+ background-image: linear-gradient(var(--gray-a4), var(--gray-a4));
950
+ }
951
+ }
952
+ }
953
+ }
954
+ }
955
+
956
+ /* Better -webkit-tap-highlight-color */
957
+ .rt-BaseCard:where(:any-link, button, label) {
958
+ @media (pointer: coarse) {
959
+ &:where(:active:not(:focus-visible, [data-state='open'])) {
960
+ &::before {
961
+ background-image: linear-gradient(var(--gray-a4), var(--gray-a4));
962
+ }
963
+ }
181
964
  }
182
965
  }