@seekbuddy/dsh-ui 0.0.0-stage → 0.2.0-beta.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 (195) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/LICENSE +22 -0
  3. package/README.md +175 -2
  4. package/README.zh.md +176 -0
  5. package/THIRD_PARTY_NOTICES.md +42 -0
  6. package/UPSTREAM.md +56 -0
  7. package/dist/blocks.js +1582 -0
  8. package/dist/chunks/chunk-23KOEBWJ.js +104 -0
  9. package/dist/chunks/chunk-3HCOU44R.js +697 -0
  10. package/dist/chunks/chunk-5JXG4BHW.js +31 -0
  11. package/dist/chunks/chunk-5XDVPALS.js +61 -0
  12. package/dist/chunks/chunk-AY44MQMD.js +3052 -0
  13. package/dist/chunks/chunk-B3EEK7A2.js +408 -0
  14. package/dist/chunks/chunk-CEBTQO6W.js +24 -0
  15. package/dist/chunks/chunk-CI73NXA5.js +202 -0
  16. package/dist/chunks/chunk-CTQPGUZP.js +22 -0
  17. package/dist/chunks/chunk-F352IICS.js +57 -0
  18. package/dist/chunks/chunk-IOBKTEKP.js +144 -0
  19. package/dist/chunks/chunk-KETGFAOH.js +66 -0
  20. package/dist/chunks/chunk-LA3QDZYN.js +2777 -0
  21. package/dist/chunks/chunk-NE62SYOZ.js +89 -0
  22. package/dist/chunks/chunk-OQPH36OI.js +754 -0
  23. package/dist/chunks/chunk-QJKAQ6PO.js +155 -0
  24. package/dist/chunks/chunk-R6AUJQ3G.js +129 -0
  25. package/dist/chunks/chunk-RNVSCTW7.js +24 -0
  26. package/dist/chunks/chunk-RZOP2PFC.js +152 -0
  27. package/dist/chunks/chunk-TQU54HSM.js +112 -0
  28. package/dist/chunks/chunk-TUK6UGXM.js +36 -0
  29. package/dist/chunks/chunk-TZ7HRE6D.js +328 -0
  30. package/dist/chunks/chunk-VIH56PDF.js +57 -0
  31. package/dist/chunks/chunk-WUL523OW.js +27 -0
  32. package/dist/chunks/chunk-XX6MSZLS.js +261 -0
  33. package/dist/chunks/chunk-ZA47FP7C.js +7 -0
  34. package/dist/chunks/chunk-ZZNL5PWF.js +170 -0
  35. package/dist/icons.js +803 -0
  36. package/dist/index.js +1182 -0
  37. package/dist/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  38. package/dist/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  39. package/dist/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  40. package/dist/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  41. package/dist/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  42. package/dist/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
  43. package/dist/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  44. package/dist/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
  45. package/dist/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
  46. package/dist/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  47. package/dist/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
  48. package/dist/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  49. package/dist/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  50. package/dist/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  51. package/dist/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
  52. package/dist/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  53. package/dist/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  54. package/dist/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  55. package/dist/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  56. package/dist/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  57. package/dist/katex.css +1 -0
  58. package/dist/katex.css.d.ts +2 -0
  59. package/dist/markdown.js +148 -0
  60. package/dist/meta.json +6876 -0
  61. package/dist/root-inputs.json +67 -0
  62. package/dist/seekbuddy-card.js +7 -0
  63. package/dist/seekbuddy-empty.js +8 -0
  64. package/dist/seekbuddy-internal/DangerButton.js +7 -0
  65. package/dist/seekbuddy-internal/Mark.js +7 -0
  66. package/dist/seekbuddy-internal/Message.js +10 -0
  67. package/dist/seekbuddy-internal/Pagination.js +9 -0
  68. package/dist/seekbuddy-internal/StatusBadge.js +7 -0
  69. package/dist/seekbuddy-internal/SubtleButton.js +7 -0
  70. package/dist/seekbuddy-internal/Switch.js +7 -0
  71. package/dist/seekbuddy-internal/Upload.js +7 -0
  72. package/dist/seekbuddy-internal/date/Calendar.js +8 -0
  73. package/dist/seekbuddy-internal/date/DatePicker.js +9 -0
  74. package/dist/seekbuddy-internal/date/DateRangePicker.js +9 -0
  75. package/dist/seekbuddy-internal/date/TimePicker.js +8 -0
  76. package/dist/seekbuddy-internal/date/fields.js +16 -0
  77. package/dist/seekbuddy-internal/qr/QrCode.js +7 -0
  78. package/dist/seekbuddy-spinner.js +7 -0
  79. package/dist/seekbuddy-tabs.js +7 -0
  80. package/dist/seekbuddy-timeline.js +8 -0
  81. package/dist/seekbuddy.js +89 -0
  82. package/dist/theme-bootstrap.js +13 -0
  83. package/dist/theme.js +37 -0
  84. package/dist/tokens.css +934 -0
  85. package/dist/tokens.css.d.ts +2 -0
  86. package/dist/types/Button.d.ts +18 -0
  87. package/dist/types/Checkbox.d.ts +19 -0
  88. package/dist/types/CodeFileIcon.d.ts +11 -0
  89. package/dist/types/CodeToolbar.d.ts +29 -0
  90. package/dist/types/ConfigField.d.ts +32 -0
  91. package/dist/types/ConnectionIndicator.d.ts +25 -0
  92. package/dist/types/DiffBlock.d.ts +51 -0
  93. package/dist/types/DisclosureRow.d.ts +35 -0
  94. package/dist/types/FileTypeIcon.d.ts +42 -0
  95. package/dist/types/FoldToggle.d.ts +19 -0
  96. package/dist/types/HoverCard.d.ts +36 -0
  97. package/dist/types/ImageLightbox.d.ts +26 -0
  98. package/dist/types/ImagePreview.d.ts +11 -0
  99. package/dist/types/Input.d.ts +11 -0
  100. package/dist/types/JsonTree.d.ts +58 -0
  101. package/dist/types/LinkIcon.d.ts +33 -0
  102. package/dist/types/Menu.d.ts +142 -0
  103. package/dist/types/MenuGroup.d.ts +21 -0
  104. package/dist/types/MenuSurface.d.ts +15 -0
  105. package/dist/types/Modal.d.ts +43 -0
  106. package/dist/types/PermissionIcon.d.ts +38 -0
  107. package/dist/types/Pill.d.ts +12 -0
  108. package/dist/types/ReadBlock.d.ts +47 -0
  109. package/dist/types/ReferenceIcon.d.ts +20 -0
  110. package/dist/types/RiskConfirmation.d.ts +19 -0
  111. package/dist/types/SearchBlock.d.ts +71 -0
  112. package/dist/types/SegmentedControl.d.ts +34 -0
  113. package/dist/types/SegmentedTabs.d.ts +25 -0
  114. package/dist/types/ShortcutKeys.d.ts +10 -0
  115. package/dist/types/SiteGlyph.d.ts +24 -0
  116. package/dist/types/StateDot.d.ts +19 -0
  117. package/dist/types/Switch.d.ts +19 -0
  118. package/dist/types/Tag.d.ts +31 -0
  119. package/dist/types/TerminalBlock.d.ts +77 -0
  120. package/dist/types/TextShimmer.d.ts +22 -0
  121. package/dist/types/Toast.d.ts +48 -0
  122. package/dist/types/Tooltip.d.ts +63 -0
  123. package/dist/types/WebBlock.d.ts +60 -0
  124. package/dist/types/ansi.d.ts +16 -0
  125. package/dist/types/blocks.d.ts +19 -0
  126. package/dist/types/clipboard.d.ts +8 -0
  127. package/dist/types/code-file-icon-artwork.d.ts +53 -0
  128. package/dist/types/code-file-types.d.ts +29 -0
  129. package/dist/types/code-highlighting.d.ts +11 -0
  130. package/dist/types/css-modules.d.ts +6 -0
  131. package/dist/types/darwin-desktop.d.ts +8 -0
  132. package/dist/types/file-size.d.ts +7 -0
  133. package/dist/types/focus.d.ts +8 -0
  134. package/dist/types/guide-artwork.d.ts +14 -0
  135. package/dist/types/head-tail-cap.d.ts +22 -0
  136. package/dist/types/icons/index.d.ts +384 -0
  137. package/dist/types/icons/props.d.ts +8 -0
  138. package/dist/types/icons/shared-artwork.d.ts +42 -0
  139. package/dist/types/icons.d.ts +6 -0
  140. package/dist/types/index.d.ts +53 -0
  141. package/dist/types/input-modality.d.ts +18 -0
  142. package/dist/types/keyboard-composition.d.ts +10 -0
  143. package/dist/types/markdown/CodeBlock.d.ts +34 -0
  144. package/dist/types/markdown/JsonBlock.d.ts +7 -0
  145. package/dist/types/markdown/MarkdownDelegate.d.ts +45 -0
  146. package/dist/types/markdown/MarkdownText.d.ts +47 -0
  147. package/dist/types/markdown/cjkFriendlyStrong.d.ts +8 -0
  148. package/dist/types/markdown/file-link.d.ts +12 -0
  149. package/dist/types/markdown/highlight.d.ts +147 -0
  150. package/dist/types/markdown/incremental.d.ts +79 -0
  151. package/dist/types/markdown/katex.d.ts +18 -0
  152. package/dist/types/markdown/local-image-syntax.d.ts +9 -0
  153. package/dist/types/markdown/mathCompatibility.d.ts +10 -0
  154. package/dist/types/markdown/parse.d.ts +24 -0
  155. package/dist/types/markdown/plain-text.d.ts +21 -0
  156. package/dist/types/markdown/render.d.ts +140 -0
  157. package/dist/types/markdown/useViewportHighlighting.d.ts +10 -0
  158. package/dist/types/markdown.d.ts +9 -0
  159. package/dist/types/overlay-top-margin.d.ts +7 -0
  160. package/dist/types/plugin-artwork.d.ts +16 -0
  161. package/dist/types/pointer-grace.d.ts +21 -0
  162. package/dist/types/rank-by-name.d.ts +21 -0
  163. package/dist/types/relative-time.d.ts +22 -0
  164. package/dist/types/seekbuddy/Card.d.ts +28 -0
  165. package/dist/types/seekbuddy/DangerButton.d.ts +31 -0
  166. package/dist/types/seekbuddy/Empty.d.ts +34 -0
  167. package/dist/types/seekbuddy/Mark.d.ts +27 -0
  168. package/dist/types/seekbuddy/Message.d.ts +52 -0
  169. package/dist/types/seekbuddy/Pagination.d.ts +66 -0
  170. package/dist/types/seekbuddy/Spinner.d.ts +20 -0
  171. package/dist/types/seekbuddy/StatusBadge.d.ts +33 -0
  172. package/dist/types/seekbuddy/SubtleButton.d.ts +30 -0
  173. package/dist/types/seekbuddy/Switch.d.ts +36 -0
  174. package/dist/types/seekbuddy/Tabs.d.ts +49 -0
  175. package/dist/types/seekbuddy/Timeline.d.ts +42 -0
  176. package/dist/types/seekbuddy/Upload.d.ts +101 -0
  177. package/dist/types/seekbuddy/date/Calendar.d.ts +94 -0
  178. package/dist/types/seekbuddy/date/DatePicker.d.ts +29 -0
  179. package/dist/types/seekbuddy/date/DateRangePicker.d.ts +41 -0
  180. package/dist/types/seekbuddy/date/TimePicker.d.ts +35 -0
  181. package/dist/types/seekbuddy/date/date.d.ts +79 -0
  182. package/dist/types/seekbuddy/date/fields.d.ts +45 -0
  183. package/dist/types/seekbuddy/index.d.ts +49 -0
  184. package/dist/types/seekbuddy/qr/QrCode.d.ts +37 -0
  185. package/dist/types/seekbuddy/qr/qr.d.ts +38 -0
  186. package/dist/types/theme-bootstrap.d.ts +3 -0
  187. package/dist/types/theme-core.d.ts +14 -0
  188. package/dist/types/theme.d.ts +4 -0
  189. package/dist/types/use-copy-feedback.d.ts +13 -0
  190. package/dist/types/useAnchoredMaxHeight.d.ts +13 -0
  191. package/dist/types/useAnchoredPosition.d.ts +35 -0
  192. package/dist/types/useDismissOnOutsidePointer.d.ts +10 -0
  193. package/dist/types/useModalLayer.d.ts +26 -0
  194. package/dist/types/user-text.d.ts +36 -0
  195. package/package.json +151 -4
@@ -0,0 +1,934 @@
1
+ /* Base variables referenced by the token sheets and component CSS but defined
2
+ * upstream (deepsuite theme/global.css) — supplied here so the composite
3
+ * --dsw-font-* variables resolve and motion rides the upstream curve. Code
4
+ * font stack deliberately omits a bare `monospace` tail (Windows CJK falls
5
+ * back to SimSun otherwise). */
6
+ :root {
7
+ --dsw-font-family:
8
+ -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei',
9
+ 'Helvetica Neue', Helvetica, Arial, sans-serif;
10
+ --dsw-font-family-brand: 'Montserrat', var(--dsw-font-family);
11
+ --ds-font-family-code:
12
+ 'SF Mono', 'JetBrains Mono', 'Fira Code', Consolas, 'Liberation Mono', Menlo, Courier, 'PingFang SC',
13
+ 'Microsoft YaHei';
14
+ --ds-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
15
+ --ds-transition-duration: 0.2s;
16
+ --ds-transition-duration-fast: 0.1s;
17
+ --ds-transition-duration-slow: 0.3s;
18
+ --dsw-radius-xs: 4px;
19
+ --dsw-radius-sm: 8px;
20
+ --dsw-radius-md: 12px;
21
+ --dsw-radius-lg: 16px;
22
+ --dsw-radius-xl: 20px;
23
+ --dsw-radius-panel: 28px;
24
+ }
25
+
26
+ body {
27
+ --dsw-alias-settings-card-fill: var(--dsw-alias-bg-layer-2);
28
+ --dsw-alias-settings-card-stroke: var(--dsw-alias-border-l4);
29
+ }
30
+
31
+ [data-dsh-automatic-focus]:focus,
32
+ [data-dsh-automatic-focus]:focus:focus-visible {
33
+ outline: none;
34
+ }
35
+
36
+ /* Smooth corner curvature for every rounded surface. Inside the support
37
+ * guard, all corners curve along superellipse(1.5) — between a circular arc
38
+ * (round = superellipse(1)) and a squircle (superellipse(2)) — instead of the
39
+ * default arc; engines without corner-shape keep circular corners because the
40
+ * token and the rule exist only inside the guard.
41
+ *
42
+ * corner-shape does not inherit, so the universal selector applies the token
43
+ * to elements and their ::before/::after; other pseudo-elements (for example
44
+ * the ::-webkit-scrollbar parts) stay circular.
45
+ *
46
+ * Full-round shapes opt out where they are declared: a superellipse deforms a
47
+ * circle into a squircle and squares off capsule ends, so every effectively
48
+ * uncapped radius (50%, 100%, or a pill radius far above the box size) pairs
49
+ * `corner-shape: round` with its `border-radius` in the owning component
50
+ * sheet. The corner-shape stylesheet spec enforces that pairing. */
51
+ @supports (corner-shape: superellipse(1.5)) {
52
+ :root {
53
+ --dsw-corner-shape: superellipse(1.5);
54
+ }
55
+
56
+ *,
57
+ *::before,
58
+ *::after {
59
+ corner-shape: var(--dsw-corner-shape);
60
+ }
61
+ }
62
+
63
+ /* Figma font-weight 510 (an SF Pro variable-font weight) always renders as
64
+ font-weight: 500 in this UI — non-variable webfonts snap intermediate
65
+ weights unpredictably across platforms. */
66
+ body {
67
+ --dsw-static-amber-100: rgb(254, 245, 231);
68
+ --dsw-static-amber-400: rgb(247, 173, 49);
69
+ --dsw-static-amber-500: rgb(245, 158, 11);
70
+ --dsw-static-amber-600: rgb(221, 134, 41);
71
+ --dsw-static-amber-900: rgb(39, 36, 31);
72
+ --dsw-static-blue-100: rgb(219, 234, 254);
73
+ --dsw-static-blue-300: rgb(147, 197, 253);
74
+ --dsw-static-blue-400: rgb(96, 165, 250);
75
+ --dsw-static-blue-450: rgb(77, 147, 248);
76
+ --dsw-static-blue-500: rgb(59, 130, 246);
77
+ --dsw-static-blue-50: rgb(239, 246, 255);
78
+ --dsw-static-blue-50p: rgb(234, 243, 255);
79
+ --dsw-static-blue-600: rgb(37, 99, 235);
80
+ --dsw-static-blue-75: rgb(229, 240, 255);
81
+ --dsw-static-blue-800: rgb(30, 64, 175);
82
+ --dsw-static-blue-900: rgb(14, 48, 116);
83
+ --dsw-static-blue-950: rgb(23, 37, 84);
84
+ --dsw-static-deepseek-100: rgb(228, 237, 253);
85
+ --dsw-static-deepseek-200: rgb(211, 226, 255);
86
+ --dsw-static-deepseek-300: rgb(183, 200, 254);
87
+ /* Brightened from the platform rgb(103, 158, 254) at the designer's request: legibility on the dark toast surface. */
88
+ --dsw-static-deepseek-400: rgb(122, 170, 255);
89
+ --dsw-static-deepseek-450: rgb(86, 134, 254);
90
+ --dsw-static-deepseek-500: rgb(65, 118, 230);
91
+ --dsw-static-deepseek-50: rgb(237, 243, 254);
92
+ --dsw-static-deepseek-600: rgb(72, 104, 178);
93
+ --dsw-static-deepseek-700-delete: rgb(47, 76, 143);
94
+ --dsw-static-deepseek-800: rgb(52, 65, 91);
95
+ --dsw-static-deepseek-900: rgb(40, 49, 66);
96
+ --dsw-static-green-100: rgb(230, 250, 237);
97
+ --dsw-static-green-400: rgb(78, 209, 126);
98
+ --dsw-static-green-500: rgb(34, 197, 94);
99
+ --dsw-static-green-500-a08: rgb(34 197 94 / 8%);
100
+ --dsw-static-green-500-a12: rgb(34 197 94 / 12%);
101
+ --dsw-static-green-900: rgb(35, 60, 44);
102
+ --dsw-static-neutral-00: rgb(255, 255, 255);
103
+ --dsw-static-neutral-1000: rgb(0, 0, 0);
104
+ --dsw-static-neutral-100: rgb(245, 245, 245);
105
+ --dsw-static-neutral-150: rgb(237, 237, 237);
106
+ --dsw-static-neutral-200: rgb(229, 229, 229);
107
+ --dsw-static-neutral-250: rgb(220, 220, 220);
108
+ --dsw-static-neutral-300: rgb(212, 212, 212);
109
+ --dsw-static-neutral-400: rgb(162, 164, 166);
110
+ --dsw-static-neutral-500: rgb(127, 130, 135);
111
+ --dsw-static-neutral-50: rgb(250, 250, 250);
112
+ --dsw-static-neutral-550: rgb(101, 103, 107);
113
+ --dsw-static-neutral-600: rgb(84, 85, 87);
114
+ --dsw-static-neutral-700: rgb(60, 60, 61);
115
+ --dsw-static-neutral-800: rgb(41, 41, 41);
116
+ --dsw-static-neutral-850: rgb(33, 33, 35);
117
+ --dsw-static-neutral-900: rgb(15, 15, 15);
118
+ --dsw-static-neutral-bluish-00: rgb(255, 255, 255);
119
+ --dsw-static-neutral-bluish-1000: rgb(15, 17, 21);
120
+ --dsw-static-neutral-bluish-100: rgb(235, 238, 242);
121
+ --dsw-static-neutral-bluish-150: rgb(233, 236, 242);
122
+ --dsw-static-neutral-bluish-200: rgb(225, 229, 238);
123
+ --dsw-static-neutral-bluish-300: rgb(207, 211, 214);
124
+ --dsw-static-neutral-bluish-400: rgb(173, 178, 184);
125
+ --dsw-static-neutral-bluish-500: rgb(151, 157, 166);
126
+ --dsw-static-neutral-bluish-50: rgb(249, 250, 251);
127
+ --dsw-static-neutral-bluish-600: rgb(129, 133, 140);
128
+ --dsw-static-neutral-bluish-60: rgb(245, 246, 247);
129
+ --dsw-static-neutral-bluish-700: rgb(97, 102, 107);
130
+ --dsw-static-neutral-bluish-750: rgb(67, 69, 74);
131
+ --dsw-static-neutral-bluish-75: rgb(241, 243, 245);
132
+ --dsw-static-neutral-bluish-800: rgb(53, 54, 56);
133
+ --dsw-static-neutral-bluish-850: rgb(44, 44, 46);
134
+ --dsw-static-neutral-bluish-875: rgb(35, 35, 36);
135
+ --dsw-static-neutral-bluish-900: rgb(27, 27, 28);
136
+ --dsw-static-neutral-bluish-950: rgb(21, 21, 23);
137
+ --dsw-static-red-100: rgb(254, 226, 226);
138
+ --dsw-static-red-400: rgb(242, 90, 90);
139
+ --dsw-static-red-400-a12: rgb(242 90 90 / 12%);
140
+ --dsw-static-red-500: rgb(239, 68, 68);
141
+ --dsw-static-red-50: rgb(254, 242, 242);
142
+ --dsw-static-red-600: rgb(236, 19, 19);
143
+ --dsw-static-red-600-a08: rgb(236 19 19 / 8%);
144
+ --dsw-static-red-900: rgb(87, 12, 12);
145
+ }
146
+
147
+ body[data-ds-dark-theme] {
148
+ --dsw-static-amber-100: rgb(254, 245, 231);
149
+ --dsw-static-amber-400: rgb(247, 173, 49);
150
+ --dsw-static-amber-500: rgb(245, 158, 11);
151
+ --dsw-static-amber-600: rgb(221, 134, 41);
152
+ --dsw-static-amber-900: rgb(39, 36, 31);
153
+ --dsw-static-blue-100: rgb(219, 234, 254);
154
+ --dsw-static-blue-300: rgb(147, 197, 253);
155
+ --dsw-static-blue-400: rgb(96, 165, 250);
156
+ --dsw-static-blue-450: rgb(77, 147, 248);
157
+ --dsw-static-blue-500: rgb(59, 130, 246);
158
+ --dsw-static-blue-50: rgb(239, 246, 255);
159
+ --dsw-static-blue-50p: rgb(234, 243, 255);
160
+ --dsw-static-blue-600: rgb(37, 99, 235);
161
+ --dsw-static-blue-75: rgb(229, 240, 255);
162
+ --dsw-static-blue-800: rgb(30, 64, 175);
163
+ --dsw-static-blue-900: rgb(14, 48, 116);
164
+ --dsw-static-blue-950: rgb(23, 37, 84);
165
+ --dsw-static-deepseek-100: rgb(228, 237, 253);
166
+ --dsw-static-deepseek-200: rgb(211, 226, 255);
167
+ --dsw-static-deepseek-300: rgb(183, 200, 254);
168
+ /* Brightened from the platform rgb(103, 158, 254) at the designer's request: legibility on the dark toast surface. */
169
+ --dsw-static-deepseek-400: rgb(122, 170, 255);
170
+ --dsw-static-deepseek-450: rgb(86, 134, 254);
171
+ --dsw-static-deepseek-500: rgb(65, 118, 230);
172
+ --dsw-static-deepseek-50: rgb(237, 243, 254);
173
+ --dsw-static-deepseek-600: rgb(72, 104, 178);
174
+ --dsw-static-deepseek-700-delete: rgb(47, 76, 143);
175
+ --dsw-static-deepseek-800: rgb(52, 65, 91);
176
+ --dsw-static-deepseek-900: rgb(40, 49, 66);
177
+ --dsw-static-green-100: rgb(230, 250, 237);
178
+ --dsw-static-green-400: rgb(78, 209, 126);
179
+ --dsw-static-green-500: rgb(34, 197, 94);
180
+ --dsw-static-green-500-a08: rgb(34 197 94 / 8%);
181
+ --dsw-static-green-500-a12: rgb(34 197 94 / 12%);
182
+ --dsw-static-green-900: rgb(35, 60, 44);
183
+ --dsw-static-neutral-00: rgb(255, 255, 255);
184
+ --dsw-static-neutral-1000: rgb(0, 0, 0);
185
+ --dsw-static-neutral-100: rgb(245, 245, 245);
186
+ --dsw-static-neutral-150: rgb(237, 237, 237);
187
+ --dsw-static-neutral-200: rgb(229, 229, 229);
188
+ --dsw-static-neutral-250: rgb(220, 220, 220);
189
+ --dsw-static-neutral-300: rgb(212, 212, 212);
190
+ --dsw-static-neutral-400: rgb(162, 164, 166);
191
+ --dsw-static-neutral-500: rgb(127, 130, 135);
192
+ --dsw-static-neutral-50: rgb(250, 250, 250);
193
+ --dsw-static-neutral-550: rgb(101, 103, 107);
194
+ --dsw-static-neutral-600: rgb(84, 85, 87);
195
+ --dsw-static-neutral-700: rgb(60, 60, 61);
196
+ --dsw-static-neutral-800: rgb(41, 41, 41);
197
+ --dsw-static-neutral-850: rgb(33, 33, 35);
198
+ --dsw-static-neutral-900: rgb(15, 15, 15);
199
+ --dsw-static-neutral-bluish-00: rgb(255, 255, 255);
200
+ --dsw-static-neutral-bluish-1000: rgb(15, 17, 21);
201
+ --dsw-static-neutral-bluish-100: rgb(235, 238, 242);
202
+ --dsw-static-neutral-bluish-150: rgb(233, 236, 242);
203
+ --dsw-static-neutral-bluish-200: rgb(225, 229, 238);
204
+ --dsw-static-neutral-bluish-300: rgb(207, 211, 214);
205
+ --dsw-static-neutral-bluish-400: rgb(173, 178, 184);
206
+ --dsw-static-neutral-bluish-500: rgb(151, 157, 166);
207
+ --dsw-static-neutral-bluish-50: rgb(249, 250, 251);
208
+ --dsw-static-neutral-bluish-600: rgb(129, 133, 140);
209
+ --dsw-static-neutral-bluish-60: rgb(249, 250, 251);
210
+ --dsw-static-neutral-bluish-700: rgb(97, 102, 107);
211
+ --dsw-static-neutral-bluish-750: rgb(67, 69, 74);
212
+ --dsw-static-neutral-bluish-75: rgb(241, 243, 245);
213
+ --dsw-static-neutral-bluish-800: rgb(53, 54, 56);
214
+ --dsw-static-neutral-bluish-850: rgb(44, 44, 46);
215
+ --dsw-static-neutral-bluish-875: rgb(35, 35, 36);
216
+ --dsw-static-neutral-bluish-900: rgb(27, 27, 28);
217
+ --dsw-static-neutral-bluish-950: rgb(21, 21, 23);
218
+ --dsw-static-red-100: rgb(254, 226, 226);
219
+ --dsw-static-red-400: rgb(242, 90, 90);
220
+ --dsw-static-red-400-a12: rgb(242 90 90 / 12%);
221
+ --dsw-static-red-500: rgb(239, 68, 68);
222
+ --dsw-static-red-50: rgb(254, 242, 242);
223
+ --dsw-static-red-600: rgb(236, 19, 19);
224
+ --dsw-static-red-600-a08: rgb(236 19 19 / 8%);
225
+ --dsw-static-red-900: rgb(87, 12, 12);
226
+ }
227
+
228
+ body {
229
+ --dsw-alias-bg-base: var(--dsw-static-neutral-bluish-00);
230
+ --dsw-alias-bg-document-preview: var(--dsw-static-neutral-bluish-100);
231
+ --dsw-alias-bg-document-selection: color-mix(in srgb, var(--dsw-static-blue-500) 40%, transparent);
232
+ --dsw-alias-label-document-preview: var(--dsw-static-neutral-bluish-700);
233
+ --dsw-alias-bg-layer-1: var(--dsw-static-neutral-bluish-00);
234
+ --dsw-alias-bg-layer-2: var(--dsw-static-neutral-bluish-00);
235
+ --dsw-alias-bg-layer-3: var(--dsw-static-neutral-bluish-00);
236
+ --dsw-alias-bg-mask-1: rgba(0, 0, 0, 0.24);
237
+ --dsw-alias-bg-mask-2: rgba(0, 0, 0, 0.12);
238
+ --dsw-alias-bg-mask-3: rgba(0, 0, 0, 0.48);
239
+ --dsw-alias-bg-mask-photo: rgba(0, 0, 0, 0.88);
240
+ --dsw-alias-bg-mask-drop: rgba(255, 255, 255, 0.7);
241
+ --dsw-alias-bg-module-platform: var(--dsw-static-neutral-bluish-60);
242
+ --dsw-alias-bg-multi-select: var(--dsw-static-neutral-bluish-60);
243
+ --dsw-alias-bg-overlay: var(--dsw-static-neutral-bluish-150);
244
+ --dsw-alias-bg-skeleton: rgba(0, 0, 0, 0.04);
245
+ --dsw-alias-border-inverted2: rgba(0, 0, 0, 0);
246
+ --dsw-alias-border-inverted: rgba(0, 0, 0, 0);
247
+ --dsw-alias-border-l1: rgba(0, 0, 0, 0.04);
248
+ --dsw-alias-border-l2-darkmode-thin: rgba(0, 0, 0, 0.1);
249
+ --dsw-alias-border-l2: rgba(0, 0, 0, 0.1);
250
+ --dsw-alias-border-l3: rgba(0, 0, 0, 0.12);
251
+ --dsw-alias-border-l4: rgba(0, 0, 0, 0.16);
252
+ --dsw-alias-brand-primary-invert: var(--dsw-static-neutral-bluish-1000);
253
+ --dsw-alias-brand-primary-new-colorprimary-new-color: rgb(65, 118, 230);
254
+ --dsw-alias-brand-primary: var(--dsw-static-neutral-bluish-1000);
255
+ --dsw-alias-brand-text: var(--dsw-static-neutral-bluish-1000);
256
+ --dsw-alias-button-contrast-fill: var(--dsw-static-neutral-bluish-700);
257
+ --dsw-alias-button-elevated-fill: var(--dsw-static-neutral-bluish-00);
258
+ --dsw-alias-button-floating-fill: var(--dsw-static-neutral-bluish-00);
259
+ --dsw-alias-button-floating-hover: var(--dsw-static-neutral-bluish-75);
260
+ --dsw-alias-button-ghost-active-border: var(--dsw-static-neutral-bluish-500);
261
+ --dsw-alias-button-ghost-active-fill: var(--dsw-static-neutral-bluish-100);
262
+ --dsw-alias-button-ghost-active-hover: var(--dsw-static-neutral-bluish-150);
263
+ --dsw-alias-button-info-fill: var(--dsw-static-deepseek-500);
264
+ --dsw-alias-button-info-hover: var(--dsw-static-deepseek-400);
265
+ --dsw-alias-button-primary-dimmed: var(--dsw-static-neutral-bluish-100);
266
+ --dsw-alias-button-primary-fill: var(--dsw-alias-brand-primary);
267
+ --dsw-alias-button-primary-hover: var(--dsw-static-neutral-bluish-750);
268
+ --dsw-alias-button-tool-bar-fill-invisible: rgba(31, 31, 31, 0.36);
269
+ --dsw-alias-button-tool-bar-fill: rgba(84, 85, 87, 0.5);
270
+ --dsw-alias-button-tool-bar-hover: rgba(84, 85, 87, 0.6);
271
+ --dsw-alias-interactive-bg-active: rgba(38, 49, 72, 0.1);
272
+ --dsw-alias-interactive-bg-hover-accent: rgba(38, 49, 72, 0.14);
273
+ --dsw-alias-interactive-bg-hover-danger: rgba(236, 19, 19, 0.05);
274
+ --dsw-alias-interactive-bg-hover-solid: var(--dsw-static-neutral-bluish-75);
275
+ --dsw-alias-interactive-bg-hover: rgba(38, 49, 72, 0.06);
276
+ --dsw-alias-label-caption: var(--dsw-static-neutral-bluish-400);
277
+ --dsw-alias-label-deep-diving: color-mix(in srgb, var(--dsw-static-deepseek-500) 70%, var(--dsw-static-blue-950));
278
+ --dsw-alias-label-deep-diving-shimmer: color-mix(
279
+ in srgb,
280
+ var(--dsw-static-deepseek-500) 30%,
281
+ var(--dsw-static-blue-950)
282
+ );
283
+ --dsw-alias-label-dimmed: var(--dsw-static-neutral-bluish-200);
284
+ --dsw-alias-label-primary-bluish: var(--dsw-static-blue-900);
285
+ --dsw-alias-label-primary-dimmed: var(--dsw-static-neutral-bluish-950);
286
+ --dsw-alias-label-primary-foreground: var(--dsw-static-neutral-bluish-00);
287
+ --dsw-alias-label-primary-inverted: var(--dsw-static-neutral-bluish-00);
288
+ --dsw-alias-label-primary: var(--dsw-static-neutral-bluish-1000);
289
+ --dsw-alias-label-secondary: var(--dsw-static-neutral-bluish-700);
290
+ --dsw-alias-label-shimmer: color-mix(in srgb, var(--dsw-static-neutral-1000) 30%, transparent);
291
+ --dsw-alias-label-tertiary: var(--dsw-static-neutral-bluish-600);
292
+ --dsw-alias-menu-icon: var(--dsw-static-neutral-bluish-800);
293
+ --dsw-alias-link: var(--dsw-static-deepseek-500);
294
+ --dsw-alias-markdown-citation: var(--dsw-static-neutral-bluish-100);
295
+ --dsw-alias-markdown-code-block-banner: var(--dsw-static-neutral-bluish-50);
296
+ --dsw-alias-markdown-code-block: var(--dsw-static-neutral-bluish-50);
297
+ --dsw-alias-markdown-code-segment-selected: var(--dsw-static-neutral-bluish-00);
298
+ --dsw-alias-markdown-code-segment-unselected: var(--dsw-static-neutral-bluish-75);
299
+ --dsw-alias-markdown-inline-code: var(--dsw-static-neutral-50);
300
+ --dsw-alias-markdown-placeholder: var(--dsw-static-neutral-bluish-60);
301
+ --dsw-alias-markdown-tag: var(--dsw-static-neutral-bluish-75);
302
+ --dsw-alias-scrollbar-bg-l1: var(--dsw-static-neutral-200);
303
+ --dsw-alias-scrollbar-bg-l2: var(--dsw-static-neutral-200);
304
+ --dsw-alias-scrollbar-hover-l1: var(--dsw-static-neutral-300);
305
+ --dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-300);
306
+ --dsw-alias-state-business-primary: var(--dsw-static-deepseek-500);
307
+ --dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-100);
308
+ --dsw-alias-code-diff-added: var(--dsw-static-green-500-a08);
309
+ --dsw-alias-code-diff-deleted: var(--dsw-static-red-600-a08);
310
+ --dsw-alias-file-diff-added-bg: rgb(230, 244, 231);
311
+ --dsw-alias-file-diff-added-gutter: rgb(237, 247, 237);
312
+ --dsw-alias-file-diff-added-marker: rgb(1, 162, 65);
313
+ --dsw-alias-file-diff-deleted-bg: rgb(252, 230, 226);
314
+ --dsw-alias-file-diff-deleted-gutter: rgb(253, 236, 233);
315
+ --dsw-alias-file-diff-deleted-marker: rgb(186, 39, 35);
316
+ --dsw-alias-state-error-primary: var(--dsw-static-red-600);
317
+ --dsw-alias-state-error-secondary: var(--dsw-static-red-400);
318
+ --dsw-alias-state-idle-primary: var(--dsw-static-neutral-300);
319
+ --dsw-alias-state-success-primary: var(--dsw-static-green-500);
320
+ --dsw-alias-state-success-secondary: var(--dsw-static-green-400);
321
+ --dsw-alias-state-success-tertiary: var(--dsw-static-green-100);
322
+ --dsw-alias-state-warn-label: var(--dsw-static-amber-600);
323
+ --dsw-alias-state-warn-primary: var(--dsw-static-amber-500);
324
+ --dsw-alias-state-warn-secondary: var(--dsw-static-amber-400);
325
+ --dsw-alias-state-warn-tertiary: var(--dsw-static-amber-100);
326
+ --dsw-alias-switch-thumb: var(--dsw-static-neutral-bluish-00);
327
+ --dsw-alias-toast-bg: var(--dsw-static-neutral-bluish-800);
328
+ --dsw-alias-toast-label: var(--dsw-static-neutral-bluish-00);
329
+ --dsw-alias-tooltip-bg: var(--dsw-static-neutral-bluish-850);
330
+ --dsw-alias-tooltip-key-bg: color-mix(in srgb, var(--dsw-alias-tooltip-bg), white 18%);
331
+ --dsw-alias-turn-trigger-bg: var(--dsw-alias-markdown-code-block);
332
+ --dsw-alias-turn-trigger-bg-hover: var(--dsw-alias-interactive-bg-hover);
333
+ --dsw-specific-bubble-highlight: var(--dsw-static-deepseek-200);
334
+ --dsw-specific-bubble: var(--dsw-static-deepseek-50);
335
+ --dsw-specific-input-major: var(--dsw-static-neutral-bluish-00);
336
+ --dsw-specific-login-input: var(--dsw-static-neutral-bluish-50);
337
+ --dsw-menu-surface-fill: rgba(248, 249, 250, 0.58);
338
+ --dsw-alias-menu-group-header-fill: rgba(248, 249, 250, 0.94);
339
+ --dsw-specific-menu: var(--dsw-menu-surface-fill);
340
+ --dsw-specific-selector: var(--dsw-static-neutral-bluish-60);
341
+ --dsw-specific-sidebar-fill: var(--dsw-static-neutral-bluish-50);
342
+ --dsw-specific-sidebar-nav-item-active-accent: var(--dsw-static-deepseek-100);
343
+ --dsw-specific-sidebar-nav-item-active: var(--dsw-static-neutral-bluish-100);
344
+ --dsw-specific-sidebar-nav-item-hover: var(--dsw-static-neutral-bluish-75);
345
+ --dsw-specific-tip: var(--dsw-static-neutral-bluish-60);
346
+
347
+ background-color: var(--dsw-alias-bg-base);
348
+ }
349
+
350
+ body[data-ds-dark-theme] {
351
+ --dsw-alias-bg-base: var(--dsw-static-neutral-bluish-950);
352
+ --dsw-alias-bg-document-preview: var(--dsw-static-neutral-bluish-950);
353
+ --dsw-alias-bg-document-selection: color-mix(in srgb, var(--dsw-static-blue-500) 40%, transparent);
354
+ --dsw-alias-label-document-preview: var(--dsw-static-neutral-bluish-300);
355
+ --dsw-alias-bg-layer-1: var(--dsw-static-neutral-bluish-875);
356
+ --dsw-alias-bg-layer-2: var(--dsw-static-neutral-bluish-850);
357
+ --dsw-alias-bg-layer-3: var(--dsw-static-neutral-bluish-800);
358
+ --dsw-alias-bg-mask-1: rgba(0, 0, 0, 0.5);
359
+ --dsw-alias-bg-mask-2: rgba(0, 0, 0, 0.2);
360
+ --dsw-alias-bg-mask-3: rgba(0, 0, 0, 0.48);
361
+ --dsw-alias-bg-mask-photo: rgba(0, 0, 0, 0.88);
362
+ --dsw-alias-bg-mask-drop: rgba(39, 39, 48, 0.7);
363
+ --dsw-alias-bg-module-platform: var(--dsw-static-neutral-bluish-800);
364
+ --dsw-alias-bg-multi-select: var(--dsw-static-neutral-850);
365
+ --dsw-alias-bg-overlay: var(--dsw-static-neutral-bluish-700);
366
+ --dsw-alias-bg-skeleton: rgba(255, 255, 255, 0.08);
367
+ --dsw-alias-border-inverted2: rgba(255, 255, 255, 0.08);
368
+ --dsw-alias-border-inverted: rgba(255, 255, 255, 0.06);
369
+ --dsw-alias-border-l1: rgba(255, 255, 255, 0.06);
370
+ --dsw-alias-border-l2-darkmode-thin: rgba(255, 255, 255, 0.06);
371
+ --dsw-alias-border-l2: rgba(255, 255, 255, 0.12);
372
+ --dsw-alias-border-l3: rgba(255, 255, 255, 0.16);
373
+ --dsw-alias-border-l4: rgba(255, 255, 255, 0.2);
374
+ --dsw-alias-brand-primary-invert: var(--dsw-static-neutral-bluish-50);
375
+ --dsw-alias-brand-primary-new-colorprimary-new-color: var(--dsw-static-deepseek-450);
376
+ --dsw-alias-brand-primary: var(--dsw-static-neutral-bluish-50);
377
+ --dsw-alias-brand-text: var(--dsw-static-neutral-bluish-50);
378
+ --dsw-alias-button-contrast-fill: var(--dsw-static-neutral-bluish-50);
379
+ --dsw-alias-button-elevated-fill: var(--dsw-static-neutral-bluish-750);
380
+ --dsw-alias-button-floating-fill: var(--dsw-static-neutral-bluish-850);
381
+ --dsw-alias-button-floating-hover: var(--dsw-static-neutral-bluish-800);
382
+ --dsw-alias-button-ghost-active-border: var(--dsw-static-neutral-bluish-600);
383
+ --dsw-alias-button-ghost-active-fill: var(--dsw-static-neutral-bluish-750);
384
+ --dsw-alias-button-ghost-active-hover: var(--dsw-static-neutral-bluish-700);
385
+ --dsw-alias-button-info-fill: var(--dsw-static-deepseek-400);
386
+ --dsw-alias-button-info-hover: var(--dsw-static-deepseek-500);
387
+ --dsw-alias-button-primary-dimmed: var(--dsw-static-neutral-bluish-750);
388
+ --dsw-alias-button-primary-fill: var(--dsw-alias-brand-primary);
389
+ --dsw-alias-button-primary-hover: var(--dsw-static-neutral-bluish-100);
390
+ --dsw-alias-button-tool-bar-fill-invisible: rgba(31, 31, 31, 0.36);
391
+ --dsw-alias-button-tool-bar-fill: rgba(84, 85, 87, 0.5);
392
+ --dsw-alias-button-tool-bar-hover: rgba(84, 85, 87, 0.6);
393
+ --dsw-alias-interactive-bg-active: rgba(255, 255, 255, 0.14);
394
+ --dsw-alias-interactive-bg-hover-accent: rgba(255, 255, 255, 0.24);
395
+ --dsw-alias-interactive-bg-hover-danger: rgba(242, 90, 90, 0.15);
396
+ --dsw-alias-interactive-bg-hover-solid: var(--dsw-static-neutral-bluish-800);
397
+ --dsw-alias-interactive-bg-hover: rgba(255, 255, 255, 0.08);
398
+ --dsw-alias-label-caption: var(--dsw-static-neutral-bluish-600);
399
+ --dsw-alias-label-deep-diving: color-mix(
400
+ in srgb,
401
+ var(--dsw-static-deepseek-450) 55%,
402
+ var(--dsw-static-neutral-bluish-400)
403
+ );
404
+ --dsw-alias-label-deep-diving-shimmer: color-mix(
405
+ in srgb,
406
+ var(--dsw-static-blue-300) 65%,
407
+ var(--dsw-static-deepseek-400)
408
+ );
409
+ --dsw-alias-label-dimmed: var(--dsw-static-neutral-bluish-750);
410
+ --dsw-alias-label-primary-bluish: var(--dsw-static-neutral-bluish-50);
411
+ --dsw-alias-label-primary-dimmed: var(--dsw-static-neutral-bluish-100);
412
+ --dsw-alias-label-primary-foreground: var(--dsw-static-neutral-bluish-1000);
413
+ --dsw-alias-label-primary-inverted: var(--dsw-static-neutral-bluish-800);
414
+ --dsw-alias-label-primary: var(--dsw-static-neutral-bluish-50);
415
+ --dsw-alias-label-secondary: var(--dsw-static-neutral-bluish-300);
416
+ --dsw-alias-label-shimmer: color-mix(in srgb, var(--dsw-static-neutral-00) 45%, transparent);
417
+ --dsw-alias-label-tertiary: var(--dsw-static-neutral-bluish-400);
418
+ --dsw-alias-menu-icon: var(--dsw-alias-label-primary-dimmed);
419
+ --dsw-alias-link: var(--dsw-static-deepseek-400);
420
+ --dsw-alias-markdown-citation: var(--dsw-static-neutral-bluish-800);
421
+ --dsw-alias-markdown-code-block-banner: var(--dsw-static-neutral-bluish-850);
422
+ --dsw-alias-markdown-code-block: var(--dsw-static-neutral-bluish-900);
423
+ --dsw-alias-markdown-code-segment-selected: var(--dsw-static-neutral-bluish-800);
424
+ --dsw-alias-markdown-code-segment-unselected: var(--dsw-static-neutral-bluish-900);
425
+ --dsw-alias-markdown-inline-code: var(--dsw-static-neutral-800);
426
+ --dsw-alias-markdown-placeholder: var(--dsw-static-neutral-bluish-850);
427
+ --dsw-alias-markdown-tag: var(--dsw-static-neutral-bluish-850);
428
+ --dsw-alias-scrollbar-bg-l1: var(--dsw-static-neutral-700);
429
+ --dsw-alias-scrollbar-bg-l2: var(--dsw-static-neutral-600);
430
+ --dsw-alias-scrollbar-hover-l1: var(--dsw-static-neutral-600);
431
+ --dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-550);
432
+ --dsw-alias-state-business-primary: var(--dsw-static-deepseek-400);
433
+ --dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-800);
434
+ --dsw-alias-code-diff-added: var(--dsw-static-green-500-a12);
435
+ --dsw-alias-code-diff-deleted: var(--dsw-static-red-400-a12);
436
+ --dsw-alias-file-diff-added-bg: rgb(31, 49, 36);
437
+ --dsw-alias-file-diff-added-gutter: rgb(19, 32, 22);
438
+ --dsw-alias-file-diff-added-marker: rgb(65, 201, 119);
439
+ --dsw-alias-file-diff-deleted-bg: rgb(60, 31, 27);
440
+ --dsw-alias-file-diff-deleted-gutter: rgb(40, 19, 14);
441
+ --dsw-alias-file-diff-deleted-marker: rgb(250, 66, 62);
442
+ --dsw-alias-state-error-primary: var(--dsw-static-red-400);
443
+ --dsw-alias-state-error-secondary: var(--dsw-static-red-400);
444
+ --dsw-alias-state-idle-primary: var(--dsw-static-neutral-600);
445
+ --dsw-alias-state-success-primary: var(--dsw-static-green-500);
446
+ --dsw-alias-state-success-secondary: var(--dsw-static-green-400);
447
+ --dsw-alias-state-success-tertiary: var(--dsw-static-green-900);
448
+ --dsw-alias-state-warn-label: var(--dsw-static-amber-600);
449
+ --dsw-alias-state-warn-primary: var(--dsw-static-amber-500);
450
+ --dsw-alias-state-warn-secondary: var(--dsw-static-amber-400);
451
+ --dsw-alias-state-warn-tertiary: var(--dsw-static-amber-900);
452
+ --dsw-alias-switch-thumb: var(--dsw-static-neutral-bluish-400);
453
+ --dsw-alias-toast-bg: var(--dsw-static-neutral-bluish-750);
454
+ --dsw-alias-toast-label: var(--dsw-static-neutral-bluish-00);
455
+ --dsw-alias-turn-trigger-bg: var(--dsw-alias-interactive-bg-hover);
456
+ --dsw-alias-turn-trigger-bg-hover: var(--dsw-alias-interactive-bg-active);
457
+ --dsw-alias-tooltip-bg: var(--dsw-static-neutral-bluish-750);
458
+ --dsw-alias-tooltip-key-bg: color-mix(in srgb, var(--dsw-alias-tooltip-bg), white 18%);
459
+ --dsw-specific-bubble-highlight: var(--dsw-static-neutral-bluish-750);
460
+ --dsw-specific-bubble: var(--dsw-static-neutral-bluish-850);
461
+ --dsw-specific-input-major: var(--dsw-static-neutral-bluish-850);
462
+ --dsw-specific-login-input: var(--dsw-static-neutral-bluish-900);
463
+ --dsw-menu-surface-fill: rgba(67, 69, 74, 0.45);
464
+ --dsw-alias-menu-group-header-fill: rgba(48, 49, 54, 0.94);
465
+ --dsw-specific-menu: var(--dsw-menu-surface-fill);
466
+ --dsw-specific-selector: var(--dsw-static-neutral-bluish-800);
467
+ --dsw-specific-sidebar-fill: var(--dsw-static-neutral-bluish-900);
468
+ --dsw-specific-sidebar-nav-item-active-accent: var(--dsw-static-neutral-bluish-800);
469
+ --dsw-specific-sidebar-nav-item-active: var(--dsw-static-neutral-bluish-750);
470
+ --dsw-specific-sidebar-nav-item-hover: var(--dsw-static-neutral-bluish-850);
471
+ --dsw-specific-tip: var(--dsw-static-neutral-bluish-800);
472
+ }
473
+
474
+ /* Overlays without MenuSurface's opaque backing cannot blur page content over
475
+ * native vibrancy reliably, so their fill stays nearly opaque on macOS. */
476
+ html[data-platform='darwin'] body {
477
+ --dsw-specific-menu: rgba(248, 249, 250, 0.94);
478
+ }
479
+
480
+ html[data-platform='darwin'] body[data-ds-dark-theme] {
481
+ --dsw-specific-menu: rgba(48, 49, 54, 0.94);
482
+ }
483
+
484
+ /* Components own offsets; dense tables and toolbars may keep a 1px ring. */
485
+ :root {
486
+ --dsw-focus-ring-width: 2px;
487
+ }
488
+
489
+ /* The fallback names the colour and the standard width, never the style: a control that
490
+ * disables its outline keeps `none` and paints nothing. Without the width, Chromium's
491
+ * unnamed ring stayed at `auto 1px` while every declared ring used the standard geometry.
492
+ * Declared rings also read this color, including rings on descendants and pseudo-elements. */
493
+ :focus-visible {
494
+ outline-color: var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));
495
+ outline-width: var(--dsw-focus-ring-width);
496
+ }
497
+
498
+ /* ui-primitives/input-modality publishes the attribute. Editable controls keep
499
+ * their focus feedback on click; other controls reveal rings on keyboard
500
+ * navigation. Only ring paint is suppressed, not elevation or selected borders. */
501
+ html[data-input-modality='pointer'] body :focus-visible:not(:read-write) {
502
+ --dsw-focus-ring-color: transparent;
503
+ outline-color: transparent;
504
+ }
505
+
506
+ /* Onboarding palette and themed materials; card geometry and animation belong to the feature. */
507
+ body {
508
+ --dsw-alias-onboarding-accent: rgb(57, 100, 254);
509
+ --dsw-gradient-onboarding-violet-stops: #2a2fb6 33.102%, #8b76f6 50.954%, #c5c0ff 85.326%, #2a2fb6;
510
+ --dsw-gradient-onboarding-blue-stops: #3964fe 18.75%, #398efe 51.78%, #6dccff 86.252%, #3964fe;
511
+ --dsw-gradient-onboarding-cyan-stops: #0293b4 21.154%, #2dc8eb 50.954%, #aff0ff 85.326%, #0293b4;
512
+ --dsw-alias-onboarding-card-fill: color-mix(in srgb, var(--dsw-static-neutral-bluish-00) 80%, transparent);
513
+ --dsw-alias-onboarding-secondary-fill: var(--dsw-static-neutral-bluish-00);
514
+ --dsw-alias-onboarding-checkbox-border: color-mix(in srgb, var(--dsw-static-neutral-bluish-1000) 20%, transparent);
515
+ }
516
+
517
+ body[data-ds-dark-theme] {
518
+ --dsw-alias-onboarding-card-fill: color-mix(in srgb, var(--dsw-static-neutral-bluish-850) 80%, transparent);
519
+ --dsw-alias-onboarding-secondary-fill: rgb(72, 73, 76);
520
+ --dsw-alias-onboarding-checkbox-border: var(--dsw-alias-border-l2);
521
+ }
522
+
523
+ /* Scrollbar skin: the sole consumer of the four --dsw-alias-scrollbar-*
524
+ * tokens. Without it every scrolling region renders the UA scrollbar, which
525
+ * ignores the theme — a light native bar over the dark palette.
526
+ *
527
+ * The rules sit on `body`, not `html`: design-platform.css declares the
528
+ * --dsw-alias-* tokens on `body` (and the dark overrides on
529
+ * `body[data-ds-dark-theme]`), and custom properties only inherit downward,
530
+ * so an `html` rule resolves them to the guaranteed-invalid value and
531
+ * `scrollbar-color` falls back to `auto`.
532
+ *
533
+ * Surfaces pick their elevation by rebinding --dsh-scrollbar-thumb{,-hover}:
534
+ * the l1 pair here is the base-surface default, and an elevated surface
535
+ * (menu, popover, dialog) rebinds to the l2 pair on its own container. A
536
+ * scroll container may also rebind the three geometry variables below. */
537
+
538
+ body {
539
+ --dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l1);
540
+ --dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l1);
541
+ --dsh-scrollbar-thumb-border: 0px;
542
+ --dsh-scrollbar-track-margin: 0px;
543
+ /* The WebKit bar's layout width, mirrored by the ::-webkit-scrollbar rule
544
+ below. A surface that must align itself beside a space-consuming bar
545
+ (ConversationRoot's overlay composer seat) reads this instead of
546
+ hardcoding the number. */
547
+ --dsh-scrollbar-width: 5px;
548
+ }
549
+
550
+ /* The two paths are mutually exclusive, and the gate is load-bearing rather
551
+ than defensive. A non-`auto` `scrollbar-width` or `scrollbar-color` makes
552
+ Chromium and Safari drop every `::-webkit-scrollbar*` rule for that
553
+ element, including `::-webkit-scrollbar-thumb:hover` — measured in chromium
554
+ as a `::-webkit-scrollbar` width taking effect on its own and being
555
+ ignored as soon as `scrollbar-width: thin` is added. Declaring both
556
+ unconditionally therefore leaves the hover tokens with no rendering at all,
557
+ because the engines that implement the hover pseudo-element are exactly the
558
+ ones the standard properties silence, and Firefox has no hover
559
+ pseudo-element to fall back on.
560
+
561
+ `not selector(::-webkit-scrollbar)` is true only where the pseudo-element
562
+ is unimplemented, so Firefox takes the standard path and WebKit-based
563
+ engines take the pseudo-element path. An engine too old for the
564
+ `selector()` function makes the condition invalid, which evaluates false
565
+ and selects the pseudo-element path — the correct side for the pre-16.4
566
+ Safari that is the realistic case. */
567
+ @supports not selector(::-webkit-scrollbar) {
568
+ /* Declared on every element rather than inherited from `body`. Inheriting
569
+ would pass down the COLOUR already substituted at `body`, so a descendant
570
+ rebinding --dsh-scrollbar-thumb could not change it; re-declaring makes
571
+ each element substitute the variable as it sees it, which is what gives
572
+ an elevated surface a working rebind. `scrollbar-width` is not an
573
+ inherited property at all, so it needs the per-element declaration
574
+ regardless.
575
+
576
+ No hover counterpart exists on this path: `scrollbar-color` states one
577
+ thumb colour and the engine derives its own hover treatment. */
578
+ body,
579
+ body * {
580
+ scrollbar-width: thin;
581
+ scrollbar-color: var(--dsh-scrollbar-thumb) transparent;
582
+ }
583
+ }
584
+
585
+ /* Not gated in turn: an engine that does not implement these pseudo-elements
586
+ drops the rules as unknown selectors, so the gate would only restate what
587
+ selector matching already does. Not inherited either, hence the unscoped
588
+ selectors. */
589
+ ::-webkit-scrollbar {
590
+ width: var(--dsh-scrollbar-width);
591
+ height: var(--dsh-scrollbar-width);
592
+ }
593
+
594
+ /* Track stays transparent so the thumb reads against whatever surface scrolls
595
+ under it; only the thumb carries a token colour. */
596
+ ::-webkit-scrollbar-track {
597
+ margin-block: var(--dsh-scrollbar-track-margin);
598
+ background: transparent;
599
+ }
600
+
601
+ ::-webkit-scrollbar-thumb {
602
+ border: var(--dsh-scrollbar-thumb-border) solid transparent;
603
+ border-radius: 999px;
604
+ corner-shape: round;
605
+ background: var(--dsh-scrollbar-thumb);
606
+ background-clip: content-box;
607
+ }
608
+
609
+ ::-webkit-scrollbar-thumb:hover {
610
+ background-color: var(--dsh-scrollbar-thumb-hover);
611
+ }
612
+
613
+ /* Both scrollbars meeting in a corner: no separate token, so the corner
614
+ matches the transparent track rather than the UA's opaque default. */
615
+ ::-webkit-scrollbar-corner {
616
+ background: transparent;
617
+ }
618
+
619
+ body {
620
+ --dsw-linear-gradient-think: linear-gradient(180deg, #fff 20.19%, rgba(255, 255, 255, 0) 100%);
621
+ --dsw-linear-think-select: linear-gradient(180deg, #f5f6f7 20.19%, rgba(245, 246, 247, 0) 100%);
622
+ /* 阴影 */
623
+ --dsw-shadow-lv1: 0 2px 4px 0 rgba(0, 0, 0, 0.05);
624
+ --dsw-shadow-lv1-blur: 0 4px 12px 0 rgba(0, 0, 0, 0.02);
625
+ --dsw-shadow-lv2: 0 4px 12px 0 rgba(0, 0, 0, 0.02), 0 2px 8px 0 rgba(0, 0, 0, 0.04);
626
+ --dsw-shadow-lv3: 0 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 4px 0 rgba(0, 0, 0, 0.02), 0 12px 32px 0 rgba(0, 0, 0, 0.08);
627
+ /* Elevation:浮层/面板/面型按钮的描边+投影三件套。0.5px 发丝描边画在
628
+ box-shadow 里(组件配 border: 0,不占布局),叠两层极淡柔光;深色主题下
629
+ 柔光几乎不可见,由描边承担分离。描边颜色经 --dsw-elevation-stroke-color
630
+ 间接,组件可重绑(菜单面重绑最浅的 l1、输入框重绑 l2,输入框的
631
+ workspace-trigger 态置 transparent 只保留柔光)。soft 供输入框:更大
632
+ 模糊、更低透明度的柔光。默认色只声明在 body 上,让表面的重绑沿继承
633
+ 传给真正消费投影的后代。 */
634
+ --dsw-elevation-stroke-color: var(--dsw-alias-border-l4);
635
+ /* Blocking masks dim the page; menu backgrounds retain their blur. */
636
+ --dsw-mask-blur: none;
637
+ --dsw-menu-backdrop-filter: blur(40px) saturate(150%);
638
+ }
639
+
640
+ body[data-ds-dark-theme] [data-menu-material] {
641
+ --dsw-elevation-stroke-color: var(--dsw-alias-border-l3);
642
+ }
643
+
644
+ /* 派生 elevation 值逐元素声明而非从 body 继承:继承传下来的是在 body 上就
645
+ 已替换完 var() 的值,组件重绑 --dsw-elevation-stroke-color 将无法进入
646
+ var(--dsw-elevation-*);逐元素声明让每个元素按自己看到的描边色重新替换
647
+ (同 scrollbar.css 对 --dsh-scrollbar-thumb 的处理)。 */
648
+ body,
649
+ body * {
650
+ --dsw-elevation-stroke: 0 0 0 0.5px var(--dsw-elevation-stroke-color);
651
+ --dsw-elevation-panel: var(--dsw-elevation-stroke), 0 3px 8px 0 rgba(0, 0, 0, 0.03), 0 0 16px 0 rgba(0, 0, 0, 0.02);
652
+ --dsw-elevation-prominent:
653
+ var(--dsw-elevation-stroke), 0 3px 8px 0 rgba(0, 0, 0, 0.04), 0 0 20px 0 rgba(0, 0, 0, 0.05);
654
+ --dsw-elevation-soft: var(--dsw-elevation-stroke), 0 4px 16px 0 rgba(0, 0, 0, 0.03), 0 0 24px 0 rgba(0, 0, 0, 0.03);
655
+ }
656
+
657
+ body[data-ds-dark-theme] {
658
+ --dsw-linear-gradient-think: linear-gradient(180deg, #151517 20.19%, rgba(21, 21, 23, 0) 100%);
659
+ --dsw-linear-think-select: linear-gradient(180deg, #232325 20.19%, rgba(35, 35, 37, 0) 100%);
660
+ }
661
+
662
+ /* ---------- 字体 ---------- */
663
+ /* 由 @deepseek-figma-plugin/custom-variable-name 插件导出 */
664
+ /* Markdown 阶梯整体按 0.875(正文 16 → 14)等比缩放,四舍五入到整数像素;
665
+ 重新从 Figma 导出时需要保留这一缩放。 */
666
+ /* Bootstrap and ThemePresenter set the integer content size on body (10–22px,
667
+ default 14px). Headings and body variants share its pixel delta. Secondary
668
+ text uses size − 1 through 14px, then size − 2: 10→9, 14→13, 15→13, 22→20.
669
+ max(13px, ...) selects the delta, not a font-size floor. Small and code
670
+ typography keep their fixed sizes. */
671
+ body {
672
+ --dsh-content-font-delta: calc(var(--dsh-content-font-size, 14px) - 14px);
673
+ --dsh-content-font-size-secondary: min(
674
+ calc(var(--dsh-content-font-size, 14px) - 1px),
675
+ max(13px, calc(var(--dsh-content-font-size, 14px) - 2px))
676
+ );
677
+ --dsh-content-font-delta-secondary: calc(var(--dsh-content-font-size-secondary) - 13px);
678
+
679
+ --dsw-font-markdown-h1: 700 calc(21px + var(--dsh-content-font-delta)) / calc(30px + var(--dsh-content-font-delta))
680
+ var(--dsw-font-family);
681
+ --dsw-font-markdown-h1-font-family: var(--dsw-font-family);
682
+ --dsw-font-markdown-h1-font-weight: 700;
683
+ --dsw-font-markdown-h1-line-height: calc(30px + var(--dsh-content-font-delta));
684
+ --dsw-font-markdown-h1-font-size: calc(21px + var(--dsh-content-font-delta));
685
+ --dsw-font-markdown-h1-font-style: normal;
686
+
687
+ --dsw-font-markdown-h2: 700 calc(19px + var(--dsh-content-font-delta)) / calc(28px + var(--dsh-content-font-delta))
688
+ var(--dsw-font-family);
689
+ --dsw-font-markdown-h2-font-family: var(--dsw-font-family);
690
+ --dsw-font-markdown-h2-font-weight: 700;
691
+ --dsw-font-markdown-h2-line-height: calc(28px + var(--dsh-content-font-delta));
692
+ --dsw-font-markdown-h2-font-size: calc(19px + var(--dsh-content-font-delta));
693
+ --dsw-font-markdown-h2-font-style: normal;
694
+
695
+ --dsw-font-markdown-h3: 700 calc(18px + var(--dsh-content-font-delta)) / calc(26px + var(--dsh-content-font-delta))
696
+ var(--dsw-font-family);
697
+ --dsw-font-markdown-h3-font-family: var(--dsw-font-family);
698
+ --dsw-font-markdown-h3-font-weight: 700;
699
+ --dsw-font-markdown-h3-line-height: calc(26px + var(--dsh-content-font-delta));
700
+ --dsw-font-markdown-h3-font-size: calc(18px + var(--dsh-content-font-delta));
701
+ --dsw-font-markdown-h3-font-style: normal;
702
+
703
+ --dsw-font-markdown-h4: 600 var(--dsh-content-font-size, 14px) / calc(24px + var(--dsh-content-font-delta))
704
+ var(--dsw-font-family);
705
+ --dsw-font-markdown-h4-font-family: var(--dsw-font-family);
706
+ --dsw-font-markdown-h4-font-weight: 600;
707
+ --dsw-font-markdown-h4-line-height: calc(24px + var(--dsh-content-font-delta));
708
+ --dsw-font-markdown-h4-font-size: var(--dsh-content-font-size, 14px);
709
+ --dsw-font-markdown-h4-font-style: normal;
710
+
711
+ --dsw-font-markdown-base: var(--dsh-content-font-size, 14px) / calc(24px + var(--dsh-content-font-delta))
712
+ var(--dsw-font-family);
713
+ --dsw-font-markdown-base-font-family: var(--dsw-font-family);
714
+ --dsw-font-markdown-base-font-weight: 400;
715
+ --dsw-font-markdown-base-line-height: calc(24px + var(--dsh-content-font-delta));
716
+ --dsw-font-markdown-base-font-size: var(--dsh-content-font-size, 14px);
717
+ --dsw-font-markdown-base-font-style: normal;
718
+
719
+ --dsw-font-markdown-base-strong: 600 var(--dsh-content-font-size, 14px) / calc(24px + var(--dsh-content-font-delta))
720
+ var(--dsw-font-family);
721
+ --dsw-font-markdown-base-strong-font-family: var(--dsw-font-family);
722
+ --dsw-font-markdown-base-strong-font-weight: 600;
723
+ --dsw-font-markdown-base-strong-line-height: calc(24px + var(--dsh-content-font-delta));
724
+ --dsw-font-markdown-base-strong-font-size: var(--dsh-content-font-size, 14px);
725
+ --dsw-font-markdown-base-strong-font-style: normal;
726
+
727
+ --dsw-font-markdown-base-italic: italic var(--dsh-content-font-size, 14px) /
728
+ calc(24px + var(--dsh-content-font-delta)) var(--dsw-font-family);
729
+ --dsw-font-markdown-base-italic-font-family: var(--dsw-font-family);
730
+ --dsw-font-markdown-base-italic-font-weight: 400;
731
+ --dsw-font-markdown-base-italic-line-height: calc(24px + var(--dsh-content-font-delta));
732
+ --dsw-font-markdown-base-italic-font-size: var(--dsh-content-font-size, 14px);
733
+ --dsw-font-markdown-base-italic-font-style: italic;
734
+
735
+ --dsw-font-markdown-base-strong-italic: italic 600 var(--dsh-content-font-size, 14px) /
736
+ calc(24px + var(--dsh-content-font-delta)) var(--dsw-font-family);
737
+ --dsw-font-markdown-base-strong-italic-font-family: var(--dsw-font-family);
738
+ --dsw-font-markdown-base-strong-italic-font-weight: 600;
739
+ --dsw-font-markdown-base-strong-italic-line-height: calc(24px + var(--dsh-content-font-delta));
740
+ --dsw-font-markdown-base-strong-italic-font-size: var(--dsh-content-font-size, 14px);
741
+ --dsw-font-markdown-base-strong-italic-font-style: italic;
742
+
743
+ --dsw-font-markdown-table: var(--dsh-content-font-size-secondary, 13px)/calc(
744
+ 22px + var(--dsh-content-font-delta-secondary, 0px)
745
+ )
746
+ var(--dsw-font-family);
747
+ --dsw-font-markdown-table-font-family: var(--dsw-font-family);
748
+ --dsw-font-markdown-table-font-weight: 400;
749
+ --dsw-font-markdown-table-line-height: calc(22px + var(--dsh-content-font-delta-secondary, 0px));
750
+ --dsw-font-markdown-table-font-size: var(--dsh-content-font-size-secondary, 13px);
751
+ --dsw-font-markdown-table-font-style: normal;
752
+
753
+ --dsw-font-markdown-table-head: 500
754
+ var(--dsh-content-font-size-secondary, 13px)/calc(22px + var(--dsh-content-font-delta-secondary, 0px))
755
+ var(--dsw-font-family);
756
+ --dsw-font-markdown-table-head-font-family: var(--dsw-font-family);
757
+ --dsw-font-markdown-table-head-font-weight: 500;
758
+ --dsw-font-markdown-table-head-line-height: calc(22px + var(--dsh-content-font-delta-secondary, 0px));
759
+ --dsw-font-markdown-table-head-font-size: var(--dsh-content-font-size-secondary, 13px);
760
+ --dsw-font-markdown-table-head-font-style: normal;
761
+
762
+ --dsw-font-markdown-small: 12px/20px var(--dsw-font-family);
763
+ --dsw-font-markdown-small-font-family: var(--dsw-font-family);
764
+ --dsw-font-markdown-small-font-weight: 400;
765
+ --dsw-font-markdown-small-line-height: 20px;
766
+ --dsw-font-markdown-small-font-size: 12px;
767
+ --dsw-font-markdown-small-font-style: normal;
768
+
769
+ --dsw-font-markdown-small-strong: 600 12px/20px var(--dsw-font-family);
770
+ --dsw-font-markdown-small-strong-font-family: var(--dsw-font-family);
771
+ --dsw-font-markdown-small-strong-font-weight: 600;
772
+ --dsw-font-markdown-small-strong-line-height: 20px;
773
+ --dsw-font-markdown-small-strong-font-size: 12px;
774
+ --dsw-font-markdown-small-strong-font-style: normal;
775
+
776
+ --dsw-font-markdown-small-italic: italic 12px/20px var(--dsw-font-family);
777
+ --dsw-font-markdown-small-italic-font-family: var(--dsw-font-family);
778
+ --dsw-font-markdown-small-italic-font-weight: 400;
779
+ --dsw-font-markdown-small-italic-line-height: 20px;
780
+ --dsw-font-markdown-small-italic-font-size: 12px;
781
+ --dsw-font-markdown-small-italic-font-style: italic;
782
+
783
+ --dsw-font-markdown-small-strong-italic: italic 600 12px/20px var(--dsw-font-family);
784
+ --dsw-font-markdown-small-strong-italic-font-family: var(--dsw-font-family);
785
+ --dsw-font-markdown-small-strong-italic-font-weight: 600;
786
+ --dsw-font-markdown-small-strong-italic-line-height: 20px;
787
+ --dsw-font-markdown-small-strong-italic-font-size: 12px;
788
+ --dsw-font-markdown-small-strong-italic-font-style: italic;
789
+
790
+ --dsw-font-markdown-code: 12px/19px var(--ds-font-family-code);
791
+ --dsw-font-markdown-code-font-family: var(--ds-font-family-code);
792
+ --dsw-font-markdown-code-font-weight: 400;
793
+ --dsw-font-markdown-code-line-height: 19px;
794
+ --dsw-font-markdown-code-font-size: 12px;
795
+ --dsw-font-markdown-code-font-style: normal;
796
+
797
+ --dsw-font-markdown-code-block: 11px/19px var(--ds-font-family-code);
798
+ --dsw-font-markdown-code-block-font-family: var(--ds-font-family-code);
799
+ --dsw-font-markdown-code-block-font-weight: 400;
800
+ --dsw-font-markdown-code-block-line-height: 19px;
801
+ --dsw-font-markdown-code-block-font-size: 11px;
802
+ --dsw-font-markdown-code-block-font-style: normal;
803
+
804
+ /* 手工补充(非插件导出):tool row 展开卡片内的小号 code 字体。 */
805
+ --dsw-font-markdown-code-block-small: 11px/16px var(--ds-font-family-code);
806
+ --dsw-font-markdown-code-block-small-font-family: var(--ds-font-family-code);
807
+ --dsw-font-markdown-code-block-small-font-weight: 400;
808
+ --dsw-font-markdown-code-block-small-line-height: 16px;
809
+ --dsw-font-markdown-code-block-small-font-size: 11px;
810
+ --dsw-font-markdown-code-block-small-font-style: normal;
811
+
812
+ --dsw-font-xl-24: 600 24px/32px var(--dsw-font-family);
813
+ --dsw-font-xl-24-font-family: var(--dsw-font-family);
814
+ --dsw-font-xl-24-font-weight: 600;
815
+ --dsw-font-xl-24-line-height: 32px;
816
+ --dsw-font-xl-24-font-size: 24px;
817
+ --dsw-font-xl-24-font-style: normal;
818
+
819
+ --dsw-font-l-20: 500 20px/28px var(--dsw-font-family);
820
+ --dsw-font-l-20-font-family: var(--dsw-font-family);
821
+ --dsw-font-l-20-font-weight: 500;
822
+ --dsw-font-l-20-line-height: 28px;
823
+ --dsw-font-l-20-font-size: 20px;
824
+ --dsw-font-l-20-font-style: normal;
825
+
826
+ --dsw-font-m-18: 500 16px/28px var(--dsw-font-family);
827
+ --dsw-font-m-18-font-family: var(--dsw-font-family);
828
+ --dsw-font-m-18-font-weight: 500;
829
+ --dsw-font-m-18-line-height: 28px;
830
+ --dsw-font-m-18-font-size: 16px;
831
+ --dsw-font-m-18-font-style: normal;
832
+
833
+ --dsw-font-base-16: 16px/24px var(--dsw-font-family);
834
+ --dsw-font-base-16-font-family: var(--dsw-font-family);
835
+ --dsw-font-base-16-font-weight: 400;
836
+ --dsw-font-base-16-line-height: 24px;
837
+ --dsw-font-base-16-font-size: 16px;
838
+ --dsw-font-base-16-font-style: normal;
839
+
840
+ --dsw-font-base-strong-16: 500 16px/24px var(--dsw-font-family);
841
+ --dsw-font-base-strong-16-font-family: var(--dsw-font-family);
842
+ --dsw-font-base-strong-16-font-weight: 500;
843
+ --dsw-font-base-strong-16-line-height: 24px;
844
+ --dsw-font-base-strong-16-font-size: 16px;
845
+ --dsw-font-base-strong-16-font-style: normal;
846
+
847
+ --dsw-font-s-14: 14px/22px var(--dsw-font-family);
848
+ --dsw-font-s-14-font-family: var(--dsw-font-family);
849
+ --dsw-font-s-14-font-weight: 400;
850
+ --dsw-font-s-14-line-height: 22px;
851
+ --dsw-font-s-14-font-size: 14px;
852
+ --dsw-font-s-14-font-style: normal;
853
+
854
+ --dsw-font-s-strong-14: 500 14px/22px var(--dsw-font-family);
855
+ --dsw-font-s-strong-14-font-family: var(--dsw-font-family);
856
+ --dsw-font-s-strong-14-font-weight: 500;
857
+ --dsw-font-s-strong-14-line-height: 22px;
858
+ --dsw-font-s-strong-14-font-size: 14px;
859
+ --dsw-font-s-strong-14-font-style: normal;
860
+
861
+ --dsw-font-xs-13: 13px/20px var(--dsw-font-family);
862
+ --dsw-font-xs-13-font-family: var(--dsw-font-family);
863
+ --dsw-font-xs-13-font-weight: 400;
864
+ --dsw-font-xs-13-line-height: 20px;
865
+ --dsw-font-xs-13-font-size: 13px;
866
+ --dsw-font-xs-13-font-style: normal;
867
+
868
+ --dsw-font-xs-strong-13: 500 13px/20px var(--dsw-font-family);
869
+ --dsw-font-xs-strong-13-font-family: var(--dsw-font-family);
870
+ --dsw-font-xs-strong-13-font-weight: 500;
871
+ --dsw-font-xs-strong-13-line-height: 20px;
872
+ --dsw-font-xs-strong-13-font-size: 13px;
873
+ --dsw-font-xs-strong-13-font-style: normal;
874
+
875
+ --dsw-font-xxs-12: 12px/18px var(--dsw-font-family);
876
+ --dsw-font-xxs-12-font-family: var(--dsw-font-family);
877
+ --dsw-font-xxs-12-font-weight: 400;
878
+ --dsw-font-xxs-12-line-height: 18px;
879
+ --dsw-font-xxs-12-font-size: 12px;
880
+ --dsw-font-xxs-12-font-style: normal;
881
+
882
+ --dsw-font-xxs-strong-12: 500 12px/18px var(--dsw-font-family);
883
+ --dsw-font-xxs-strong-12-font-family: var(--dsw-font-family);
884
+ --dsw-font-xxs-strong-12-font-weight: 500;
885
+ --dsw-font-xxs-strong-12-line-height: 18px;
886
+ --dsw-font-xxs-strong-12-font-size: 12px;
887
+ --dsw-font-xxs-strong-12-font-style: normal;
888
+
889
+ --dsw-font-xxxs-11: 11px/14px var(--dsw-font-family);
890
+ --dsw-font-xxxs-11-font-family: var(--dsw-font-family);
891
+ --dsw-font-xxxs-11-font-weight: 400;
892
+ --dsw-font-xxxs-11-line-height: 14px;
893
+ --dsw-font-xxxs-11-font-size: 11px;
894
+ --dsw-font-xxxs-11-font-style: normal;
895
+
896
+ --dsw-font-xxxs-strong-11: 500 11px/14px var(--dsw-font-family);
897
+ --dsw-font-xxxs-strong-11-font-family: var(--dsw-font-family);
898
+ --dsw-font-xxxs-strong-11-font-weight: 500;
899
+ --dsw-font-xxxs-strong-11-line-height: 14px;
900
+ --dsw-font-xxxs-strong-11-font-size: 11px;
901
+ --dsw-font-xxxs-strong-11-font-style: normal;
902
+ }
903
+
904
+ /* Syntax-highlight token palette: the values behind shiki's css-variables
905
+ theme (--shiki-* custom properties emitted by the ui-primitives CodeBlock).
906
+ Light values on :root, dark overrides on the body attribute — the same
907
+ cascade as every other token sheet. Background/foreground deliberately
908
+ alias the markdown code-block tokens so highlighted and plain blocks agree. */
909
+
910
+ :root {
911
+ --shiki-foreground: var(--dsw-alias-label-primary);
912
+ --shiki-background: var(--dsw-alias-markdown-code-block);
913
+ --shiki-token-constant: #1c7ed6;
914
+ --shiki-token-string: #2f9e44;
915
+ --shiki-token-comment: #868e96;
916
+ --shiki-token-keyword: #d6336c;
917
+ --shiki-token-parameter: #e8590c;
918
+ --shiki-token-function: #6741d9;
919
+ --shiki-token-string-expression: #2b8a3e;
920
+ --shiki-token-punctuation: #495057;
921
+ --shiki-token-link: #1971c2;
922
+ }
923
+
924
+ body[data-ds-dark-theme] {
925
+ --shiki-token-constant: #4dabf7;
926
+ --shiki-token-string: #69db7c;
927
+ --shiki-token-comment: #adb5bd;
928
+ --shiki-token-keyword: #faa2c1;
929
+ --shiki-token-parameter: #ffa94d;
930
+ --shiki-token-function: #b197fc;
931
+ --shiki-token-string-expression: #8ce99a;
932
+ --shiki-token-punctuation: #ced4da;
933
+ --shiki-token-link: #74c0fc;
934
+ }