@salesmind-ai/design-system 0.6.0 → 1.0.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 (257) hide show
  1. package/README.md +2 -0
  2. package/dist/Anton-Regular-MLEXVTB2.woff2 +0 -0
  3. package/dist/admin/index.cjs +5 -61
  4. package/dist/admin/index.css +0 -3918
  5. package/dist/admin/index.css.map +1 -1
  6. package/dist/admin/index.d.cts +1 -422
  7. package/dist/admin/index.d.ts +1 -422
  8. package/dist/admin/index.js +1 -5
  9. package/dist/blog/index.cjs +13 -34
  10. package/dist/blog/index.css +0 -579
  11. package/dist/blog/index.css.map +1 -1
  12. package/dist/blog/index.d.cts +1 -54
  13. package/dist/blog/index.d.ts +1 -54
  14. package/dist/blog/index.js +5 -6
  15. package/dist/charts/index.cjs +0 -46
  16. package/dist/charts/index.d.cts +1 -452
  17. package/dist/charts/index.d.ts +1 -452
  18. package/dist/charts/index.js +1 -3
  19. package/dist/{chunk-YTYDQBVY.cjs → chunk-2VVRZBUR.cjs} +4 -4
  20. package/dist/{chunk-GQELL2MF.cjs → chunk-3NS6X2R4.cjs} +20 -203
  21. package/dist/chunk-3NS6X2R4.cjs.map +1 -0
  22. package/dist/{chunk-XEX2AEZK.cjs → chunk-65DTHLVX.cjs} +66 -186
  23. package/dist/chunk-65DTHLVX.cjs.map +1 -0
  24. package/dist/{chunk-QALDZ7WQ.js → chunk-6BUS7RMS.js} +21 -198
  25. package/dist/chunk-6BUS7RMS.js.map +1 -0
  26. package/dist/{chunk-LTPTW2US.cjs → chunk-6BXKRDK5.cjs} +587 -977
  27. package/dist/chunk-6BXKRDK5.cjs.map +1 -0
  28. package/dist/{chunk-BJZ2DKS5.cjs → chunk-6QIQCUYC.cjs} +11 -10
  29. package/dist/chunk-6QIQCUYC.cjs.map +1 -0
  30. package/dist/{chunk-H2Y6BSTL.cjs → chunk-7EUR3AKV.cjs} +1 -1
  31. package/dist/chunk-7EUR3AKV.cjs.map +1 -0
  32. package/dist/{chunk-VFJZQQZU.js → chunk-AMNY5TS3.js} +11 -10
  33. package/dist/chunk-AMNY5TS3.js.map +1 -0
  34. package/dist/{chunk-YJ6C3EKW.js → chunk-CLXLQCNQ.js} +52 -168
  35. package/dist/chunk-CLXLQCNQ.js.map +1 -0
  36. package/dist/{chunk-H2KQ3WSH.cjs → chunk-CVLD5RQK.cjs} +12 -14
  37. package/dist/chunk-CVLD5RQK.cjs.map +1 -0
  38. package/dist/chunk-EPD4ZEPY.cjs +344 -0
  39. package/dist/chunk-EPD4ZEPY.cjs.map +1 -0
  40. package/dist/{chunk-6D22TFLA.cjs → chunk-FVSL5YMB.cjs} +16 -32
  41. package/dist/chunk-FVSL5YMB.cjs.map +1 -0
  42. package/dist/chunk-FXYOSA4E.cjs +118 -0
  43. package/dist/chunk-FXYOSA4E.cjs.map +1 -0
  44. package/dist/{chunk-ECXBTUH6.cjs → chunk-GPHQGLR5.cjs} +27 -204
  45. package/dist/chunk-GPHQGLR5.cjs.map +1 -0
  46. package/dist/chunk-JPUJWI7F.cjs +73 -0
  47. package/dist/chunk-JPUJWI7F.cjs.map +1 -0
  48. package/dist/{chunk-6UNG76Y2.js → chunk-K526GN7P.js} +2 -2
  49. package/dist/{chunk-SICKWUWB.js → chunk-KJHPOB3J.js} +1 -1
  50. package/dist/chunk-KJHPOB3J.js.map +1 -0
  51. package/dist/{chunk-Y26OHHMX.js → chunk-KSEETC4E.js} +508 -891
  52. package/dist/chunk-KSEETC4E.js.map +1 -0
  53. package/dist/chunk-KXVFFEGD.js +60 -0
  54. package/dist/chunk-KXVFFEGD.js.map +1 -0
  55. package/dist/chunk-LQB7QLD3.js +288 -0
  56. package/dist/chunk-LQB7QLD3.js.map +1 -0
  57. package/dist/chunk-LUD52ZJF.cjs +726 -0
  58. package/dist/chunk-LUD52ZJF.cjs.map +1 -0
  59. package/dist/{chunk-7UZ5DETZ.js → chunk-MBAG654R.js} +4 -216
  60. package/dist/chunk-MBAG654R.js.map +1 -0
  61. package/dist/chunk-OMP6FAZ6.cjs +183 -0
  62. package/dist/chunk-OMP6FAZ6.cjs.map +1 -0
  63. package/dist/{chunk-WYH4TKS5.js → chunk-PBYRTNQ5.js} +6 -8
  64. package/dist/chunk-PBYRTNQ5.js.map +1 -0
  65. package/dist/chunk-PYREXCZK.js +679 -0
  66. package/dist/chunk-PYREXCZK.js.map +1 -0
  67. package/dist/{chunk-P5BOFE5A.js → chunk-RSLA2FJN.js} +28 -183
  68. package/dist/chunk-RSLA2FJN.js.map +1 -0
  69. package/dist/chunk-S46SKHMD.js +173 -0
  70. package/dist/chunk-S46SKHMD.js.map +1 -0
  71. package/dist/chunk-SFXTB7JL.js +190 -0
  72. package/dist/chunk-SFXTB7JL.js.map +1 -0
  73. package/dist/chunk-SGYXYMKZ.cjs +214 -0
  74. package/dist/chunk-SGYXYMKZ.cjs.map +1 -0
  75. package/dist/chunk-UGKYP6F3.cjs +296 -0
  76. package/dist/chunk-UGKYP6F3.cjs.map +1 -0
  77. package/dist/{chunk-HDVAMYSG.js → chunk-VFO2MUPI.js} +14 -29
  78. package/dist/chunk-VFO2MUPI.js.map +1 -0
  79. package/dist/chunk-WB6XDNU7.js +115 -0
  80. package/dist/chunk-WB6XDNU7.js.map +1 -0
  81. package/dist/core/index.cjs +144 -626
  82. package/dist/core/index.css +178 -3567
  83. package/dist/core/index.css.map +1 -1
  84. package/dist/core/index.d.cts +940 -902
  85. package/dist/core/index.d.ts +940 -902
  86. package/dist/core/index.js +6 -12
  87. package/dist/i18n/index.cjs +54 -49
  88. package/dist/i18n/index.d.cts +46 -11
  89. package/dist/i18n/index.d.ts +46 -11
  90. package/dist/i18n/index.js +2 -1
  91. package/dist/index-C8A3X92-.d.cts +1100 -0
  92. package/dist/index-wZPBPkOV.d.ts +1100 -0
  93. package/dist/index.cjs +506 -1004
  94. package/dist/index.cjs.map +1 -1
  95. package/dist/index.css +6026 -16790
  96. package/dist/index.css.map +1 -1
  97. package/dist/index.d.cts +307 -22
  98. package/dist/index.d.ts +307 -22
  99. package/dist/index.js +274 -39
  100. package/dist/index.js.map +1 -1
  101. package/dist/marketing/index.cjs +33 -76
  102. package/dist/marketing/index.css +1896 -3234
  103. package/dist/marketing/index.css.map +1 -1
  104. package/dist/marketing/index.d.cts +3 -1351
  105. package/dist/marketing/index.d.ts +3 -1351
  106. package/dist/marketing/index.js +5 -8
  107. package/dist/motion/index.cjs +3 -20
  108. package/dist/motion/index.css +0 -580
  109. package/dist/motion/index.css.map +1 -1
  110. package/dist/motion/index.d.cts +1 -37
  111. package/dist/motion/index.d.ts +1 -37
  112. package/dist/motion/index.js +1 -2
  113. package/dist/nav/index.cjs +10 -35
  114. package/dist/nav/index.css +28 -580
  115. package/dist/nav/index.css.map +1 -1
  116. package/dist/nav/index.d.cts +2 -60
  117. package/dist/nav/index.d.ts +2 -60
  118. package/dist/nav/index.js +1 -2
  119. package/dist/report/index.cjs +1166 -175
  120. package/dist/report/index.cjs.map +1 -1
  121. package/dist/report/index.d.cts +208 -5
  122. package/dist/report/index.d.ts +208 -5
  123. package/dist/report/index.js +1141 -3
  124. package/dist/report/index.js.map +1 -1
  125. package/dist/sections/index.cjs +8 -10
  126. package/dist/sections/index.cjs.map +1 -1
  127. package/dist/sections/index.css +0 -206
  128. package/dist/sections/index.css.map +1 -1
  129. package/dist/sections/index.js +2 -4
  130. package/dist/sections/index.js.map +1 -1
  131. package/dist/social-media/index.cjs +4 -0
  132. package/dist/social-media/index.cjs.map +1 -0
  133. package/dist/social-media/index.d.cts +2 -0
  134. package/dist/social-media/index.d.ts +2 -0
  135. package/dist/social-media/index.js +3 -0
  136. package/dist/social-media/index.js.map +1 -0
  137. package/dist/social-proof/index.cjs +4 -36
  138. package/dist/social-proof/index.css +3 -1106
  139. package/dist/social-proof/index.css.map +1 -1
  140. package/dist/social-proof/index.d.cts +26 -171
  141. package/dist/social-proof/index.d.ts +26 -171
  142. package/dist/social-proof/index.js +1 -5
  143. package/dist/styles/styles.css +602 -3044
  144. package/dist/theme/index.cjs +11 -19
  145. package/dist/theme/index.css +0 -352
  146. package/dist/theme/index.css.map +1 -1
  147. package/dist/theme/index.d.cts +1 -25
  148. package/dist/theme/index.d.ts +1 -25
  149. package/dist/theme/index.js +2 -2
  150. package/dist/web/client/index.cjs +10 -10
  151. package/dist/web/client/index.css +118 -0
  152. package/dist/web/client/index.css.map +1 -1
  153. package/dist/web/client/index.js +2 -2
  154. package/dist/web/index.cjs +10 -10
  155. package/dist/web/index.css +118 -0
  156. package/dist/web/index.css.map +1 -1
  157. package/dist/web/index.js +2 -2
  158. package/package.json +10 -4
  159. package/dist/AppearancePanel-UT57J69V.d.cts +0 -51
  160. package/dist/AppearancePanel-UT57J69V.d.ts +0 -51
  161. package/dist/ExportMenu-A2TLFiVv.d.cts +0 -311
  162. package/dist/ExportMenu-C8qck5AT.d.ts +0 -311
  163. package/dist/Select-BdZmK0Lt.d.cts +0 -66
  164. package/dist/Select-BdZmK0Lt.d.ts +0 -66
  165. package/dist/chart-types-BGVVO-zl.d.cts +0 -208
  166. package/dist/chart-types-BGVVO-zl.d.ts +0 -208
  167. package/dist/charts/index.css +0 -1167
  168. package/dist/charts/index.css.map +0 -1
  169. package/dist/chunk-3BAQDW3V.cjs +0 -1207
  170. package/dist/chunk-3BAQDW3V.cjs.map +0 -1
  171. package/dist/chunk-3NKRFUAR.js +0 -37
  172. package/dist/chunk-3NKRFUAR.js.map +0 -1
  173. package/dist/chunk-3TGSIILM.cjs +0 -201
  174. package/dist/chunk-3TGSIILM.cjs.map +0 -1
  175. package/dist/chunk-4GM5BGBN.cjs +0 -801
  176. package/dist/chunk-4GM5BGBN.cjs.map +0 -1
  177. package/dist/chunk-5LA3T22E.cjs +0 -562
  178. package/dist/chunk-5LA3T22E.cjs.map +0 -1
  179. package/dist/chunk-5SN66B2X.js +0 -2542
  180. package/dist/chunk-5SN66B2X.js.map +0 -1
  181. package/dist/chunk-6D22TFLA.cjs.map +0 -1
  182. package/dist/chunk-6H4DSTXR.js +0 -786
  183. package/dist/chunk-6H4DSTXR.js.map +0 -1
  184. package/dist/chunk-6HKQ5ILL.cjs +0 -1624
  185. package/dist/chunk-6HKQ5ILL.cjs.map +0 -1
  186. package/dist/chunk-7PX2AZ6Y.js +0 -39
  187. package/dist/chunk-7PX2AZ6Y.js.map +0 -1
  188. package/dist/chunk-7UZ5DETZ.js.map +0 -1
  189. package/dist/chunk-B6AVAX4F.js +0 -1415
  190. package/dist/chunk-B6AVAX4F.js.map +0 -1
  191. package/dist/chunk-BJZ2DKS5.cjs.map +0 -1
  192. package/dist/chunk-BUTQSDQH.js +0 -200
  193. package/dist/chunk-BUTQSDQH.js.map +0 -1
  194. package/dist/chunk-C2BCDNAV.js +0 -24
  195. package/dist/chunk-C2BCDNAV.js.map +0 -1
  196. package/dist/chunk-CJ2MKVAF.cjs +0 -46
  197. package/dist/chunk-CJ2MKVAF.cjs.map +0 -1
  198. package/dist/chunk-E7D6EKJ4.cjs +0 -44
  199. package/dist/chunk-E7D6EKJ4.cjs.map +0 -1
  200. package/dist/chunk-ECXBTUH6.cjs.map +0 -1
  201. package/dist/chunk-FAFAP4L5.js +0 -183
  202. package/dist/chunk-FAFAP4L5.js.map +0 -1
  203. package/dist/chunk-G2XGBO5V.cjs +0 -2565
  204. package/dist/chunk-G2XGBO5V.cjs.map +0 -1
  205. package/dist/chunk-GQELL2MF.cjs.map +0 -1
  206. package/dist/chunk-H2KQ3WSH.cjs.map +0 -1
  207. package/dist/chunk-H2Y6BSTL.cjs.map +0 -1
  208. package/dist/chunk-HCZW5AJN.cjs +0 -234
  209. package/dist/chunk-HCZW5AJN.cjs.map +0 -1
  210. package/dist/chunk-HDVAMYSG.js.map +0 -1
  211. package/dist/chunk-HN4PHABT.js +0 -126
  212. package/dist/chunk-HN4PHABT.js.map +0 -1
  213. package/dist/chunk-LTPTW2US.cjs.map +0 -1
  214. package/dist/chunk-MDB2WCRQ.cjs +0 -137
  215. package/dist/chunk-MDB2WCRQ.cjs.map +0 -1
  216. package/dist/chunk-MQRB634A.cjs +0 -34
  217. package/dist/chunk-MQRB634A.cjs.map +0 -1
  218. package/dist/chunk-NN3TUHIH.js +0 -28
  219. package/dist/chunk-NN3TUHIH.js.map +0 -1
  220. package/dist/chunk-OWS2KAXZ.js +0 -701
  221. package/dist/chunk-OWS2KAXZ.js.map +0 -1
  222. package/dist/chunk-P5BOFE5A.js.map +0 -1
  223. package/dist/chunk-PUPSK3DI.cjs +0 -216
  224. package/dist/chunk-PUPSK3DI.cjs.map +0 -1
  225. package/dist/chunk-Q2MFGYTE.cjs +0 -1449
  226. package/dist/chunk-Q2MFGYTE.cjs.map +0 -1
  227. package/dist/chunk-Q75DBVDY.cjs +0 -68
  228. package/dist/chunk-Q75DBVDY.cjs.map +0 -1
  229. package/dist/chunk-QALDZ7WQ.js.map +0 -1
  230. package/dist/chunk-QWE2RNCS.js +0 -1195
  231. package/dist/chunk-QWE2RNCS.js.map +0 -1
  232. package/dist/chunk-RQUFZAZ7.js +0 -1608
  233. package/dist/chunk-RQUFZAZ7.js.map +0 -1
  234. package/dist/chunk-SICKWUWB.js.map +0 -1
  235. package/dist/chunk-TCFC7XTB.js +0 -212
  236. package/dist/chunk-TCFC7XTB.js.map +0 -1
  237. package/dist/chunk-UTVXGAQP.cjs +0 -2437
  238. package/dist/chunk-UTVXGAQP.cjs.map +0 -1
  239. package/dist/chunk-UVEMY3FQ.cjs +0 -717
  240. package/dist/chunk-UVEMY3FQ.cjs.map +0 -1
  241. package/dist/chunk-VFJZQQZU.js.map +0 -1
  242. package/dist/chunk-WH7PYHZY.cjs +0 -35
  243. package/dist/chunk-WH7PYHZY.cjs.map +0 -1
  244. package/dist/chunk-WYH4TKS5.js.map +0 -1
  245. package/dist/chunk-XEX2AEZK.cjs.map +0 -1
  246. package/dist/chunk-XPTVHPCN.js +0 -2320
  247. package/dist/chunk-XPTVHPCN.js.map +0 -1
  248. package/dist/chunk-XWPDRMZG.js +0 -62
  249. package/dist/chunk-XWPDRMZG.js.map +0 -1
  250. package/dist/chunk-Y26OHHMX.js.map +0 -1
  251. package/dist/chunk-YJ6C3EKW.js.map +0 -1
  252. package/dist/motion-C651Ry6d.d.cts +0 -832
  253. package/dist/motion-C651Ry6d.d.ts +0 -832
  254. package/dist/report/index.css +0 -1239
  255. package/dist/report/index.css.map +0 -1
  256. /package/dist/{chunk-6UNG76Y2.js.map → chunk-2VVRZBUR.cjs.map} +0 -0
  257. /package/dist/{chunk-YTYDQBVY.cjs.map → chunk-K526GN7P.js.map} +0 -0
@@ -2,7 +2,6 @@
2
2
  :root {
3
3
  --color-accent: rgb(var(--accent-rgb));
4
4
  --color-accent-secondary: rgb(var(--accent-secondary-rgb));
5
- --void-grid-size: 80px;
6
5
  --void-grid-grain-opacity: 0.025;
7
6
  --void-float-distance: 24px;
8
7
  --density-multiplier: 1;
@@ -30,6 +29,13 @@
30
29
  Monaco,
31
30
  "Cascadia Code",
32
31
  monospace;
32
+ --font-anton-source: "Anton";
33
+ --font-anton-fallback:
34
+ -apple-system,
35
+ BlinkMacSystemFont,
36
+ "Helvetica Neue",
37
+ sans-serif;
38
+ --font-family-display: var(--font-anton-source), var(--font-anton-fallback);
33
39
  --font-size-2xs: 0.625rem;
34
40
  --font-size-xs: 0.75rem;
35
41
  --font-size-sm: 0.875rem;
@@ -121,6 +127,58 @@
121
127
  --illus-layout-gap: 80px;
122
128
  --illus-layout-gap-sm: 48px;
123
129
  --illus-layout-padding: 24px;
130
+ --embed-min-height-mobile: 900px;
131
+ --embed-min-height-tablet: 860px;
132
+ --embed-min-height-desktop: 830px;
133
+ --aurora-pink-raw: oklch(0.65 0.25 5);
134
+ --aurora-pink-low: oklch(0.65 0.175 5);
135
+ --aurora-pink-high: oklch(0.65 0.30 5);
136
+ --aurora-gold-raw: oklch(0.78 0.18 85);
137
+ --aurora-gold-low: oklch(0.78 0.126 85);
138
+ --aurora-gold-high: oklch(0.78 0.216 85);
139
+ --aurora-plum-raw: oklch(0.45 0.22 320);
140
+ --aurora-plum-low: oklch(0.45 0.154 320);
141
+ --aurora-plum-high: oklch(0.45 0.264 320);
142
+ --aurora-primary: var(--aurora-pink-raw);
143
+ --aurora-secondary: var(--aurora-gold-raw);
144
+ --aurora-tertiary: var(--aurora-plum-raw);
145
+ --vignette-radial-stops:
146
+ transparent 0%,
147
+ transparent 50%,
148
+ rgba(0,0,0,0.6) 100%;
149
+ --vignette-gradient: radial-gradient(ellipse at center, var(--vignette-radial-stops));
150
+ --vignette-light:
151
+ radial-gradient(
152
+ ellipse at center,
153
+ transparent 0%,
154
+ transparent 50%,
155
+ rgba(0,0,0,0.3) 100%);
156
+ --vignette-base:
157
+ radial-gradient(
158
+ ellipse at center,
159
+ transparent 0%,
160
+ transparent 50%,
161
+ rgba(0,0,0,0.6) 100%);
162
+ --vignette-heavy:
163
+ radial-gradient(
164
+ ellipse at center,
165
+ transparent 0%,
166
+ transparent 50%,
167
+ rgba(0,0,0,0.85) 100%);
168
+ --grid-cell-web: 64px;
169
+ --grid-cell-social-1200: 120px;
170
+ --grid-cell-services-1000: 120px;
171
+ --grid-line-color: rgba(255,255,255,0.04);
172
+ --grid-overlay-mask:
173
+ linear-gradient(
174
+ to bottom,
175
+ transparent 0%,
176
+ rgba(0,0,0,0.5) 8%,
177
+ rgba(0,0,0,0.5) 92%,
178
+ transparent 100%);
179
+ --glass-1: var(--glass-base);
180
+ --glass-2: var(--glass-elevated);
181
+ --glass-3: var(--glass-heavy);
124
182
  }
125
183
  :root,
126
184
  :root[data-theme=dark] {
@@ -137,6 +195,8 @@
137
195
  --glass-base: rgba(255, 255, 255, 0.06);
138
196
  --glass-base-hover: rgba(255, 255, 255, 0.09);
139
197
  --glass-base-active: rgba(255, 255, 255, 0.12);
198
+ --glass-elevated: rgba(255, 255, 255, 0.10);
199
+ --glass-heavy: rgba(255, 255, 255, 0.16);
140
200
  --glass-blur: 40px;
141
201
  --glass-saturate: 160%;
142
202
  --glass-brightness: 90%;
@@ -248,6 +308,8 @@
248
308
  --glass-base: rgba(255, 255, 255, 0.08);
249
309
  --glass-base-hover: rgba(255, 255, 255, 0.12);
250
310
  --glass-base-active: rgba(255, 255, 255, 0.16);
311
+ --glass-elevated: rgba(255, 255, 255, 0.12);
312
+ --glass-heavy: rgba(255, 255, 255, 0.20);
251
313
  --glass-backdrop: blur(40px) saturate(100%) brightness(70%);
252
314
  --glass-backdrop-light: blur(20px) saturate(100%) brightness(80%);
253
315
  --glass-backdrop-heavy: blur(60px) saturate(100%) brightness(60%);
@@ -305,6 +367,8 @@
305
367
  --glass-base: rgba(255, 255, 255, 0.65);
306
368
  --glass-base-hover: rgba(255, 255, 255, 0.75);
307
369
  --glass-base-active: rgba(255, 255, 255, 0.85);
370
+ --glass-elevated: rgba(255, 255, 255, 0.75);
371
+ --glass-heavy: rgba(255, 255, 255, 0.85);
308
372
  --glass-blur: 24px;
309
373
  --glass-saturate: 180%;
310
374
  --glass-brightness: 110%;
@@ -416,6 +480,8 @@
416
480
  --glass-base: rgba(255, 255, 255, 0.9);
417
481
  --glass-base-hover: rgba(255, 255, 255, 0.95);
418
482
  --glass-base-active: rgba(255, 255, 255, 1);
483
+ --glass-elevated: rgba(255, 255, 255, 0.90);
484
+ --glass-heavy: rgba(255, 255, 255, 1);
419
485
  --glass-blur: 16px;
420
486
  --glass-saturate: 100%;
421
487
  --glass-brightness: 100%;
@@ -751,6 +817,15 @@ a:hover {
751
817
  scrollbar-width: thin;
752
818
  scrollbar-color: var(--surface-alpha-2) transparent;
753
819
  }
820
+ :root {
821
+ --glass-white-95: rgba(255, 255, 255, 0.95);
822
+ --glass-white-98: rgba(255, 255, 255, 0.98);
823
+ --glass-white-border-low: rgba(255, 255, 255, 0.16);
824
+ --glass-white-border-mid: rgba(255, 255, 255, 0.22);
825
+ --glass-white-alpha-10: rgba(255, 255, 255, 0.10);
826
+ --glass-white-alpha-20: rgba(255, 255, 255, 0.20);
827
+ --glass-white-alpha-30: rgba(255, 255, 255, 0.30);
828
+ }
754
829
  @media (prefers-reduced-motion: reduce) {
755
830
  *,
756
831
  *::before,
@@ -985,112 +1060,110 @@ a:hover {
985
1060
  background: var(--fallback-surface);
986
1061
  }
987
1062
  }
988
-
989
- /* src/components/VoidBackground/VoidBackground.css */
990
- .void {
991
- position: relative;
992
- display: flex;
993
- flex-direction: column;
994
- width: 100%;
995
- min-height: 100vh;
996
- overflow: hidden;
997
- isolation: isolate;
998
- }
999
- .void__base {
1000
- position: absolute;
1001
- inset: 0;
1002
- background-color: var(--void-base);
1003
- z-index: -4;
1004
- }
1005
- .void__orbs {
1006
- position: absolute;
1007
- inset: 0;
1008
- z-index: -3;
1009
- pointer-events: none;
1010
- }
1011
- .void__orb {
1012
- position: absolute;
1013
- border-radius: 50%;
1014
- mix-blend-mode: screen;
1015
- filter: blur(140px);
1016
- opacity: 0.6;
1017
- }
1018
- .void__orb--warm {
1019
- width: 800px;
1020
- height: 800px;
1021
- top: 10%;
1022
- right: 10%;
1023
- background:
1024
- radial-gradient(
1025
- circle at center,
1026
- rgba(var(--void-orb-yellow-rgb), 0.4) 0%,
1027
- rgba(var(--void-orb-pink-rgb), 0.3) 40%,
1028
- transparent 70%);
1029
- }
1030
- .void__orb--purple {
1031
- width: 600px;
1032
- height: 600px;
1033
- bottom: 10%;
1034
- left: 10%;
1035
- background:
1036
- radial-gradient(
1037
- circle at center,
1038
- rgba(var(--void-orb-purple-rgb), 0.5) 0%,
1039
- rgba(var(--void-orb-purple-rgb), 0.2) 50%,
1040
- transparent 70%);
1063
+ @supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
1064
+ .glass--tier-1 {
1065
+ background: var(--glass-1);
1066
+ backdrop-filter: blur(20px) saturate(160%);
1067
+ -webkit-backdrop-filter: blur(20px) saturate(160%);
1068
+ }
1069
+ .glass--tier-2 {
1070
+ background: var(--glass-2);
1071
+ backdrop-filter: blur(28px) saturate(170%);
1072
+ -webkit-backdrop-filter: blur(28px) saturate(170%);
1073
+ }
1074
+ .glass--tier-3 {
1075
+ background: var(--glass-3);
1076
+ backdrop-filter: blur(36px) saturate(180%);
1077
+ -webkit-backdrop-filter: blur(36px) saturate(180%);
1078
+ }
1079
+ @supports (backdrop-filter: blur(40px)) {
1080
+ @media (prefers-color-scheme: dark) {
1081
+ .glass--tier-1.glass--enhanced {
1082
+ backdrop-filter: blur(40px) saturate(180%);
1083
+ -webkit-backdrop-filter: blur(40px) saturate(180%);
1084
+ }
1085
+ .glass--tier-2.glass--enhanced {
1086
+ backdrop-filter: blur(48px) saturate(190%);
1087
+ -webkit-backdrop-filter: blur(48px) saturate(190%);
1088
+ }
1089
+ .glass--tier-3.glass--enhanced {
1090
+ backdrop-filter: blur(56px) saturate(200%);
1091
+ -webkit-backdrop-filter: blur(56px) saturate(200%);
1092
+ }
1093
+ }
1094
+ }
1095
+ }
1096
+ @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
1097
+ .glass--tier-1,
1098
+ .glass--tier-2,
1099
+ .glass--tier-3 {
1100
+ background: rgba(20, 20, 24, 0.92);
1101
+ }
1102
+ }
1103
+ @media (prefers-reduced-motion: reduce), (prefers-reduced-transparency: reduce) {
1104
+ .glass--tier-1,
1105
+ .glass--tier-2,
1106
+ .glass--tier-3 {
1107
+ backdrop-filter: none;
1108
+ -webkit-backdrop-filter: none;
1109
+ background: rgba(20, 20, 24, 0.95);
1110
+ }
1041
1111
  }
1042
- .void__grid {
1043
- position: absolute;
1044
- inset: 0;
1045
- z-index: -2;
1046
- pointer-events: none;
1112
+
1113
+ /* src/styles/brand-gradients.css */
1114
+ .ds-grad--aurora-headline {
1047
1115
  background-image:
1048
1116
  linear-gradient(
1049
- to right,
1050
- var(--void-grid-color) 1px,
1051
- transparent 1px),
1117
+ 135deg,
1118
+ var(--aurora-primary),
1119
+ var(--aurora-secondary));
1120
+ background-clip: text;
1121
+ -webkit-background-clip: text;
1122
+ color: transparent;
1123
+ -webkit-text-fill-color: transparent;
1124
+ }
1125
+ .ds-grad--brand-pink-glow {
1126
+ background-image:
1052
1127
  linear-gradient(
1053
- to bottom,
1054
- var(--void-grid-color) 1px,
1055
- transparent 1px);
1056
- background-size: var(--void-grid-size) var(--void-grid-size);
1057
- mask-image:
1058
- radial-gradient(
1059
- ellipse 70% 60% at 50% 40%,
1060
- black 0%,
1061
- transparent 100%);
1062
- -webkit-mask-image:
1063
- radial-gradient(
1064
- ellipse 70% 60% at 50% 40%,
1065
- black 0%,
1066
- transparent 100%);
1067
- }
1068
- .void__grain {
1069
- position: absolute;
1070
- inset: 0;
1071
- z-index: -1;
1072
- pointer-events: none;
1073
- opacity: var(--void-grid-grain-opacity, 0.04);
1074
- background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
1075
- background-repeat: repeat;
1076
- background-size: 200px 200px;
1077
- }
1078
- .void__content {
1079
- position: relative;
1080
- z-index: 1;
1081
- flex: 1;
1082
- display: flex;
1083
- flex-direction: column;
1084
- }
1085
- .void--inline {
1086
- min-height: auto;
1087
- }
1088
- .void--inline .void__content {
1089
- min-height: auto;
1090
- }
1091
- @media (prefers-reduced-motion: reduce) {
1092
- .void__orb {
1093
- animation: none;
1128
+ 135deg,
1129
+ var(--brand-pink),
1130
+ var(--brand-pink-glow));
1131
+ background-clip: text;
1132
+ -webkit-background-clip: text;
1133
+ color: transparent;
1134
+ -webkit-text-fill-color: transparent;
1135
+ }
1136
+ .ds-grad--plum-deep {
1137
+ background-image:
1138
+ linear-gradient(
1139
+ 135deg,
1140
+ var(--aurora-plum-raw),
1141
+ var(--aurora-plum-low));
1142
+ background-clip: text;
1143
+ -webkit-background-clip: text;
1144
+ color: transparent;
1145
+ -webkit-text-fill-color: transparent;
1146
+ }
1147
+ .ds-grad--pipeline-flow {
1148
+ background-image:
1149
+ linear-gradient(
1150
+ 135deg,
1151
+ var(--aurora-primary) 0%,
1152
+ var(--aurora-secondary) 50%,
1153
+ var(--aurora-tertiary) 100%);
1154
+ background-clip: text;
1155
+ -webkit-background-clip: text;
1156
+ color: transparent;
1157
+ -webkit-text-fill-color: transparent;
1158
+ }
1159
+ @media (forced-colors: active) {
1160
+ .ds-grad--aurora-headline,
1161
+ .ds-grad--brand-pink-glow,
1162
+ .ds-grad--plum-deep,
1163
+ .ds-grad--pipeline-flow {
1164
+ color: CanvasText;
1165
+ background: none;
1166
+ -webkit-text-fill-color: CanvasText;
1094
1167
  }
1095
1168
  }
1096
1169
 
@@ -1412,197 +1485,133 @@ a:hover {
1412
1485
  var(--glass-highlight-light) 0%,
1413
1486
  rgba(var(--status-error-rgb, 239, 68, 68), 0.08) 100%);
1414
1487
  }
1415
- .ds-button--loading {
1416
- position: relative;
1417
- cursor: not-allowed;
1418
- opacity: 0.8;
1419
- }
1420
- .ds-button__spinner {
1421
- position: absolute;
1422
- top: 50%;
1423
- left: 50%;
1424
- transform: translate(-50%, -50%);
1425
- animation: ds-button-spin 1s linear infinite;
1426
- }
1427
- .ds-button__content {
1428
- display: inline-flex;
1429
- align-items: center;
1430
- justify-content: center;
1431
- gap: inherit;
1432
- visibility: visible;
1433
- }
1434
- .ds-button__content--hidden {
1435
- visibility: hidden;
1436
- }
1437
- @keyframes ds-button-spin {
1438
- from {
1439
- transform: translate(-50%, -50%) rotate(0deg);
1440
- }
1441
- to {
1442
- transform: translate(-50%, -50%) rotate(360deg);
1443
- }
1444
- }
1445
-
1446
- /* src/components/TextField/TextField.css */
1447
- .ds-textfield {
1448
- display: flex;
1449
- flex-direction: column;
1450
- gap: var(--space-2);
1451
- }
1452
- .ds-textfield__label {
1453
- font-family: var(--font-family);
1454
- font-size: var(--font-size-sm);
1455
- font-weight: var(--font-weight-medium);
1456
- color: var(--text-secondary);
1457
- transition: color var(--transition-base);
1458
- }
1459
- .ds-textfield:focus-within .ds-textfield__label {
1460
- color: var(--text-primary);
1461
- }
1462
- .ds-textfield__input {
1463
- position: relative;
1464
- font-family: var(--font-family);
1465
- font-size: var(--font-size-base);
1466
- padding: var(--space-3) var(--space-4);
1467
- border: none;
1468
- border-radius: var(--radius-button);
1488
+ .ds-button--aurora-primary {
1489
+ background:
1490
+ linear-gradient(
1491
+ 135deg,
1492
+ var(--aurora-pink-raw),
1493
+ var(--aurora-gold-raw));
1469
1494
  color: var(--text-primary);
1470
- outline: none;
1471
- width: 100%;
1472
- box-sizing: border-box;
1473
- background: var(--glass-base-active);
1474
- backdrop-filter: blur(20px) saturate(140%);
1475
- -webkit-backdrop-filter: blur(20px) saturate(140%);
1476
- box-shadow: var(--shadow-md), var(--shadow-inset-border-subtle);
1477
- transition: background var(--transition-glass), box-shadow var(--transition-glass);
1495
+ box-shadow:
1496
+ var(--shadow-interactive-rest),
1497
+ var(--glass-shadow-inner),
1498
+ inset 0 0 0 1px var(--glass-white-border-low),
1499
+ 0 0 30px rgba(var(--brand-pink-rgb, 221, 56, 84), 0.25);
1500
+ backdrop-filter: none;
1501
+ -webkit-backdrop-filter: none;
1478
1502
  }
1479
- .ds-textfield__input::before {
1480
- content: "";
1481
- position: absolute;
1482
- inset: 0;
1483
- border-radius: inherit;
1484
- padding: var(--space-px);
1503
+ .ds-button--aurora-primary::before {
1485
1504
  background:
1486
1505
  linear-gradient(
1487
1506
  180deg,
1488
- var(--rim-light-top) 0%,
1489
- var(--rim-light-bottom) 100%);
1490
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1491
- mask-composite: exclude;
1492
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1493
- -webkit-mask-composite: xor;
1494
- pointer-events: none;
1507
+ var(--glass-highlight-strong) 0%,
1508
+ rgba(var(--brand-pink-rgb, 221, 56, 84), 0.2) 100%);
1495
1509
  }
1496
- .ds-textfield__input-wrapper {
1497
- position: relative;
1510
+ .ds-button--aurora-primary:hover:not(:disabled) {
1511
+ background:
1512
+ linear-gradient(
1513
+ 135deg,
1514
+ var(--aurora-pink-high),
1515
+ var(--aurora-gold-high));
1516
+ box-shadow:
1517
+ var(--shadow-interactive-hover),
1518
+ var(--glass-shadow-inner),
1519
+ inset 0 0 0 1px var(--glass-white-border-mid),
1520
+ 0 0 40px rgba(var(--brand-pink-rgb, 221, 56, 84), 0.35);
1521
+ transform: translateY(-1px);
1498
1522
  }
1499
- .ds-textfield__input-wrapper::before {
1500
- content: "";
1501
- position: absolute;
1502
- inset: 0;
1503
- border-radius: var(--radius-button);
1504
- padding: var(--space-px);
1523
+ .ds-button--aurora-primary:hover:not(:disabled)::before {
1505
1524
  background:
1506
1525
  linear-gradient(
1507
1526
  180deg,
1508
- var(--rim-light-top) 0%,
1509
- var(--rim-light-bottom) 100%);
1510
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1511
- mask-composite: exclude;
1512
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1513
- -webkit-mask-composite: xor;
1514
- pointer-events: none;
1515
- transition: background var(--transition-glass);
1516
- }
1517
- .ds-textfield__input::placeholder {
1518
- color: var(--text-tertiary);
1527
+ var(--glass-highlight-bright) 0%,
1528
+ rgba(var(--brand-pink-rgb, 221, 56, 84), 0.25) 100%);
1519
1529
  }
1520
- .ds-textfield__input:hover:not(:disabled):not(:focus) {
1521
- background: var(--glass-base-hover);
1530
+ .ds-button--aurora-primary:active:not(:disabled) {
1531
+ transform: translateY(0);
1532
+ box-shadow:
1533
+ var(--shadow-interactive-active),
1534
+ var(--glass-shadow-inner),
1535
+ inset 0 0 0 1px var(--glass-white-border-low),
1536
+ 0 0 20px rgba(var(--brand-pink-rgb, 221, 56, 84), 0.2);
1522
1537
  }
1523
- .ds-textfield__input-wrapper:hover:not(:has(:disabled)):not(:has(:focus))::before {
1538
+ .ds-button--aurora-secondary {
1524
1539
  background:
1525
1540
  linear-gradient(
1526
- 180deg,
1527
- var(--rim-light-hover-top) 0%,
1528
- var(--rim-light-hover-bottom) 100%);
1529
- }
1530
- .ds-textfield__input:focus {
1531
- background: var(--glass-base-hover);
1541
+ 135deg,
1542
+ var(--aurora-plum-raw),
1543
+ var(--aurora-pink-raw));
1544
+ color: var(--text-primary);
1532
1545
  box-shadow:
1533
- var(--shadow-lg),
1546
+ var(--shadow-interactive-rest),
1534
1547
  var(--glass-shadow-inner),
1535
- 0 0 0 2px rgba(var(--brand-pink-rgb), 0.3);
1548
+ inset 0 0 0 1px var(--glass-white-border-low),
1549
+ 0 0 24px rgba(var(--brand-pink-rgb, 221, 56, 84), 0.15);
1550
+ backdrop-filter: none;
1551
+ -webkit-backdrop-filter: none;
1536
1552
  }
1537
- .ds-textfield__input-wrapper:has(:focus)::before {
1553
+ .ds-button--aurora-secondary::before {
1538
1554
  background:
1539
1555
  linear-gradient(
1540
1556
  180deg,
1541
- rgba(var(--brand-pink-rgb), 0.4) 0%,
1542
- rgba(var(--brand-pink-rgb), 0.1) 100%);
1543
- }
1544
- .ds-textfield__input:disabled {
1545
- opacity: 0.4;
1546
- cursor: not-allowed;
1547
- }
1548
- .ds-textfield__input--adorned {
1549
- padding-right: var(--space-12);
1550
- }
1551
- .ds-textfield__adornment {
1552
- position: absolute;
1553
- right: var(--space-2);
1554
- top: 50%;
1555
- transform: translateY(-50%);
1556
- display: flex;
1557
- align-items: center;
1558
- justify-content: center;
1559
- z-index: 2;
1557
+ var(--glass-highlight-medium) 0%,
1558
+ rgba(var(--brand-pink-rgb, 221, 56, 84), 0.15) 100%);
1560
1559
  }
1561
- .ds-textfield__input--error {
1560
+ .ds-button--aurora-secondary:hover:not(:disabled) {
1561
+ background:
1562
+ linear-gradient(
1563
+ 135deg,
1564
+ var(--aurora-plum-high),
1565
+ var(--aurora-pink-high));
1562
1566
  box-shadow:
1563
- var(--shadow-md),
1564
- var(--shadow-inset-border-error),
1565
- 0 0 0 1px rgba(var(--status-error-rgb), 0.5);
1567
+ var(--shadow-interactive-hover),
1568
+ var(--glass-shadow-inner),
1569
+ inset 0 0 0 1px var(--glass-white-border-mid),
1570
+ 0 0 32px rgba(var(--brand-pink-rgb, 221, 56, 84), 0.25);
1571
+ transform: translateY(-1px);
1566
1572
  }
1567
- .ds-textfield__input-wrapper:has(.ds-textfield__input--error)::before {
1573
+ .ds-button--aurora-secondary:hover:not(:disabled)::before {
1568
1574
  background:
1569
1575
  linear-gradient(
1570
1576
  180deg,
1571
- rgba(var(--status-error-rgb), 0.4) 0%,
1572
- rgba(var(--status-error-rgb), 0.1) 100%);
1577
+ var(--glass-highlight-strong) 0%,
1578
+ rgba(var(--brand-pink-rgb, 221, 56, 84), 0.2) 100%);
1573
1579
  }
1574
- .ds-textfield__input--error:focus {
1580
+ .ds-button--aurora-secondary:active:not(:disabled) {
1581
+ transform: translateY(0);
1575
1582
  box-shadow:
1576
- var(--shadow-lg),
1583
+ var(--shadow-interactive-active),
1577
1584
  var(--glass-shadow-inner),
1578
- 0 0 0 2px rgba(var(--status-error-rgb), 0.4);
1585
+ inset 0 0 0 1px var(--glass-white-border-low);
1579
1586
  }
1580
- .ds-textfield__helper {
1581
- font-family: var(--font-family);
1582
- font-size: var(--font-size-xs);
1583
- color: var(--text-tertiary);
1587
+ .ds-button--loading {
1588
+ position: relative;
1589
+ cursor: not-allowed;
1590
+ opacity: 0.8;
1584
1591
  }
1585
- .ds-textfield__helper--error {
1586
- color: var(--status-error);
1592
+ .ds-button__spinner {
1593
+ position: absolute;
1594
+ top: 50%;
1595
+ left: 50%;
1596
+ transform: translate(-50%, -50%);
1597
+ animation: ds-button-spin 1s linear infinite;
1587
1598
  }
1588
- @media (prefers-contrast: more) {
1589
- .ds-textfield__input {
1590
- background: var(--hc-surface-input);
1591
- border: 1px solid var(--hc-border);
1592
- }
1593
- .ds-textfield__input-wrapper::before {
1594
- display: none;
1595
- }
1596
- .ds-textfield__input:focus {
1597
- border-color: var(--brand-pink);
1598
- }
1599
- .ds-textfield__input--error {
1600
- border-color: var(--status-error);
1601
- }
1599
+ .ds-button__content {
1600
+ display: inline-flex;
1601
+ align-items: center;
1602
+ justify-content: center;
1603
+ gap: inherit;
1604
+ visibility: visible;
1602
1605
  }
1603
- @supports not (backdrop-filter: blur(1px)) {
1604
- .ds-textfield__input {
1605
- background: var(--fallback-surface);
1606
+ .ds-button__content--hidden {
1607
+ visibility: hidden;
1608
+ }
1609
+ @keyframes ds-button-spin {
1610
+ from {
1611
+ transform: translate(-50%, -50%) rotate(0deg);
1612
+ }
1613
+ to {
1614
+ transform: translate(-50%, -50%) rotate(360deg);
1606
1615
  }
1607
1616
  }
1608
1617
 
@@ -1885,274 +1894,13 @@ a:hover {
1885
1894
  }
1886
1895
  }
1887
1896
 
1888
- /* src/components/Dialog/Dialog.css */
1889
- .ds-dialog__backdrop {
1890
- position: fixed;
1891
- inset: 0;
1892
- background: rgba(var(--void-base-rgb), 0.8);
1893
- backdrop-filter: blur(8px) saturate(120%);
1894
- -webkit-backdrop-filter: blur(8px) saturate(120%);
1895
- animation: ds-backdrop-fade-in 0.25s ease-out;
1896
- z-index: var(--z-modal-backdrop);
1897
- }
1898
- .ds-dialog__content {
1897
+ /* src/components/Sidebar/Sidebar.css */
1898
+ .ds-sidebar {
1899
1899
  position: fixed;
1900
- top: 50%;
1901
- left: 50%;
1902
- transform: translate(-50%, -50%);
1903
- width: calc(100vw - var(--float-distance) * 2);
1904
- max-width: 480px;
1905
- max-height: calc(100vh - var(--float-distance) * 2);
1906
- overflow-y: auto;
1907
- z-index: var(--z-modal);
1908
- outline: none;
1909
- background: var(--glass-base);
1910
- backdrop-filter: var(--glass-backdrop);
1911
- -webkit-backdrop-filter: var(--glass-backdrop);
1912
- border-radius: var(--radius-panel);
1913
- padding: var(--space-8);
1914
- box-shadow: var(--shadow-xl), var(--glass-shadow-inner);
1915
- animation: ds-dialog-scale-in 0.25s cubic-bezier(0.16, 1, 0.3, 1);
1916
- }
1917
- .ds-dialog__content::before {
1918
- content: "";
1919
- position: absolute;
1920
- inset: 0;
1921
- border-radius: inherit;
1922
- padding: var(--space-px);
1923
- background:
1924
- linear-gradient(
1925
- 180deg,
1926
- var(--rim-light-hover-top) 0%,
1927
- var(--rim-light-top) 100%);
1928
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1929
- mask-composite: exclude;
1930
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1931
- -webkit-mask-composite: xor;
1932
- pointer-events: none;
1933
- }
1934
- .ds-dialog__header {
1935
- display: flex;
1936
- flex-direction: column;
1937
- gap: var(--space-2);
1938
- margin-bottom: var(--space-6);
1939
- }
1940
- .ds-dialog__header .ds-dialog__title {
1941
- margin: 0;
1942
- }
1943
- .ds-dialog__header .ds-dialog__description {
1944
- margin: 0;
1945
- }
1946
- .ds-dialog__title {
1947
- margin: 0 0 var(--space-2);
1948
- font-family: var(--font-family);
1949
- font-size: var(--font-size-xl);
1950
- font-weight: var(--font-weight-semibold);
1951
- color: var(--text-primary);
1952
- line-height: var(--line-height-tight);
1953
- }
1954
- .ds-dialog__description {
1955
- margin: 0 0 var(--space-6);
1956
- font-family: var(--font-family);
1957
- font-size: var(--font-size-base);
1958
- color: var(--text-secondary);
1959
- line-height: var(--line-height-normal);
1960
- }
1961
- .ds-dialog__close {
1962
- position: absolute;
1963
- top: var(--space-4);
1964
- right: var(--space-4);
1965
- width: 2rem;
1966
- height: 2rem;
1967
- display: flex;
1968
- align-items: center;
1969
- justify-content: center;
1970
- border: none;
1971
- cursor: pointer;
1972
- color: var(--text-secondary);
1973
- background: var(--glass-base);
1974
- backdrop-filter: blur(12px);
1975
- -webkit-backdrop-filter: blur(12px);
1976
- border-radius: var(--radius-badge);
1977
- transition: background var(--transition-glass), color var(--transition-glass);
1978
- }
1979
- .ds-dialog__close:hover {
1980
- background: var(--glass-base-hover);
1981
- color: var(--text-primary);
1982
- }
1983
- .ds-dialog__close:focus-visible {
1984
- box-shadow: var(--focus-ring);
1985
- outline: none;
1986
- }
1987
- .ds-dialog__footer {
1988
- display: flex;
1989
- justify-content: flex-end;
1990
- gap: var(--space-3);
1991
- margin-top: var(--space-6);
1992
- }
1993
- @keyframes ds-backdrop-fade-in {
1994
- from {
1995
- opacity: 0;
1996
- }
1997
- to {
1998
- opacity: 1;
1999
- }
2000
- }
2001
- @keyframes ds-dialog-scale-in {
2002
- from {
2003
- opacity: 0;
2004
- transform: translate(-50%, -48%) scale(0.96);
2005
- }
2006
- to {
2007
- opacity: 1;
2008
- transform: translate(-50%, -50%) scale(1);
2009
- }
2010
- }
2011
- .ds-dialog__backdrop[data-exiting] {
2012
- animation: ds-backdrop-fade-out 0.2s ease-in forwards;
2013
- }
2014
- .ds-dialog__content[data-exiting] {
2015
- animation: ds-dialog-scale-out 0.2s ease-in forwards;
2016
- }
2017
- @keyframes ds-backdrop-fade-out {
2018
- from {
2019
- opacity: 1;
2020
- }
2021
- to {
2022
- opacity: 0;
2023
- }
2024
- }
2025
- @keyframes ds-dialog-scale-out {
2026
- from {
2027
- opacity: 1;
2028
- transform: translate(-50%, -50%) scale(1);
2029
- }
2030
- to {
2031
- opacity: 0;
2032
- transform: translate(-50%, -48%) scale(0.96);
2033
- }
2034
- }
2035
- .ds-dialog__content--sm {
2036
- max-width: 360px;
2037
- padding: var(--space-6);
2038
- }
2039
- .ds-dialog__content--lg {
2040
- max-width: 640px;
2041
- }
2042
- .ds-dialog__content--xl {
2043
- max-width: 800px;
2044
- }
2045
- .ds-dialog__content--fullscreen {
2046
- max-width: calc(100vw - var(--float-distance) * 2);
2047
- max-height: calc(100vh - var(--float-distance) * 2);
2048
- width: calc(100vw - var(--float-distance) * 2);
2049
- height: calc(100vh - var(--float-distance) * 2);
2050
- }
2051
- @media (prefers-contrast: more) {
2052
- .ds-dialog__backdrop {
2053
- background: var(--overlay-backdrop-heavy);
2054
- backdrop-filter: none;
2055
- }
2056
- .ds-dialog__content {
2057
- background: var(--hc-surface);
2058
- border: 1px solid var(--hc-border);
2059
- }
2060
- .ds-dialog__content::before {
2061
- display: none;
2062
- }
2063
- }
2064
- @media (prefers-reduced-motion: reduce) {
2065
- .ds-dialog__backdrop,
2066
- .ds-dialog__content {
2067
- animation: none;
2068
- }
2069
- }
2070
- @supports not (backdrop-filter: blur(1px)) {
2071
- .ds-dialog__backdrop {
2072
- background: var(--fallback-backdrop);
2073
- }
2074
- .ds-dialog__content {
2075
- background: var(--fallback-surface);
2076
- }
2077
- }
2078
-
2079
- /* src/components/Tooltip/Tooltip.css */
2080
- .ds-tooltip__content {
2081
- position: relative;
2082
- font-family: var(--font-family);
2083
- font-size: var(--font-size-sm);
2084
- color: var(--text-primary);
2085
- padding: var(--space-2) var(--space-3);
2086
- border-radius: var(--radius-badge);
2087
- max-width: 280px;
2088
- z-index: var(--z-tooltip);
2089
- background: var(--glass-base-hover);
2090
- backdrop-filter: blur(24px) saturate(160%) brightness(90%);
2091
- -webkit-backdrop-filter: blur(24px) saturate(160%) brightness(90%);
2092
- box-shadow: var(--glass-shadow-outer), var(--glass-shadow-inner);
2093
- animation: ds-tooltip-fade-in 0.15s ease-out;
2094
- }
2095
- .ds-tooltip__content::before {
2096
- content: "";
2097
- position: absolute;
2098
- inset: 0;
2099
- border-radius: inherit;
2100
- padding: var(--space-px);
2101
- background:
2102
- linear-gradient(
2103
- 180deg,
2104
- var(--rim-light-hover-top) 0%,
2105
- var(--rim-light-top) 100%);
2106
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2107
- mask-composite: exclude;
2108
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2109
- -webkit-mask-composite: xor;
2110
- pointer-events: none;
2111
- }
2112
- .ds-tooltip__arrow {
2113
- width: 12px;
2114
- height: 6px;
2115
- fill: var(--glass-base-hover);
2116
- filter: drop-shadow(var(--shadow-md));
2117
- }
2118
- @keyframes ds-tooltip-fade-in {
2119
- from {
2120
- opacity: 0;
2121
- transform: scale(0.96);
2122
- }
2123
- to {
2124
- opacity: 1;
2125
- transform: scale(1);
2126
- }
2127
- }
2128
- @media (prefers-contrast: more) {
2129
- .ds-tooltip__content {
2130
- background: var(--hc-surface);
2131
- border: 1px solid var(--hc-border-strong);
2132
- backdrop-filter: none;
2133
- }
2134
- .ds-tooltip__content::before {
2135
- display: none;
2136
- }
2137
- }
2138
- @media (prefers-reduced-motion: reduce) {
2139
- .ds-tooltip__content {
2140
- animation: none;
2141
- }
2142
- }
2143
- @supports not (backdrop-filter: blur(1px)) {
2144
- .ds-tooltip__content {
2145
- background: var(--fallback-surface);
2146
- }
2147
- }
2148
-
2149
- /* src/components/Sidebar/Sidebar.css */
2150
- .ds-sidebar {
2151
- position: fixed;
2152
- top: var(--float-distance);
2153
- bottom: var(--float-distance);
2154
- width: var(--sidebar-width, 280px);
2155
- z-index: var(--z-glass-panel);
1900
+ top: var(--float-distance);
1901
+ bottom: var(--float-distance);
1902
+ width: var(--sidebar-width, 280px);
1903
+ z-index: var(--z-glass-panel);
2156
1904
  background: var(--glass-base);
2157
1905
  backdrop-filter: var(--glass-backdrop);
2158
1906
  -webkit-backdrop-filter: var(--glass-backdrop);
@@ -2331,2629 +2079,439 @@ a:hover {
2331
2079
  }
2332
2080
  }
2333
2081
 
2334
- /* src/components/FloatingTabBar/FloatingTabBar.css */
2335
- .ds-floating-tab-bar {
2336
- position: fixed;
2337
- left: 50%;
2338
- transform: translateX(-50%);
2082
+ /* src/components/Shell/Shell.css */
2083
+ .ds-shell {
2084
+ position: relative;
2085
+ width: 100%;
2086
+ min-height: 100%;
2339
2087
  display: flex;
2340
- align-items: center;
2341
- gap: var(--space-1);
2342
- padding: var(--space-2);
2343
- z-index: var(--z-ornament);
2344
- background: var(--glass-base-hover);
2345
- backdrop-filter: var(--glass-backdrop);
2346
- -webkit-backdrop-filter: var(--glass-backdrop);
2347
- border-radius: var(--radius-card);
2348
- box-shadow: var(--glass-shadow-elevated-combined);
2349
2088
  }
2350
- .ds-floating-tab-bar::before {
2351
- content: "";
2352
- position: absolute;
2353
- inset: 0;
2354
- border-radius: inherit;
2355
- padding: var(--space-px);
2356
- background:
2357
- linear-gradient(
2358
- 180deg,
2359
- var(--rim-light-hover-top) 0%,
2360
- var(--rim-light-top) 100%);
2361
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2362
- mask-composite: exclude;
2363
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2364
- -webkit-mask-composite: xor;
2365
- pointer-events: none;
2089
+ .ds-shell__content {
2090
+ flex: 1;
2091
+ width: 100%;
2092
+ padding: var(--space-6);
2093
+ padding-top: calc(var(--float-distance) + var(--space-4));
2094
+ padding-bottom: calc(var(--float-distance) + var(--space-4));
2095
+ box-sizing: border-box;
2366
2096
  }
2367
- .ds-floating-tab-bar--top {
2368
- top: var(--float-distance);
2097
+ .ds-shell--left .ds-shell__content {
2098
+ padding-left: calc(var(--sidebar-width, 280px) + var(--float-distance) * 2);
2099
+ padding-right: var(--float-distance);
2369
2100
  }
2370
- .ds-floating-tab-bar--bottom {
2371
- bottom: var(--float-distance);
2101
+ .ds-shell--right .ds-shell__content {
2102
+ padding-right: calc(var(--sidebar-width, 280px) + var(--float-distance) * 2);
2103
+ padding-left: var(--float-distance);
2372
2104
  }
2373
- .ds-tab-item {
2374
- position: relative;
2375
- display: flex;
2105
+ .ds-shell--bottom {
2376
2106
  flex-direction: column;
2107
+ }
2108
+ .ds-shell--bottom .ds-shell__content {
2109
+ padding-left: var(--float-distance);
2110
+ padding-right: var(--float-distance);
2111
+ padding-bottom: calc(80px + var(--float-distance) * 2);
2112
+ }
2113
+ @media (max-width: 768px) {
2114
+ .ds-shell--left .ds-shell__content,
2115
+ .ds-shell--right .ds-shell__content {
2116
+ padding-left: var(--float-distance);
2117
+ padding-right: var(--float-distance);
2118
+ }
2119
+ .ds-shell__content {
2120
+ padding-bottom: calc(var(--float-distance) + env(safe-area-inset-bottom, 0px));
2121
+ }
2122
+ }
2123
+
2124
+ /* src/components/LocaleDropdown/LocaleDropdown.css */
2125
+ .ds-locale-dropdown {
2126
+ position: relative;
2127
+ display: inline-flex;
2128
+ flex-shrink: 0;
2129
+ }
2130
+ .ds-locale-dropdown__wrapper {
2131
+ position: relative;
2132
+ }
2133
+ .ds-locale-dropdown__trigger {
2134
+ display: inline-flex;
2377
2135
  align-items: center;
2378
- justify-content: center;
2379
- gap: var(--space-1);
2380
- padding: var(--space-2) var(--space-4);
2381
- min-width: 64px;
2136
+ gap: var(--space-1-5);
2137
+ padding: var(--space-2) var(--space-2-5);
2382
2138
  border: none;
2383
2139
  border-radius: var(--radius-button);
2384
2140
  background: transparent;
2385
- color: var(--text-tertiary);
2141
+ color: var(--text-secondary);
2386
2142
  font-family: var(--font-family);
2387
2143
  font-size: var(--font-size-xs);
2388
2144
  font-weight: var(--font-weight-medium);
2145
+ line-height: 1;
2389
2146
  cursor: pointer;
2390
- transition:
2391
- background var(--transition-glass),
2392
- color var(--transition-glass),
2393
- box-shadow var(--transition-glass),
2394
- transform var(--transition-glass);
2395
- }
2396
- .ds-tab-item::before {
2397
- content: "";
2398
- position: absolute;
2399
- inset: 0;
2400
- border-radius: inherit;
2401
- padding: var(--space-px);
2402
- background:
2403
- linear-gradient(
2404
- 180deg,
2405
- var(--rim-light-top) 0%,
2406
- var(--rim-light-bottom) 100%);
2407
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2408
- mask-composite: exclude;
2409
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2410
- -webkit-mask-composite: xor;
2411
- pointer-events: none;
2412
- opacity: 0;
2413
- transition: opacity var(--transition-glass);
2414
- }
2415
- .ds-tab-item:hover {
2416
- background: var(--glass-base);
2417
- color: var(--text-secondary);
2418
- }
2419
- .ds-tab-item:hover::before {
2420
- opacity: 1;
2421
- }
2422
- .ds-tab-item:focus-visible {
2423
- outline: none;
2424
- box-shadow: var(--focus-ring);
2425
- }
2426
- .ds-tab-item--active {
2427
- background: rgba(var(--brand-pink-rgb), 0.2);
2428
- color: var(--text-primary);
2429
- box-shadow: var(--glass-shadow-inner), 0 0 24px rgba(var(--brand-pink-rgb), 0.15);
2430
- }
2431
- .ds-tab-item--active::before {
2432
- opacity: 1;
2433
- background:
2434
- linear-gradient(
2435
- 180deg,
2436
- rgba(var(--brand-pink-rgb), 0.4) 0%,
2437
- rgba(var(--brand-pink-rgb), 0.1) 100%);
2438
- }
2439
- .ds-tab-item--active:hover {
2440
- background: rgba(var(--brand-pink-rgb), 0.25);
2441
- }
2442
- .ds-tab-item__icon {
2443
- display: flex;
2444
- align-items: center;
2445
- justify-content: center;
2446
- width: 1.5rem;
2447
- height: 1.5rem;
2448
- }
2449
- .ds-tab-item__icon svg {
2450
- width: 100%;
2451
- height: 100%;
2452
- }
2453
- .ds-tab-item__label {
2454
- white-space: nowrap;
2455
- }
2456
- .ds-floating-tab-bar--compact .ds-tab-item {
2457
- padding: var(--space-3);
2458
- min-width: auto;
2459
- }
2460
- .ds-floating-tab-bar--compact .ds-tab-item__label {
2461
- display: none;
2462
- }
2463
- @media (prefers-contrast: more) {
2464
- .ds-floating-tab-bar {
2465
- background: var(--hc-surface);
2466
- border: 1px solid var(--hc-border);
2467
- }
2468
- .ds-floating-tab-bar::before {
2469
- display: none;
2470
- }
2471
- .ds-tab-item--active {
2472
- background: rgba(var(--brand-pink-rgb), 0.4);
2473
- border: 1px solid rgba(var(--brand-pink-rgb), 0.6);
2474
- }
2475
- }
2476
- @supports not (backdrop-filter: blur(1px)) {
2477
- .ds-floating-tab-bar {
2478
- background: var(--fallback-surface);
2479
- }
2480
- }
2481
-
2482
- /* src/components/StatusBadge/StatusBadge.css */
2483
- .ds-status-badge {
2484
- display: inline-flex;
2485
- align-items: center;
2486
- gap: var(--space-2);
2487
- font-family: var(--font-family);
2488
- font-weight: var(--font-weight-medium);
2489
- color: var(--text-primary);
2490
- border-radius: var(--radius-badge);
2491
- white-space: nowrap;
2492
- background: var(--glass-base);
2493
- backdrop-filter: blur(12px) saturate(140%);
2494
- -webkit-backdrop-filter: blur(12px) saturate(140%);
2495
- }
2496
- .ds-status-badge--sm {
2497
- font-size: var(--font-size-xs);
2498
- padding: var(--space-1) var(--space-2);
2499
- }
2500
- .ds-status-badge--md {
2501
- font-size: var(--font-size-sm);
2502
- padding: var(--space-1) var(--space-3);
2503
- }
2504
- .ds-status-badge--default {
2505
- box-shadow: var(--shadow-inset-border-subtle), var(--shadow-sm);
2506
- }
2507
- .ds-status-badge--success {
2508
- background: rgba(var(--status-success-rgb), 0.08);
2509
- box-shadow:
2510
- inset 0 0 0 1px rgba(var(--status-success-rgb), 0.4),
2511
- var(--shadow-sm),
2512
- 0 0 12px rgba(var(--status-success-rgb), 0.1);
2513
- color: var(--status-success);
2514
- }
2515
- .ds-status-badge--warning {
2516
- background: rgba(var(--status-warning-rgb), 0.08);
2517
- box-shadow:
2518
- inset 0 0 0 1px rgba(var(--status-warning-rgb), 0.4),
2519
- var(--shadow-sm),
2520
- 0 0 12px rgba(var(--status-warning-rgb), 0.1);
2521
- color: var(--status-warning);
2522
- }
2523
- .ds-status-badge--error {
2524
- background: rgba(var(--status-error-rgb), 0.08);
2525
- box-shadow:
2526
- inset 0 0 0 1px rgba(var(--status-error-rgb), 0.4),
2527
- var(--shadow-sm),
2528
- 0 0 12px rgba(var(--status-error-rgb), 0.1);
2529
- color: var(--status-error);
2530
- }
2531
- .ds-status-badge--info {
2532
- background: rgba(var(--status-info-rgb), 0.08);
2533
- box-shadow:
2534
- inset 0 0 0 1px rgba(var(--status-info-rgb), 0.4),
2535
- var(--shadow-sm),
2536
- 0 0 12px rgba(var(--status-info-rgb), 0.1);
2537
- color: var(--status-info);
2538
- }
2539
- .ds-status-badge__dot {
2540
- width: 6px;
2541
- height: 6px;
2542
- border-radius: 50%;
2543
- flex-shrink: 0;
2544
- }
2545
- .ds-status-badge--default .ds-status-badge__dot {
2546
- background: var(--text-secondary);
2547
- box-shadow: 0 0 6px var(--glass-highlight-strong);
2548
- }
2549
- .ds-status-badge--success .ds-status-badge__dot {
2550
- background: var(--status-success);
2551
- box-shadow: 0 0 8px rgba(var(--status-success-rgb), 0.5);
2552
- }
2553
- .ds-status-badge--warning .ds-status-badge__dot {
2554
- background: var(--status-warning);
2555
- box-shadow: 0 0 8px rgba(var(--status-warning-rgb), 0.5);
2556
- }
2557
- .ds-status-badge--error .ds-status-badge__dot {
2558
- background: var(--status-error);
2559
- box-shadow: 0 0 8px rgba(var(--status-error-rgb), 0.5);
2560
- }
2561
- .ds-status-badge--info .ds-status-badge__dot {
2562
- background: var(--status-info);
2563
- box-shadow: 0 0 8px rgba(var(--status-info-rgb), 0.5);
2564
- }
2565
- .ds-status-badge--dot:empty {
2566
- padding: var(--space-1);
2567
- }
2568
- .ds-status-badge--dot:empty .ds-status-badge__dot {
2569
- width: 8px;
2570
- height: 8px;
2571
- }
2572
- @media (prefers-contrast: more) {
2573
- .ds-status-badge {
2574
- border: 1px solid currentColor;
2575
- }
2576
- .ds-status-badge--default {
2577
- border-color: var(--hc-border-strong);
2578
- }
2579
- }
2580
- @supports not (backdrop-filter: blur(1px)) {
2581
- .ds-status-badge {
2582
- background: var(--fallback-surface);
2583
- }
2584
- .ds-status-badge--success {
2585
- background: var(--fallback-surface);
2586
- }
2587
- .ds-status-badge--warning {
2588
- background: var(--fallback-surface);
2589
- }
2590
- .ds-status-badge--error {
2591
- background: var(--fallback-surface);
2592
- }
2593
- .ds-status-badge--info {
2594
- background: var(--fallback-surface);
2595
- }
2596
- }
2597
-
2598
- /* src/components/Shell/Shell.css */
2599
- .ds-shell {
2600
- position: relative;
2601
- width: 100%;
2602
- min-height: 100%;
2603
- display: flex;
2604
- }
2605
- .ds-shell__content {
2606
- flex: 1;
2607
- width: 100%;
2608
- padding: var(--space-6);
2609
- padding-top: calc(var(--float-distance) + var(--space-4));
2610
- padding-bottom: calc(var(--float-distance) + var(--space-4));
2611
- box-sizing: border-box;
2612
- }
2613
- .ds-shell--left .ds-shell__content {
2614
- padding-left: calc(var(--sidebar-width, 280px) + var(--float-distance) * 2);
2615
- padding-right: var(--float-distance);
2616
- }
2617
- .ds-shell--right .ds-shell__content {
2618
- padding-right: calc(var(--sidebar-width, 280px) + var(--float-distance) * 2);
2619
- padding-left: var(--float-distance);
2620
- }
2621
- .ds-shell--bottom {
2622
- flex-direction: column;
2623
- }
2624
- .ds-shell--bottom .ds-shell__content {
2625
- padding-left: var(--float-distance);
2626
- padding-right: var(--float-distance);
2627
- padding-bottom: calc(80px + var(--float-distance) * 2);
2628
- }
2629
- @media (max-width: 768px) {
2630
- .ds-shell--left .ds-shell__content,
2631
- .ds-shell--right .ds-shell__content {
2632
- padding-left: var(--float-distance);
2633
- padding-right: var(--float-distance);
2634
- }
2635
- .ds-shell__content {
2636
- padding-bottom: calc(var(--float-distance) + env(safe-area-inset-bottom, 0px));
2637
- }
2638
- }
2639
-
2640
- /* src/components/AppearancePanel/AppearancePanel.css */
2641
- @media (max-width: 768px) {
2642
- .ds-appearance-panel {
2643
- position: fixed;
2644
- bottom: 0;
2645
- left: 0;
2646
- right: 0;
2647
- max-width: 100%;
2648
- border-radius: var(--radius-panel) var(--radius-panel) 0 0;
2649
- z-index: var(--z-modal);
2650
- animation: ds-panel-slide-up 0.3s cubic-bezier(0.16, 1, 0.3, 1);
2651
- max-height: 60vh;
2652
- overflow-y: auto;
2653
- padding-bottom: env(safe-area-inset-bottom, 24px);
2654
- }
2655
- .ds-appearance-panel::before {
2656
- border-radius: var(--radius-panel) var(--radius-panel) 0 0;
2657
- }
2658
- }
2659
- @keyframes ds-panel-slide-up {
2660
- from {
2661
- transform: translateY(100%);
2662
- }
2663
- to {
2664
- transform: translateY(0);
2665
- }
2666
- }
2667
- .ds-appearance-panel {
2668
- position: relative;
2669
- padding: var(--space-6);
2670
- border-radius: var(--radius-card);
2671
- max-width: 400px;
2672
- max-height: 85vh;
2673
- overflow-y: auto;
2674
- background: var(--glass-base);
2675
- backdrop-filter: var(--glass-backdrop);
2676
- -webkit-backdrop-filter: var(--glass-backdrop);
2677
- box-shadow: var(--glass-shadow-combined);
2678
- }
2679
- .ds-appearance-panel::before {
2680
- content: "";
2681
- position: absolute;
2682
- inset: 0;
2683
- border-radius: inherit;
2684
- padding: var(--space-px);
2685
- background:
2686
- linear-gradient(
2687
- 180deg,
2688
- var(--rim-light-top) 0%,
2689
- var(--rim-light-bottom) 100%);
2690
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2691
- mask-composite: exclude;
2692
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2693
- -webkit-mask-composite: xor;
2694
- pointer-events: none;
2695
- }
2696
- .ds-appearance-panel__title {
2697
- font-family: var(--font-family);
2698
- font-size: var(--font-size-lg);
2699
- font-weight: var(--font-weight-semibold);
2700
- color: var(--text-primary);
2701
- margin: 0 0 var(--space-6);
2702
- }
2703
- .ds-appearance-panel__section {
2704
- border: none;
2705
- padding: 0;
2706
- margin: 0 0 var(--space-6);
2707
- }
2708
- .ds-appearance-panel__section:last-of-type {
2709
- margin-bottom: var(--space-4);
2710
- }
2711
- .ds-appearance-panel__legend {
2712
- font-family: var(--font-family);
2713
- font-size: var(--font-size-xs);
2714
- font-weight: var(--font-weight-semibold);
2715
- color: var(--text-tertiary);
2716
- text-transform: uppercase;
2717
- letter-spacing: var(--letter-spacing-wide);
2718
- margin-bottom: var(--space-3);
2719
- }
2720
- .ds-appearance-panel__options {
2721
- display: flex;
2722
- flex-direction: column;
2723
- gap: var(--space-2);
2724
- }
2725
- .ds-appearance-panel__options--row {
2726
- flex-direction: row;
2727
- gap: var(--space-3);
2728
- }
2729
- .ds-appearance-panel__options--row .ds-appearance-panel__option {
2730
- flex: 1;
2731
- }
2732
- .ds-appearance-panel__option {
2733
- display: flex;
2734
- align-items: center;
2735
- gap: var(--space-3);
2736
- padding: var(--space-3) var(--space-4);
2737
- border-radius: var(--radius-button);
2738
- cursor: pointer;
2739
- transition: background var(--transition-glass);
2740
- background: transparent;
2741
- }
2742
- .ds-appearance-panel__option:hover {
2743
- background: var(--glass-base-hover);
2744
- }
2745
- .ds-appearance-panel__option--active {
2746
- background: rgba(var(--accent-rgb), 0.15);
2747
- }
2748
- .ds-appearance-panel__option--active:hover {
2749
- background: rgba(var(--accent-rgb), 0.2);
2750
- }
2751
- .ds-appearance-panel__option--toggle {
2752
- flex-direction: column;
2753
- align-items: flex-start;
2754
- gap: var(--space-1);
2755
- padding: var(--space-3);
2756
- text-align: center;
2757
- }
2758
- .ds-appearance-panel__option--toggle .ds-appearance-panel__option-content {
2759
- width: 100%;
2760
- text-align: center;
2761
- }
2762
- .ds-appearance-panel__radio {
2763
- appearance: none;
2764
- width: 16px;
2765
- height: 16px;
2766
- border-radius: 50%;
2767
- border: 2px solid var(--text-tertiary);
2768
- transition: all var(--transition-glass);
2769
- flex-shrink: 0;
2770
- }
2771
- .ds-appearance-panel__option--toggle .ds-appearance-panel__radio {
2772
- position: absolute;
2773
- opacity: 0;
2774
- pointer-events: none;
2775
- }
2776
- .ds-appearance-panel__option--active .ds-appearance-panel__radio {
2777
- border-color: rgba(var(--accent-rgb), 1);
2778
- background: rgba(var(--accent-rgb), 1);
2779
- box-shadow: 0 0 8px rgba(var(--accent-rgb), 0.4);
2780
- }
2781
- .ds-appearance-panel__option-content {
2782
- display: flex;
2783
- flex-direction: column;
2784
- gap: var(--space-0-5);
2785
- }
2786
- .ds-appearance-panel__option-label {
2787
- font-family: var(--font-family);
2788
- font-size: var(--font-size-base);
2789
- color: var(--text-primary);
2790
- }
2791
- .ds-appearance-panel__option-description {
2792
- font-family: var(--font-family);
2793
- font-size: var(--font-size-xs);
2794
- color: var(--text-tertiary);
2795
- }
2796
- .ds-appearance-panel__color-picker {
2797
- margin-top: var(--space-4);
2798
- padding: var(--space-4);
2799
- border-radius: var(--radius-button);
2800
- background: var(--glass-base);
2801
- border: 1px solid rgba(var(--accent-rgb), 0.2);
2802
- }
2803
- .ds-appearance-panel__color-label {
2804
- display: block;
2805
- font-family: var(--font-family);
2806
- font-size: var(--font-size-xs);
2807
- font-weight: var(--font-weight-medium);
2808
- color: var(--text-secondary);
2809
- margin-bottom: var(--space-2);
2810
- }
2811
- .ds-appearance-panel__color-input-wrapper {
2812
- display: flex;
2813
- align-items: center;
2814
- gap: var(--space-3);
2815
- }
2816
- .ds-appearance-panel__color-input {
2817
- width: 48px;
2818
- height: 48px;
2819
- padding: 0;
2820
- border: none;
2821
- border-radius: var(--radius-badge);
2822
- cursor: pointer;
2823
- background: transparent;
2824
- overflow: hidden;
2825
- }
2826
- .ds-appearance-panel__color-input::-webkit-color-swatch-wrapper {
2827
- padding: 0;
2828
- }
2829
- .ds-appearance-panel__color-input::-webkit-color-swatch {
2830
- border: 2px solid var(--rim-light-top);
2831
- border-radius: var(--radius-badge);
2832
- box-shadow: var(--shadow-md);
2833
- }
2834
- .ds-appearance-panel__color-input::-moz-color-swatch {
2835
- border: 2px solid var(--rim-light-top);
2836
- border-radius: var(--radius-badge);
2837
- box-shadow: var(--shadow-md);
2838
- }
2839
- .ds-appearance-panel__color-input:focus-visible {
2840
- outline: none;
2841
- box-shadow: var(--focus-ring);
2842
- border-radius: var(--radius-badge);
2843
- }
2844
- .ds-appearance-panel__color-value {
2845
- font-family: var(--font-family-mono);
2846
- font-size: var(--font-size-sm);
2847
- color: var(--text-secondary);
2848
- padding: var(--space-2) var(--space-3);
2849
- background: var(--glass-base);
2850
- border-radius: var(--radius-badge);
2851
- border: 1px solid var(--rim-light-bottom);
2852
- }
2853
- .ds-appearance-panel__reset {
2854
- display: block;
2855
- width: 100%;
2856
- padding: var(--space-3) var(--space-4);
2857
- border: none;
2858
- border-radius: var(--radius-button);
2859
- background: var(--btn-secondary-bg);
2860
- color: var(--text-secondary);
2861
- font-family: var(--font-family);
2862
- font-size: var(--font-size-sm);
2863
- font-weight: var(--font-weight-medium);
2864
- cursor: pointer;
2865
- transition: all var(--transition-glass);
2866
- }
2867
- .ds-appearance-panel__reset:hover {
2868
- background: var(--btn-secondary-bg-hover);
2869
- color: var(--text-primary);
2870
- }
2871
- .ds-appearance-panel__reset:focus-visible {
2872
- box-shadow: var(--focus-ring);
2873
- outline: none;
2874
- }
2875
- @media (prefers-contrast: more) {
2876
- .ds-appearance-panel {
2877
- border: 1px solid var(--hc-border);
2878
- }
2879
- .ds-appearance-panel__color-picker {
2880
- border: 1px solid var(--hc-border);
2881
- }
2882
- }
2883
-
2884
- /* src/components/LocaleDropdown/LocaleDropdown.css */
2885
- .ds-locale-dropdown {
2886
- position: relative;
2887
- display: inline-flex;
2888
- flex-shrink: 0;
2889
- }
2890
- .ds-locale-dropdown__wrapper {
2891
- position: relative;
2892
- }
2893
- .ds-locale-dropdown__trigger {
2894
- display: inline-flex;
2895
- align-items: center;
2896
- gap: var(--space-1-5);
2897
- padding: var(--space-2) var(--space-2-5);
2898
- border: none;
2899
- border-radius: var(--radius-button);
2900
- background: transparent;
2901
- color: var(--text-secondary);
2902
- font-family: var(--font-family);
2903
- font-size: var(--font-size-xs);
2904
- font-weight: var(--font-weight-medium);
2905
- line-height: 1;
2906
- cursor: pointer;
2907
- white-space: nowrap;
2908
- transition: background var(--transition-fast), color var(--transition-fast);
2909
- }
2910
- .ds-locale-dropdown__trigger:hover {
2911
- background: var(--glass-base-hover);
2912
- color: var(--text-primary);
2913
- }
2914
- .ds-locale-dropdown__trigger:focus-visible {
2915
- outline: none;
2916
- box-shadow: var(--focus-ring);
2917
- }
2918
- .ds-locale-dropdown__trigger-icon {
2919
- display: flex;
2920
- align-items: center;
2921
- color: var(--text-tertiary);
2922
- flex-shrink: 0;
2923
- }
2924
- .ds-locale-dropdown__trigger-flag {
2925
- font-size: var(--font-size-xs);
2926
- line-height: 1;
2927
- display: inline-flex;
2928
- align-items: center;
2929
- height: 16px;
2930
- overflow: hidden;
2931
- }
2932
- .ds-locale-dropdown__trigger-chevron {
2933
- display: inline-flex;
2934
- align-items: center;
2935
- color: var(--text-tertiary);
2936
- flex-shrink: 0;
2937
- transition: transform 0.2s cubic-bezier(0.2, 0.8, 0.2, 1), color var(--transition-fast);
2938
- }
2939
- .ds-locale-dropdown__trigger-chevron[data-state=open] {
2940
- transform: rotate(180deg);
2941
- }
2942
- .ds-locale-dropdown__trigger:hover .ds-locale-dropdown__trigger-chevron {
2943
- color: var(--text-secondary);
2944
- }
2945
- .ds-locale-dropdown__panel {
2946
- position: absolute;
2947
- top: calc(100% + var(--space-2));
2948
- right: 0;
2949
- min-width: 180px;
2950
- padding: var(--space-1-5);
2951
- z-index: var(--z-dropdown);
2952
- transform-origin: top right;
2953
- overflow: hidden;
2954
- background: var(--void-base);
2955
- backdrop-filter: blur(24px) saturate(180%);
2956
- -webkit-backdrop-filter: blur(24px) saturate(180%);
2957
- border: 1px solid var(--rim-light-bottom);
2958
- border-radius: var(--radius-card);
2959
- box-shadow: var(--shadow-xl), 0 0 0 1px var(--rim-light-bottom);
2960
- opacity: 0;
2961
- transform: translateY(-8px) scale(0.95);
2962
- visibility: hidden;
2963
- pointer-events: none;
2964
- transition:
2965
- opacity 0.15s cubic-bezier(0.4, 0, 1, 1),
2966
- transform 0.15s cubic-bezier(0.4, 0, 1, 1),
2967
- visibility 0s 0.15s;
2968
- }
2969
- .ds-locale-dropdown__panel[data-state=open] {
2970
- opacity: 1;
2971
- transform: translateY(0) scale(1);
2972
- visibility: visible;
2973
- pointer-events: auto;
2974
- transition:
2975
- opacity 0.2s cubic-bezier(0.2, 0.8, 0.2, 1),
2976
- transform 0.2s cubic-bezier(0.2, 0.8, 0.2, 1),
2977
- visibility 0s 0s;
2978
- }
2979
- .ds-locale-dropdown--up .ds-locale-dropdown__panel {
2980
- top: auto;
2981
- bottom: calc(100% + var(--space-2));
2982
- transform-origin: bottom right;
2983
- }
2984
- .ds-locale-dropdown--up .ds-locale-dropdown__panel[data-state=closed] {
2985
- transform: translateY(8px) scale(0.95);
2986
- }
2987
- .ds-locale-dropdown--align-left .ds-locale-dropdown__panel {
2988
- right: auto;
2989
- left: 0;
2990
- transform-origin: top left;
2991
- }
2992
- .ds-locale-dropdown--align-center .ds-locale-dropdown__panel {
2993
- right: auto;
2994
- left: 50%;
2995
- transform-origin: top center;
2996
- }
2997
- .ds-locale-dropdown--align-center .ds-locale-dropdown__panel[data-state=closed] {
2998
- transform: translateX(-50%) translateY(-8px) scale(0.95);
2999
- }
3000
- .ds-locale-dropdown--align-center .ds-locale-dropdown__panel[data-state=open] {
3001
- transform: translateX(-50%) translateY(0) scale(1);
3002
- }
3003
- .ds-locale-dropdown--up.ds-locale-dropdown--align-left .ds-locale-dropdown__panel {
3004
- transform-origin: bottom left;
3005
- }
3006
- .ds-locale-dropdown--up.ds-locale-dropdown--align-center .ds-locale-dropdown__panel {
3007
- transform-origin: bottom center;
3008
- }
3009
- .ds-locale-dropdown--up.ds-locale-dropdown--align-center .ds-locale-dropdown__panel[data-state=closed] {
3010
- transform: translateX(-50%) translateY(8px) scale(0.95);
3011
- }
3012
- .ds-locale-dropdown__panel::before {
3013
- content: "";
3014
- position: absolute;
3015
- top: 0;
3016
- left: 0;
3017
- right: 0;
3018
- height: 1px;
3019
- border-radius: var(--radius-card) var(--radius-card) 0 0;
3020
- background:
3021
- linear-gradient(
3022
- 90deg,
3023
- transparent 0%,
3024
- var(--rim-light-top) 30%,
3025
- var(--rim-light-hover-top) 50%,
3026
- var(--rim-light-top) 70%,
3027
- transparent 100%);
3028
- opacity: 0.6;
3029
- pointer-events: none;
3030
- }
3031
- .ds-locale-dropdown__option {
3032
- display: flex;
3033
- align-items: center;
3034
- justify-content: space-between;
3035
- width: 100%;
3036
- padding: var(--space-2) var(--space-3);
3037
- border: none;
3038
- border-radius: var(--radius-button);
3039
- background: transparent;
3040
- color: var(--text-secondary);
3041
- font-family: var(--font-family);
3042
- font-size: var(--font-size-sm);
3043
- font-weight: var(--font-weight-regular);
3044
- cursor: pointer;
3045
- text-decoration: none;
3046
- text-align: left;
3047
- white-space: nowrap;
3048
- transition: background var(--transition-fast), color var(--transition-fast);
3049
- }
3050
- .ds-locale-dropdown__option:hover,
3051
- .ds-locale-dropdown__option--focused {
3052
- background: var(--glass-base-hover);
3053
- color: var(--text-primary);
3054
- }
3055
- .ds-locale-dropdown__option:focus-visible {
3056
- outline: none;
3057
- box-shadow: var(--focus-ring);
3058
- }
3059
- .ds-locale-dropdown__option--active {
3060
- background: rgba(var(--brand-pink-rgb), 0.08);
3061
- color: var(--text-primary);
3062
- font-weight: var(--font-weight-medium);
3063
- }
3064
- .ds-locale-dropdown__option--active:hover,
3065
- .ds-locale-dropdown__option--active.ds-locale-dropdown__option--focused {
3066
- background: rgba(var(--brand-pink-rgb), 0.14);
3067
- }
3068
- .ds-locale-dropdown__option-content {
3069
- display: flex;
3070
- align-items: center;
3071
- gap: var(--space-2);
3072
- }
3073
- .ds-locale-dropdown__option-flag {
3074
- font-size: var(--font-size-sm);
3075
- line-height: 1;
3076
- flex-shrink: 0;
3077
- }
3078
- .ds-locale-dropdown__option-label {
3079
- white-space: nowrap;
3080
- }
3081
- .ds-locale-dropdown__option-check {
3082
- display: flex;
3083
- align-items: center;
3084
- color: rgba(var(--brand-pink-rgb), 1);
3085
- flex-shrink: 0;
3086
- margin-left: var(--space-3);
3087
- }
3088
- @media (max-width: 1399px) {
3089
- .ds-locale-dropdown__trigger {
3090
- padding: var(--space-1-5) var(--space-2);
3091
- gap: var(--space-1);
3092
- }
3093
- .ds-locale-dropdown__trigger-flag {
3094
- display: none;
3095
- }
3096
- .ds-locale-dropdown__trigger-chevron {
3097
- display: none;
3098
- }
3099
- }
3100
- :root[data-theme=light] .ds-locale-dropdown__panel,
3101
- :root[data-theme=light-contrast] .ds-locale-dropdown__panel {
3102
- box-shadow: var(--shadow-sm), 0 0 0 1px var(--rim-light-bottom);
3103
- }
3104
- @media (prefers-reduced-motion: reduce) {
3105
- .ds-locale-dropdown__trigger {
3106
- transition: none;
3107
- }
3108
- .ds-locale-dropdown__trigger-chevron {
3109
- transition: none;
3110
- }
3111
- .ds-locale-dropdown__panel {
3112
- transition: none;
3113
- }
3114
- .ds-locale-dropdown__option {
3115
- transition: none;
3116
- }
3117
- }
3118
- @media (prefers-contrast: more) {
3119
- .ds-locale-dropdown__trigger {
3120
- outline: 1px solid var(--hc-border);
3121
- outline-offset: -1px;
3122
- }
3123
- .ds-locale-dropdown__panel {
3124
- border: 1px solid var(--hc-border);
3125
- background: var(--hc-surface);
3126
- }
3127
- .ds-locale-dropdown__option--active {
3128
- background: rgba(var(--brand-pink-rgb), 0.3);
3129
- border: 1px solid rgba(var(--brand-pink-rgb), 0.5);
3130
- }
3131
- }
3132
- @supports not (backdrop-filter: blur(1px)) {
3133
- .ds-locale-dropdown__panel {
3134
- background: var(--fallback-surface);
3135
- }
3136
- }
3137
-
3138
- /* src/components/Login/Login.css */
3139
- .ds-login {
3140
- position: relative;
3141
- display: flex;
3142
- flex-direction: column;
3143
- align-items: center;
3144
- justify-content: center;
3145
- width: 100%;
3146
- padding: var(--space-6);
3147
- }
3148
- .ds-login__accent {
3149
- position: absolute;
3150
- border-radius: 50%;
3151
- filter: blur(80px);
3152
- opacity: 0.5;
3153
- pointer-events: none;
3154
- animation: ds-login-float 20s ease-in-out infinite;
3155
- }
3156
- .ds-login__accent--1 {
3157
- width: 400px;
3158
- height: 400px;
3159
- background:
3160
- radial-gradient(
3161
- circle,
3162
- rgba(var(--accent-rgb), 0.4) 0%,
3163
- transparent 70%);
3164
- top: -100px;
3165
- right: -100px;
3166
- animation-delay: 0s;
3167
- }
3168
- .ds-login__accent--2 {
3169
- width: 300px;
3170
- height: 300px;
3171
- background:
3172
- radial-gradient(
3173
- circle,
3174
- rgba(var(--accent2-rgb), 0.3) 0%,
3175
- transparent 70%);
3176
- bottom: -50px;
3177
- left: -50px;
3178
- animation-delay: -10s;
3179
- }
3180
- @keyframes ds-login-float {
3181
- 0%, 100% {
3182
- transform: translate(0, 0) scale(1);
3183
- }
3184
- 25% {
3185
- transform: translate(20px, -30px) scale(1.05);
3186
- }
3187
- 50% {
3188
- transform: translate(-10px, 20px) scale(0.95);
3189
- }
3190
- 75% {
3191
- transform: translate(-30px, -10px) scale(1.02);
3192
- }
3193
- }
3194
- .ds-login__card {
3195
- position: relative;
3196
- width: 100%;
3197
- max-width: 420px;
3198
- padding: var(--space-8);
3199
- border-radius: var(--radius-panel);
3200
- background: var(--glass-base);
3201
- backdrop-filter: var(--glass-backdrop);
3202
- -webkit-backdrop-filter: var(--glass-backdrop);
3203
- box-shadow: var(--glass-shadow-elevated-combined);
3204
- animation: ds-login-card-enter 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
3205
- opacity: 0;
3206
- transform: translateY(20px);
3207
- }
3208
- .ds-login__card::before {
3209
- content: "";
3210
- position: absolute;
3211
- inset: 0;
3212
- border-radius: inherit;
3213
- padding: 1px;
3214
- background:
3215
- linear-gradient(
3216
- 180deg,
3217
- var(--rim-light-hover-top) 0%,
3218
- var(--rim-light-bottom) 100%);
3219
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3220
- mask-composite: exclude;
3221
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3222
- -webkit-mask-composite: xor;
3223
- pointer-events: none;
3224
- }
3225
- @keyframes ds-login-card-enter {
3226
- to {
3227
- opacity: 1;
3228
- transform: translateY(0);
3229
- }
3230
- }
3231
- .ds-login__header {
3232
- text-align: center;
3233
- margin-bottom: var(--space-6);
3234
- }
3235
- .ds-login__logo {
3236
- display: flex;
3237
- justify-content: center;
3238
- margin-bottom: var(--space-4);
3239
- animation: ds-login-fade-in 0.5s ease-out 0.1s forwards;
3240
- opacity: 0;
3241
- }
3242
- .ds-login__logo--default {
3243
- display: flex;
3244
- }
3245
- .ds-login__logo-icon {
3246
- width: 56px;
3247
- height: 56px;
3248
- animation: ds-login-logo-pulse 3s ease-in-out infinite;
3249
- }
3250
- .ds-login__logo-icon svg {
3251
- width: 100%;
3252
- height: 100%;
3253
- filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
3254
- }
3255
- @keyframes ds-login-logo-pulse {
3256
- 0%, 100% {
3257
- transform: scale(1);
3258
- filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
3259
- }
3260
- 50% {
3261
- transform: scale(1.05);
3262
- filter: drop-shadow(0 6px 20px rgba(var(--accent-rgb), 0.5));
3263
- }
3264
- }
3265
- .ds-login__title {
3266
- font-family: var(--font-family);
3267
- font-size: var(--font-size-2xl);
3268
- font-weight: var(--font-weight-bold);
3269
- color: var(--text-primary);
3270
- margin: 0 0 var(--space-2);
3271
- animation: ds-login-fade-in 0.5s ease-out 0.2s forwards;
3272
- opacity: 0;
3273
- }
3274
- .ds-login__tagline {
3275
- font-family: var(--font-family);
3276
- font-size: var(--font-size-2xl);
3277
- font-weight: var(--font-weight-bold);
3278
- color: var(--text-primary);
3279
- margin: 0 0 var(--space-2);
3280
- line-height: var(--line-height-normal);
3281
- animation: ds-login-fade-in 0.5s ease-out 0.3s forwards;
3282
- opacity: 0;
3283
- }
3284
- @keyframes ds-login-fade-in {
3285
- to {
3286
- opacity: 1;
3287
- }
3288
- }
3289
- .ds-login__error {
3290
- display: flex;
3291
- align-items: center;
3292
- gap: var(--space-2);
3293
- padding: var(--space-3) var(--space-4);
3294
- margin-bottom: var(--space-4);
3295
- border-radius: var(--radius-button);
3296
- background: rgba(var(--status-error-rgb), 0.1);
3297
- border: 1px solid rgba(var(--status-error-rgb), 0.3);
3298
- color: var(--status-error);
3299
- font-size: var(--font-size-sm);
3300
- animation: ds-login-error-enter 0.4s ease-out;
3301
- }
3302
- @keyframes ds-login-error-enter {
3303
- 0% {
3304
- opacity: 0;
3305
- transform: translateX(-10px);
3306
- }
3307
- 50% {
3308
- transform: translateX(5px);
3309
- }
3310
- 100% {
3311
- opacity: 1;
3312
- transform: translateX(0);
3313
- }
3314
- }
3315
- .ds-login__social {
3316
- margin-bottom: var(--space-4);
3317
- animation: ds-login-fade-in 0.5s ease-out 0.4s forwards;
3318
- opacity: 0;
3319
- }
3320
- .ds-login__social-btn {
3321
- display: flex;
3322
- align-items: center;
3323
- justify-content: center;
3324
- gap: var(--space-3);
3325
- width: 100%;
3326
- padding: var(--space-3) var(--space-4);
3327
- margin-bottom: var(--space-3);
3328
- border: none;
3329
- border-radius: var(--radius-button);
3330
- background: var(--glass-base);
3331
- color: var(--text-primary);
3332
- font-family: var(--font-family);
3333
- font-size: var(--font-size-base);
3334
- font-weight: var(--font-weight-medium);
3335
- cursor: pointer;
3336
- position: relative;
3337
- transition:
3338
- background var(--transition-glass),
3339
- transform var(--transition-glass),
3340
- box-shadow var(--transition-glass);
3341
- }
3342
- .ds-login__social-btn::before {
3343
- content: "";
3344
- position: absolute;
3345
- inset: 0;
3346
- border-radius: inherit;
3347
- padding: 1px;
3348
- background:
3349
- linear-gradient(
3350
- 180deg,
3351
- var(--rim-light-top) 0%,
3352
- var(--rim-light-bottom) 100%);
3353
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3354
- mask-composite: exclude;
3355
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3356
- -webkit-mask-composite: xor;
3357
- pointer-events: none;
3358
- transition: background var(--transition-glass);
3359
- }
3360
- .ds-login__social-btn:hover:not(:disabled) {
3361
- background: var(--glass-base-hover);
3362
- transform: translateY(-2px);
3363
- box-shadow: var(--shadow-lg);
3364
- }
3365
- .ds-login__social-btn:hover:not(:disabled)::before {
3366
- background:
3367
- linear-gradient(
3368
- 180deg,
3369
- var(--rim-light-hover-top) 0%,
3370
- var(--rim-light-hover-bottom) 100%);
3371
- }
3372
- .ds-login__social-btn:disabled {
3373
- opacity: 0.5;
3374
- cursor: not-allowed;
3375
- }
3376
- .ds-login__divider {
3377
- display: flex;
3378
- align-items: center;
3379
- gap: var(--space-4);
3380
- margin: var(--space-4) 0;
3381
- color: var(--text-tertiary);
3382
- font-size: var(--font-size-sm);
3383
- }
3384
- .ds-login__divider::before,
3385
- .ds-login__divider::after {
3386
- content: "";
3387
- flex: 1;
3388
- height: 1px;
3389
- background:
3390
- linear-gradient(
3391
- 90deg,
3392
- transparent 0%,
3393
- var(--rim-light-top) 50%,
3394
- transparent 100%);
3395
- }
3396
- .ds-login__form {
3397
- animation: ds-login-fade-in 0.5s ease-out 0.5s forwards;
3398
- opacity: 0;
3399
- }
3400
- .ds-login__field {
3401
- margin-bottom: var(--space-4);
3402
- }
3403
- .ds-login__password-toggle {
3404
- position: static;
3405
- transform: none;
3406
- padding: var(--space-2);
3407
- border: none;
3408
- background: transparent;
3409
- color: var(--text-tertiary);
3410
- cursor: pointer;
3411
- border-radius: var(--radius-badge);
3412
- display: flex;
3413
- align-items: center;
3414
- justify-content: center;
3415
- transition: color var(--transition-glass), background var(--transition-glass);
3416
- }
3417
- .ds-login__password-toggle:hover {
3418
- color: var(--text-primary);
3419
- background: var(--glass-base-hover);
3420
- }
3421
- .ds-login__options {
3422
- display: flex;
3423
- align-items: center;
3424
- justify-content: space-between;
3425
- margin-bottom: var(--space-6);
3426
- flex-wrap: wrap;
3427
- gap: var(--space-2);
3428
- }
3429
- .ds-login__link {
3430
- padding: 0;
3431
- border: none;
3432
- background: transparent;
3433
- color: var(--text-secondary);
3434
- font-family: var(--font-family);
3435
- font-size: var(--font-size-sm);
3436
- cursor: pointer;
3437
- transition: color var(--transition-glass);
3438
- }
3439
- .ds-login__link:hover:not(:disabled) {
3440
- color: var(--text-primary);
3441
- }
3442
- .ds-login__link--accent {
3443
- color: rgb(var(--accent-rgb));
3444
- font-weight: var(--font-weight-medium);
3445
- }
3446
- .ds-login__link--accent:hover:not(:disabled) {
3447
- color: rgb(var(--accent-rgb));
3448
- text-decoration: underline;
3449
- }
3450
- .ds-login__link:disabled {
3451
- opacity: 0.5;
3452
- cursor: not-allowed;
3453
- }
3454
- .ds-login__submit {
3455
- width: 100%;
3456
- }
3457
- .ds-login__spinner {
3458
- display: inline-block;
3459
- width: 20px;
3460
- height: 20px;
3461
- border: 2px solid var(--hc-border);
3462
- border-top-color: var(--hc-control-knob);
3463
- border-radius: 50%;
3464
- animation: ds-login-spin 0.8s linear infinite;
3465
- }
3466
- @keyframes ds-login-spin {
3467
- to {
3468
- transform: rotate(360deg);
3469
- }
3470
- }
3471
- .ds-login__footer {
3472
- display: flex;
3473
- align-items: center;
3474
- justify-content: center;
3475
- gap: var(--space-2);
3476
- margin-top: var(--space-6);
3477
- padding-top: var(--space-6);
3478
- border-top: 1px solid var(--rim-light-bottom);
3479
- font-size: var(--font-size-sm);
3480
- color: var(--text-tertiary);
3481
- animation: ds-login-fade-in 0.5s ease-out 0.6s forwards;
3482
- opacity: 0;
3483
- }
3484
- @media (max-width: 480px) {
3485
- .ds-login {
3486
- padding: var(--space-4);
3487
- }
3488
- .ds-login__card {
3489
- padding: var(--space-6);
3490
- border-radius: var(--radius-card);
3491
- }
3492
- .ds-login__accent--1 {
3493
- width: 200px;
3494
- height: 200px;
3495
- top: -50px;
3496
- right: -50px;
3497
- }
3498
- .ds-login__accent--2 {
3499
- width: 150px;
3500
- height: 150px;
3501
- bottom: -30px;
3502
- left: -30px;
3503
- }
3504
- .ds-login__options {
3505
- flex-direction: column;
3506
- align-items: flex-start;
3507
- gap: var(--space-3);
3508
- }
3509
- }
3510
- @media (prefers-reduced-motion: reduce) {
3511
- .ds-login__card,
3512
- .ds-login__logo,
3513
- .ds-login__title,
3514
- .ds-login__tagline,
3515
- .ds-login__social,
3516
- .ds-login__form,
3517
- .ds-login__footer,
3518
- .ds-login__trust {
3519
- animation: none;
3520
- opacity: 1;
3521
- }
3522
- .ds-login__accent {
3523
- animation: none;
3524
- }
3525
- .ds-login__logo-icon {
3526
- animation: none;
3527
- }
3528
- .ds-login__spinner {
3529
- animation-duration: 1.5s;
3530
- }
3531
- }
3532
- @media (prefers-contrast: more) {
3533
- .ds-login__card {
3534
- border: 1px solid var(--hc-border);
3535
- }
3536
- .ds-login__social-btn {
3537
- border: 1px solid var(--hc-border-subtle);
3538
- }
3539
- .ds-login__social-btn::before {
3540
- display: none;
3541
- }
3542
- }
3543
-
3544
- /* src/components/ThemeSelector/ThemeSelector.css */
3545
- .ds-theme-selector {
3546
- display: inline-flex;
3547
- align-items: center;
3548
- border: 1px solid var(--rim-light-top);
3549
- border-radius: var(--radius-badge);
3550
- padding: var(--space-1);
3551
- gap: var(--space-1);
3552
- }
3553
- [data-theme=light] .ds-theme-selector,
3554
- [data-theme=light-contrast] .ds-theme-selector {
3555
- background-color: var(--void-base);
3556
- }
3557
- [data-theme=dark] .ds-theme-selector,
3558
- [data-theme=dark-contrast] .ds-theme-selector {
3559
- background: var(--glass-base);
3560
- backdrop-filter: var(--glass-backdrop);
3561
- -webkit-backdrop-filter: var(--glass-backdrop);
3562
- }
3563
- .ds-theme-selector__btn {
3564
- display: flex;
3565
- align-items: center;
3566
- gap: var(--space-2);
3567
- padding: var(--space-2) var(--space-3);
3568
- border: none;
3569
- background: transparent;
3570
- color: var(--text-secondary);
3571
- font-family: inherit;
3572
- font-size: var(--font-size-sm, 14px);
3573
- font-weight: 500;
3574
- border-radius: var(--radius-badge);
3575
- cursor: pointer;
3576
- transition: color var(--transition-fast), background-color var(--transition-fast);
3577
- line-height: 1;
3578
- white-space: nowrap;
3579
- }
3580
- .ds-theme-selector__btn:hover {
3581
- color: var(--text-primary);
3582
- background-color: var(--interactive-hover-bg);
3583
- }
3584
- .ds-theme-selector__btn--active {
3585
- background-color: rgba(var(--accent-rgb), .2);
3586
- box-shadow: none;
3587
- }
3588
- [data-theme=light] .ds-theme-selector__btn--active .ds-theme-selector__label,
3589
- [data-theme=light-contrast] .ds-theme-selector__btn--active .ds-theme-selector__label,
3590
- [data-theme=dark] .ds-theme-selector__btn--active .ds-theme-selector__label,
3591
- [data-theme=dark-contrast] .ds-theme-selector__btn--active .ds-theme-selector__label {
3592
- color: var(--text-secondary);
3593
- }
3594
- .ds-theme-selector__btn--active .ds-theme-selector__icon {
3595
- color: rgb(var(--accent-rgb));
3596
- }
3597
- .ds-theme-selector__icon {
3598
- width: 16px;
3599
- height: 16px;
3600
- color: inherit;
3601
- transition: color var(--transition-fast);
3602
- }
3603
-
3604
- /* src/components/ColorPicker/ColorPicker.css */
3605
- .ds-color-picker {
3606
- display: flex;
3607
- align-items: center;
3608
- gap: var(--space-1);
3609
- padding: var(--space-1);
3610
- border-radius: var(--radius-badge);
3611
- background: var(--interactive-hover-bg);
3612
- border: 1px solid var(--rim-light-bottom);
3613
- }
3614
- .ds-color-picker__swatch {
3615
- display: flex;
3616
- align-items: center;
3617
- justify-content: center;
3618
- padding: var(--space-1);
3619
- border: none;
3620
- border-radius: var(--radius-xs);
3621
- background: transparent;
3622
- cursor: pointer;
3623
- transition: background var(--transition-fast);
3624
- }
3625
- .ds-color-picker__swatch:hover {
3626
- background: var(--interactive-hover-bg);
3627
- }
3628
- .ds-color-picker__swatch--active {
3629
- background: var(--interactive-active-bg);
3630
- }
3631
- .ds-color-picker__dot {
3632
- width: 14px;
3633
- height: 14px;
3634
- border-radius: 50%;
3635
- background: var(--swatch-color);
3636
- border: 1.5px solid var(--rim-light-bottom);
3637
- transition: box-shadow var(--transition-fast);
3638
- }
3639
- .ds-color-picker__swatch--active .ds-color-picker__dot {
3640
- box-shadow: 0 0 0 2px var(--swatch-color);
3641
- }
3642
- .ds-color-picker__swatch--custom {
3643
- position: relative;
3644
- }
3645
- .ds-color-picker__native-input {
3646
- position: absolute;
3647
- inset: 0;
3648
- width: 100%;
3649
- height: 100%;
3650
- opacity: 0;
3651
- cursor: pointer;
3652
- border: none;
3653
- padding: 0;
3654
- }
3655
-
3656
- /* src/components/ChangeEmail/ChangeEmail.css */
3657
- .ds-change-email {
3658
- position: relative;
3659
- display: flex;
3660
- flex-direction: column;
3661
- align-items: center;
3662
- justify-content: center;
3663
- width: 100%;
3664
- padding: var(--space-6);
3665
- box-sizing: border-box;
3666
- }
3667
- .void__content .ds-change-email {
3668
- min-height: auto;
3669
- flex: 1;
3670
- }
3671
- .ds-change-email__accent {
3672
- position: absolute;
3673
- border-radius: 50%;
3674
- filter: blur(80px);
3675
- opacity: 0.5;
3676
- pointer-events: none;
3677
- animation: ds-change-email-float 20s ease-in-out infinite;
3678
- }
3679
- .ds-change-email__accent--1 {
3680
- width: 400px;
3681
- height: 400px;
3682
- background:
3683
- radial-gradient(
3684
- circle,
3685
- rgba(var(--accent-rgb), 0.4) 0%,
3686
- transparent 70%);
3687
- top: -100px;
3688
- right: -100px;
3689
- animation-delay: 0s;
3690
- }
3691
- .ds-change-email__accent--2 {
3692
- width: 300px;
3693
- height: 300px;
3694
- background:
3695
- radial-gradient(
3696
- circle,
3697
- rgba(var(--accent2-rgb), 0.3) 0%,
3698
- transparent 70%);
3699
- bottom: -50px;
3700
- left: -50px;
3701
- animation-delay: -10s;
3702
- }
3703
- .ds-change-email__container {
3704
- position: relative;
3705
- width: 100%;
3706
- max-width: 420px;
3707
- display: flex;
3708
- flex-direction: column;
3709
- align-items: center;
3710
- }
3711
- @keyframes ds-change-email-float {
3712
- 0%, 100% {
3713
- transform: translate(0, 0) scale(1);
3714
- }
3715
- 25% {
3716
- transform: translate(20px, -30px) scale(1.05);
3717
- }
3718
- 50% {
3719
- transform: translate(-10px, 20px) scale(0.95);
3720
- }
3721
- 75% {
3722
- transform: translate(-30px, -10px) scale(1.02);
3723
- }
3724
- }
3725
- .ds-change-email__card {
3726
- position: relative;
3727
- width: 100%;
3728
- max-width: 420px;
3729
- padding: var(--space-8);
3730
- border-radius: var(--radius-panel);
3731
- background: var(--glass-base);
3732
- backdrop-filter: var(--glass-backdrop);
3733
- -webkit-backdrop-filter: var(--glass-backdrop);
3734
- box-shadow: var(--glass-shadow-elevated-combined);
3735
- animation: ds-change-email-card-enter 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
3736
- opacity: 0;
3737
- transform: translateY(20px);
3738
- }
3739
- .ds-change-email__card::before {
3740
- content: "";
3741
- position: absolute;
3742
- inset: 0;
3743
- border-radius: inherit;
3744
- padding: 1px;
3745
- background:
3746
- linear-gradient(
3747
- 180deg,
3748
- var(--rim-light-hover-top) 0%,
3749
- var(--rim-light-bottom) 100%);
3750
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3751
- mask-composite: exclude;
3752
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3753
- -webkit-mask-composite: xor;
3754
- pointer-events: none;
3755
- }
3756
- @keyframes ds-change-email-card-enter {
3757
- to {
3758
- opacity: 1;
3759
- transform: translateY(0);
3760
- }
3761
- }
3762
- .ds-change-email__header {
3763
- text-align: center;
3764
- margin-bottom: var(--space-6);
3765
- }
3766
- .ds-change-email__logo {
3767
- display: flex;
3768
- justify-content: center;
3769
- margin-bottom: var(--space-4);
3770
- animation: ds-change-email-fade-in 0.5s ease-out 0.1s forwards;
3771
- opacity: 0;
3772
- }
3773
- .ds-change-email__logo--default {
3774
- }
3775
- .ds-change-email__logo-icon {
3776
- width: 56px;
3777
- height: 56px;
3778
- animation: ds-change-email-logo-pulse 3s ease-in-out infinite;
3779
- }
3780
- .ds-change-email__logo-icon svg {
3781
- width: 100%;
3782
- height: 100%;
3783
- filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
3784
- }
3785
- @keyframes ds-change-email-logo-pulse {
3786
- 0%, 100% {
3787
- transform: scale(1);
3788
- filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
3789
- }
3790
- 50% {
3791
- transform: scale(1.05);
3792
- filter: drop-shadow(0 6px 20px rgba(var(--accent-rgb), 0.5));
3793
- }
3794
- }
3795
- .ds-change-email__title {
3796
- font-family: var(--font-family);
3797
- font-size: var(--font-size-2xl);
3798
- font-weight: var(--font-weight-bold);
3799
- color: var(--text-primary);
3800
- margin: 0 0 var(--space-2);
3801
- animation: ds-change-email-fade-in 0.5s ease-out 0.2s forwards;
3802
- opacity: 0;
3803
- }
3804
- .ds-change-email__tagline {
3805
- font-family: var(--font-family);
3806
- font-size: var(--font-size-sm);
3807
- color: var(--text-secondary);
3808
- margin: 0;
3809
- line-height: var(--line-height-normal);
3810
- animation: ds-change-email-fade-in 0.5s ease-out 0.3s forwards;
3811
- opacity: 0;
3812
- }
3813
- @keyframes ds-change-email-fade-in {
3814
- to {
3815
- opacity: 1;
3816
- }
3817
- }
3818
- .ds-change-email__error {
3819
- display: flex;
3820
- align-items: center;
3821
- gap: var(--space-2);
3822
- padding: var(--space-3) var(--space-4);
3823
- margin-bottom: var(--space-4);
3824
- border-radius: var(--radius-button);
3825
- background: rgba(var(--status-error-rgb), 0.1);
3826
- border: 1px solid rgba(var(--status-error-rgb), 0.3);
3827
- color: var(--status-error);
3828
- font-size: var(--font-size-sm);
3829
- animation: ds-change-email-error-enter 0.4s ease-out;
3830
- }
3831
- @keyframes ds-change-email-error-enter {
3832
- 0% {
3833
- opacity: 0;
3834
- transform: translateX(-10px);
3835
- }
3836
- 50% {
3837
- transform: translateX(5px);
3838
- }
3839
- 100% {
3840
- opacity: 1;
3841
- transform: translateX(0);
3842
- }
3843
- }
3844
- .ds-change-email__social {
3845
- margin-bottom: var(--space-4);
3846
- animation: ds-change-email-fade-in 0.5s ease-out 0.4s forwards;
3847
- opacity: 0;
3848
- }
3849
- .ds-change-email__social-btn {
3850
- display: flex;
3851
- align-items: center;
3852
- justify-content: center;
3853
- gap: var(--space-3);
3854
- width: 100%;
3855
- padding: var(--space-3) var(--space-4);
3856
- margin-bottom: var(--space-3);
3857
- border: none;
3858
- border-radius: var(--radius-button);
3859
- background: var(--glass-base);
3860
- color: var(--text-primary);
3861
- font-family: var(--font-family);
3862
- font-size: var(--font-size-base);
3863
- font-weight: var(--font-weight-medium);
3864
- cursor: pointer;
3865
- position: relative;
3866
- transition:
3867
- background var(--transition-glass),
3868
- transform var(--transition-glass),
3869
- box-shadow var(--transition-glass);
3870
- }
3871
- .ds-change-email__social-btn::before {
3872
- content: "";
3873
- position: absolute;
3874
- inset: 0;
3875
- border-radius: inherit;
3876
- padding: 1px;
3877
- background:
3878
- linear-gradient(
3879
- 180deg,
3880
- var(--rim-light-top) 0%,
3881
- var(--rim-light-bottom) 100%);
3882
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3883
- mask-composite: exclude;
3884
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3885
- -webkit-mask-composite: xor;
3886
- pointer-events: none;
3887
- transition: background var(--transition-glass);
3888
- }
3889
- .ds-change-email__social-btn:hover:not(:disabled) {
3890
- background: var(--glass-base-hover);
3891
- transform: translateY(-2px);
3892
- box-shadow: 0 8px 24px var(--shadow-color-heavy, rgba(0, 0, 0, 0.2));
3893
- }
3894
- .ds-change-email__social-btn:hover:not(:disabled)::before {
3895
- background:
3896
- linear-gradient(
3897
- 180deg,
3898
- var(--rim-light-hover-top) 0%,
3899
- var(--rim-light-hover-bottom) 100%);
3900
- }
3901
- .ds-change-email__social-btn:disabled {
3902
- opacity: 0.5;
3903
- cursor: not-allowed;
3904
- }
3905
- .ds-change-email__divider {
3906
- display: flex;
3907
- align-items: center;
3908
- gap: var(--space-4);
3909
- margin: var(--space-4) 0;
3910
- color: var(--text-tertiary);
3911
- font-family: var(--font-family);
3912
- font-size: var(--font-size-sm);
3913
- }
3914
- .ds-change-email__divider::before,
3915
- .ds-change-email__divider::after {
3916
- content: "";
3917
- flex: 1;
3918
- height: 1px;
3919
- background:
3920
- linear-gradient(
3921
- 90deg,
3922
- transparent 0%,
3923
- var(--rim-light-top) 50%,
3924
- transparent 100%);
3925
- }
3926
- .ds-change-email__form {
3927
- animation: ds-change-email-fade-in 0.5s ease-out 0.5s forwards;
3928
- opacity: 0;
3929
- }
3930
- .ds-change-email__field {
3931
- margin-bottom: var(--space-4);
3932
- }
3933
- .ds-change-email__password-toggle {
3934
- position: static;
3935
- transform: none;
3936
- padding: var(--space-2);
3937
- border: none;
3938
- background: transparent;
3939
- color: var(--text-tertiary);
3940
- cursor: pointer;
3941
- border-radius: var(--radius-badge);
3942
- display: flex;
3943
- align-items: center;
3944
- justify-content: center;
3945
- transition: color var(--transition-glass), background var(--transition-glass);
3946
- }
3947
- .ds-change-email__password-toggle:hover {
3948
- color: var(--text-primary);
3949
- background: var(--glass-base-hover);
3950
- }
3951
- .ds-change-email__options {
3952
- display: flex;
3953
- align-items: center;
3954
- justify-content: space-between;
3955
- margin-bottom: var(--space-6);
3956
- flex-wrap: wrap;
3957
- gap: var(--space-2);
3958
- }
3959
- .ds-change-email__link {
3960
- padding: 0;
3961
- border: none;
3962
- background: transparent;
3963
- color: var(--text-secondary);
3964
- font-family: var(--font-family);
3965
- font-size: var(--font-size-sm);
3966
- cursor: pointer;
3967
- transition: color var(--transition-glass);
3968
- }
3969
- .ds-change-email__link:hover:not(:disabled) {
3970
- color: var(--text-primary);
3971
- }
3972
- .ds-change-email__link--accent {
3973
- color: rgb(var(--accent-rgb));
3974
- font-weight: var(--font-weight-medium);
3975
- }
3976
- .ds-change-email__link--accent:hover:not(:disabled) {
3977
- color: rgb(var(--accent-rgb));
3978
- text-decoration: underline;
3979
- }
3980
- .ds-change-email__link:disabled {
3981
- opacity: 0.5;
3982
- cursor: not-allowed;
3983
- }
3984
- .ds-change-email__submit {
3985
- width: 100%;
3986
- }
3987
- .ds-change-email__spinner {
3988
- display: inline-block;
3989
- width: 20px;
3990
- height: 20px;
3991
- border: 2px solid var(--border-subtle, rgba(255, 255, 255, 0.3));
3992
- border-top-color: var(--text-primary, white);
3993
- border-radius: 50%;
3994
- animation: ds-change-email-spin 0.8s linear infinite;
3995
- }
3996
- @keyframes ds-change-email-spin {
3997
- to {
3998
- transform: rotate(360deg);
3999
- }
4000
- }
4001
- .ds-change-email__footer {
4002
- display: flex;
4003
- align-items: center;
4004
- justify-content: center;
4005
- gap: var(--space-2);
4006
- margin-top: var(--space-6);
4007
- padding-top: var(--space-6);
4008
- border-top: 1px solid var(--rim-light-bottom);
4009
- font-family: var(--font-family);
4010
- font-size: var(--font-size-sm);
4011
- color: var(--text-tertiary);
4012
- animation: ds-change-email-fade-in 0.5s ease-out 0.6s forwards;
4013
- opacity: 0;
4014
- }
4015
- .ds-change-email__trust {
4016
- padding-top: var(--space-6);
4017
- padding-bottom: var(--space-2);
4018
- text-align: center;
4019
- font-family: var(--font-family);
4020
- font-size: var(--font-size-xs);
4021
- color: var(--text-tertiary);
4022
- animation: ds-change-email-fade-in 0.5s ease-out 0.7s forwards;
4023
- opacity: 0;
4024
- }
4025
- @media (max-width: 480px) {
4026
- .ds-change-email {
4027
- padding: var(--space-4);
4028
- }
4029
- .ds-change-email__card {
4030
- padding: var(--space-6);
4031
- border-radius: var(--radius-card);
4032
- }
4033
- .ds-change-email__accent--1 {
4034
- width: 200px;
4035
- height: 200px;
4036
- top: -50px;
4037
- right: -50px;
4038
- }
4039
- .ds-change-email__accent--2 {
4040
- width: 150px;
4041
- height: 150px;
4042
- bottom: -30px;
4043
- left: -30px;
4044
- }
4045
- .ds-change-email__options {
4046
- flex-direction: column;
4047
- align-items: flex-start;
4048
- gap: var(--space-3);
4049
- }
4050
- }
4051
- @media (prefers-reduced-motion: reduce) {
4052
- .ds-change-email__card,
4053
- .ds-change-email__logo,
4054
- .ds-change-email__title,
4055
- .ds-change-email__tagline,
4056
- .ds-change-email__social,
4057
- .ds-change-email__form,
4058
- .ds-change-email__footer,
4059
- .ds-change-email__trust {
4060
- animation: none;
4061
- opacity: 1;
4062
- }
4063
- .ds-change-email__accent {
4064
- animation: none;
4065
- }
4066
- .ds-change-email__logo-icon {
4067
- animation: none;
4068
- }
4069
- .ds-change-email__spinner {
4070
- animation-duration: 1.5s;
4071
- }
4072
- }
4073
- @media (prefers-contrast: more) {
4074
- .ds-change-email__card {
4075
- border: 1px solid var(--hc-border);
4076
- }
4077
- .ds-change-email__social-btn {
4078
- border: 1px solid var(--hc-border-subtle);
4079
- }
4080
- .ds-change-email__social-btn::before {
4081
- display: none;
4082
- }
4083
- }
4084
-
4085
- /* src/components/Signup/Signup.css */
4086
- .ds-signup {
4087
- position: relative;
4088
- display: flex;
4089
- flex-direction: column;
4090
- align-items: center;
4091
- justify-content: center;
4092
- width: 100%;
4093
- padding: var(--space-6) var(--space-4);
4094
- box-sizing: border-box;
4095
- }
4096
- .ds-signup__accent {
4097
- position: absolute;
4098
- border-radius: 50%;
4099
- filter: blur(80px);
4100
- opacity: 0.5;
4101
- pointer-events: none;
4102
- animation: ds-signup-float 20s ease-in-out infinite;
4103
- }
4104
- .ds-signup__accent--1 {
4105
- width: 400px;
4106
- height: 400px;
4107
- background:
4108
- radial-gradient(
4109
- circle,
4110
- rgba(var(--accent-rgb), 0.4) 0%,
4111
- transparent 70%);
4112
- top: -100px;
4113
- right: -100px;
4114
- animation-delay: 0s;
4115
- }
4116
- .ds-signup__accent--2 {
4117
- width: 300px;
4118
- height: 300px;
4119
- background:
4120
- radial-gradient(
4121
- circle,
4122
- rgba(var(--accent2-rgb), 0.3) 0%,
4123
- transparent 70%);
4124
- bottom: -50px;
4125
- left: -50px;
4126
- animation-delay: -10s;
4127
- }
4128
- @keyframes ds-signup-float {
4129
- 0%, 100% {
4130
- transform: translate(0, 0) scale(1);
4131
- }
4132
- 25% {
4133
- transform: translate(20px, -30px) scale(1.05);
4134
- }
4135
- 50% {
4136
- transform: translate(-10px, 20px) scale(0.95);
4137
- }
4138
- 75% {
4139
- transform: translate(-30px, -10px) scale(1.02);
4140
- }
4141
- }
4142
- .ds-signup__card {
4143
- position: relative;
4144
- width: 100%;
4145
- max-width: 420px;
4146
- padding: var(--space-8);
4147
- border-radius: var(--radius-panel);
4148
- background: var(--glass-base);
4149
- backdrop-filter: var(--glass-backdrop);
4150
- -webkit-backdrop-filter: var(--glass-backdrop);
4151
- box-shadow: var(--glass-shadow-elevated-combined);
4152
- animation: ds-signup-card-enter 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
4153
- opacity: 0;
4154
- transform: translateY(20px);
4155
- }
4156
- .ds-signup__card::before {
4157
- content: "";
4158
- position: absolute;
4159
- inset: 0;
4160
- border-radius: inherit;
4161
- padding: 1px;
4162
- background:
4163
- linear-gradient(
4164
- 180deg,
4165
- var(--rim-light-hover-top) 0%,
4166
- var(--rim-light-bottom) 100%);
4167
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
4168
- mask-composite: exclude;
4169
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
4170
- -webkit-mask-composite: xor;
4171
- pointer-events: none;
4172
- }
4173
- @keyframes ds-signup-card-enter {
4174
- to {
4175
- opacity: 1;
4176
- transform: translateY(0);
4177
- }
4178
- }
4179
- .ds-signup__card--success {
4180
- text-align: center;
4181
- }
4182
- .ds-signup__success-icon {
4183
- width: 64px;
4184
- height: 64px;
4185
- margin: 0 auto var(--space-6);
4186
- animation: ds-signup-success-icon 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
4187
- }
4188
- .ds-signup__success-icon svg {
4189
- width: 100%;
4190
- height: 100%;
4191
- }
4192
- @keyframes ds-signup-success-icon {
4193
- 0% {
4194
- transform: scale(0);
4195
- opacity: 0;
4196
- }
4197
- 50% {
4198
- transform: scale(1.2);
4199
- }
4200
- 100% {
4201
- transform: scale(1);
4202
- opacity: 1;
4203
- }
4204
- }
4205
- .ds-signup__success-title {
4206
- font-family: var(--font-family);
4207
- font-size: var(--font-size-2xl);
4208
- font-weight: var(--font-weight-bold);
4209
- color: var(--text-primary);
4210
- margin: 0 0 var(--space-2);
4211
- }
4212
- .ds-signup__success-message {
4213
- font-family: var(--font-family);
4214
- font-size: var(--font-size-base);
4215
- color: var(--text-secondary);
4216
- margin: 0 0 var(--space-6);
4217
- line-height: var(--line-height-normal);
4218
- }
4219
- .ds-signup__success-btn {
4220
- width: 100%;
4221
- }
4222
- .ds-signup__header {
4223
- text-align: center;
4224
- margin-bottom: var(--space-6);
4225
- }
4226
- .ds-signup__logo {
4227
- display: flex;
4228
- justify-content: center;
4229
- margin-bottom: var(--space-4);
4230
- animation: ds-signup-fade-in 0.5s ease-out 0.1s forwards;
4231
- opacity: 0;
4232
- }
4233
- .ds-signup__logo-icon {
4234
- width: 56px;
4235
- height: 56px;
4236
- animation: ds-signup-logo-pulse 3s ease-in-out infinite;
4237
- }
4238
- .ds-signup__logo-icon svg {
4239
- width: 100%;
4240
- height: 100%;
4241
- filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
4242
- }
4243
- @keyframes ds-signup-logo-pulse {
4244
- 0%, 100% {
4245
- transform: scale(1);
4246
- filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
4247
- }
4248
- 50% {
4249
- transform: scale(1.05);
4250
- filter: drop-shadow(0 6px 20px rgba(var(--accent-rgb), 0.5));
4251
- }
4252
- }
4253
- .ds-signup__title {
4254
- font-family: var(--font-family);
4255
- font-size: var(--font-size-2xl);
4256
- font-weight: var(--font-weight-bold);
4257
- color: var(--text-primary);
4258
- margin: 0 0 var(--space-2);
4259
- animation: ds-signup-fade-in 0.5s ease-out 0.2s forwards;
4260
- opacity: 0;
4261
- }
4262
- .ds-signup__tagline {
4263
- font-family: var(--font-family);
4264
- font-size: var(--font-size-sm);
4265
- color: var(--text-secondary);
4266
- margin: 0;
4267
- line-height: var(--line-height-normal);
4268
- animation: ds-signup-fade-in 0.5s ease-out 0.3s forwards;
4269
- opacity: 0;
4270
- }
4271
- @keyframes ds-signup-fade-in {
4272
- to {
4273
- opacity: 1;
4274
- }
4275
- }
4276
- .ds-signup__error {
4277
- display: flex;
4278
- align-items: center;
4279
- gap: var(--space-2);
4280
- padding: var(--space-3) var(--space-4);
4281
- margin-bottom: var(--space-4);
4282
- border-radius: var(--radius-button);
4283
- background: rgba(var(--status-error-rgb), 0.1);
4284
- border: 1px solid rgba(var(--status-error-rgb), 0.3);
4285
- color: var(--status-error);
4286
- font-size: var(--font-size-sm);
4287
- animation: ds-signup-error-enter 0.4s ease-out;
4288
- }
4289
- @keyframes ds-signup-error-enter {
4290
- 0% {
4291
- opacity: 0;
4292
- transform: translateX(-10px);
4293
- }
4294
- 50% {
4295
- transform: translateX(5px);
4296
- }
4297
- 100% {
4298
- opacity: 1;
4299
- transform: translateX(0);
4300
- }
4301
- }
4302
- .ds-signup__social {
4303
- margin-bottom: var(--space-4);
4304
- animation: ds-signup-fade-in 0.5s ease-out 0.4s forwards;
4305
- opacity: 0;
4306
- }
4307
- .ds-signup__social-btn {
4308
- display: flex;
4309
- align-items: center;
4310
- justify-content: center;
4311
- gap: var(--space-3);
4312
- width: 100%;
4313
- padding: var(--space-3) var(--space-4);
4314
- margin-bottom: var(--space-3);
4315
- border: none;
4316
- border-radius: var(--radius-button);
4317
- background: var(--glass-base);
4318
- color: var(--text-primary);
4319
- font-family: var(--font-family);
4320
- font-size: var(--font-size-base);
4321
- font-weight: var(--font-weight-medium);
4322
- cursor: pointer;
4323
- position: relative;
4324
- transition:
4325
- background var(--transition-glass),
4326
- transform var(--transition-glass),
4327
- box-shadow var(--transition-glass);
4328
- }
4329
- .ds-signup__social-btn::before {
4330
- content: "";
4331
- position: absolute;
4332
- inset: 0;
4333
- border-radius: inherit;
4334
- padding: 1px;
4335
- background:
4336
- linear-gradient(
4337
- 180deg,
4338
- var(--rim-light-top) 0%,
4339
- var(--rim-light-bottom) 100%);
4340
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
4341
- mask-composite: exclude;
4342
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
4343
- -webkit-mask-composite: xor;
4344
- pointer-events: none;
4345
- transition: background var(--transition-glass);
2147
+ white-space: nowrap;
2148
+ transition: background var(--transition-fast), color var(--transition-fast);
4346
2149
  }
4347
- .ds-signup__social-btn:hover:not(:disabled) {
2150
+ .ds-locale-dropdown__trigger:hover {
4348
2151
  background: var(--glass-base-hover);
4349
- transform: translateY(-2px);
4350
- box-shadow: var(--shadow-lg);
2152
+ color: var(--text-primary);
4351
2153
  }
4352
- .ds-signup__social-btn:disabled {
4353
- opacity: 0.5;
4354
- cursor: not-allowed;
2154
+ .ds-locale-dropdown__trigger:focus-visible {
2155
+ outline: none;
2156
+ box-shadow: var(--focus-ring);
4355
2157
  }
4356
- .ds-signup__divider {
2158
+ .ds-locale-dropdown__trigger-icon {
4357
2159
  display: flex;
4358
2160
  align-items: center;
4359
- gap: var(--space-4);
4360
- margin: var(--space-4) 0;
4361
2161
  color: var(--text-tertiary);
4362
- font-size: var(--font-size-sm);
4363
- }
4364
- .ds-signup__divider::before,
4365
- .ds-signup__divider::after {
4366
- content: "";
4367
- flex: 1;
4368
- height: 1px;
4369
- background:
4370
- linear-gradient(
4371
- 90deg,
4372
- transparent 0%,
4373
- var(--rim-light-top) 50%,
4374
- transparent 100%);
4375
- }
4376
- .ds-signup__form {
4377
- animation: ds-signup-fade-in 0.5s ease-out 0.5s forwards;
4378
- opacity: 0;
4379
- }
4380
- .ds-signup__field {
4381
- margin-bottom: var(--space-4);
4382
- }
4383
- .ds-signup__phone-container {
4384
- display: flex;
4385
- align-items: center;
4386
- position: relative;
4387
- width: 100%;
2162
+ flex-shrink: 0;
4388
2163
  }
4389
- .ds-signup__phone-container.ds-textfield__input {
4390
- display: flex;
2164
+ .ds-locale-dropdown__trigger-flag {
2165
+ font-size: var(--font-size-xs);
2166
+ line-height: 1;
2167
+ display: inline-flex;
4391
2168
  align-items: center;
4392
- position: relative;
4393
- width: 100%;
4394
- padding: 0;
2169
+ height: 16px;
4395
2170
  overflow: hidden;
4396
2171
  }
4397
- .ds-signup__flag-select-wrapper {
4398
- position: relative;
4399
- display: flex;
2172
+ .ds-locale-dropdown__trigger-chevron {
2173
+ display: inline-flex;
4400
2174
  align-items: center;
4401
- align-self: stretch;
2175
+ color: var(--text-tertiary);
2176
+ flex-shrink: 0;
2177
+ transition: transform 0.2s cubic-bezier(0.2, 0.8, 0.2, 1), color var(--transition-fast);
2178
+ }
2179
+ .ds-locale-dropdown__trigger-chevron[data-state=open] {
2180
+ transform: rotate(180deg);
2181
+ }
2182
+ .ds-locale-dropdown__trigger:hover .ds-locale-dropdown__trigger-chevron {
2183
+ color: var(--text-secondary);
4402
2184
  }
4403
- .ds-signup__flag-select-native {
2185
+ .ds-locale-dropdown__panel {
4404
2186
  position: absolute;
4405
- inset: 0;
4406
- width: 100%;
4407
- height: 100%;
2187
+ top: calc(100% + var(--space-2));
2188
+ right: 0;
2189
+ min-width: 180px;
2190
+ padding: var(--space-1-5);
2191
+ z-index: var(--z-dropdown);
2192
+ transform-origin: top right;
2193
+ overflow: hidden;
2194
+ background: var(--void-base);
2195
+ backdrop-filter: blur(24px) saturate(180%);
2196
+ -webkit-backdrop-filter: blur(24px) saturate(180%);
2197
+ border: 1px solid var(--rim-light-bottom);
2198
+ border-radius: var(--radius-card);
2199
+ box-shadow: var(--shadow-xl), 0 0 0 1px var(--rim-light-bottom);
4408
2200
  opacity: 0;
4409
- cursor: pointer;
4410
- z-index: 2;
4411
- }
4412
- .ds-signup__flag-display {
4413
- display: flex;
4414
- align-items: center;
4415
- gap: var(--space-2);
4416
- padding: var(--space-3) var(--space-3) var(--space-3) var(--space-4);
4417
- height: 100%;
4418
- background: transparent;
4419
- color: var(--text-primary);
4420
- border-right: 1px solid var(--border-subtle);
2201
+ transform: translateY(-8px) scale(0.95);
2202
+ visibility: hidden;
4421
2203
  pointer-events: none;
2204
+ transition:
2205
+ opacity 0.15s cubic-bezier(0.4, 0, 1, 1),
2206
+ transform 0.15s cubic-bezier(0.4, 0, 1, 1),
2207
+ visibility 0s 0.15s;
4422
2208
  }
4423
- .ds-signup__flag-icon {
4424
- font-size: var(--font-size-lg);
4425
- line-height: 1;
4426
- }
4427
- .ds-signup__phone-input-native {
4428
- flex-grow: 1;
4429
- border: none !important;
4430
- background: transparent !important;
4431
- border-radius: 0 !important;
4432
- box-shadow: none !important;
4433
- padding: var(--space-3) var(--space-4) var(--space-3) var(--space-3) !important;
4434
- color: inherit;
4435
- font-family: inherit;
4436
- font-size: inherit;
4437
- outline: none;
4438
- }
4439
- .ds-signup__phone-input-native:focus {
4440
- outline: none;
4441
- border-color: transparent !important;
4442
- box-shadow: none !important;
2209
+ .ds-locale-dropdown__panel[data-state=open] {
2210
+ opacity: 1;
2211
+ transform: translateY(0) scale(1);
2212
+ visibility: visible;
2213
+ pointer-events: auto;
2214
+ transition:
2215
+ opacity 0.2s cubic-bezier(0.2, 0.8, 0.2, 1),
2216
+ transform 0.2s cubic-bezier(0.2, 0.8, 0.2, 1),
2217
+ visibility 0s 0s;
4443
2218
  }
4444
- .ds-signup__phone-container:disabled,
4445
- .ds-signup__phone-input-native:disabled {
4446
- opacity: 0.5;
4447
- cursor: not-allowed;
2219
+ .ds-locale-dropdown--up .ds-locale-dropdown__panel {
2220
+ top: auto;
2221
+ bottom: calc(100% + var(--space-2));
2222
+ transform-origin: bottom right;
4448
2223
  }
4449
- .ds-signup__password-wrapper {
4450
- position: relative;
2224
+ .ds-locale-dropdown--up .ds-locale-dropdown__panel[data-state=closed] {
2225
+ transform: translateY(8px) scale(0.95);
4451
2226
  }
4452
- .ds-signup__password-wrapper .ds-textfield__input {
4453
- padding-right: var(--space-12);
2227
+ .ds-locale-dropdown--align-left .ds-locale-dropdown__panel {
2228
+ right: auto;
2229
+ left: 0;
2230
+ transform-origin: top left;
4454
2231
  }
4455
- .ds-signup__password-toggle {
4456
- position: absolute;
4457
- right: var(--space-3);
4458
- top: 60%;
4459
- transform: translateY(calc(-50% + 10px));
4460
- padding: var(--space-2);
4461
- border: none;
4462
- background: transparent;
4463
- color: var(--text-tertiary);
4464
- cursor: pointer;
4465
- border-radius: var(--radius-badge);
4466
- transition: color var(--transition-glass), background var(--transition-glass);
2232
+ .ds-locale-dropdown--align-center .ds-locale-dropdown__panel {
2233
+ right: auto;
2234
+ left: 50%;
2235
+ transform-origin: top center;
4467
2236
  }
4468
- .ds-signup__password-toggle:hover {
4469
- color: var(--text-primary);
4470
- background: var(--glass-base-hover);
2237
+ .ds-locale-dropdown--align-center .ds-locale-dropdown__panel[data-state=closed] {
2238
+ transform: translateX(-50%) translateY(-8px) scale(0.95);
4471
2239
  }
4472
- .ds-signup__strength {
4473
- display: flex;
4474
- align-items: center;
4475
- gap: var(--space-3);
4476
- margin-top: var(--space-2);
2240
+ .ds-locale-dropdown--align-center .ds-locale-dropdown__panel[data-state=open] {
2241
+ transform: translateX(-50%) translateY(0) scale(1);
4477
2242
  }
4478
- .ds-signup__strength-bar {
4479
- display: flex;
4480
- gap: var(--space-1);
4481
- flex: 1;
2243
+ .ds-locale-dropdown--up.ds-locale-dropdown--align-left .ds-locale-dropdown__panel {
2244
+ transform-origin: bottom left;
4482
2245
  }
4483
- .ds-signup__strength-segment {
4484
- height: 4px;
4485
- flex: 1;
4486
- border-radius: 2px;
4487
- background: var(--glass-base-hover);
4488
- transition: background-color var(--transition-fast);
2246
+ .ds-locale-dropdown--up.ds-locale-dropdown--align-center .ds-locale-dropdown__panel {
2247
+ transform-origin: bottom center;
4489
2248
  }
4490
- .ds-signup__strength-segment--active {
4491
- background: var(--status-success);
2249
+ .ds-locale-dropdown--up.ds-locale-dropdown--align-center .ds-locale-dropdown__panel[data-state=closed] {
2250
+ transform: translateX(-50%) translateY(8px) scale(0.95);
4492
2251
  }
4493
- .ds-signup__strength-label {
4494
- font-family: var(--font-family);
4495
- font-size: var(--font-size-xs);
4496
- font-weight: var(--font-weight-medium);
4497
- white-space: nowrap;
4498
- transition: color var(--transition-fast);
2252
+ .ds-locale-dropdown__panel::before {
2253
+ content: "";
2254
+ position: absolute;
2255
+ top: 0;
2256
+ left: 0;
2257
+ right: 0;
2258
+ height: 1px;
2259
+ border-radius: var(--radius-card) var(--radius-card) 0 0;
2260
+ background:
2261
+ linear-gradient(
2262
+ 90deg,
2263
+ transparent 0%,
2264
+ var(--rim-light-top) 30%,
2265
+ var(--rim-light-hover-top) 50%,
2266
+ var(--rim-light-top) 70%,
2267
+ transparent 100%);
2268
+ opacity: 0.6;
2269
+ pointer-events: none;
4499
2270
  }
4500
- .ds-signup__terms {
2271
+ .ds-locale-dropdown__option {
4501
2272
  display: flex;
4502
- align-items: flex-start;
4503
- gap: var(--space-2);
4504
- margin-bottom: var(--space-6);
4505
- }
4506
- .ds-signup__terms-text {
4507
- font-family: var(--font-family);
4508
- font-size: var(--font-size-sm);
4509
- color: var(--text-secondary);
4510
- line-height: var(--line-height-normal);
4511
- }
4512
- .ds-signup__link {
4513
- padding: 0;
2273
+ align-items: center;
2274
+ justify-content: space-between;
2275
+ width: 100%;
2276
+ padding: var(--space-2) var(--space-3);
4514
2277
  border: none;
2278
+ border-radius: var(--radius-button);
4515
2279
  background: transparent;
4516
- color: rgb(var(--accent-rgb));
2280
+ color: var(--text-secondary);
4517
2281
  font-family: var(--font-family);
4518
- font-size: inherit;
4519
- font-weight: var(--font-weight-medium);
2282
+ font-size: var(--font-size-sm);
2283
+ font-weight: var(--font-weight-regular);
4520
2284
  cursor: pointer;
4521
- transition: color var(--transition-glass);
4522
- }
4523
- .ds-signup__link:hover:not(:disabled) {
4524
- text-decoration: underline;
4525
- }
4526
- .ds-signup__link:disabled {
4527
- opacity: 0.5;
4528
- cursor: not-allowed;
2285
+ text-decoration: none;
2286
+ text-align: left;
2287
+ white-space: nowrap;
2288
+ transition: background var(--transition-fast), color var(--transition-fast);
4529
2289
  }
4530
- .ds-signup__link--accent {
4531
- color: rgb(var(--accent-rgb));
2290
+ .ds-locale-dropdown__option:hover,
2291
+ .ds-locale-dropdown__option--focused {
2292
+ background: var(--glass-base-hover);
2293
+ color: var(--text-primary);
4532
2294
  }
4533
- .ds-signup__submit {
4534
- width: 100%;
2295
+ .ds-locale-dropdown__option:focus-visible {
2296
+ outline: none;
2297
+ box-shadow: var(--focus-ring);
4535
2298
  }
4536
- .ds-signup__spinner {
4537
- display: inline-block;
4538
- width: 20px;
4539
- height: 20px;
4540
- border: 2px solid var(--hc-border);
4541
- border-top-color: var(--hc-control-knob);
4542
- border-radius: 50%;
4543
- animation: ds-signup-spin 0.8s linear infinite;
2299
+ .ds-locale-dropdown__option--active {
2300
+ background: rgba(var(--brand-pink-rgb), 0.08);
2301
+ color: var(--text-primary);
2302
+ font-weight: var(--font-weight-medium);
4544
2303
  }
4545
- @keyframes ds-signup-spin {
4546
- to {
4547
- transform: rotate(360deg);
4548
- }
2304
+ .ds-locale-dropdown__option--active:hover,
2305
+ .ds-locale-dropdown__option--active.ds-locale-dropdown__option--focused {
2306
+ background: rgba(var(--brand-pink-rgb), 0.14);
4549
2307
  }
4550
- .ds-signup__footer {
2308
+ .ds-locale-dropdown__option-content {
4551
2309
  display: flex;
4552
2310
  align-items: center;
4553
- justify-content: center;
4554
2311
  gap: var(--space-2);
4555
- margin-top: var(--space-6);
4556
- padding-top: var(--space-6);
4557
- border-top: 1px solid var(--rim-light-bottom);
2312
+ }
2313
+ .ds-locale-dropdown__option-flag {
4558
2314
  font-size: var(--font-size-sm);
4559
- color: var(--text-tertiary);
4560
- animation: ds-signup-fade-in 0.5s ease-out 0.6s forwards;
4561
- opacity: 0;
2315
+ line-height: 1;
2316
+ flex-shrink: 0;
4562
2317
  }
4563
- @media (max-width: 480px) {
4564
- .ds-signup {
4565
- padding: var(--space-4);
4566
- }
4567
- .ds-signup__card {
4568
- padding: var(--space-6);
4569
- border-radius: var(--radius-card);
2318
+ .ds-locale-dropdown__option-label {
2319
+ white-space: nowrap;
2320
+ }
2321
+ .ds-locale-dropdown__option-check {
2322
+ display: flex;
2323
+ align-items: center;
2324
+ color: rgba(var(--brand-pink-rgb), 1);
2325
+ flex-shrink: 0;
2326
+ margin-left: var(--space-3);
2327
+ }
2328
+ @media (max-width: 1399px) {
2329
+ .ds-locale-dropdown__trigger {
2330
+ padding: var(--space-1-5) var(--space-2);
2331
+ gap: var(--space-1);
4570
2332
  }
4571
- .ds-signup__accent--1 {
4572
- width: 200px;
4573
- height: 200px;
4574
- top: -50px;
4575
- right: -50px;
2333
+ .ds-locale-dropdown__trigger-flag {
2334
+ display: none;
4576
2335
  }
4577
- .ds-signup__accent--2 {
4578
- width: 150px;
4579
- height: 150px;
4580
- bottom: -30px;
4581
- left: -30px;
2336
+ .ds-locale-dropdown__trigger-chevron {
2337
+ display: none;
4582
2338
  }
4583
2339
  }
2340
+ :root[data-theme=light] .ds-locale-dropdown__panel,
2341
+ :root[data-theme=light-contrast] .ds-locale-dropdown__panel {
2342
+ box-shadow: var(--shadow-sm), 0 0 0 1px var(--rim-light-bottom);
2343
+ }
4584
2344
  @media (prefers-reduced-motion: reduce) {
4585
- .ds-signup__card,
4586
- .ds-signup__logo,
4587
- .ds-signup__title,
4588
- .ds-signup__tagline,
4589
- .ds-signup__social,
4590
- .ds-signup__form,
4591
- .ds-signup__footer,
4592
- .ds-signup__trust,
4593
- .ds-signup__success-icon {
4594
- animation: none;
4595
- opacity: 1;
2345
+ .ds-locale-dropdown__trigger {
2346
+ transition: none;
4596
2347
  }
4597
- .ds-signup__accent {
4598
- animation: none;
2348
+ .ds-locale-dropdown__trigger-chevron {
2349
+ transition: none;
4599
2350
  }
4600
- .ds-signup__logo-icon {
4601
- animation: none;
2351
+ .ds-locale-dropdown__panel {
2352
+ transition: none;
4602
2353
  }
4603
- .ds-signup__spinner {
4604
- animation-duration: 1.5s;
2354
+ .ds-locale-dropdown__option {
2355
+ transition: none;
4605
2356
  }
4606
2357
  }
4607
2358
  @media (prefers-contrast: more) {
4608
- .ds-signup__card {
2359
+ .ds-locale-dropdown__trigger {
2360
+ outline: 1px solid var(--hc-border);
2361
+ outline-offset: -1px;
2362
+ }
2363
+ .ds-locale-dropdown__panel {
4609
2364
  border: 1px solid var(--hc-border);
2365
+ background: var(--hc-surface);
4610
2366
  }
4611
- .ds-signup__social-btn {
4612
- border: 1px solid var(--hc-border-subtle);
2367
+ .ds-locale-dropdown__option--active {
2368
+ background: rgba(var(--brand-pink-rgb), 0.3);
2369
+ border: 1px solid rgba(var(--brand-pink-rgb), 0.5);
4613
2370
  }
4614
- .ds-signup__social-btn::before {
4615
- display: none;
2371
+ }
2372
+ @supports not (backdrop-filter: blur(1px)) {
2373
+ .ds-locale-dropdown__panel {
2374
+ background: var(--fallback-surface);
4616
2375
  }
4617
2376
  }
4618
2377
 
4619
- /* src/components/ForgotPassword/ForgotPassword.css */
4620
- .ds-forgot {
4621
- position: relative;
4622
- display: flex;
4623
- flex-direction: column;
2378
+ /* src/components/ThemeSelector/ThemeSelector.css */
2379
+ .ds-theme-selector {
2380
+ display: inline-flex;
4624
2381
  align-items: center;
4625
- justify-content: center;
4626
- padding: var(--space-6);
4627
- }
4628
- .ds-forgot__accent {
4629
- position: absolute;
4630
- border-radius: 50%;
4631
- filter: blur(80px);
4632
- opacity: 0.5;
4633
- pointer-events: none;
4634
- animation: ds-forgot-float 20s ease-in-out infinite;
2382
+ border: 1px solid var(--rim-light-top);
2383
+ border-radius: var(--radius-badge);
2384
+ padding: var(--space-1);
2385
+ gap: var(--space-1);
4635
2386
  }
4636
- .ds-forgot__accent--1 {
4637
- width: 400px;
4638
- height: 400px;
4639
- background:
4640
- radial-gradient(
4641
- circle,
4642
- rgba(var(--accent-rgb), 0.4) 0%,
4643
- transparent 70%);
4644
- top: -100px;
4645
- right: -100px;
4646
- animation-delay: 0s;
4647
- }
4648
- .ds-forgot__accent--2 {
4649
- width: 300px;
4650
- height: 300px;
4651
- background:
4652
- radial-gradient(
4653
- circle,
4654
- rgba(var(--accent2-rgb), 0.3) 0%,
4655
- transparent 70%);
4656
- bottom: -50px;
4657
- left: -50px;
4658
- animation-delay: -10s;
4659
- }
4660
- @keyframes ds-forgot-float {
4661
- 0%, 100% {
4662
- transform: translate(0, 0) scale(1);
4663
- }
4664
- 25% {
4665
- transform: translate(20px, -30px) scale(1.05);
4666
- }
4667
- 50% {
4668
- transform: translate(-10px, 20px) scale(0.95);
4669
- }
4670
- 75% {
4671
- transform: translate(-30px, -10px) scale(1.02);
4672
- }
2387
+ [data-theme=light] .ds-theme-selector,
2388
+ [data-theme=light-contrast] .ds-theme-selector {
2389
+ background-color: var(--void-base);
4673
2390
  }
4674
- .ds-forgot__card {
4675
- position: relative;
4676
- width: 100%;
4677
- max-width: 400px;
4678
- padding: var(--space-8);
4679
- border-radius: var(--radius-panel);
2391
+ [data-theme=dark] .ds-theme-selector,
2392
+ [data-theme=dark-contrast] .ds-theme-selector {
4680
2393
  background: var(--glass-base);
4681
2394
  backdrop-filter: var(--glass-backdrop);
4682
2395
  -webkit-backdrop-filter: var(--glass-backdrop);
4683
- box-shadow: var(--glass-shadow-elevated-combined);
4684
- animation: ds-forgot-card-enter 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
4685
- opacity: 0;
4686
- transform: translateY(20px);
4687
- }
4688
- .ds-forgot__card::before {
4689
- content: "";
4690
- position: absolute;
4691
- inset: 0;
4692
- border-radius: inherit;
4693
- padding: 1px;
4694
- background:
4695
- linear-gradient(
4696
- 180deg,
4697
- var(--rim-light-hover-top) 0%,
4698
- var(--rim-light-bottom) 100%);
4699
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
4700
- mask-composite: exclude;
4701
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
4702
- -webkit-mask-composite: xor;
4703
- pointer-events: none;
4704
- }
4705
- .ds-forgot__card--centered {
4706
- text-align: center;
4707
- }
4708
- @keyframes ds-forgot-card-enter {
4709
- to {
4710
- opacity: 1;
4711
- transform: translateY(0);
4712
- }
4713
- }
4714
- .ds-forgot__header {
4715
- text-align: center;
4716
- margin-bottom: var(--space-6);
4717
- }
4718
- .ds-forgot__logo {
4719
- display: flex;
4720
- justify-content: center;
4721
- margin-bottom: var(--space-4);
4722
- animation: ds-forgot-fade-in 0.5s ease-out 0.1s forwards;
4723
- opacity: 0;
4724
- }
4725
- .ds-forgot__logo-icon {
4726
- width: 56px;
4727
- height: 56px;
4728
- }
4729
- .ds-forgot__logo-icon svg {
4730
- width: 100%;
4731
- height: 100%;
4732
- filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
4733
2396
  }
4734
- .ds-forgot__title {
4735
- font-family: var(--font-family);
4736
- font-size: var(--font-size-2xl);
4737
- font-weight: var(--font-weight-bold);
4738
- color: var(--text-primary);
4739
- margin: 0 0 var(--space-2);
4740
- animation: ds-forgot-fade-in 0.5s ease-out 0.2s forwards;
4741
- opacity: 0;
4742
- }
4743
- .ds-forgot__tagline {
4744
- font-family: var(--font-family);
4745
- font-size: var(--font-size-sm);
4746
- color: var(--text-secondary);
4747
- margin: 0;
4748
- line-height: var(--line-height-normal);
4749
- animation: ds-forgot-fade-in 0.5s ease-out 0.3s forwards;
4750
- opacity: 0;
4751
- }
4752
- .ds-forgot__tagline strong {
4753
- color: var(--text-primary);
4754
- }
4755
- @keyframes ds-forgot-fade-in {
4756
- to {
4757
- opacity: 1;
4758
- }
4759
- }
4760
- .ds-forgot__success-icon {
4761
- width: 64px;
4762
- height: 64px;
4763
- margin: 0 auto var(--space-6);
4764
- animation: ds-forgot-success-icon 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
4765
- }
4766
- .ds-forgot__success-icon svg {
4767
- width: 100%;
4768
- height: 100%;
4769
- }
4770
- @keyframes ds-forgot-success-icon {
4771
- 0% {
4772
- transform: scale(0);
4773
- opacity: 0;
4774
- }
4775
- 50% {
4776
- transform: scale(1.2);
4777
- }
4778
- 100% {
4779
- transform: scale(1);
4780
- opacity: 1;
4781
- }
4782
- }
4783
- .ds-forgot__error {
2397
+ .ds-theme-selector__btn {
4784
2398
  display: flex;
4785
2399
  align-items: center;
4786
2400
  gap: var(--space-2);
4787
- padding: var(--space-3) var(--space-4);
4788
- margin-bottom: var(--space-4);
4789
- border-radius: var(--radius-button);
4790
- background: rgba(var(--status-error-rgb), 0.1);
4791
- border: 1px solid rgba(var(--status-error-rgb), 0.3);
4792
- color: var(--status-error);
4793
- font-size: var(--font-size-sm);
4794
- animation: ds-forgot-error-enter 0.4s ease-out;
4795
- }
4796
- @keyframes ds-forgot-error-enter {
4797
- 0% {
4798
- opacity: 0;
4799
- transform: translateX(-10px);
4800
- }
4801
- 50% {
4802
- transform: translateX(5px);
4803
- }
4804
- 100% {
4805
- opacity: 1;
4806
- transform: translateX(0);
4807
- }
4808
- }
4809
- .ds-forgot__form {
4810
- animation: ds-forgot-fade-in 0.5s ease-out 0.4s forwards;
4811
- opacity: 0;
4812
- }
4813
- .ds-forgot__field {
4814
- margin-bottom: var(--space-4);
4815
- }
4816
- .ds-forgot__password-wrapper {
4817
- position: relative;
4818
- }
4819
- .ds-forgot__password-wrapper .ds-textfield__input {
4820
- padding-right: var(--space-12);
4821
- }
4822
- .ds-forgot__password-toggle {
4823
- position: absolute;
4824
- right: var(--space-3);
4825
- top: 60%;
4826
- transform: translateY(calc(-50% + 10px));
4827
- padding: var(--space-2);
2401
+ padding: var(--space-2) var(--space-3);
4828
2402
  border: none;
4829
2403
  background: transparent;
4830
- color: var(--text-tertiary);
4831
- cursor: pointer;
2404
+ color: var(--text-secondary);
2405
+ font-family: inherit;
2406
+ font-size: var(--font-size-sm, 14px);
2407
+ font-weight: 500;
4832
2408
  border-radius: var(--radius-badge);
4833
- transition: color var(--transition-glass), background var(--transition-glass);
2409
+ cursor: pointer;
2410
+ transition: color var(--transition-fast), background-color var(--transition-fast);
2411
+ line-height: 1;
2412
+ white-space: nowrap;
4834
2413
  }
4835
- .ds-forgot__password-toggle:hover {
2414
+ .ds-theme-selector__btn:hover {
4836
2415
  color: var(--text-primary);
4837
- background: var(--glass-base-hover);
4838
- }
4839
- .ds-forgot__submit {
4840
- width: 100%;
4841
- margin-top: var(--space-2);
4842
- }
4843
- .ds-forgot__spinner {
4844
- display: inline-block;
4845
- width: 20px;
4846
- height: 20px;
4847
- border: 2px solid var(--hc-border);
4848
- border-top-color: white;
4849
- border-radius: 50%;
4850
- animation: ds-forgot-spin 0.8s linear infinite;
2416
+ background-color: var(--interactive-hover-bg);
4851
2417
  }
4852
- @keyframes ds-forgot-spin {
4853
- to {
4854
- transform: rotate(360deg);
4855
- }
2418
+ .ds-theme-selector__btn--active {
2419
+ background-color: rgba(var(--accent-rgb), .2);
2420
+ box-shadow: none;
4856
2421
  }
4857
- .ds-forgot__hint {
4858
- margin-top: var(--space-6);
4859
- font-family: var(--font-family);
4860
- font-size: var(--font-size-sm);
4861
- color: var(--text-tertiary);
2422
+ [data-theme=light] .ds-theme-selector__btn--active .ds-theme-selector__label,
2423
+ [data-theme=light-contrast] .ds-theme-selector__btn--active .ds-theme-selector__label,
2424
+ [data-theme=dark] .ds-theme-selector__btn--active .ds-theme-selector__label,
2425
+ [data-theme=dark-contrast] .ds-theme-selector__btn--active .ds-theme-selector__label {
2426
+ color: var(--text-secondary);
4862
2427
  }
4863
- .ds-forgot__link {
4864
- padding: 0;
4865
- border: none;
4866
- background: transparent;
2428
+ .ds-theme-selector__btn--active .ds-theme-selector__icon {
4867
2429
  color: rgb(var(--accent-rgb));
4868
- font-family: var(--font-family);
4869
- font-size: inherit;
4870
- font-weight: var(--font-weight-medium);
4871
- cursor: pointer;
4872
- transition: color var(--transition-glass);
4873
- margin-left: var(--space-1);
4874
- }
4875
- .ds-forgot__link:hover:not(:disabled) {
4876
- text-decoration: underline;
4877
2430
  }
4878
- .ds-forgot__link:disabled {
4879
- opacity: 0.5;
4880
- cursor: not-allowed;
2431
+ .ds-theme-selector__icon {
2432
+ width: 16px;
2433
+ height: 16px;
2434
+ color: inherit;
2435
+ transition: color var(--transition-fast);
4881
2436
  }
4882
- .ds-forgot__footer {
2437
+
2438
+ /* src/components/ColorPicker/ColorPicker.css */
2439
+ .ds-color-picker {
4883
2440
  display: flex;
4884
- justify-content: center;
4885
- margin-top: var(--space-6);
4886
- padding-top: var(--space-6);
4887
- border-top: 1px solid var(--rim-light-bottom);
4888
- animation: ds-forgot-fade-in 0.5s ease-out 0.5s forwards;
4889
- opacity: 0;
2441
+ align-items: center;
2442
+ gap: var(--space-1);
2443
+ padding: var(--space-1);
2444
+ border-radius: var(--radius-badge);
2445
+ background: var(--interactive-hover-bg);
2446
+ border: 1px solid var(--rim-light-bottom);
4890
2447
  }
4891
- .ds-forgot__back {
2448
+ .ds-color-picker__swatch {
4892
2449
  display: flex;
4893
2450
  align-items: center;
4894
- gap: var(--space-2);
4895
- padding: var(--space-2) var(--space-3);
2451
+ justify-content: center;
2452
+ padding: var(--space-1);
4896
2453
  border: none;
4897
- border-radius: var(--radius-button);
2454
+ border-radius: var(--radius-xs);
4898
2455
  background: transparent;
4899
- color: var(--text-secondary);
4900
- font-family: var(--font-family);
4901
- font-size: var(--font-size-sm);
4902
- font-weight: var(--font-weight-medium);
4903
2456
  cursor: pointer;
4904
- transition: color var(--transition-glass), background var(--transition-glass);
2457
+ transition: background var(--transition-fast);
4905
2458
  }
4906
- .ds-forgot__back:hover:not(:disabled) {
4907
- color: var(--text-primary);
4908
- background: var(--glass-base-hover);
2459
+ .ds-color-picker__swatch:hover {
2460
+ background: var(--interactive-hover-bg);
4909
2461
  }
4910
- .ds-forgot__back:disabled {
4911
- opacity: 0.5;
4912
- cursor: not-allowed;
2462
+ .ds-color-picker__swatch--active {
2463
+ background: var(--interactive-active-bg);
4913
2464
  }
4914
- @media (max-width: 480px) {
4915
- .ds-forgot {
4916
- padding: var(--space-4);
4917
- }
4918
- .ds-forgot__card {
4919
- padding: var(--space-6);
4920
- border-radius: var(--radius-card);
4921
- }
4922
- .ds-forgot__accent--1 {
4923
- width: 200px;
4924
- height: 200px;
4925
- top: -50px;
4926
- right: -50px;
4927
- }
4928
- .ds-forgot__accent--2 {
4929
- width: 150px;
4930
- height: 150px;
4931
- bottom: -30px;
4932
- left: -30px;
4933
- }
2465
+ .ds-color-picker__dot {
2466
+ width: 14px;
2467
+ height: 14px;
2468
+ border-radius: 50%;
2469
+ background: var(--swatch-color);
2470
+ border: 1.5px solid var(--rim-light-bottom);
2471
+ transition: box-shadow var(--transition-fast);
4934
2472
  }
4935
- @media (prefers-reduced-motion: reduce) {
4936
- .ds-forgot__card,
4937
- .ds-forgot__logo,
4938
- .ds-forgot__title,
4939
- .ds-forgot__tagline,
4940
- .ds-forgot__form,
4941
- .ds-forgot__footer,
4942
- .ds-forgot__success-icon {
4943
- animation: none;
4944
- opacity: 1;
4945
- }
4946
- .ds-forgot__accent {
4947
- animation: none;
4948
- }
4949
- .ds-forgot__spinner {
4950
- animation-duration: 1.5s;
4951
- }
2473
+ .ds-color-picker__swatch--active .ds-color-picker__dot {
2474
+ box-shadow: 0 0 0 2px var(--swatch-color);
4952
2475
  }
4953
- @media (prefers-contrast: more) {
4954
- .ds-forgot__card {
4955
- border: 1px solid var(--hc-border);
4956
- }
2476
+ .ds-color-picker__swatch--custom {
2477
+ position: relative;
2478
+ }
2479
+ .ds-color-picker__native-input {
2480
+ position: absolute;
2481
+ inset: 0;
2482
+ width: 100%;
2483
+ height: 100%;
2484
+ opacity: 0;
2485
+ cursor: pointer;
2486
+ border: none;
2487
+ padding: 0;
4957
2488
  }
4958
2489
 
4959
2490
  /* src/styles/styles.css */
2491
+ @font-face {
2492
+ font-family: Anton;
2493
+ font-style: normal;
2494
+ font-weight: 400;
2495
+ font-display: swap;
2496
+ src: url("../Anton-Regular-MLEXVTB2.woff2") format("woff2");
2497
+ unicode-range:
2498
+ U+0000-00FF,
2499
+ U+0131,
2500
+ U+0152-0153,
2501
+ U+02BB-02BC,
2502
+ U+02C6,
2503
+ U+02DA,
2504
+ U+02DC,
2505
+ U+0304,
2506
+ U+0308,
2507
+ U+0329,
2508
+ U+2000-206F,
2509
+ U+20AC,
2510
+ U+2122,
2511
+ U+2191,
2512
+ U+2193,
2513
+ U+2212,
2514
+ U+2215,
2515
+ U+FEFF,
2516
+ U+FFFD;
2517
+ }