@moldable-ai/ui 0.2.26 → 0.2.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/dist/catalog/component-catalog.d.ts +9 -2
  2. package/dist/catalog/component-catalog.d.ts.map +1 -1
  3. package/dist/catalog/component-catalog.js +11 -7
  4. package/dist/catalog/core-control-stories.d.ts.map +1 -1
  5. package/dist/catalog/core-control-stories.js +1 -1
  6. package/dist/catalog/core-foundation-stories.d.ts.map +1 -1
  7. package/dist/catalog/core-foundation-stories.js +15 -3
  8. package/dist/components/ui/app-frame.d.ts +20 -1
  9. package/dist/components/ui/app-frame.d.ts.map +1 -1
  10. package/dist/components/ui/app-frame.js +37 -7
  11. package/dist/components/ui/badge.d.ts +1 -1
  12. package/dist/components/ui/badge.js +1 -1
  13. package/dist/components/ui/button.d.ts +5 -3
  14. package/dist/components/ui/button.d.ts.map +1 -1
  15. package/dist/components/ui/button.js +39 -10
  16. package/dist/components/ui/card.d.ts +12 -2
  17. package/dist/components/ui/card.d.ts.map +1 -1
  18. package/dist/components/ui/card.js +3 -2
  19. package/dist/components/ui/checkbox.d.ts +4 -1
  20. package/dist/components/ui/checkbox.d.ts.map +1 -1
  21. package/dist/components/ui/checkbox.js +4 -4
  22. package/dist/components/ui/context-menu.js +6 -6
  23. package/dist/components/ui/date-field.d.ts +1 -1
  24. package/dist/components/ui/dropdown-menu.js +6 -6
  25. package/dist/components/ui/icon-button.d.ts +1 -1
  26. package/dist/components/ui/icon-button.d.ts.map +1 -1
  27. package/dist/components/ui/icon-button.js +1 -0
  28. package/dist/components/ui/index.d.ts +1 -0
  29. package/dist/components/ui/index.d.ts.map +1 -1
  30. package/dist/components/ui/index.js +1 -0
  31. package/dist/components/ui/input-group.d.ts +2 -2
  32. package/dist/components/ui/input.d.ts +6 -2
  33. package/dist/components/ui/input.d.ts.map +1 -1
  34. package/dist/components/ui/input.js +2 -2
  35. package/dist/components/ui/material.d.ts +8 -3
  36. package/dist/components/ui/material.d.ts.map +1 -1
  37. package/dist/components/ui/material.js +2 -2
  38. package/dist/components/ui/search-field.d.ts +3 -1
  39. package/dist/components/ui/search-field.d.ts.map +1 -1
  40. package/dist/components/ui/search-field.js +16 -6
  41. package/dist/components/ui/segmented-control.d.ts +3 -1
  42. package/dist/components/ui/segmented-control.d.ts.map +1 -1
  43. package/dist/components/ui/segmented-control.js +23 -17
  44. package/dist/components/ui/select.js +2 -2
  45. package/dist/components/ui/sidebar.d.ts +5 -3
  46. package/dist/components/ui/sidebar.d.ts.map +1 -1
  47. package/dist/components/ui/sidebar.js +53 -15
  48. package/dist/components/ui/status.d.ts +1 -1
  49. package/dist/components/ui/status.js +1 -1
  50. package/dist/components/ui/switch.d.ts +3 -1
  51. package/dist/components/ui/switch.d.ts.map +1 -1
  52. package/dist/components/ui/switch.js +3 -2
  53. package/dist/components/ui/toolbar-controls.d.ts +49 -0
  54. package/dist/components/ui/toolbar-controls.d.ts.map +1 -0
  55. package/dist/components/ui/toolbar-controls.js +47 -0
  56. package/dist/components/ui/toolbar.d.ts +5 -4
  57. package/dist/components/ui/toolbar.d.ts.map +1 -1
  58. package/dist/components/ui/toolbar.js +3 -3
  59. package/dist/index.d.ts +2 -1
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +3 -1
  62. package/dist/lib/frame-lifecycle.d.ts +1 -0
  63. package/dist/lib/frame-lifecycle.d.ts.map +1 -1
  64. package/dist/lib/frame-lifecycle.js +7 -0
  65. package/dist/lib/theme.d.ts +39 -5
  66. package/dist/lib/theme.d.ts.map +1 -1
  67. package/dist/lib/theme.js +105 -17
  68. package/dist/tokens/contracts.d.ts +79 -0
  69. package/dist/tokens/contracts.d.ts.map +1 -0
  70. package/dist/tokens/contracts.js +57 -0
  71. package/dist/tokens/index.d.ts +2 -0
  72. package/dist/tokens/index.d.ts.map +1 -0
  73. package/dist/tokens/index.js +1 -0
  74. package/docs/README.md +2 -0
  75. package/docs/adaptive-materials.md +14 -9
  76. package/docs/design-tokens.md +10 -6
  77. package/docs/foundations.md +3 -3
  78. package/docs/macos-design-audit.md +144 -0
  79. package/docs/native-integration.md +4 -4
  80. package/docs/platform-architecture.md +189 -0
  81. package/docs/standalone-app-windows.md +37 -0
  82. package/docs/visual-regression.md +6 -8
  83. package/package.json +13 -1
  84. package/src/components/ui/accordion.md +46 -0
  85. package/src/components/ui/alert.md +12 -4
  86. package/src/components/ui/app-frame.md +8 -5
  87. package/src/components/ui/aspect-ratio.md +37 -0
  88. package/src/components/ui/avatar.md +48 -0
  89. package/src/components/ui/breadcrumb.md +52 -0
  90. package/src/components/ui/button-group.md +43 -0
  91. package/src/components/ui/button.md +20 -4
  92. package/src/components/ui/calendar.md +42 -0
  93. package/src/components/ui/card.md +43 -0
  94. package/src/components/ui/carousel.md +47 -0
  95. package/src/components/ui/chart.md +52 -0
  96. package/src/components/ui/checkbox.md +36 -0
  97. package/src/components/ui/collapsible.md +2 -3
  98. package/src/components/ui/color-well.md +14 -4
  99. package/src/components/ui/combobox.md +3 -3
  100. package/src/components/ui/confirm-dialog.md +5 -4
  101. package/src/components/ui/context-menu.md +3 -2
  102. package/src/components/ui/date-field.md +6 -1
  103. package/src/components/ui/date-picker.md +6 -3
  104. package/src/components/ui/dialog.md +14 -12
  105. package/src/components/ui/drawer.md +58 -0
  106. package/src/components/ui/error-boundary-view.md +1 -1
  107. package/src/components/ui/field.md +2 -1
  108. package/src/components/ui/form.md +71 -0
  109. package/src/components/ui/grid.md +4 -3
  110. package/src/components/ui/icon-button.md +4 -1
  111. package/src/components/ui/input-group.md +49 -0
  112. package/src/components/ui/input-otp.md +56 -0
  113. package/src/components/ui/input.md +40 -0
  114. package/src/components/ui/inspector.md +47 -7
  115. package/src/components/ui/item.md +5 -3
  116. package/src/components/ui/kbd.md +30 -0
  117. package/src/components/ui/label.md +29 -0
  118. package/src/components/ui/list.md +2 -2
  119. package/src/components/ui/material.md +25 -12
  120. package/src/components/ui/menu-items.md +60 -0
  121. package/src/components/ui/menubar.md +58 -0
  122. package/src/components/ui/message-scroller-primitive.md +70 -0
  123. package/src/components/ui/message-scroller.md +86 -0
  124. package/src/components/ui/navigation-button-group.md +4 -3
  125. package/src/components/ui/navigation-menu.md +52 -0
  126. package/src/components/ui/number-input.md +8 -0
  127. package/src/components/ui/pagination.md +51 -0
  128. package/src/components/ui/panel.md +6 -0
  129. package/src/components/ui/popover.md +10 -7
  130. package/src/components/ui/progress.md +31 -0
  131. package/src/components/ui/radio-group.md +36 -0
  132. package/src/components/ui/resizable.md +2 -1
  133. package/src/components/ui/scroll-area.md +3 -1
  134. package/src/components/ui/search-field.md +6 -1
  135. package/src/components/ui/segmented-control.md +6 -1
  136. package/src/components/ui/separator.md +35 -0
  137. package/src/components/ui/sidebar.md +20 -3
  138. package/src/components/ui/skeleton.md +36 -0
  139. package/src/components/ui/slider.md +58 -0
  140. package/src/components/ui/spinner.md +41 -0
  141. package/src/components/ui/split-view.md +8 -4
  142. package/src/components/ui/switch.md +44 -0
  143. package/src/components/ui/table.md +7 -7
  144. package/src/components/ui/tabs.md +3 -1
  145. package/src/components/ui/textarea.md +41 -0
  146. package/src/components/ui/toggle-group.md +2 -2
  147. package/src/components/ui/toggle.md +9 -9
  148. package/src/components/ui/toolbar-controls.md +83 -0
  149. package/src/components/ui/toolbar.md +12 -6
  150. package/src/styles/index.css +199 -107
  151. package/src/tokens/contracts.ts +131 -0
  152. package/src/tokens/index.css +6 -0
  153. package/src/tokens/index.ts +23 -0
  154. package/src/tokens/macos-26/README.md +37 -0
  155. package/src/tokens/macos-26/aliases.css +53 -0
  156. package/src/tokens/macos-26/compatibility.css +7 -0
  157. package/src/tokens/macos-26/index.css +3 -0
  158. package/src/tokens/macos-26/source/provenance.generated.json +28 -0
  159. package/src/tokens/macos-26/source/sidebar.generated.css +29 -0
  160. package/src/tokens/macos-26/source.css +7 -0
  161. package/src/tokens/macos-26/web-adaptations.json +25 -0
  162. package/src/tokens/macos-26/web-adaptations.md +15 -0
  163. package/src/tokens/macos-27/accessibility.css +11 -0
  164. package/src/tokens/macos-27/aliases.css +304 -0
  165. package/src/tokens/macos-27/compatibility.css +212 -0
  166. package/src/tokens/macos-27/index.css +15 -0
  167. package/src/tokens/macos-27/recipes.css +23 -0
  168. package/src/tokens/macos-27/source/chrome.generated.css +338 -0
  169. package/src/tokens/macos-27/source/colors.generated.css +140 -0
  170. package/src/tokens/macos-27/source/context.generated.css +18 -0
  171. package/src/tokens/macos-27/source/controls.generated.css +764 -0
  172. package/src/tokens/macos-27/source/effects.generated.css +68 -0
  173. package/src/tokens/macos-27/source/kit.generated.css +50 -0
  174. package/src/tokens/macos-27/source/overlays-status.generated.css +931 -0
  175. package/src/tokens/macos-27/source/paint-styles.generated.css +81 -0
  176. package/src/tokens/macos-27/source/provenance.generated.json +62 -0
  177. package/src/tokens/macos-27/source/sizes.generated.css +385 -0
  178. package/src/tokens/macos-27/source/source.generated.json +554 -0
  179. package/src/tokens/macos-27/source/text-styles.generated.css +116 -0
  180. package/src/tokens/macos-27/source.css +17 -0
  181. package/src/tokens/macos-27/web-adaptations.css +98 -0
  182. package/src/tokens/macos-27/web-adaptations.json +163 -0
  183. package/src/tokens/macos-27/web-adaptations.md +117 -0
  184. package/src/tokens/moldable/brand.css +48 -0
  185. package/src/tokens/moldable/index.css +1 -0
  186. package/src/tokens/platform-contract.test.ts +290 -0
@@ -0,0 +1,212 @@
1
+ /*
2
+ * Complete compatibility surface for components that still consume the
3
+ * pre-platform Moldable/shadcn semantic contract.
4
+ *
5
+ * This adapter is intentionally part of the versioned platform pack. It
6
+ * prevents :root, .dark, Tailwind theme, and application defaults from
7
+ * leaking into the raw macOS 27 profile while components migrate to
8
+ * --m-ui-* roles.
9
+ */
10
+ [data-ui-platform='macos'][data-ui-platform-version='27'] {
11
+ /* Typography */
12
+ --font-family-ui: var(--m27-source-font-family-ui);
13
+ --type-display-size: var(--m27-source-type-large-title-size);
14
+ --type-display-line-height: var(--m27-source-type-large-title-line-height);
15
+ --type-display-weight: var(--m27-source-type-large-title-emphasized-weight);
16
+ --type-display-tracking: 0;
17
+ --type-heading-size: var(--m27-source-type-title-2-size);
18
+ --type-heading-line-height: var(--m27-source-type-title-2-line-height);
19
+ --type-heading-weight: var(--m27-source-type-title-2-emphasized-weight);
20
+ --type-heading-tracking: 0;
21
+ --type-title-size: var(--m27-source-type-title-3-size);
22
+ --type-title-line-height: var(--m27-source-type-title-3-line-height);
23
+ --type-title-weight: var(--m27-source-type-title-3-emphasized-weight);
24
+ --type-title-tracking: 0;
25
+ --type-body-size: var(--m27-source-type-body-size);
26
+ --type-body-line-height: var(--m27-source-type-body-line-height);
27
+ --type-label-size: var(--m27-source-type-headline-size);
28
+ --type-label-line-height: var(--m27-source-type-headline-line-height);
29
+ --type-caption-size: var(--m27-source-type-caption-1-size);
30
+ --type-caption-line-height: var(--m27-source-type-caption-1-line-height);
31
+ --type-badge-size: var(--m27-source-type-caption-1-size);
32
+ --type-badge-line-height: var(--m27-source-type-caption-1-line-height);
33
+
34
+ /* Density and geometry */
35
+ --density-control-height-xs: 16px;
36
+ --density-control-height-sm: 20px;
37
+ --density-control-height-md: 24px;
38
+ --density-control-height-lg: 28px;
39
+ --density-control-height-xl: 36px;
40
+ --density-control-gap: var(--m27-source-chrome-toolbar-control-group-gap);
41
+ --density-control-padding-inline: var(
42
+ --m27-source-size-button-padding-inline
43
+ );
44
+ --density-badge-height: 18px;
45
+ --density-badge-padding-inline: 6px;
46
+ --density-row-height: var(--m27-source-chrome-sidebar-medium-row-height);
47
+ --density-toolbar-height: var(--m27-source-chrome-toolbar-unified-height);
48
+ --density-pane-padding: var(--m27-source-chrome-menu-padding-inline);
49
+ --density-section-gap: var(--m27-source-chrome-toolbar-unified-padding-block);
50
+
51
+ --shape-control: var(--m27-source-size-control-radius);
52
+ --shape-checkbox: var(--m27-source-size-checkboxes-radius);
53
+ --shape-popover: var(--m27-source-popover-radius);
54
+ --shape-card: var(--m27-source-chrome-menu-radius);
55
+ --shape-group: var(--m27-source-chrome-menu-radius);
56
+ --shape-panel: var(--m27-source-chrome-window-radius);
57
+ --shape-dialog: var(--m27-source-dialog-radius);
58
+ --shape-pill: 9999px;
59
+ --shape-container: var(--shape-card);
60
+ --shape-overlay: var(--shape-popover);
61
+ --radius: var(--shape-card);
62
+
63
+ /* Foundational colors */
64
+ --background: var(--m27-source-color-window-background);
65
+ --foreground: var(--m27-source-color-label-primary);
66
+ --card: var(--m27-source-color-window-background);
67
+ --card-foreground: var(--m27-source-color-label-primary);
68
+ --popover: var(--m27-source-color-window-background);
69
+ --popover-foreground: var(--m27-source-color-label-primary);
70
+ --primary: var(--m27-source-color-accent-blue);
71
+ --primary-foreground: var(--m27-source-color-label-white);
72
+ --prominent: var(--m27-source-color-accent-blue);
73
+ --prominent-foreground: var(--m27-source-color-label-white);
74
+ --secondary: var(--m27-source-color-fill-secondary);
75
+ --secondary-foreground: var(--m27-source-color-label-primary);
76
+ --muted: var(--m27-source-color-fill-quinary);
77
+ --muted-foreground: var(--m27-source-color-label-secondary);
78
+ --accent: var(--m27-source-color-fill-primary);
79
+ --accent-foreground: var(--m27-source-color-label-primary);
80
+ --destructive: var(--m27-source-color-accent-red);
81
+ --destructive-foreground: var(--m27-source-color-label-white);
82
+ --border: var(--m27-source-color-fill-primary);
83
+ --input: var(--m27-source-color-fill-primary);
84
+ --ring: var(--m27-source-color-accent-blue);
85
+
86
+ --info: var(--m27-source-color-accent-blue);
87
+ --info-foreground: var(--m27-source-color-accent-blue);
88
+ --neutral: var(--m27-source-color-gray);
89
+ --neutral-foreground: var(--m27-source-color-label-secondary);
90
+ --pending: var(--m27-source-color-accent-yellow);
91
+ --pending-foreground: var(--m27-source-color-accent-yellow);
92
+ --warning: var(--m27-source-color-accent-orange);
93
+ --warning-foreground: var(--m27-source-color-accent-orange);
94
+ --success: var(--m27-source-color-accent-green);
95
+ --success-foreground: var(--m27-source-color-accent-green);
96
+ --status-running: var(--m27-source-color-accent-green);
97
+ --status-stopped: var(--m27-source-color-gray);
98
+ --status-pending: var(--m27-source-color-accent-yellow);
99
+ --status-error: var(--m27-source-color-accent-red);
100
+
101
+ /* Stable semantic roles */
102
+ --text-primary: var(--m27-source-color-label-primary);
103
+ --text-secondary: var(--m27-source-color-label-secondary);
104
+ --text-tertiary: var(--m27-source-color-label-tertiary);
105
+ --text-disabled: var(--m27-source-color-label-tertiary);
106
+ --surface-canvas: var(--m27-source-color-window-background);
107
+ --surface-raised: var(--m27-source-color-window-background);
108
+ --surface-recessed: var(--m27-source-color-fill-quinary);
109
+ --surface-sidebar: var(--m-ui-sidebar-material-fill);
110
+ --surface-toolbar: var(--m27-source-material-medium-fill);
111
+ --surface-overlay: var(--m27-source-material-medium-fill);
112
+ --surface-selected: var(--m27-source-color-fill-primary);
113
+ --separator: var(--m27-source-color-fill-primary);
114
+ --separator-strong: var(--m27-source-color-table-column-separator);
115
+ --control-hover: var(--m27-source-color-fill-quinary);
116
+ --control-pressed: var(--m27-source-color-fill-primary);
117
+ --control-selected: var(--m27-source-color-fill-primary);
118
+ --control-selected-foreground: var(--m27-source-color-label-primary);
119
+ --control-disabled: var(--m27-source-color-fill-quinary);
120
+ --control-focus: var(--m27-source-color-accent-blue);
121
+ --control-invalid: var(--m27-source-color-accent-red);
122
+
123
+ /* Sidebar and collection compatibility */
124
+ --sidebar: var(--m-ui-sidebar-material-fill);
125
+ --sidebar-foreground: var(--m27-source-color-label-primary);
126
+ --sidebar-primary: var(--m27-source-color-accent-blue);
127
+ --sidebar-primary-foreground: var(--m27-source-color-label-white);
128
+ --sidebar-accent: var(--m27-source-color-fill-primary);
129
+ --sidebar-accent-foreground: var(--m27-source-color-label-primary);
130
+ --sidebar-border: var(--m27-source-color-table-column-separator);
131
+ --sidebar-ring: var(--m27-source-color-accent-blue);
132
+
133
+ /* Toolbar and window chrome */
134
+ --toolbar-control-background: var(--m27-source-color-fill-quinary);
135
+ --toolbar-control-hover: var(--m27-source-color-fill-secondary);
136
+ --toolbar-control-pressed: var(--m27-source-color-fill-primary);
137
+ --toolbar-control-border: var(--m27-source-color-fill-primary);
138
+ --toolbar-control-shadow: none;
139
+ --window-corner-radius: var(--m27-source-chrome-window-radius);
140
+ --window-chrome-background: var(--m27-source-material-medium-fill);
141
+ --window-chrome-foreground: var(--m27-source-color-label-primary);
142
+ --window-chrome-muted-foreground: var(--m27-source-color-label-secondary);
143
+ --window-border: var(--m27-source-color-fill-primary);
144
+
145
+ /* Materials */
146
+ --material-blur-toolbar: var(--m27-source-material-standard-blur);
147
+ --material-blur-overlay: var(--m27-source-material-standard-blur);
148
+ --material-saturation: 1;
149
+ --material-ultra-thick-fill: var(--m27-source-material-ultra-thick-fill);
150
+ --material-thick-fill: var(--m27-source-material-thick-fill);
151
+ --material-medium-fill: var(--m27-source-material-medium-fill);
152
+ --material-thin-fill: var(--m27-source-material-thin-fill);
153
+ --material-ultra-thin-fill: var(--m27-source-material-ultra-thin-fill);
154
+ --material-ultra-thick-fallback: var(
155
+ --m27-source-material-ultra-thick-layer-1-color
156
+ );
157
+ --material-thick-fallback: var(--m27-source-material-thick-layer-1-color);
158
+ --material-medium-fallback: var(--m27-source-material-medium-layer-1-color);
159
+ --material-thin-fallback: var(--m27-source-material-thin-layer-1-color);
160
+ --material-ultra-thin-fallback: var(
161
+ --m27-source-material-ultra-thin-layer-1-color
162
+ );
163
+ --material-standard-blur: var(--m27-source-material-standard-blur);
164
+ --material-regular-fill: var(--m27-source-material-medium-fill);
165
+ --material-regular-fallback: var(--m27-source-material-medium-layer-1-color);
166
+ --material-regular-border: var(--m27-source-color-fill-primary);
167
+ --material-regular-highlight: var(--m27-source-color-label-quaternary);
168
+ --material-regular-blur: var(--m27-source-material-standard-blur);
169
+ --material-regular-saturation: 1;
170
+ --material-clear-fill: var(--m27-source-material-ultra-thin-fill);
171
+ --material-clear-fallback: var(
172
+ --m27-source-material-ultra-thin-layer-1-color
173
+ );
174
+ --material-clear-border: var(--m27-source-color-fill-primary);
175
+ --material-clear-highlight: var(--m27-source-color-label-quaternary);
176
+ --material-clear-blur: var(--m27-source-material-standard-blur);
177
+ --material-clear-saturation: 1;
178
+ /*
179
+ * Structural cards live in the content layer. They deliberately do not
180
+ * inherit the source Liquid Glass effects used by floating panels.
181
+ */
182
+ --material-shadow-card: 0 1px 2px rgb(0 0 0 / 8%);
183
+ --material-shadow-sidebar:
184
+ 0 1px 2px rgb(0 0 0 / 5%), 0 3px 10px rgb(0 0 0 / 4%);
185
+ --material-shadow-panel: var(--m27-source-effect-liquid-glass-medium);
186
+ --material-shadow-overlay: var(--m27-source-effect-liquid-glass-large);
187
+ --material-shadow-dialog: var(--m-ui-dialog-shadow), var(--m-ui-dialog-halo);
188
+ --material-shadow-window: var(--m27-source-effect-window-active);
189
+ }
190
+
191
+ [data-ui-platform='macos'][data-ui-platform-version='27']
192
+ [data-ui-appearance='dark'],
193
+ [data-ui-platform='macos'][data-ui-platform-version='27'][data-ui-appearance='dark'] {
194
+ --material-shadow-card: 0 1px 2px rgb(0 0 0 / 28%);
195
+ --material-shadow-sidebar:
196
+ 0 1px 2px rgb(0 0 0 / 20%), 0 3px 10px rgb(0 0 0 / 14%);
197
+ }
198
+
199
+ /*
200
+ * A component-level edge-to-edge override can live beneath a root using the
201
+ * Moldable floating-sidebar recipe. Reassert the joined-canvas contract at
202
+ * the sidebar boundary so floating brand colors and perimeter styling never
203
+ * leak into this anatomy.
204
+ */
205
+ [data-ui-sidebar-style='edge-to-edge'][data-slot='sidebar'] {
206
+ --m-ui-sidebar-material-fill: transparent;
207
+ --m-ui-sidebar-border-width: 0px;
208
+ --m-ui-sidebar-border-color: transparent;
209
+ --sidebar: transparent;
210
+ --sidebar-border: transparent;
211
+ --surface-sidebar: transparent;
212
+ }
@@ -0,0 +1,15 @@
1
+ @import './source/colors.generated.css';
2
+ @import './source/sizes.generated.css';
3
+ @import './source/text-styles.generated.css';
4
+ @import './source/paint-styles.generated.css';
5
+ @import './source/kit.generated.css';
6
+ @import './source/effects.generated.css';
7
+ @import './source/context.generated.css';
8
+ @import './source/chrome.generated.css';
9
+ @import './source/controls.generated.css';
10
+ @import './source/overlays-status.generated.css';
11
+ @import './web-adaptations.css';
12
+ @import './aliases.css';
13
+ @import './compatibility.css';
14
+ @import './recipes.css';
15
+ @import './accessibility.css';
@@ -0,0 +1,23 @@
1
+ [data-ui-platform='macos'][data-ui-platform-version='27'] {
2
+ --m-ui-window-radius: 16px;
3
+ --m-ui-window-shadow-active: var(--m27-source-effect-window-active);
4
+ --m-ui-window-shadow-inactive: var(--m27-source-effect-window-inactive);
5
+ --m-ui-toolbar-padding-block: 8px;
6
+ --m-ui-toolbar-padding-inline-start: 18px;
7
+ --m-ui-toolbar-padding-inline-end: 8px;
8
+ --m-ui-toolbar-gap: 8px;
9
+ --m-ui-toolbar-control-group-height: 24px;
10
+ --m-ui-toolbar-control-group-padding: 2px;
11
+ --m-ui-toolbar-control-group-gap: 4px;
12
+ --m-ui-toolbar-control-height: 20px;
13
+ --m-ui-toolbar-title-size: 13px;
14
+ --m-ui-toolbar-title-line-height: 15px;
15
+ --m-ui-toolbar-title-weight: 700;
16
+ --m-ui-traffic-light-size: 14px;
17
+ --m-ui-traffic-light-gap: 9px;
18
+ }
19
+
20
+ [data-ui-platform='macos'][data-ui-platform-version='27'][data-control-size='xl'] {
21
+ --m-ui-toolbar-control-group-height: 36px;
22
+ --m-ui-toolbar-control-height: 28px;
23
+ }
@@ -0,0 +1,338 @@
1
+ /*
2
+ * Generated from the macOS 27 chrome and navigation specification.
3
+ * Values only. No source artwork, symbols, vectors, or image assets.
4
+ *
5
+ * State axes remain independent:
6
+ * - appearance: light | dark
7
+ * - window activity: active | inactive
8
+ * - control state: idle | selected | disabled | focused | typing
9
+ * - selection state: selected-active | selected-inactive | unselected
10
+ */
11
+
12
+ [data-ui-platform='macos'][data-ui-platform-version='27'] {
13
+ /* Window geometry */
14
+ --m27-source-chrome-window-radius: 16px;
15
+ --m27-source-chrome-window-reference-width: 840px;
16
+ --m27-source-chrome-window-reference-width-with-sidebar: 870px;
17
+ --m27-source-chrome-window-reference-height: 400px;
18
+ --m27-source-chrome-window-sidebar-pane-width: 240px;
19
+ --m27-source-chrome-window-content-pane-width: 600px;
20
+ --m27-source-chrome-window-content-pane-width-with-sidebar: 630px;
21
+
22
+ /* Titlebar and toolbar modes */
23
+ --m27-source-chrome-titlebar-default-height: 30px;
24
+ --m27-source-chrome-titlebar-titled-height: 31px;
25
+ --m27-source-chrome-toolbar-unified-compact-height: 40px;
26
+ --m27-source-chrome-toolbar-separated-height: 44px;
27
+ --m27-source-chrome-toolbar-unified-height: 52px;
28
+ --m27-source-chrome-toolbar-expanded-height: 52px;
29
+ --m27-source-chrome-toolbar-gap: 8px;
30
+ --m27-source-chrome-toolbar-separated-padding-block-start: 0px;
31
+ --m27-source-chrome-toolbar-separated-padding-inline-end: 8px;
32
+ --m27-source-chrome-toolbar-separated-padding-block-end: 8px;
33
+ --m27-source-chrome-toolbar-separated-padding-inline-start: 8px;
34
+ --m27-source-chrome-toolbar-unified-padding-block: 8px;
35
+ --m27-source-chrome-toolbar-unified-padding-inline-end: 8px;
36
+ --m27-source-chrome-toolbar-unified-padding-inline-start: 18px;
37
+
38
+ /* Standard window controls */
39
+ --m27-source-chrome-stoplight-size: 14px;
40
+ --m27-source-chrome-stoplight-gap: 9px;
41
+ --m27-source-chrome-stoplight-pitch: 23px;
42
+ --m27-source-chrome-stoplight-group-width: 68px;
43
+ --m27-source-chrome-stoplight-group-height: 14px;
44
+ --m27-source-chrome-stoplight-radius: 9999px;
45
+ --m27-source-chrome-stoplight-close: #ff5c60;
46
+ --m27-source-chrome-stoplight-minimize: #fac800;
47
+ --m27-source-chrome-stoplight-zoom: #35c759;
48
+ --m27-source-chrome-stoplight-active-edge: rgb(0 0 0 / 45%);
49
+ --m27-source-chrome-stoplight-default-inline-start: 8px;
50
+ --m27-source-chrome-stoplight-default-block-start: 8px;
51
+ --m27-source-chrome-stoplight-titled-inline-start: 8px;
52
+ --m27-source-chrome-stoplight-titled-block-start: 8.5px;
53
+ --m27-source-chrome-stoplight-unified-compact-inline-start: 18px;
54
+ --m27-source-chrome-stoplight-unified-compact-block-start: 13px;
55
+ --m27-source-chrome-stoplight-unified-inline-start: 18px;
56
+ --m27-source-chrome-stoplight-unified-block-start: 19px;
57
+ --m27-source-chrome-stoplight-expanded-inline-start: 18px;
58
+ --m27-source-chrome-stoplight-expanded-block-start: 19px;
59
+
60
+ /* Utility-panel window controls */
61
+ --m27-source-chrome-utility-stoplight-size: 10px;
62
+ --m27-source-chrome-utility-stoplight-gap: 7px;
63
+ --m27-source-chrome-utility-stoplight-pitch: 17px;
64
+ --m27-source-chrome-utility-stoplight-group-width: 44px;
65
+ --m27-source-chrome-utility-stoplight-group-height: 10px;
66
+ --m27-source-chrome-utility-panel-radius: 15px;
67
+
68
+ /* Window title */
69
+ --m27-source-chrome-window-title-reference-width: 111px;
70
+ --m27-source-chrome-window-title-height: 30px;
71
+ --m27-source-chrome-window-title-gap: 3px;
72
+ --m27-source-chrome-window-title-symbol-width: 17px;
73
+ --m27-source-chrome-window-title-symbol-height: 15px;
74
+ --m27-source-chrome-window-title-stack-width: 91px;
75
+ --m27-source-chrome-window-title-stack-height: 30px;
76
+ --m27-source-chrome-window-title-stack-gap: 2px;
77
+ --m27-source-chrome-window-title-font-size: 13px;
78
+ --m27-source-chrome-window-title-line-height: 15px;
79
+ --m27-source-chrome-window-title-font-weight: 700;
80
+ --m27-source-chrome-window-title-with-sidebar-font-size: 15px;
81
+ --m27-source-chrome-window-title-with-sidebar-line-height: 15px;
82
+ --m27-source-chrome-window-title-symbol-font-size: 15px;
83
+ --m27-source-chrome-window-title-symbol-line-height: 15px;
84
+ --m27-source-chrome-window-title-symbol-font-weight: 600;
85
+ --m27-source-chrome-window-subtitle-font-size: 11px;
86
+ --m27-source-chrome-window-subtitle-line-height: 13px;
87
+ --m27-source-chrome-window-subtitle-font-weight: 500;
88
+ --m27-source-chrome-utility-title-height: 16px;
89
+ --m27-source-chrome-utility-title-gap: 3px;
90
+ --m27-source-chrome-utility-title-font-size: 13px;
91
+ --m27-source-chrome-utility-title-font-weight: 700;
92
+
93
+ /* Toolbar size axis */
94
+ --m27-source-chrome-toolbar-medium-control-height: 24px;
95
+ --m27-source-chrome-toolbar-large-control-height: 36px;
96
+ --m27-source-chrome-toolbar-medium-inset: 2px;
97
+ --m27-source-chrome-toolbar-large-inset: 4px;
98
+ --m27-source-chrome-toolbar-control-group-gap: 4px;
99
+ --m27-source-chrome-toolbar-medium-icon-button-size: 24px;
100
+ --m27-source-chrome-toolbar-large-icon-button-size: 36px;
101
+ --m27-source-chrome-toolbar-medium-icon-content-width: 24px;
102
+ --m27-source-chrome-toolbar-medium-icon-content-height: 20px;
103
+ --m27-source-chrome-toolbar-large-icon-content-width: 32px;
104
+ --m27-source-chrome-toolbar-large-icon-content-height: 28px;
105
+
106
+ /* Toolbar control compositions */
107
+ --m27-source-chrome-toolbar-medium-segmented-reference-width: 121px;
108
+ --m27-source-chrome-toolbar-large-segmented-reference-width: 145px;
109
+ --m27-source-chrome-toolbar-medium-group-reference-width: 72px;
110
+ --m27-source-chrome-toolbar-large-group-reference-width: 100px;
111
+ --m27-source-chrome-toolbar-search-width: 130px;
112
+ --m27-source-chrome-toolbar-search-medium-gap: 4px;
113
+ --m27-source-chrome-toolbar-search-large-gap: 6px;
114
+ --m27-source-chrome-toolbar-search-medium-padding-inline: 6px;
115
+ --m27-source-chrome-toolbar-search-large-padding-inline: 10px;
116
+ --m27-source-chrome-toolbar-search-radius: 9999px;
117
+ --m27-source-chrome-toolbar-medium-pull-down-width: 39px;
118
+ --m27-source-chrome-toolbar-large-pull-down-width: 50px;
119
+ --m27-source-chrome-toolbar-medium-pop-up-width: 57px;
120
+ --m27-source-chrome-toolbar-large-pop-up-width: 63px;
121
+ --m27-source-chrome-toolbar-pull-down-gap: 2px;
122
+ --m27-source-chrome-toolbar-pull-down-medium-padding-inline: 6px;
123
+ --m27-source-chrome-toolbar-pull-down-large-padding-inline: 8px;
124
+ --m27-source-chrome-toolbar-separator-width: 3px;
125
+ --m27-source-chrome-toolbar-medium-separator-height: 16px;
126
+ --m27-source-chrome-toolbar-large-separator-height: 20px;
127
+ --m27-source-chrome-toolbar-utility-tab-bar-width: 220px;
128
+ --m27-source-chrome-toolbar-utility-tab-bar-height: 30px;
129
+ --m27-source-chrome-toolbar-utility-tab-width: 44px;
130
+ --m27-source-chrome-toolbar-utility-tab-height: 30px;
131
+ --m27-source-chrome-toolbar-utility-tab-radius: 6px;
132
+
133
+ /* Sidebar */
134
+ --m27-source-chrome-sidebar-width: 240px;
135
+ --m27-source-chrome-sidebar-reference-height: 560px;
136
+ --m27-source-chrome-sidebar-stoplight-row-height: 52px;
137
+ --m27-source-chrome-sidebar-padding-block-end: 10px;
138
+ --m27-source-chrome-sidebar-large-row-height: 36px;
139
+ --m27-source-chrome-sidebar-medium-row-height: 32px;
140
+ --m27-source-chrome-sidebar-small-row-height: 24px;
141
+ --m27-source-chrome-sidebar-large-selection-radius: 8px;
142
+ --m27-source-chrome-sidebar-medium-selection-radius: 5px;
143
+ --m27-source-chrome-sidebar-small-selection-radius: 5px;
144
+ --m27-source-chrome-sidebar-indent: 12px;
145
+ --m27-source-chrome-sidebar-level-0-inset: 0px;
146
+ --m27-source-chrome-sidebar-level-1-inset: 12px;
147
+ --m27-source-chrome-sidebar-level-2-inset: 24px;
148
+ --m27-source-chrome-sidebar-level-3-inset: 36px;
149
+ --m27-source-chrome-sidebar-level-4-inset: 48px;
150
+ --m27-source-chrome-sidebar-disclosure-width: 12px;
151
+ --m27-source-chrome-sidebar-item-gap: 4px;
152
+ --m27-source-chrome-sidebar-selection-bleed-inline: 4px;
153
+ --m27-source-chrome-sidebar-item-padding-inline-end: 2px;
154
+ --m27-source-chrome-sidebar-large-detail-width: 42px;
155
+ --m27-source-chrome-sidebar-large-detail-height: 20px;
156
+ --m27-source-chrome-sidebar-medium-detail-width: 37px;
157
+ --m27-source-chrome-sidebar-medium-detail-height: 14px;
158
+ --m27-source-chrome-sidebar-small-detail-width: 31px;
159
+ --m27-source-chrome-sidebar-small-detail-height: 14px;
160
+ --m27-source-chrome-sidebar-section-width: 210px;
161
+ --m27-source-chrome-sidebar-section-small-later-padding-block-start: 15px;
162
+ --m27-source-chrome-sidebar-section-medium-later-padding-block-start: 17px;
163
+ --m27-source-chrome-sidebar-section-large-later-padding-block-start: 18px;
164
+ --m27-source-chrome-sidebar-section-small-padding-block-end: 5px;
165
+ --m27-source-chrome-sidebar-section-medium-padding-block-end: 8px;
166
+ --m27-source-chrome-sidebar-section-large-padding-block-end: 9px;
167
+ --m27-source-chrome-sidebar-large-font-size: 15px;
168
+ --m27-source-chrome-sidebar-large-line-height: 20px;
169
+ --m27-source-chrome-sidebar-medium-font-size: 13px;
170
+ --m27-source-chrome-sidebar-medium-line-height: 16px;
171
+ --m27-source-chrome-sidebar-small-font-size: 11px;
172
+ --m27-source-chrome-sidebar-small-line-height: 14px;
173
+ --m27-source-chrome-sidebar-section-font-size: 11px;
174
+ --m27-source-chrome-sidebar-section-line-height: 14px;
175
+
176
+ /* Menu geometry */
177
+ --m27-source-chrome-menu-radius: 12px;
178
+ --m27-source-chrome-menu-reference-width: 244px;
179
+ --m27-source-chrome-menu-reference-height: 284px;
180
+ --m27-source-chrome-menu-padding-block: 5px;
181
+ --m27-source-chrome-menu-padding-inline: 12px;
182
+ --m27-source-chrome-menu-content-reference-width: 220px;
183
+ --m27-source-chrome-menu-content-reference-height: 274px;
184
+ --m27-source-chrome-menu-item-reference-width: 160px;
185
+ --m27-source-chrome-menu-item-height: 24px;
186
+ --m27-source-chrome-menu-item-radius: 8px;
187
+ --m27-source-chrome-menu-item-gap: 8px;
188
+ --m27-source-chrome-menu-item-selection-inset: 12px;
189
+ --m27-source-chrome-menu-header-reference-width: 100px;
190
+ --m27-source-chrome-menu-header-height: 25px;
191
+ --m27-source-chrome-menu-header-padding-block-start: 5px;
192
+ --m27-source-chrome-menu-header-padding-block-end: 4px;
193
+ --m27-source-chrome-menu-header-inset: 20px;
194
+ --m27-source-chrome-menu-separator-reference-width: 100px;
195
+ --m27-source-chrome-menu-separator-height: 11px;
196
+ --m27-source-chrome-menu-separator-padding-block: 5px;
197
+ --m27-source-chrome-menu-shortcut-reference-width: 25px;
198
+ --m27-source-chrome-menu-shortcut-height: 16px;
199
+ --m27-source-chrome-menu-shortcut-gap: 1px;
200
+ --m27-source-chrome-menu-item-font-size: 13px;
201
+ --m27-source-chrome-menu-item-font-weight: 500;
202
+ --m27-source-chrome-menu-header-font-size: 10px;
203
+ --m27-source-chrome-menu-header-line-height: 16px;
204
+ --m27-source-chrome-menu-header-font-weight: 700;
205
+ --m27-source-chrome-menu-shortcut-font-size-min: 10px;
206
+ --m27-source-chrome-menu-shortcut-font-size-max: 11px;
207
+
208
+ /* Menu glass-effect source parameters */
209
+ --m27-source-chrome-menu-glass-radius: 25px;
210
+ --m27-source-chrome-menu-glass-refraction: 0.7;
211
+ --m27-source-chrome-menu-glass-depth: 40;
212
+ --m27-source-chrome-menu-glass-light-angle: 0;
213
+ --m27-source-chrome-menu-glass-light-intensity: 0.2;
214
+ --m27-source-chrome-menu-glass-dispersion: 0.4;
215
+ --m27-source-chrome-menu-glass-splay: 0.2;
216
+ --m27-source-chrome-menu-shadow-offset-x: 0px;
217
+ --m27-source-chrome-menu-shadow-offset-y: 8px;
218
+ --m27-source-chrome-menu-shadow-radius: 48px;
219
+ --m27-source-chrome-menu-perimeter-spread: 0.5px;
220
+ --m27-source-chrome-menu-side-edge-offset: 1.25px;
221
+ --m27-source-chrome-menu-side-edge-spread: -0.75px;
222
+
223
+ /* Lists and tables */
224
+ --m27-source-chrome-table-reference-width: 600px;
225
+ --m27-source-chrome-table-row-height: 20px;
226
+ --m27-source-chrome-table-row-gap: 3px;
227
+ --m27-source-chrome-table-selection-radius: 8px;
228
+ --m27-source-chrome-table-indent: 15px;
229
+ --m27-source-chrome-table-level-0-inset: 0px;
230
+ --m27-source-chrome-table-level-1-inset: 15px;
231
+ --m27-source-chrome-table-level-2-inset: 30px;
232
+ --m27-source-chrome-table-level-3-inset: 45px;
233
+ --m27-source-chrome-table-level-4-inset: 60px;
234
+ --m27-source-chrome-table-column-reference-width: 150px;
235
+ --m27-source-chrome-table-column-label-height: 19px;
236
+ --m27-source-chrome-table-column-first-inset: 50px;
237
+ --m27-source-chrome-table-column-inset: 8px;
238
+ --m27-source-chrome-table-column-padding-inline-end: 6px;
239
+ --m27-source-chrome-table-header-height: 28px;
240
+ --m27-source-chrome-table-header-padding-block-start: 4px;
241
+ --m27-source-chrome-table-header-padding-block-end: 5px;
242
+ --m27-source-chrome-table-sort-indicator-width: 13px;
243
+ --m27-source-chrome-table-sort-indicator-height: 19px;
244
+ --m27-source-chrome-table-disclosure-width: 5px;
245
+ --m27-source-chrome-table-disclosure-height: 20px;
246
+ --m27-source-chrome-table-icon-size: 18px;
247
+ --m27-source-chrome-table-icon-inset: 2px;
248
+ --m27-source-chrome-table-group-title-width: 150px;
249
+ --m27-source-chrome-table-group-title-height: 45px;
250
+ --m27-source-chrome-table-group-title-padding-block-start: 24px;
251
+ --m27-source-chrome-table-group-title-padding-inline-end: 8px;
252
+ --m27-source-chrome-table-group-title-padding-block-end: 7px;
253
+ --m27-source-chrome-table-group-title-padding-inline-start: 50px;
254
+ --m27-source-chrome-outline-reference-width: 900px;
255
+ --m27-source-chrome-outline-reference-height: 450px;
256
+ --m27-source-chrome-table-primary-font-size: 11px;
257
+ --m27-source-chrome-table-primary-line-height: 14px;
258
+ --m27-source-chrome-table-secondary-font-size: 9px;
259
+ --m27-source-chrome-table-secondary-line-height: 13px;
260
+ --m27-source-chrome-table-indicator-font-size: 9px;
261
+ --m27-source-chrome-table-indicator-line-height: 9px;
262
+
263
+ /* Overlay scrollbar fallback */
264
+ --m27-source-chrome-scrollbar-cross-size: 12px;
265
+ --m27-source-chrome-scrollbar-inset: 3px;
266
+ --m27-source-chrome-scrollbar-travel-cross-size: 6px;
267
+ --m27-source-chrome-scrollbar-reference-length: 64px;
268
+ --m27-source-chrome-scrollbar-travel-length: 58px;
269
+ --m27-source-chrome-scrollbar-thumb-cross-size: 6px;
270
+ --m27-source-chrome-scrollbar-thumb-radius: 9999px;
271
+ --m27-source-chrome-scrollbar-page-factor-2-thumb-length: 29px;
272
+ --m27-source-chrome-scrollbar-page-factor-4-thumb-length: 15px;
273
+ --m27-source-chrome-scrollbar-page-factor-8-thumb-length: 8px;
274
+ --m27-source-chrome-scrollbar-thumb-min-length: 8px;
275
+
276
+ /* Menu bar and Dock are native-host reference metrics */
277
+ --m27-source-chrome-menu-bar-height: 34px;
278
+ --m27-source-chrome-menu-bar-padding-block: 5px;
279
+ --m27-source-chrome-menu-bar-padding-inline-start: 10px;
280
+ --m27-source-chrome-menu-bar-padding-inline-end: 20px;
281
+ --m27-source-chrome-menu-bar-item-height: 24px;
282
+ --m27-source-chrome-menu-bar-item-radius: 4px;
283
+ --m27-source-chrome-menu-bar-item-padding-inline: 9px;
284
+ --m27-source-chrome-menu-bar-app-name-padding-inline-start: 11px;
285
+ --m27-source-chrome-menu-bar-system-item-width: 33px;
286
+ --m27-source-chrome-menu-bar-app-name-reference-width: 90px;
287
+ --m27-source-chrome-menu-bar-item-reference-width: 47px;
288
+ --m27-source-chrome-dock-height: 55px;
289
+ --m27-source-chrome-dock-gap: 9px;
290
+ --m27-source-chrome-dock-padding-block-start: 8px;
291
+ --m27-source-chrome-dock-padding-inline: 8px;
292
+ --m27-source-chrome-dock-padding-block-end: 0px;
293
+ --m27-source-chrome-dock-item-width: 36px;
294
+ --m27-source-chrome-dock-item-height: 47px;
295
+ --m27-source-chrome-dock-indicator-gap: 3px;
296
+ --m27-source-chrome-dock-item-padding-block-end: 4px;
297
+ }
298
+
299
+ [data-ui-platform='macos'][data-ui-platform-version='27'],
300
+ [data-ui-platform='macos'][data-ui-platform-version='27'][data-ui-appearance='light'] {
301
+ /* Active and inactive window surfaces stay separate. */
302
+ --m27-source-chrome-window-surface: #ffffff;
303
+ --m27-source-chrome-window-border: transparent;
304
+ --m27-source-chrome-window-active-shadow:
305
+ 0 0 1px rgb(0 0 0 / 80%), 0 18px 54px rgb(0 0 0 / 30%);
306
+ --m27-source-chrome-window-inactive-shadow:
307
+ 0 0 1px rgb(0 0 0 / 80%), 0 7px 21px rgb(0 0 0 / 20%);
308
+
309
+ --m27-source-chrome-stoplight-inactive-fill: rgb(0 0 0 / 15%);
310
+ --m27-source-chrome-stoplight-inactive-edge: rgb(0 0 0 / 6%);
311
+
312
+ --m27-source-chrome-menu-fill-primary: rgb(217 217 217 / 55%);
313
+ --m27-source-chrome-menu-fill-secondary: rgb(217 217 217 / 40%);
314
+ --m27-source-chrome-menu-shadow: 0 8px 48px rgb(0 0 0 / 25%);
315
+ --m27-source-chrome-menu-perimeter-color: #dbdbdb;
316
+ --m27-source-chrome-menu-glass-inner-keyline-color: #262626;
317
+ --m27-source-chrome-scrollbar-thumb-color: rgb(0 0 0 / 50%);
318
+ }
319
+
320
+ [data-ui-platform='macos'][data-ui-platform-version='27'][data-ui-appearance='dark'] {
321
+ /* Active and inactive window surfaces stay separate. */
322
+ --m27-source-chrome-window-surface: #1e1e1e;
323
+ --m27-source-chrome-window-border: rgb(255 255 255 / 20%);
324
+ --m27-source-chrome-window-active-shadow:
325
+ 0 0 1px rgb(0 0 0 / 80%), 0 18px 54px rgb(0 0 0 / 57%);
326
+ --m27-source-chrome-window-inactive-shadow:
327
+ 0 0 1px rgb(0 0 0 / 80%), 0 7px 21px rgb(0 0 0 / 35%);
328
+
329
+ --m27-source-chrome-stoplight-inactive-fill: rgb(255 255 255 / 17%);
330
+ --m27-source-chrome-stoplight-inactive-edge: rgb(255 255 255 / 3%);
331
+
332
+ --m27-source-chrome-menu-fill-primary: rgb(255 255 255 / 20%);
333
+ --m27-source-chrome-menu-fill-secondary: rgb(64 64 64 / 80%);
334
+ --m27-source-chrome-menu-shadow: 0 8px 48px rgb(0 0 0 / 45%);
335
+ --m27-source-chrome-menu-perimeter-color: #a6a6a6;
336
+ --m27-source-chrome-menu-glass-inner-keyline-color: #404040;
337
+ --m27-source-chrome-scrollbar-thumb-color: rgb(255 255 255 / 55%);
338
+ }