ui-foundations 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/README.md +259 -0
  2. package/dist/assets/fonts/README.md +5 -0
  3. package/dist/assets/icons/location-roundtrip.svg +5 -0
  4. package/dist/assets/icons/location-track.svg +4 -0
  5. package/dist/assets/icons/location.svg +4 -0
  6. package/dist/assets/icons/lock-checkmark.svg +4 -0
  7. package/dist/assets/icons/lock-close.svg +4 -0
  8. package/dist/assets/icons/lock-open.svg +5 -0
  9. package/dist/assets/icons/login.svg +4 -0
  10. package/dist/assets/icons/logout.svg +3 -0
  11. package/dist/assets/icons/loudspeaker.svg +3 -0
  12. package/dist/assets/icons/lounge-chair.svg +5 -0
  13. package/dist/assets/icons/luggage-backpack.svg +4 -0
  14. package/dist/assets/icons/luggage-backpacker.svg +4 -0
  15. package/dist/assets/icons/luggage-box.svg +5 -0
  16. package/dist/assets/icons/luggage-extra.svg +4 -0
  17. package/dist/assets/icons/luggage-golf.svg +4 -0
  18. package/dist/assets/icons/luggage-hand-plus.svg +5 -0
  19. package/dist/assets/icons/luggage-hand.svg +4 -0
  20. package/dist/assets/icons/luggage-liquids.svg +6 -0
  21. package/dist/assets/icons/luggage-notincluded.svg +3 -0
  22. package/dist/assets/icons/luggage-plus.svg +5 -0
  23. package/dist/assets/icons/luggage-sport.svg +4 -0
  24. package/dist/assets/icons/luggage-suitcase-extra.svg +5 -0
  25. package/dist/assets/icons/luggage-suitcase.svg +4 -0
  26. package/dist/assets/icons/luggage-trolley-extra.svg +5 -0
  27. package/dist/assets/icons/luggage-trolley.svg +3 -0
  28. package/dist/assets/icons/luggage-weekender.svg +4 -0
  29. package/dist/assets/icons/luggage.svg +3 -0
  30. package/dist/assets/icons/lying-chair.svg +4 -0
  31. package/dist/assets/icons/magnet.svg +3 -0
  32. package/dist/assets/icons/mail.svg +4 -0
  33. package/dist/assets/icons/map.svg +3 -0
  34. package/dist/assets/icons/meal-serving-plate.svg +5 -0
  35. package/dist/assets/icons/meal.svg +5 -0
  36. package/dist/assets/icons/medal.svg +4 -0
  37. package/dist/assets/icons/megaphone.svg +5 -0
  38. package/dist/assets/icons/menu-filter.svg +3 -0
  39. package/dist/assets/icons/menu.svg +3 -0
  40. package/dist/assets/icons/message-alert.svg +3 -0
  41. package/dist/assets/icons/message-info.svg +4 -0
  42. package/dist/assets/icons/message-love.svg +4 -0
  43. package/dist/assets/icons/message-push.svg +4 -0
  44. package/dist/assets/icons/message-text.svg +4 -0
  45. package/dist/assets/icons/message.svg +3 -0
  46. package/dist/assets/icons/mic.svg +4 -0
  47. package/dist/assets/icons/miniclub.svg +5 -0
  48. package/dist/assets/icons/minimize.svg +3 -0
  49. package/dist/assets/icons/minus-circled.svg +4 -0
  50. package/dist/assets/icons/minus-heavy.svg +3 -0
  51. package/dist/assets/icons/minus.svg +3 -0
  52. package/dist/assets/icons/moon.svg +3 -0
  53. package/dist/assets/icons/moose.svg +5 -0
  54. package/dist/assets/icons/mountain.svg +4 -0
  55. package/dist/assets/icons/mouth.svg +3 -0
  56. package/dist/assets/icons/muffin.svg +4 -0
  57. package/dist/assets/icons/museum.svg +3 -0
  58. package/dist/assets/icons/mustache.svg +3 -0
  59. package/dist/assets/icons/network.svg +3 -0
  60. package/dist/assets/icons/newsletter.svg +6 -0
  61. package/dist/assets/icons/none.svg +3 -0
  62. package/dist/assets/icons/nordic-walking.svg +3 -0
  63. package/dist/assets/icons/notepad.svg +3 -0
  64. package/dist/assets/icons/number.svg +3 -0
  65. package/dist/assets/icons/on-board-meals.svg +4 -0
  66. package/dist/assets/icons/paperjet.svg +4 -0
  67. package/dist/assets/icons/parasol.svg +4 -0
  68. package/dist/assets/icons/parking-garage.svg +4 -0
  69. package/dist/assets/icons/parking-time.svg +4 -0
  70. package/dist/assets/icons/pass-boarding.svg +4 -0
  71. package/dist/assets/icons/paw.svg +3 -0
  72. package/dist/assets/icons/pencil.svg +3 -0
  73. package/dist/assets/icons/pharmacy.svg +4 -0
  74. package/dist/assets/icons/phone-checkin.svg +4 -0
  75. package/dist/assets/icons/phone-push.svg +5 -0
  76. package/dist/assets/icons/phone.svg +3 -0
  77. package/dist/assets/icons/picture-mountain.svg +5 -0
  78. package/dist/assets/icons/picture-stack.svg +5 -0
  79. package/dist/assets/icons/picture-sunset.svg +4 -0
  80. package/dist/assets/icons/picture.svg +3 -0
  81. package/dist/assets/icons/piggy-bank.svg +5 -0
  82. package/dist/assets/icons/pin.svg +3 -0
  83. package/dist/assets/icons/play-circled.svg +4 -0
  84. package/dist/assets/icons/play-next.svg +3 -0
  85. package/dist/assets/icons/play-pause.svg +3 -0
  86. package/dist/assets/icons/play-prev.svg +3 -0
  87. package/dist/assets/icons/play-stop-circled.svg +4 -0
  88. package/dist/assets/icons/play-stop.svg +3 -0
  89. package/dist/assets/icons/play.svg +3 -0
  90. package/dist/assets/icons/plug.svg +3 -0
  91. package/dist/assets/icons/plus-circled.svg +4 -0
  92. package/dist/assets/icons/plus-heavy.svg +3 -0
  93. package/dist/assets/icons/plus.svg +3 -0
  94. package/dist/assets/icons/popsicle.svg +3 -0
  95. package/dist/assets/icons/postit.svg +4 -0
  96. package/dist/assets/icons/pricetag.svg +4 -0
  97. package/dist/assets/icons/printer.svg +5 -0
  98. package/dist/assets/icons/projector-canvas.svg +3 -0
  99. package/dist/assets/icons/puzzle.svg +3 -0
  100. package/dist/assets/icons/question-mark-bold.svg +4 -0
  101. package/dist/assets/icons/question-mark-circled.svg +4 -0
  102. package/dist/assets/icons/question-mark-ultrabold.svg +4 -0
  103. package/dist/assets/icons/question-mark.svg +3 -0
  104. package/dist/assets/icons/rainbow.svg +5 -0
  105. package/dist/assets/icons/reduced-circled.svg +4 -0
  106. package/dist/assets/icons/reduced.svg +3 -0
  107. package/dist/assets/icons/relax.svg +4 -0
  108. package/dist/assets/icons/resize.svg +4 -0
  109. package/dist/assets/icons/robot-smile.svg +16 -0
  110. package/dist/assets/icons/robot.svg +8 -0
  111. package/dist/assets/icons/room-location.svg +5 -0
  112. package/dist/assets/icons/room-selection.svg +5 -0
  113. package/dist/assets/icons/room-upgrade.svg +5 -0
  114. package/dist/assets/icons/running-shoe.svg +4 -0
  115. package/dist/assets/icons/sail.svg +3 -0
  116. package/dist/assets/icons/sailboat.svg +4 -0
  117. package/dist/assets/icons/sailing-yawl.svg +3 -0
  118. package/dist/assets/icons/save.svg +4 -0
  119. package/dist/assets/icons/scan-code.svg +5 -0
  120. package/dist/assets/icons/scissors.svg +4 -0
  121. package/dist/assets/icons/seal.svg +4 -0
  122. package/dist/assets/icons/search-heart.svg +4 -0
  123. package/dist/assets/icons/search-list.svg +4 -0
  124. package/dist/assets/icons/search.svg +4 -0
  125. package/dist/assets/icons/seat-check.svg +3 -0
  126. package/dist/assets/icons/seat-child.svg +4 -0
  127. package/dist/assets/icons/seat-comfort.svg +3 -0
  128. package/dist/assets/icons/seat-extra-legroom.svg +5 -0
  129. package/dist/assets/icons/seat-extra-space.svg +5 -0
  130. package/dist/assets/icons/seat-extra.svg +5 -0
  131. package/dist/assets/icons/seat-plus.svg +3 -0
  132. package/dist/assets/icons/seat-premium.svg +4 -0
  133. package/dist/assets/icons/seat-selection.svg +10 -0
  134. package/dist/assets/icons/seat-star.svg +3 -0
  135. package/dist/assets/icons/seat-top-booked.svg +5 -0
  136. package/dist/assets/icons/seat-top.svg +4 -0
  137. package/dist/assets/icons/seat.svg +3 -0
  138. package/dist/assets/icons/security-check.svg +7 -0
  139. package/dist/assets/icons/select.svg +3 -0
  140. package/dist/assets/icons/send.svg +3 -0
  141. package/dist/assets/icons/service-bell.svg +3 -0
  142. package/dist/assets/icons/serving-trolley.svg +6 -0
  143. package/dist/assets/icons/settings.svg +4 -0
  144. package/dist/assets/icons/sex-diversity.svg +3 -0
  145. package/dist/assets/icons/sex-female.svg +3 -0
  146. package/dist/assets/icons/sex-male.svg +3 -0
  147. package/dist/assets/icons/share-box.svg +4 -0
  148. package/dist/assets/icons/share.svg +6 -0
  149. package/dist/assets/icons/shield-check.svg +4 -0
  150. package/dist/assets/icons/shield-flex.svg +6 -0
  151. package/dist/assets/icons/shield-warning.svg +3 -0
  152. package/dist/assets/icons/shield.svg +3 -0
  153. package/dist/assets/icons/ship-river.svg +4 -0
  154. package/dist/assets/icons/ship.svg +5 -0
  155. package/dist/assets/icons/shoe.svg +3 -0
  156. package/dist/assets/icons/shop.svg +4 -0
  157. package/dist/assets/icons/shopping-bag-tui.svg +4 -0
  158. package/dist/assets/icons/shopping-bag.svg +4 -0
  159. package/dist/assets/icons/shoppingcart.svg +6 -0
  160. package/dist/assets/icons/shower-rain.svg +3 -0
  161. package/dist/assets/icons/shower.svg +3 -0
  162. package/dist/assets/icons/sign-airport.svg +4 -0
  163. package/dist/assets/icons/sign-bio.svg +5 -0
  164. package/dist/assets/icons/sign-directions.svg +12 -0
  165. package/dist/assets/icons/sign-first-aid.svg +4 -0
  166. package/dist/assets/icons/sign-gluten-free.svg +7 -0
  167. package/dist/assets/icons/sign-hotel.svg +3 -0
  168. package/dist/assets/icons/sign-info.svg +5 -0
  169. package/dist/assets/icons/sign-parking.svg +4 -0
  170. package/dist/assets/icons/sign-vegan.svg +4 -0
  171. package/dist/assets/icons/sign-vegetarian.svg +5 -0
  172. package/dist/assets/icons/signpost-direction.svg +3 -0
  173. package/dist/assets/icons/signpost-directions.svg +3 -0
  174. package/dist/assets/icons/signpost-hotel.svg +3 -0
  175. package/dist/assets/icons/ski-crosscountry.svg +4 -0
  176. package/dist/assets/icons/ski-mountain.svg +3 -0
  177. package/dist/assets/icons/snow.svg +3 -0
  178. package/dist/assets/icons/social-distancing.svg +5 -0
  179. package/dist/assets/icons/sort.svg +3 -0
  180. package/dist/assets/icons/square.svg +3 -0
  181. package/dist/assets/icons/star-circled.svg +4 -0
  182. package/dist/assets/icons/star-half.svg +3 -0
  183. package/dist/assets/icons/star.svg +3 -0
  184. package/dist/assets/icons/stats-bar.svg +3 -0
  185. package/dist/assets/icons/stats-growth.svg +4 -0
  186. package/dist/assets/icons/stats-pie.svg +4 -0
  187. package/dist/assets/icons/stats-rise.svg +3 -0
  188. package/dist/assets/icons/steering-wheel.svg +7 -0
  189. package/dist/assets/icons/steering.svg +3 -0
  190. package/dist/assets/icons/stewardess.svg +5 -0
  191. package/dist/assets/icons/suitcase-purchase.svg +5 -0
  192. package/dist/assets/icons/sum.svg +3 -0
  193. package/dist/assets/icons/sun-circled.svg +4 -0
  194. package/dist/assets/icons/sun-hours.svg +5 -0
  195. package/dist/assets/icons/sun-set.svg +3 -0
  196. package/dist/assets/icons/sun-tui-half.svg +4 -0
  197. package/dist/assets/icons/sun-tui.svg +4 -0
  198. package/dist/assets/icons/sun.svg +4 -0
  199. package/dist/assets/icons/surfing.svg +4 -0
  200. package/dist/assets/icons/swimming-bath.svg +3 -0
  201. package/dist/assets/icons/swimming-pool.svg +3 -0
  202. package/dist/assets/icons/sync-failed.svg +4 -0
  203. package/dist/assets/icons/sync.svg +4 -0
  204. package/dist/assets/icons/tape-measure.svg +4 -0
  205. package/dist/assets/icons/target-blank.svg +3 -0
  206. package/dist/assets/icons/target.svg +5 -0
  207. package/dist/assets/icons/teddy.svg +5 -0
  208. package/dist/assets/icons/temp-air.svg +5 -0
  209. package/dist/assets/icons/temp-low.svg +4 -0
  210. package/dist/assets/icons/temp-time.svg +7 -0
  211. package/dist/assets/icons/temp-water.svg +5 -0
  212. package/dist/assets/icons/temp.svg +4 -0
  213. package/dist/assets/icons/tennis-ball.svg +4 -0
  214. package/dist/assets/icons/tennis.svg +5 -0
  215. package/dist/assets/icons/tent.svg +4 -0
  216. package/dist/assets/icons/thumbnails.svg +3 -0
  217. package/dist/assets/icons/thumbs-up--down.svg +3 -0
  218. package/dist/assets/icons/thumbs-up.svg +3 -0
  219. package/dist/assets/icons/thunder.svg +3 -0
  220. package/dist/assets/icons/ticket-coins.svg +5 -0
  221. package/dist/assets/icons/ticket-envelope.svg +5 -0
  222. package/dist/assets/icons/ticket.svg +3 -0
  223. package/dist/assets/icons/tickets.svg +3 -0
  224. package/dist/assets/icons/tipi.svg +4 -0
  225. package/dist/assets/icons/toilet-paper.svg +5 -0
  226. package/dist/assets/icons/toilet.svg +3 -0
  227. package/dist/assets/icons/toolkit-cases-open.svg +3 -0
  228. package/dist/assets/icons/toolkit-cases.svg +3 -0
  229. package/dist/assets/icons/toolkit.svg +4 -0
  230. package/dist/assets/icons/towel.svg +3 -0
  231. package/dist/assets/icons/track.svg +3 -0
  232. package/dist/assets/icons/train.svg +4 -0
  233. package/dist/assets/icons/transfer-private.svg +5 -0
  234. package/dist/assets/icons/transfer-taxi.svg +4 -0
  235. package/dist/assets/icons/transfers-coach.svg +6 -0
  236. package/dist/assets/icons/transfers-train.svg +4 -0
  237. package/dist/assets/icons/trash-crossed.svg +3 -0
  238. package/dist/assets/icons/trash.svg +4 -0
  239. package/dist/assets/icons/travel-documents.svg +6 -0
  240. package/dist/assets/icons/travel-guide.svg +5 -0
  241. package/dist/assets/icons/travel-money.svg +4 -0
  242. package/dist/assets/icons/treats-in-flight.svg +4 -0
  243. package/dist/assets/icons/trolley-purchase.svg +5 -0
  244. package/dist/assets/icons/tub.svg +5 -0
  245. package/dist/assets/icons/tui-card.svg +4 -0
  246. package/dist/assets/icons/tui-chat.svg +5 -0
  247. package/dist/assets/icons/tui-cloud.svg +3 -0
  248. package/dist/assets/icons/tui-extras.svg +4 -0
  249. package/dist/assets/icons/typography.svg +3 -0
  250. package/dist/assets/icons/ui-banner.svg +4 -0
  251. package/dist/assets/icons/umbrella.svg +5 -0
  252. package/dist/assets/icons/undo.svg +4 -0
  253. package/dist/assets/icons/upload.svg +3 -0
  254. package/dist/assets/icons/user-business.svg +4 -0
  255. package/dist/assets/icons/user-casual.svg +4 -0
  256. package/dist/assets/icons/user-chat.svg +4 -0
  257. package/dist/assets/icons/user-circled.svg +4 -0
  258. package/dist/assets/icons/user-couple.svg +3 -0
  259. package/dist/assets/icons/user-driver.svg +6 -0
  260. package/dist/assets/icons/user-drivers.svg +4 -0
  261. package/dist/assets/icons/user-expert.svg +4 -0
  262. package/dist/assets/icons/user-family.svg +4 -0
  263. package/dist/assets/icons/user-friends.svg +3 -0
  264. package/dist/assets/icons/user-group.svg +4 -0
  265. package/dist/assets/icons/user-passport.svg +5 -0
  266. package/dist/assets/icons/user-plus.svg +3 -0
  267. package/dist/assets/icons/user-skipass.svg +4 -0
  268. package/dist/assets/icons/user-visa.svg +6 -0
  269. package/dist/assets/icons/user.svg +3 -0
  270. package/dist/assets/icons/users.svg +4 -0
  271. package/dist/assets/icons/view-hidden.svg +4 -0
  272. package/dist/assets/icons/view.svg +4 -0
  273. package/dist/assets/icons/villa.svg +4 -0
  274. package/dist/assets/icons/virtualtour.svg +4 -0
  275. package/dist/assets/icons/warehouse.svg +3 -0
  276. package/dist/assets/icons/wash-hands.svg +3 -0
  277. package/dist/assets/icons/watch.svg +3 -0
  278. package/dist/assets/icons/water-boiler.svg +4 -0
  279. package/dist/assets/icons/water-slide.svg +4 -0
  280. package/dist/assets/icons/water.svg +3 -0
  281. package/dist/assets/icons/welcome-pack.svg +3 -0
  282. package/dist/assets/icons/wellness.svg +6 -0
  283. package/dist/assets/icons/whatsapp.svg +4 -0
  284. package/dist/assets/icons/wheel.svg +6 -0
  285. package/dist/assets/icons/wheelchair.svg +4 -0
  286. package/dist/assets/icons/wifi.svg +3 -0
  287. package/dist/assets/icons/wind-surfing.svg +3 -0
  288. package/dist/assets/icons/world-globe.svg +4 -0
  289. package/dist/assets/icons/world-travel.svg +5 -0
  290. package/dist/assets/icons/world.svg +5 -0
  291. package/dist/core/base/base.css +13 -0
  292. package/dist/core/base/fonts.css +1 -0
  293. package/dist/core/base/reset.css +48 -0
  294. package/dist/core/base/typography.css +119 -0
  295. package/dist/core/index.css +12 -0
  296. package/dist/core/recipes/layout.css +24 -0
  297. package/dist/core/themes/mode.css +5 -0
  298. package/dist/main.css +1044 -0
  299. package/dist/react/button.js +95 -0
  300. package/dist/react/checkbox.js +43 -0
  301. package/dist/react/icon.js +50 -0
  302. package/dist/react/index.js +5 -0
  303. package/dist/react/input.js +12 -0
  304. package/dist/react/label.js +125 -0
  305. package/dist/tokens/css/brand-a.tokens.css +22 -0
  306. package/dist/tokens/css/brand-b.tokens.css +22 -0
  307. package/dist/tokens/css/color.dark.tokens.css +32 -0
  308. package/dist/tokens/css/color.light.tokens.css +32 -0
  309. package/dist/tokens/css/component.tokens.css +103 -0
  310. package/dist/tokens/css/primitives.tokens.css +127 -0
  311. package/dist/tokens/css/semantic.tokens.css +35 -0
  312. package/dist/tokens/json/brand-a.tokens.json +192 -0
  313. package/dist/tokens/json/brand-b.tokens.json +192 -0
  314. package/dist/tokens/json/color.dark.tokens.json +364 -0
  315. package/dist/tokens/json/color.light.tokens.json +364 -0
  316. package/dist/tokens/json/component.tokens.json +1101 -0
  317. package/dist/tokens/json/primitives.tokens.json +1077 -0
  318. package/dist/tokens/json/semantic.tokens.json +206 -0
  319. package/dist/tokens/tokens.yaml +4400 -0
  320. package/dist/tokens/ts/brand-a.tokens.ts +32 -0
  321. package/dist/tokens/ts/brand-b.tokens.ts +32 -0
  322. package/dist/tokens/ts/color.dark.tokens.ts +36 -0
  323. package/dist/tokens/ts/color.light.tokens.ts +36 -0
  324. package/dist/tokens/ts/component.tokens.ts +107 -0
  325. package/dist/tokens/ts/primitives.tokens.ts +152 -0
  326. package/dist/tokens/ts/semantic.tokens.ts +42 -0
  327. package/dist/ui/index.css +5 -0
  328. package/dist/ui/patterns/button.css +241 -0
  329. package/dist/ui/patterns/checkbox.css +97 -0
  330. package/dist/ui/patterns/icon.css +20 -0
  331. package/dist/ui/patterns/input.css +76 -0
  332. package/dist/ui/patterns/label.css +49 -0
  333. package/docs/foundations/foundation-001-token-layering.md +27 -0
  334. package/docs/foundations/foundation-002-naming-and-grouping.md +38 -0
  335. package/docs/foundations/foundation-003-color-semantics-and-status.md +35 -0
  336. package/docs/foundations/foundation-004-typography-scale-and-line-height.md +39 -0
  337. package/docs/foundations/foundation-005-responsive-breakpoints-and-containers.md +23 -0
  338. package/docs/foundations/foundation-006-z-index-layering.md +31 -0
  339. package/docs/foundations/foundation-007-typography-selectors-and-specificity.md +24 -0
  340. package/docs/foundations/foundation-008-mode-activation-and-consumer-control.md +27 -0
  341. package/docs/foundations/foundation-009-component-boundaries-and-utility.md +30 -0
  342. package/package.json +64 -0
package/dist/main.css ADDED
@@ -0,0 +1,1044 @@
1
+ @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Rokkitt:wght@400;500;600;700&display=swap");
2
+ @layer reset {
3
+ *,
4
+ *::before,
5
+ *::after {
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ * {
10
+ margin: 0;
11
+ }
12
+
13
+ html,
14
+ body {
15
+ height: 100%;
16
+ }
17
+
18
+ body {
19
+ -webkit-font-smoothing: antialiased;
20
+ text-rendering: optimizeLegibility;
21
+ margin: 0;
22
+ }
23
+
24
+ img,
25
+ picture,
26
+ video,
27
+ canvas,
28
+ svg {
29
+ display: block;
30
+ max-width: 100%;
31
+ }
32
+
33
+ input,
34
+ button,
35
+ textarea,
36
+ select {
37
+ font: inherit;
38
+ }
39
+
40
+ p,
41
+ h1,
42
+ h2,
43
+ h3,
44
+ h4,
45
+ h5,
46
+ h6 {
47
+ overflow-wrap: break-word;
48
+ }
49
+ }
50
+
51
+ @layer base {
52
+ :root {
53
+ font-family: var(--font-family-sans, system-ui, sans-serif);
54
+ line-height: 1.5;
55
+ color: var(--color-text-default, #000);
56
+ background: var(--color-fill-surface, #fff);
57
+
58
+ font-optical-sizing: auto;
59
+ font-weight: 400;
60
+ font-style: normal;
61
+ font-size: 1rem;
62
+ }
63
+ }
64
+ @layer base {
65
+ /**
66
+ * Typography
67
+ */
68
+
69
+ :where(h1, h2, h3, h4, h5, h6, .heading) {
70
+ color: var(--color-text-strong);
71
+ font-family: var(--typography-heading-font-family);
72
+ font-weight: var(--typography-heading-font-weight);
73
+ line-height: var(--typography-heading-line-height);
74
+ text-rendering: optimizeLegibility;
75
+ }
76
+
77
+ :where(p, span, .body) {
78
+ color: var(--color-text-default);
79
+ font-family: var(--typography-body-font-family);
80
+ line-height: var(--typography-body-line-height);
81
+ font-weight: var(--typography-body-font-weight);
82
+ }
83
+
84
+ /* Heading scale */
85
+ :where(h1, .heading-xxxl) {
86
+ font-size: var(--typography-heading-font-size-xxxl);
87
+ line-height: var(--typography-heading-line-height-xxxl);
88
+ margin-bottom: calc(
89
+ var(--typography-heading-line-height-xxxl) *
90
+ var(--typography-heading-font-size-xxxl)
91
+ );
92
+ }
93
+
94
+ :where(h2, .heading-xxl) {
95
+ font-size: var(--typography-heading-font-size-xxl);
96
+ line-height: var(--typography-heading-line-height-xxl);
97
+ margin-bottom: calc(
98
+ var(--typography-heading-line-height-xxl) *
99
+ var(--typography-heading-font-size-xxl)
100
+ );
101
+ }
102
+
103
+ :where(h3, .heading-xl) {
104
+ font-size: var(--typography-heading-font-size-xl);
105
+ line-height: var(--typography-heading-line-height-xl);
106
+ margin-bottom: calc(
107
+ var(--typography-heading-line-height-xl) *
108
+ var(--typography-heading-font-size-xl)
109
+ );
110
+ }
111
+
112
+ :where(h4, .heading-lg) {
113
+ font-size: var(--typography-heading-font-size-lg);
114
+ line-height: var(--typography-heading-line-height-lg);
115
+ margin-bottom: calc(
116
+ var(--typography-heading-line-height-lg) *
117
+ var(--typography-heading-font-size-lg)
118
+ );
119
+ }
120
+
121
+ :where(h5, .heading-md) {
122
+ font-size: var(--typography-heading-font-size-md);
123
+ line-height: var(--typography-heading-line-height-md);
124
+ margin-bottom: calc(
125
+ var(--typography-heading-line-height-md) *
126
+ var(--typography-heading-font-size-md)
127
+ );
128
+ }
129
+
130
+ :where(h6, .heading-sm) {
131
+ font-size: var(--typography-heading-font-size-sm);
132
+ line-height: var(--typography-heading-line-height-sm);
133
+ margin-bottom: calc(
134
+ var(--typography-heading-line-height-sm) *
135
+ var(--typography-heading-font-size-sm)
136
+ );
137
+ }
138
+
139
+ /* Text scale */
140
+ :where(sup, sub, .text-xs) {
141
+ font-size: var(--font-size-xs);
142
+ line-height: var(--line-height-xs);
143
+ margin-bottom: calc(var(--line-height-xs) * var(--font-size-xs));
144
+ }
145
+
146
+ :where(.text-sm) {
147
+ font-size: var(--font-size-sm);
148
+ line-height: var(--line-height-sm);
149
+ }
150
+
151
+ :where(.text-md) {
152
+ font-size: var(--font-size-md);
153
+ line-height: var(--line-height-md);
154
+ }
155
+
156
+ :where(.text-lg) {
157
+ font-size: var(--font-size-lg);
158
+ line-height: var(--line-height-lg);
159
+ }
160
+
161
+ :where(.text-xl) {
162
+ font-size: var(--font-size-xl);
163
+ line-height: var(--line-height-xl);
164
+ }
165
+
166
+ :where(.text-xxl) {
167
+ font-size: var(--font-size-xxl);
168
+ line-height: var(--line-height-xxl);
169
+ }
170
+
171
+ :where(.text-xxxl) {
172
+ font-size: var(--font-size-xxxl);
173
+ line-height: var(--line-height-xxxl);
174
+ }
175
+
176
+ /* font weights */
177
+ b,
178
+ strong,
179
+ .bold {
180
+ font-weight: 700;
181
+ }
182
+ }
183
+ /* Auto-generated design tokens from Figma */
184
+ /* Generated on 2026-03-04T20:50:34.071Z */
185
+
186
+ :root {
187
+ --color-transparent: rgba(0 0 0 / 0);
188
+ --color-neutral-100: rgb(230 230 230);
189
+ --color-neutral-200: rgb(204 204 204);
190
+ --color-neutral-300: rgb(179 179 179);
191
+ --color-neutral-400: rgb(128 128 128);
192
+ --color-neutral-500: rgb(128 128 128);
193
+ --color-neutral-600: rgb(102 102 102);
194
+ --color-neutral-700: rgb(77 77 77);
195
+ --color-neutral-800: rgb(51 51 51);
196
+ --color-neutral-900: rgb(26 26 26);
197
+ --color-neutral-1000: rgb(0 0 0);
198
+ --color-neutral-000: rgb(255 255 255);
199
+ --color-neutral-alpha-100: rgba(0 0 0 / 0.1);
200
+ --color-neutral-alpha-200: rgba(0 0 0 / 0.2);
201
+ --color-neutral-alpha-300: rgba(0 0 0 / 0.3);
202
+ --color-neutral-alpha-400: rgba(0 0 0 / 0.4);
203
+ --color-neutral-alpha-500: rgba(0 0 0 / 0.5);
204
+ --color-neutral-alpha-600: rgba(0 0 0 / 0.6);
205
+ --color-neutral-alpha-700: rgba(0 0 0 / 0.7);
206
+ --color-neutral-alpha-800: rgba(0 0 0 / 0.8);
207
+ --color-neutral-alpha-900: rgba(0 0 0 / 0.9);
208
+ --color-neutral-alpha-000: rgba(0 0 0 / 0);
209
+ --color-brand-a-red: rgb(255 0 0);
210
+ --color-brand-a-green: rgb(19 174 92);
211
+ --color-brand-a-purple-200: rgb(222 192 255);
212
+ --color-brand-a-purple-600: rgb(151 71 255);
213
+ --color-brand-a-purple-800: rgb(85 26 139);
214
+ --color-brand-a-blue-200: rgb(226 244 253);
215
+ --color-brand-a-blue-500: rgb(112 203 244);
216
+ --color-brand-a-blue-700: rgb(12 75 243);
217
+ --color-brand-a-blue-800: rgb(27 17 92);
218
+ --color-brand-b-red: rgb(204 0 0);
219
+ --color-brand-b-green: rgb(14 129 68);
220
+ --color-brand-b-purple-200: rgb(196 143 255);
221
+ --color-brand-b-purple-600: rgb(122 20 255);
222
+ --color-brand-b-purple-800: rgb(58 18 95);
223
+ --color-brand-b-blue-200: rgb(179 226 250);
224
+ --color-brand-b-blue-500: rgb(66 186 240);
225
+ --color-brand-b-blue-700: rgb(10 60 194);
226
+ --color-brand-b-blue-800: rgb(14 9 47);
227
+ --font-size-xs: .75rem;
228
+ --font-size-sm: .875rem;
229
+ --font-size-md: 1rem;
230
+ --font-size-lg: 1.25rem;
231
+ --font-size-xl: 1.5rem;
232
+ --font-size-xxl: 2rem;
233
+ --font-size-xxxl: 2.5rem;
234
+ --font-weight-100: 100;
235
+ --font-weight-200: 200;
236
+ --font-weight-300: 300;
237
+ --font-weight-400: 400;
238
+ --font-weight-500: 500;
239
+ --font-weight-600: 600;
240
+ --font-weight-700: 700;
241
+ --font-weight-800: 800;
242
+ --font-weight-900: 900;
243
+ --font-family-sans: Inter;
244
+ --font-family-serif: Rokkitt;
245
+ --font-family-mono: SFMono-Regular;
246
+ --line-height-xs: 1rem;
247
+ --line-height-sm: 1.25rem;
248
+ --line-height-md: 1.5rem;
249
+ --line-height-lg: 1.75rem;
250
+ --line-height-xl: 2rem;
251
+ --line-height-xxl: 2.75rem;
252
+ --line-height-xxxl: 3.5rem;
253
+ --size-spacing-100: .25rem;
254
+ --size-spacing-200: .5rem;
255
+ --size-spacing-300: .75rem;
256
+ --size-spacing-400: 1rem;
257
+ --size-spacing-500: 1.25rem;
258
+ --size-spacing-600: 1.5rem;
259
+ --size-spacing-700: 2rem;
260
+ --size-spacing-800: 2.5rem;
261
+ --size-spacing-900: 3rem;
262
+ --size-spacing-1000: 4rem;
263
+ --size-spacing-000: 0;
264
+ --size-radius-100: .125rem;
265
+ --size-radius-200: .25rem;
266
+ --size-radius-300: .375rem;
267
+ --size-radius-400: .5rem;
268
+ --size-radius-500: .75rem;
269
+ --size-radius-600: 1rem;
270
+ --size-radius-700: 1.25rem;
271
+ --size-radius-800: 1.5rem;
272
+ --size-radius-900: 2rem;
273
+ --size-radius-000: 0;
274
+ --size-radius-full: 625rem;
275
+ --shadow-focus: .5rem;
276
+ --breakpoint-100: 580px;
277
+ --breakpoint-200: 760px;
278
+ --breakpoint-300: 960px;
279
+ --breakpoint-400: 1200px;
280
+ --breakpoint-500: 1440px;
281
+ --breakpoint-600: 1920px;
282
+ --container-100: 192px;
283
+ --container-200: 384px;
284
+ --container-300: 576px;
285
+ --container-400: 768px;
286
+ --container-500: 960px;
287
+ --container-600: 1152px;
288
+ --layout-base-grid: .25rem;
289
+ --layout-columns: 12;
290
+ --layout-gutter: 1rem;
291
+ --layout-max-width: 1236px;
292
+ --layout-column-max-width: 412px;
293
+ --layout-float-breakpoint: 1220px;
294
+ --size-border-100: .0625rem;
295
+ --size-border-200: .125rem;
296
+ --size-border-300: .1875rem;
297
+ --size-border-000: 0;
298
+ --zindex-hidden: -1;
299
+ --zindex-base: 0;
300
+ --zindex-raised: 1;
301
+ --zindex-dropdown-base: 900;
302
+ --zindex-dropdown: 1000;
303
+ --zindex-sticky: 1020;
304
+ --zindex-fixed: 1030;
305
+ --zindex-modal-overlay: 1040;
306
+ --zindex-modal: 1050;
307
+ --zindex-popover: 1060;
308
+ --zindex-tooltip: 1070;
309
+ }
310
+ /* Auto-generated design tokens from Figma */
311
+ /* Generated on 2026-03-04T20:50:34.061Z */
312
+
313
+ :root[data-brand="a"] {
314
+ --brand-color-primary: var(--color-brand-a-purple-600);
315
+ --brand-color-primary-dark: var(--color-brand-a-purple-800);
316
+ --brand-color-accent: var(--color-brand-a-blue-500);
317
+ --brand-color-subtle: var(--color-neutral-500);
318
+ --brand-color-subtle-light: var(--color-neutral-200);
319
+ --brand-color-subtle-dark: var(--color-neutral-800);
320
+ --brand-color-accent-dark: var(--color-brand-a-blue-700);
321
+ --brand-color-functional-base: var(--color-brand-a-blue-700);
322
+ --brand-color-functional-base-dark: var(--color-brand-a-blue-800);
323
+ --brand-color-functional-success: var(--color-brand-a-green);
324
+ --brand-color-functional-danger: var(--color-brand-a-red);
325
+ --brand-font-lead: var(--font-family-serif);
326
+ --brand-font-base: var(--font-family-sans);
327
+ --brand-corner-button: var(--size-radius-full);
328
+ --brand-corner-input: var(--size-radius-200);
329
+ --brand-corner-card: var(--size-radius-200);
330
+ --brand-corner-modal: var(--size-radius-400);
331
+ }
332
+ /* Auto-generated design tokens from Figma */
333
+ /* Generated on 2026-03-04T20:50:34.063Z */
334
+
335
+ :root[data-brand="b"] {
336
+ --brand-color-primary: var(--color-brand-b-blue-500);
337
+ --brand-color-primary-dark: var(--color-brand-b-blue-700);
338
+ --brand-color-accent: var(--color-brand-b-purple-600);
339
+ --brand-color-subtle: var(--color-neutral-500);
340
+ --brand-color-subtle-light: var(--color-neutral-200);
341
+ --brand-color-subtle-dark: var(--color-neutral-800);
342
+ --brand-color-accent-dark: var(--color-brand-b-purple-800);
343
+ --brand-color-functional-base: var(--color-brand-b-purple-600);
344
+ --brand-color-functional-base-dark: var(--color-brand-b-purple-800);
345
+ --brand-color-functional-success: var(--color-brand-b-green);
346
+ --brand-color-functional-danger: var(--color-brand-b-red);
347
+ --brand-font-lead: var(--font-family-serif);
348
+ --brand-font-base: var(--font-family-sans);
349
+ --brand-corner-button: var(--size-radius-000);
350
+ --brand-corner-input: var(--size-radius-000);
351
+ --brand-corner-card: var(--size-radius-100);
352
+ --brand-corner-modal: var(--size-radius-200);
353
+ }
354
+ /* Auto-generated design tokens from Figma */
355
+ /* Generated on 2026-03-04T20:50:34.072Z */
356
+
357
+ :root {
358
+ --typography-code: var(--font-family-mono);
359
+ --typography-heading-font-family: var(--brand-font-lead);
360
+ --typography-heading-font-weight: var(--font-weight-700);
361
+ --typography-heading-font-size-xs: var(--font-size-xs);
362
+ --typography-heading-font-size-sm: var(--font-size-sm);
363
+ --typography-heading-font-size-md: var(--font-size-md);
364
+ --typography-heading-font-size-lg: var(--font-size-lg);
365
+ --typography-heading-font-size-xl: var(--font-size-xl);
366
+ --typography-heading-font-size-xxl: var(--font-size-xxl);
367
+ --typography-heading-font-size-xxxl: var(--font-size-xxxl);
368
+ --typography-heading-line-height-xs: var(--line-height-xs);
369
+ --typography-heading-line-height-sm: var(--line-height-sm);
370
+ --typography-heading-line-height-md: var(--line-height-md);
371
+ --typography-heading-line-height-lg: var(--line-height-lg);
372
+ --typography-heading-line-height-xl: var(--line-height-xl);
373
+ --typography-heading-line-height-xxl: var(--line-height-xxl);
374
+ --typography-heading-line-height-xxxl: var(--line-height-xxxl);
375
+ --typography-label-font-family: var(--brand-font-lead);
376
+ --typography-label-font-weight: var(--font-weight-600);
377
+ --typography-label-font-size: var(--font-size-md);
378
+ --typography-label-line-height: var(--line-height-md);
379
+ --typography-label-gap: var(--size-spacing-200);
380
+ --typography-body-font-family: var(--brand-font-base);
381
+ --typography-body-font-weight: var(--font-weight-400);
382
+ --typography-body-font-size: var(--font-size-md);
383
+ --typography-body-line-height: var(--line-height-md);
384
+ --corner-button-radius: var(--brand-corner-button);
385
+ --corner-card-radius: var(--brand-corner-card);
386
+ --corner-form-radius: var(--brand-corner-card);
387
+ --corner-modal-radius: var(--brand-corner-modal);
388
+ }
389
+ /* Auto-generated design tokens from Figma */
390
+ /* Generated on 2026-03-04T20:50:34.066Z */
391
+
392
+ :root {
393
+ --button-font-family: var(--brand-font-lead);
394
+ --button-font-weight: var(--typography-label-font-weight);
395
+ --button-font-size: var(--typography-label-font-size);
396
+ --button-line-height: var(--typography-label-line-height);
397
+ --button-border-size-default: var(--size-border-000);
398
+ --button-border-size-hover: var(--size-border-100);
399
+ --button-border-size-active: var(--size-border-200);
400
+ --button-border-radius: var(--brand-corner-button);
401
+ --button-padding-inline: var(--size-spacing-400);
402
+ --button-padding-inline-icon-only: var(--size-spacing-200);
403
+ --button-padding-block: var(--size-spacing-200);
404
+ --button-gap: var(--size-spacing-200);
405
+ --button-text-color-disabled: var(--color-text-disabled);
406
+ --button-border-color-disabled: var(--color-border-disabled);
407
+ --button-container-background-disabled: var(--color-fill-disabled);
408
+ --button-overlay-hover: var(--color-overlay-hover);
409
+ --button-overlay-active: var(--color-overlay-active);
410
+ --button-height: 2.5rem;
411
+ --button-solid-text-color-default: var(--color-text-inverse);
412
+ --button-solid-text-color-hover: var(--color-text-inverse);
413
+ --button-solid-text-color-active: var(--color-text-inverse);
414
+ --button-solid-border-color-default: var(--color-border-brand);
415
+ --button-solid-border-color-hover: var(--color-border-brand);
416
+ --button-solid-border-color-focus: var(--color-border-brand);
417
+ --button-solid-border-color-active: var(--color-border-brand);
418
+ --button-solid-container-background-default: var(--color-fill-brand);
419
+ --button-solid-container-background-hover: var(--color-fill-brand);
420
+ --button-solid-container-background-focus: var(--color-fill-brand);
421
+ --button-solid-container-background-active: var(--color-fill-brand);
422
+ --button-outline-text-color-default: var(--color-text-brand);
423
+ --button-outline-text-color-hover: var(--color-text-brand);
424
+ --button-outline-text-color-active: var(--color-text-brand);
425
+ --button-outline-border-color-default: var(--color-border-brand);
426
+ --button-outline-border-color-hover: var(--color-border-brand);
427
+ --button-outline-border-color-active: var(--color-border-brand);
428
+ --button-outline-border-color-focus: var(--color-border-brand);
429
+ --button-outline-container-background-default: var(--color-fill-surface);
430
+ --button-outline-container-background-hover: var(--color-fill-surface);
431
+ --button-outline-container-background-focus: var(--color-fill-surface);
432
+ --button-outline-container-background-active: var(--color-fill-surface);
433
+ --button-ghost-text-color-default: var(--color-text-brand);
434
+ --button-ghost-text-color-hover: var(--color-text-brand);
435
+ --button-ghost-text-color-active: var(--color-text-brand);
436
+ --button-ghost-border-color-default: var(--color-transparent);
437
+ --button-ghost-border-color-hover: var(--color-transparent);
438
+ --button-ghost-border-color-focus: var(--color-transparent);
439
+ --button-ghost-border-color-active: var(--color-transparent);
440
+ --button-ghost-container-background-default: var(--color-fill-surface);
441
+ --button-ghost-container-background-hover: var(--color-fill-surface);
442
+ --button-ghost-container-background-focus: var(--color-fill-surface);
443
+ --button-ghost-container-background-active: var(--color-fill-surface);
444
+ --modal-backdrop-color: var(--color-overlay-backdrop);
445
+ --modal-surface-color: var(--color-fill-surface);
446
+ --modal-surface-border-radius: var(--brand-corner-modal);
447
+ --input-font-family: var(--brand-font-base);
448
+ --input-font-weight: var(--typography-body-font-weight);
449
+ --input-font-size: var(--typography-label-font-size);
450
+ --input-line-height: var(--typography-body-line-height);
451
+ --input-border-size-default: var(--size-border-100);
452
+ --input-border-size-hover: var(--size-border-100);
453
+ --input-border-size-active: var(--size-border-200);
454
+ --input-border-radius: var(--brand-corner-input);
455
+ --input-padding-inline: var(--size-spacing-200);
456
+ --input-padding-inline-icon-only: var(--size-spacing-200);
457
+ --input-padding-block: var(--size-spacing-200);
458
+ --input-gap: var(--size-spacing-200);
459
+ --input-text-color-disabled: var(--color-text-disabled);
460
+ --input-border-color-disabled: var(--color-border-disabled);
461
+ --input-container-background-disabled: var(--color-fill-disabled);
462
+ --input-overlay-hover: var(--color-transparent);
463
+ --input-overlay-active: var(--color-transparent);
464
+ --input-height: 2.5rem;
465
+ --input-text-text-color-placeholder: var(--color-text-subtle);
466
+ --input-text-text-color-default: var(--color-text-default);
467
+ --input-text-text-color-hover: var(--color-text-default);
468
+ --input-text-text-color-active: var(--color-text-default);
469
+ --input-text-border-color-default: var(--color-border-default);
470
+ --input-text-border-color-hover: var(--color-border-brand);
471
+ --input-text-border-color-active: var(--color-border-brand);
472
+ --input-text-border-color-focus: var(--color-border-brand);
473
+ --input-text-border-color-invalid: var(--color-border-danger);
474
+ --input-text-border-color-valid: var(--color-border-strong);
475
+ --input-text-container-background-default: var(--color-fill-surface);
476
+ --input-text-container-background-hover: var(--color-fill-surface);
477
+ --input-text-container-background-focus: var(--color-fill-surface);
478
+ --input-text-container-background-active: var(--color-fill-surface);
479
+ --form-gap: var(--size-spacing-400);
480
+ --form-padding-inline: var(--size-spacing-400);
481
+ --form-padding-block: var(--size-spacing-400);
482
+ --form-border-radius: var(--brand-corner-card);
483
+ --form-border-size: var(--size-border-100);
484
+ --form-container-background: var(--color-fill-surface);
485
+ --form-container-border-color: var(--color-border-subtle);
486
+ --form-group-gap: var(--size-spacing-400);
487
+ --form-group-title-color: var(--color-text-default);
488
+ --form-field-gap: var(--size-spacing-200);
489
+ --form-field-helper-text-color-default: var(--color-text-subtle);
490
+ --form-field-helper-text-color-invalid: var(--color-text-danger);
491
+ }
492
+ /* Auto-generated design tokens from Figma */
493
+ /* Generated on 2026-03-04T20:50:34.069Z */
494
+
495
+ :root {
496
+ --color-focus: var(--brand-color-primary);
497
+ --color-text-default: var(--color-neutral-800);
498
+ --color-text-inverse: var(--color-neutral-000);
499
+ --color-text-disabled: var(--color-neutral-600);
500
+ --color-text-brand: var(--brand-color-primary);
501
+ --color-text-subtle: var(--brand-color-subtle);
502
+ --color-text-strong: var(--color-neutral-1000);
503
+ --color-text-danger: var(--brand-color-functional-danger);
504
+ --color-text-success: var(--brand-color-functional-success);
505
+ --color-fill-surface: var(--color-neutral-000);
506
+ --color-fill-disabled: var(--color-neutral-300);
507
+ --color-fill-hover: var(--color-neutral-alpha-500);
508
+ --color-fill-brand: var(--brand-color-primary);
509
+ --color-fill-subtle: var(--brand-color-subtle-light);
510
+ --color-fill-active: var(--brand-color-accent);
511
+ --color-fill-danger: var(--brand-color-functional-danger);
512
+ --color-fill-success: var(--brand-color-functional-success);
513
+ --color-border-default: var(--color-neutral-800);
514
+ --color-border-subtle: var(--brand-color-subtle);
515
+ --color-border-strong: var(--color-neutral-1000);
516
+ --color-border-brand: var(--brand-color-primary);
517
+ --color-border-disabled: var(--color-neutral-500);
518
+ --color-border-danger: var(--brand-color-functional-danger);
519
+ --color-overlay-backdrop: var(--color-neutral-alpha-400);
520
+ --color-overlay-hover: var(--color-neutral-alpha-200);
521
+ --color-overlay-active: var(--color-neutral-alpha-400);
522
+ --color-overlay-selected: var(--color-neutral-alpha-600);
523
+ }
524
+ /* Auto-generated design tokens from Figma */
525
+ /* Generated on 2026-03-04T20:50:34.068Z */
526
+
527
+ :root[data-mode="dark"] {
528
+ --color-focus: var(--brand-color-primary-dark);
529
+ --color-text-default: var(--color-neutral-800);
530
+ --color-text-inverse: var(--color-neutral-1000);
531
+ --color-text-disabled: var(--color-neutral-600);
532
+ --color-text-brand: var(--brand-color-primary-dark);
533
+ --color-text-subtle: var(--brand-color-subtle-dark);
534
+ --color-text-strong: var(--color-neutral-1000);
535
+ --color-text-danger: var(--brand-color-functional-danger);
536
+ --color-text-success: var(--brand-color-functional-success);
537
+ --color-fill-surface: var(--color-neutral-1000);
538
+ --color-fill-disabled: var(--color-neutral-300);
539
+ --color-fill-hover: var(--color-neutral-alpha-500);
540
+ --color-fill-brand: var(--brand-color-primary);
541
+ --color-fill-subtle: var(--brand-color-subtle);
542
+ --color-fill-active: var(--brand-color-accent);
543
+ --color-fill-danger: var(--brand-color-functional-danger);
544
+ --color-fill-success: var(--brand-color-functional-success);
545
+ --color-border-default: var(--color-neutral-800);
546
+ --color-border-subtle: var(--brand-color-subtle-dark);
547
+ --color-border-strong: var(--color-neutral-1000);
548
+ --color-border-brand: var(--brand-color-primary);
549
+ --color-border-disabled: var(--color-neutral-500);
550
+ --color-border-danger: var(--brand-color-functional-danger);
551
+ --color-overlay-backdrop: var(--color-neutral-alpha-400);
552
+ --color-overlay-hover: var(--color-neutral-alpha-200);
553
+ --color-overlay-active: var(--color-neutral-alpha-400);
554
+ --color-overlay-selected: var(--color-neutral-alpha-600);
555
+ }
556
+ @layer themes {
557
+ :root {
558
+ color-scheme: light dark;
559
+ }
560
+ }
561
+
562
+ @layer components {
563
+ .label-content {
564
+ display: inline-flex;
565
+ align-items: center;
566
+ gap: var(--label-gap, 0.5em);
567
+ line-height: inherit;
568
+ }
569
+
570
+ .label-content > .icon[data-slot] {
571
+ display: inline-flex;
572
+ align-items: center;
573
+ line-height: inherit;
574
+ flex: 0 0 auto;
575
+ }
576
+
577
+ .label-content__text {
578
+ line-height: inherit;
579
+ }
580
+
581
+ .label-content.is-icon-only {
582
+ gap: 0;
583
+ }
584
+
585
+ .field-label {
586
+ position: relative;
587
+ display: inline-flex;
588
+ align-items: center;
589
+ gap: var(--field-label-gap, 0.25em);
590
+ line-height: var(--field-label-line-height, inherit);
591
+ cursor: pointer;
592
+ }
593
+
594
+ .field-label__required {
595
+ color: var(--field-label-required-color, currentColor);
596
+ font-weight: 700;
597
+ }
598
+
599
+ .field-label__required-text {
600
+ position: absolute;
601
+ inline-size: 1px;
602
+ block-size: 1px;
603
+ padding: 0;
604
+ margin: -1px;
605
+ overflow: hidden;
606
+ clip: rect(0, 0, 0, 0);
607
+ white-space: nowrap;
608
+ border: 0;
609
+ }
610
+ }
611
+ @layer components {
612
+ /* Button token usage examples (ui-foundations) */
613
+
614
+ .button {
615
+ display: inline-flex;
616
+ align-items: center;
617
+ justify-content: center;
618
+ white-space: nowrap;
619
+ background: var(--button-solid-container-background-default);
620
+ border-color: var(--button-solid-border-color-default);
621
+ border-width: var(--button-solid-border-size);
622
+ border-style: solid;
623
+ color: var(--button-solid-text-color-default);
624
+ border-radius: var(--button-border-radius);
625
+ padding-inline: var(--button-padding-inline);
626
+ padding-block: var(--button-padding-block);
627
+ cursor: pointer;
628
+ -webkit-text-fill-color: currentColor;
629
+ }
630
+
631
+ .button .label-content {
632
+ line-height: inherit;
633
+ color: inherit;
634
+ -webkit-text-fill-color: currentColor;
635
+ }
636
+
637
+ .button .label-content__text,
638
+ .button .icon {
639
+ color: inherit;
640
+ -webkit-text-fill-color: currentColor;
641
+ }
642
+
643
+ .button.button--icon-only {
644
+ padding-inline: var(--button-padding-block);
645
+ }
646
+
647
+ .button:hover,
648
+ .button.is-hover {
649
+ background: linear-gradient(
650
+ 0deg,
651
+ var(--button-overlay-hover),
652
+ var(--button-overlay-hover)
653
+ ),
654
+ var(--button-solid-container-background-default);
655
+ border-color: var(--button-solid-border-color-hover);
656
+ color: var(--button-solid-text-color-hover);
657
+ }
658
+
659
+ .button:active,
660
+ .button.is-active {
661
+ background: linear-gradient(
662
+ 0deg,
663
+ var(--button-overlay-active),
664
+ var(--button-overlay-active)
665
+ ),
666
+ var(--button-solid-container-background-default);
667
+ border-color: var(--button-solid-border-color-active);
668
+ color: var(--button-solid-text-color-active);
669
+ }
670
+
671
+ .button:focus-visible,
672
+ .button.is-focus-visible {
673
+ background: var(--button-solid-container-background-focus);
674
+ border-color: var(--button-solid-border-color-focus);
675
+ color: var(--button-solid-text-color-default);
676
+ }
677
+
678
+ .button.outline {
679
+ background: var(--button-outline-container-background-default);
680
+ border-color: var(--button-outline-border-color-default);
681
+ border-width: var(--button-outline-border-size);
682
+ border-style: solid;
683
+ color: var(--button-outline-text-color-default);
684
+ }
685
+
686
+ .button.outline:hover,
687
+ .button.outline.is-hover {
688
+ background: linear-gradient(
689
+ 0deg,
690
+ var(--button-overlay-hover),
691
+ var(--button-overlay-hover)
692
+ ),
693
+ var(--button-outline-container-background-default);
694
+ border-color: var(--button-outline-border-color-hover);
695
+ color: var(--button-outline-text-color-default);
696
+ }
697
+
698
+ .button.outline:active,
699
+ .button.outline.is-active {
700
+ background: linear-gradient(
701
+ 0deg,
702
+ var(--button-overlay-active),
703
+ var(--button-overlay-active)
704
+ ),
705
+ var(--button-outline-container-background-default);
706
+ border-color: var(--button-outline-border-color-active);
707
+ color: var(--button-outline-text-color-active);
708
+ }
709
+
710
+ .button.outline:focus-visible,
711
+ .button.outline.is-focus-visible {
712
+ background: var(--button-outline-container-background-focus);
713
+ border-color: var(--button-outline-border-color-focus);
714
+ color: var(--button-outline-text-color-default);
715
+ }
716
+
717
+ .button.ghost {
718
+ background: var(--button-ghost-container-background-default);
719
+ border-color: var(--button-ghost-border-color-default);
720
+ border-width: var(--button-ghost-border-size);
721
+ border-style: solid;
722
+ color: var(--button-ghost-text-color-default);
723
+ }
724
+
725
+ .button.ghost:hover,
726
+ .button.ghost.is-hover {
727
+ background: linear-gradient(
728
+ 0deg,
729
+ var(--button-overlay-hover),
730
+ var(--button-overlay-hover)
731
+ ),
732
+ var(--button-ghost-container-background-default);
733
+ border-color: var(--button-ghost-border-color-hover);
734
+ color: var(--button-ghost-text-color-default);
735
+ }
736
+
737
+ .button.ghost:active,
738
+ .button.ghost.is-active {
739
+ background: linear-gradient(
740
+ 0deg,
741
+ var(--button-overlay-active),
742
+ var(--button-overlay-active)
743
+ ),
744
+ var(--button-ghost-container-background-default);
745
+ border-color: var(--button-ghost-border-color-active);
746
+ color: var(--button-ghost-text-color-active);
747
+ }
748
+
749
+ .button.ghost:focus-visible,
750
+ .button.ghost.is-focus-visible {
751
+ background: var(--button-ghost-container-background-focus);
752
+ border-color: var(--button-ghost-border-color-focus);
753
+ color: var(--button-ghost-text-color-default);
754
+ }
755
+
756
+ .button:disabled,
757
+ .button[disabled] {
758
+ cursor: not-allowed;
759
+ opacity: 0.6;
760
+ background: var(--button-container-background-disabled);
761
+ border-color: var(--button-border-color-disabled);
762
+ color: var(--button-text-color-disabled);
763
+ }
764
+
765
+ .button-group {
766
+ display: inline-flex;
767
+ align-items: stretch;
768
+ gap: var(--button-group-gap, var(--size-spacing-100, 0.25rem));
769
+ }
770
+
771
+ .button-group[data-orientation="vertical"] {
772
+ flex-direction: column;
773
+ }
774
+
775
+ .button-group[data-justify="stretch"] {
776
+ inline-size: 100%;
777
+ }
778
+
779
+ .button-group[data-justify="stretch"] > .button {
780
+ flex: 1 1 auto;
781
+ justify-content: center;
782
+ }
783
+
784
+ .button-group[data-attached="true"] {
785
+ gap: 0;
786
+ }
787
+
788
+ .button-group[data-attached="true"] > .button {
789
+ border-radius: 0;
790
+ }
791
+
792
+ .button-group[data-attached="true"]:not([data-orientation="vertical"])
793
+ > .button
794
+ + .button {
795
+ border-inline-start-width: 0;
796
+ }
797
+
798
+ .button-group[data-attached="true"][data-orientation="vertical"]
799
+ > .button
800
+ + .button {
801
+ border-block-start-width: 0;
802
+ }
803
+
804
+ .button-group[data-attached="true"]:not([data-orientation="vertical"])
805
+ > .button:first-child {
806
+ border-start-start-radius: var(
807
+ --button-group-border-radius,
808
+ var(--button-border-radius)
809
+ );
810
+ border-end-start-radius: var(
811
+ --button-group-border-radius,
812
+ var(--button-border-radius)
813
+ );
814
+ }
815
+
816
+ .button-group[data-attached="true"]:not([data-orientation="vertical"])
817
+ > .button:last-child {
818
+ border-start-end-radius: var(
819
+ --button-group-border-radius,
820
+ var(--button-border-radius)
821
+ );
822
+ border-end-end-radius: var(
823
+ --button-group-border-radius,
824
+ var(--button-border-radius)
825
+ );
826
+ }
827
+
828
+ .button-group[data-attached="true"][data-orientation="vertical"]
829
+ > .button:first-child {
830
+ border-start-start-radius: var(
831
+ --button-group-border-radius,
832
+ var(--button-border-radius)
833
+ );
834
+ border-start-end-radius: var(
835
+ --button-group-border-radius,
836
+ var(--button-border-radius)
837
+ );
838
+ }
839
+
840
+ .button-group[data-attached="true"][data-orientation="vertical"]
841
+ > .button:last-child {
842
+ border-end-start-radius: var(
843
+ --button-group-border-radius,
844
+ var(--button-border-radius)
845
+ );
846
+ border-end-end-radius: var(
847
+ --button-group-border-radius,
848
+ var(--button-border-radius)
849
+ );
850
+ }
851
+ }
852
+ @layer components {
853
+ .input {
854
+ inline-size: 100%;
855
+ block-size: var(--input-height, var(--size-spacing-800));
856
+ appearance: none;
857
+ font-family: var(--input-font-family);
858
+ font-weight: var(--input-font-weight);
859
+ font-size: var(--input-font-size);
860
+ line-height: var(--input-line-height, var(--button-line-height, 1.5));
861
+ color: var(--input-text-text-color-default);
862
+ background: var(--input-text-container-background-default);
863
+ border-style: solid;
864
+ border-width: var(--input-border-size-default);
865
+ border-color: var(--input-text-border-color-default);
866
+ border-radius: var(--input-border-radius);
867
+ padding-inline: var(--input-padding-inline);
868
+ padding-block: var(--input-padding-block);
869
+ }
870
+
871
+ .input::placeholder {
872
+ color: var(--input-text-text-color-placeholder);
873
+ }
874
+
875
+ .input:hover,
876
+ .input.is-hover {
877
+ background:
878
+ linear-gradient(0deg, var(--input-overlay-hover), var(--input-overlay-hover)),
879
+ var(--input-text-container-background-default);
880
+ border-width: var(--input-border-size-hover);
881
+ padding-inline: calc(
882
+ var(--input-padding-inline) + var(--input-border-size-default) -
883
+ var(--input-border-size-hover)
884
+ );
885
+ padding-block: calc(
886
+ var(--input-padding-block) + var(--input-border-size-default) -
887
+ var(--input-border-size-hover)
888
+ );
889
+ border-color: var(--input-text-border-color-hover);
890
+ color: var(--input-text-text-color-hover);
891
+ }
892
+
893
+ .input:active,
894
+ .input.is-active {
895
+ background:
896
+ linear-gradient(0deg, var(--input-overlay-active), var(--input-overlay-active)),
897
+ var(--input-text-container-background-default);
898
+ border-width: var(--input-border-size-active);
899
+ padding-inline: calc(
900
+ var(--input-padding-inline) + var(--input-border-size-default) -
901
+ var(--input-border-size-active)
902
+ );
903
+ padding-block: calc(
904
+ var(--input-padding-block) + var(--input-border-size-default) -
905
+ var(--input-border-size-active)
906
+ );
907
+ border-color: var(--input-text-border-color-active);
908
+ color: var(--input-text-text-color-active);
909
+ }
910
+
911
+ .input:focus-visible,
912
+ .input.is-focus-visible {
913
+ background: var(--input-text-container-background-focus);
914
+ border-color: var(--input-text-border-color-focus);
915
+ outline: none;
916
+ box-shadow: 0 0 0 var(--shadow-focus, 0) var(--color-focus, transparent);
917
+ }
918
+
919
+ .input:disabled,
920
+ .input[disabled],
921
+ .input.is-disabled {
922
+ cursor: not-allowed;
923
+ color: var(--input-text-color-disabled);
924
+ background: var(--input-container-background-disabled);
925
+ border-color: var(--input-border-color-disabled);
926
+ }
927
+ }
928
+ @layer components {
929
+ .icon {
930
+ display: inline-block;
931
+ inline-size: 1em;
932
+ block-size: 1em;
933
+ inline-size: 1lh;
934
+ block-size: 1lh;
935
+ line-height: inherit;
936
+ background-color: currentColor;
937
+ -webkit-mask-image: var(--icon-src);
938
+ mask-image: var(--icon-src);
939
+ -webkit-mask-repeat: no-repeat;
940
+ mask-repeat: no-repeat;
941
+ -webkit-mask-position: center;
942
+ mask-position: center;
943
+ -webkit-mask-size: contain;
944
+ mask-size: contain;
945
+ vertical-align: middle;
946
+ }
947
+ }
948
+ @layer components {
949
+ .checkbox-field {
950
+ display: inline-flex;
951
+ align-items: center;
952
+ gap: var(--typography-label-gap);
953
+ font-family: var(--typography-label-font-family);
954
+ font-weight: var(--typography-label-font-weight);
955
+ font-size: var(--typography-label-font-size);
956
+ line-height: var(--typography-label-line-height);
957
+ color: var(--color-text-default);
958
+ cursor: pointer;
959
+ }
960
+
961
+ .checkbox-field.is-disabled {
962
+ color: var(--color-text-disabled);
963
+ cursor: not-allowed;
964
+ }
965
+
966
+ .checkbox {
967
+ inline-size: var(--size-spacing-600);
968
+ block-size: var(--size-spacing-600);
969
+ margin: 0;
970
+ appearance: none;
971
+ display: inline-grid;
972
+ place-content: center;
973
+ border-style: solid;
974
+ border-width: var(--size-border-100);
975
+ border-color: var(--color-border-default);
976
+ border-radius: var(--brand-corner-input);
977
+ background: var(--color-fill-surface);
978
+ color: var(--color-text-inverse);
979
+ cursor: pointer;
980
+ }
981
+
982
+ .checkbox::after {
983
+ content: "";
984
+ }
985
+
986
+ .checkbox:checked,
987
+ .checkbox.is-checked {
988
+ border-color: var(--color-border-brand);
989
+ background: var(--color-fill-brand);
990
+ }
991
+
992
+ .checkbox:checked::after,
993
+ .checkbox.is-checked::after {
994
+ content: "\2713";
995
+ font-size: var(--typography-label-font-size);
996
+ line-height: var(--typography-label-line-height);
997
+ }
998
+
999
+ .checkbox:hover,
1000
+ .checkbox.is-hover {
1001
+ background:
1002
+ linear-gradient(0deg, var(--color-overlay-hover), var(--color-overlay-hover)),
1003
+ var(--color-fill-surface);
1004
+ border-color: var(--color-border-brand);
1005
+ }
1006
+
1007
+ .checkbox:checked:hover,
1008
+ .checkbox.is-checked.is-hover {
1009
+ background:
1010
+ linear-gradient(0deg, var(--color-overlay-hover), var(--color-overlay-hover)),
1011
+ var(--color-fill-brand);
1012
+ }
1013
+
1014
+ .checkbox:active,
1015
+ .checkbox.is-active {
1016
+ background:
1017
+ linear-gradient(0deg, var(--color-overlay-active), var(--color-overlay-active)),
1018
+ var(--color-fill-surface);
1019
+ border-color: var(--color-border-brand);
1020
+ border-width: var(--size-border-200);
1021
+ }
1022
+
1023
+ .checkbox:checked:active,
1024
+ .checkbox.is-checked.is-active {
1025
+ background:
1026
+ linear-gradient(0deg, var(--color-overlay-active), var(--color-overlay-active)),
1027
+ var(--color-fill-brand);
1028
+ }
1029
+
1030
+ .checkbox:focus-visible,
1031
+ .checkbox.is-focus-visible {
1032
+ border-color: var(--color-border-brand);
1033
+ outline: none;
1034
+ box-shadow: 0 0 0 var(--shadow-focus, 0) var(--color-focus, transparent);
1035
+ }
1036
+
1037
+ .checkbox:disabled,
1038
+ .checkbox.is-disabled {
1039
+ border-color: var(--color-border-disabled);
1040
+ background: var(--color-fill-disabled);
1041
+ color: var(--color-text-disabled);
1042
+ cursor: not-allowed;
1043
+ }
1044
+ }