@smwb/ui-styles 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +60 -0
  3. package/less/_prelude.less +6 -0
  4. package/less/components/accordion/accordion.entry.less +2 -0
  5. package/less/components/accordion/accordion.less +36 -0
  6. package/less/components/appBar/appBar.entry.less +2 -0
  7. package/less/components/appBar/appBar.less +95 -0
  8. package/less/components/appLayout/appLayout.entry.less +2 -0
  9. package/less/components/appLayout/appLayout.less +112 -0
  10. package/less/components/avatar/avatar.entry.less +2 -0
  11. package/less/components/avatar/avatar.less +74 -0
  12. package/less/components/badge/badge.entry.less +2 -0
  13. package/less/components/badge/badge.less +66 -0
  14. package/less/components/bottomBar/bottomBar.entry.less +2 -0
  15. package/less/components/bottomBar/bottomBar.less +84 -0
  16. package/less/components/breadcrumbs/breadcrumbs.entry.less +2 -0
  17. package/less/components/breadcrumbs/breadcrumbs.less +57 -0
  18. package/less/components/button/button.entry.less +2 -0
  19. package/less/components/button/button.less +164 -0
  20. package/less/components/buttonGroup/buttonGroup.entry.less +2 -0
  21. package/less/components/buttonGroup/buttonGroup.less +95 -0
  22. package/less/components/card/card.entry.less +2 -0
  23. package/less/components/card/card.less +56 -0
  24. package/less/components/carousel/carousel.entry.less +2 -0
  25. package/less/components/carousel/carousel.less +75 -0
  26. package/less/components/chat/chat.entry.less +2 -0
  27. package/less/components/chat/chat.less +623 -0
  28. package/less/components/chat/chat.variables.less +9 -0
  29. package/less/components/checkbox/checkbox.entry.less +2 -0
  30. package/less/components/checkbox/checkbox.less +109 -0
  31. package/less/components/chip/chip.entry.less +2 -0
  32. package/less/components/chip/chip.less +121 -0
  33. package/less/components/datePicker/dataPicker.entry.less +2 -0
  34. package/less/components/datePicker/dataPicker.less +235 -0
  35. package/less/components/divider/divider.entry.less +2 -0
  36. package/less/components/divider/divider.less +69 -0
  37. package/less/components/expansionPanel/expansionPanel.entry.less +2 -0
  38. package/less/components/expansionPanel/expansionPanel.less +136 -0
  39. package/less/components/fileDrop/fileDrop.entry.less +2 -0
  40. package/less/components/fileDrop/fileDrop.less +67 -0
  41. package/less/components/fileInput/fileInput.entry.less +2 -0
  42. package/less/components/fileInput/fileInput.less +4 -0
  43. package/less/components/floatingButton/floatingButton.entry.less +2 -0
  44. package/less/components/floatingButton/floatingButton.less +94 -0
  45. package/less/components/grid/grid.entry.less +2 -0
  46. package/less/components/grid/grid.less +174 -0
  47. package/less/components/icon/icon.entry.less +2 -0
  48. package/less/components/icon/icon.less +27 -0
  49. package/less/components/imagesList/imagesList.entry.less +2 -0
  50. package/less/components/imagesList/imagesList.less +35 -0
  51. package/less/components/imagesList/imagesListItem/imagesListItem.entry.less +2 -0
  52. package/less/components/imagesList/imagesListItem/imagesListItem.less +117 -0
  53. package/less/components/list/list.entry.less +2 -0
  54. package/less/components/list/list.less +87 -0
  55. package/less/components/menu/menu.entry.less +2 -0
  56. package/less/components/menu/menu.less +121 -0
  57. package/less/components/message/message.entry.less +2 -0
  58. package/less/components/message/message.less +103 -0
  59. package/less/components/modal/modal.entry.less +2 -0
  60. package/less/components/modal/modal.less +215 -0
  61. package/less/components/page/page.entry.less +2 -0
  62. package/less/components/page/page.less +39 -0
  63. package/less/components/pageHeader/pageHeader.entry.less +2 -0
  64. package/less/components/pageHeader/pageHeader.less +49 -0
  65. package/less/components/pagination/pagination.entry.less +2 -0
  66. package/less/components/pagination/pagination.less +103 -0
  67. package/less/components/progressIndicator/progressIndicator.entry.less +2 -0
  68. package/less/components/progressIndicator/progressIndicator.less +107 -0
  69. package/less/components/radioButton/radioButton.entry.less +2 -0
  70. package/less/components/radioButton/radioButton.less +138 -0
  71. package/less/components/rating/rating.entry.less +2 -0
  72. package/less/components/rating/rating.less +65 -0
  73. package/less/components/ripple/ripple.entry.less +2 -0
  74. package/less/components/ripple/ripple.less +24 -0
  75. package/less/components/screenDivider/screenDivider.entry.less +2 -0
  76. package/less/components/screenDivider/screenDivider.less +56 -0
  77. package/less/components/selectField/selectField.entry.less +2 -0
  78. package/less/components/selectField/selectField.less +182 -0
  79. package/less/components/sheet/sheet.entry.less +2 -0
  80. package/less/components/sheet/sheet.less +243 -0
  81. package/less/components/sidebar/sidebar.entry.less +2 -0
  82. package/less/components/sidebar/sidebar.less +137 -0
  83. package/less/components/skeleton/skeleton.entry.less +2 -0
  84. package/less/components/skeleton/skeleton.less +67 -0
  85. package/less/components/slider/slider.entry.less +2 -0
  86. package/less/components/slider/slider.less +294 -0
  87. package/less/components/snackbar/snackbar.entry.less +2 -0
  88. package/less/components/snackbar/snackbar.less +157 -0
  89. package/less/components/stack/stack.entry.less +2 -0
  90. package/less/components/stack/stack.less +10 -0
  91. package/less/components/stepper/stepper.entry.less +2 -0
  92. package/less/components/stepper/stepper.less +142 -0
  93. package/less/components/table/table.entry.less +2 -0
  94. package/less/components/table/table.less +192 -0
  95. package/less/components/table/tablePagination/tablePagination.entry.less +2 -0
  96. package/less/components/table/tablePagination/tablePagination.less +62 -0
  97. package/less/components/tabs/tab/tab.entry.less +2 -0
  98. package/less/components/tabs/tab/tab.less +114 -0
  99. package/less/components/tabs/tabs.entry.less +2 -0
  100. package/less/components/tabs/tabs.less +44 -0
  101. package/less/components/textField/textField.entry.less +2 -0
  102. package/less/components/textField/textField.less +373 -0
  103. package/less/components/timePicker/timePicker.entry.less +2 -0
  104. package/less/components/timePicker/timePicker.less +95 -0
  105. package/less/components/toggle/toggle.entry.less +2 -0
  106. package/less/components/toggle/toggle.less +110 -0
  107. package/less/components/tooltip/tooltip.entry.less +2 -0
  108. package/less/components/tooltip/tooltip.less +36 -0
  109. package/less/components/treeView/treeView.entry.less +2 -0
  110. package/less/components/treeView/treeView.less +71 -0
  111. package/less/components/typography/typography.entry.less +2 -0
  112. package/less/components/typography/typography.less +86 -0
  113. package/less/components.less +59 -0
  114. package/less/connects/rt/table.less +26 -0
  115. package/less/connects.less +1 -0
  116. package/less/default/globals/default.variables.less +584 -0
  117. package/less/foundation/breakpoints.less +80 -0
  118. package/less/foundation/elevation.less +61 -0
  119. package/less/foundation/palette.less +310 -0
  120. package/less/foundation/radius.less +21 -0
  121. package/less/foundation/sizing.less +35 -0
  122. package/less/foundation/spacing.less +164 -0
  123. package/less/foundation/typography.less +25 -0
  124. package/less/foundation.less +18 -0
  125. package/less/headless-base.less +2 -0
  126. package/less/responsive.less +41 -0
  127. package/less/site/globals/site.variables.less +25 -0
  128. package/less/templates/adminDashboard/adminDashboard.less +27 -0
  129. package/less/templates/summer-ui/auth.less +30 -0
  130. package/less/templates/summer-ui/authCard.less +33 -0
  131. package/less/templates/summer-ui/authLayout.less +11 -0
  132. package/less/templates.less +4 -0
  133. package/less/theme.less +30 -0
  134. package/less/themes/material/variables.less +370 -0
  135. package/less/themes/summer/variables.less +380 -0
  136. package/less/variables.less +260 -0
  137. package/normalize.css +484 -0
  138. package/package.json +21 -0
@@ -0,0 +1,584 @@
1
+ /*-------------------
2
+ Fonts
3
+ --------------------*/
4
+ @import (css) url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
5
+
6
+ @fontSize: 16px;
7
+ @fontName: "Roboto";
8
+ @fontFamily: @fontName, sans-serif;
9
+
10
+ // Breakpoints: see foundation/breakpoints.less (single source)
11
+
12
+ /*-------------------
13
+ Common colors
14
+ --------------------*/
15
+ @pageBg: #fff;
16
+ @primaryColor: #6750a4;
17
+ @secondaryColor: #625b71;
18
+ @errorColor: red;
19
+ @successColor: #36913b;
20
+ @warningColor: #ed6c02;
21
+ @infoColor: #0288d1;
22
+
23
+ // Semantic color set — "on" (foreground), container, hover, active.
24
+ // Components with a `color` prop resolve through these.
25
+ @onSecondaryColor: #fff;
26
+ @onErrorColor: #fff;
27
+ @onSuccessColor: #fff;
28
+ @onWarningColor: #fff;
29
+ @onInfoColor: #fff;
30
+
31
+ @secondaryColorHover: ~"color-mix(in srgb, @{secondaryColor} 8%, transparent)";
32
+ @secondaryColorActive: ~"color-mix(in srgb, @{secondaryColor} 14%, transparent)";
33
+ @secondaryColorFocus: ~"color-mix(in srgb, @{secondaryColor} 12%, transparent)";
34
+ @errorColorHover: ~"color-mix(in srgb, @{errorColor} 8%, transparent)";
35
+ @errorColorActive: ~"color-mix(in srgb, @{errorColor} 14%, transparent)";
36
+ @errorColorFocus: ~"color-mix(in srgb, @{errorColor} 12%, transparent)";
37
+ @successColorHover: ~"color-mix(in srgb, @{successColor} 8%, transparent)";
38
+ @successColorActive: ~"color-mix(in srgb, @{successColor} 14%, transparent)";
39
+ @successColorFocus: ~"color-mix(in srgb, @{successColor} 12%, transparent)";
40
+ @warningColorHover: ~"color-mix(in srgb, @{warningColor} 8%, transparent)";
41
+ @warningColorActive: ~"color-mix(in srgb, @{warningColor} 14%, transparent)";
42
+ @warningColorFocus: ~"color-mix(in srgb, @{warningColor} 12%, transparent)";
43
+ @infoColorHover: ~"color-mix(in srgb, @{infoColor} 8%, transparent)";
44
+ @infoColorActive: ~"color-mix(in srgb, @{infoColor} 14%, transparent)";
45
+ @infoColorFocus: ~"color-mix(in srgb, @{infoColor} 12%, transparent)";
46
+
47
+ @outlineColor: #79747e;
48
+ @onPrimaryColor: #fff;
49
+ @primaryContainer: #eaddff;
50
+ @onPrimaryContainer: #21005e;
51
+ @onPrimaryContainerHover: ~"color-mix(in srgb, #000 2%, @{primaryContainer})";
52
+ @onPrimaryContainerActive: ~"color-mix(in srgb, #000 4%, @{primaryContainer})";
53
+
54
+ @surfaceVariant: #e7e0ec;
55
+ @surfaceBackground: #fffbfe;
56
+ @onSurfaceColor: #1c1b1f;
57
+ @onSurfaceVariant: #49454e;
58
+ @onSurfaceHover: ~"color-mix(in srgb, @{onSurfaceColor} 8%, transparent)";
59
+ @onSurfaceActive: ~"color-mix(in srgb, @{onSurfaceColor} 12%, transparent)";
60
+ @disabledTextColor: ~"color-mix(in srgb, @{onSurfaceColor} 38%, transparent)";
61
+ @disabledBgColor: ~"color-mix(in srgb, @{onSurfaceColor} 12%, transparent)";
62
+
63
+ @primaryTextColor: #000;
64
+ @scrollThumbColor: @disabledTextColor;
65
+
66
+ @primaryColorHover: ~"color-mix(in srgb, @{primaryColor} 8%, transparent)";
67
+ @primaryColorActive: ~"color-mix(in srgb, @{primaryColor} 14%, transparent)";
68
+ @primaryColorFocus: ~"color-mix(in srgb, @{primaryColor} 12%, transparent)";
69
+
70
+ @dividerColor: rgba(0, 0, 0, 0.12);
71
+
72
+ /*-------------------
73
+ Border-radius
74
+ --------------------*/
75
+ @circleBorderRadius: @smui-radius-circle;
76
+
77
+ /*=====================================================================
78
+ Component spacing tokens
79
+ ---------------------------------------------------------------------
80
+ Every gap / padding / margin in the components resolves through one
81
+ of these. On-grid values reference the foundation spacing scale
82
+ (foundation/spacing.less) so rescaling @smui-spacing-unit cascades
83
+ everywhere; off-grid values (commented) keep a literal but still
84
+ live here as a single, independently-overridable knob.
85
+ =====================================================================*/
86
+ @accordionSummaryPaddingX: @smui-space-lg;
87
+ @accordionSummaryGap: 15px; // off-grid
88
+
89
+ @avatarSizeSmall: 24px;
90
+ @avatarSizeMedium: 40px;
91
+ @avatarSizeLarge: 56px;
92
+ @avatarGroupOverlap: @smui-space-sm;
93
+ @avatarGroupBorder: 2px;
94
+
95
+ @breadcrumbsGap: @smui-space-sm;
96
+
97
+ @dividerSpacing: @smui-space-sm;
98
+ @dividerTextGap: @smui-space-md;
99
+
100
+ @paginationGap: @smui-space-xs;
101
+ @paginationItemSize: 32px;
102
+ @paginationItemSizeSmall: 26px;
103
+ @paginationItemPaddingX: 6px; // off-grid
104
+
105
+ @ratingGap: @smui-space-xxs;
106
+
107
+ @skeletonRadius: @smui-radius-sm;
108
+
109
+ @stepperConnectorGap: @smui-space-sm;
110
+ @stepperIconSize: 24px;
111
+ @stepperLabelGap: @smui-space-sm;
112
+
113
+ @appBarPaddingX: @smui-space-lg;
114
+ @appBarActionPadding: @smui-space-md;
115
+ @appBarActionsGap: 10px; // off-grid
116
+
117
+ @badgePaddingX: 6px; // off-grid
118
+
119
+ @buttonGap: @smui-space-sm;
120
+ @buttonPaddingSmall: @smui-space-xs 10px; // 10 off-grid
121
+ @buttonPaddingMedium: 6px 14px; // off-grid
122
+ @buttonPaddingLarge: @smui-space-sm 22px; // 22 off-grid
123
+
124
+ @cardPadding: @smui-space-lg;
125
+
126
+ @expansionPanelGap: @smui-space-md;
127
+ @expansionPanelPadding: @smui-space-lg;
128
+ @expansionPanelRadius: @smui-radius-lg;
129
+ @expansionPanelOverlayZ: 1001; // off-grid; aligns with modal overlay layer
130
+
131
+ @checkboxGroupGap: @smui-space-xl;
132
+
133
+ @chipGap: @smui-space-sm;
134
+ @chipPaddingX: @smui-space-md;
135
+
136
+ @datePickerHeaderPadding: 15px @smui-space-md; // 15 off-grid
137
+ @datePickerPadding: @smui-space-sm;
138
+ @datePickerYearPadding: 5px; // off-grid
139
+ @datePickerFooterPaddingY: @smui-space-sm;
140
+ @datePickerLabelGap: 10px; // off-grid
141
+ @datePickerHelperMarginTop: @smui-space-xs;
142
+ @datePickerDayMarginX: @smui-space-xxs;
143
+
144
+ @fabExtendedPaddingX: @smui-space-lg;
145
+ @fabExtendedSmallPaddingX: @smui-space-md;
146
+
147
+ @imagesListItemBarPaddingX: @smui-space-md;
148
+ @imagesListItemBarPadding: 6px 0px @smui-space-md 0px; // 6 off-grid
149
+
150
+ @listItemPadding: @smui-space-sm @smui-space-lg;
151
+ @listItemGap: @smui-space-xl;
152
+
153
+ @menuListPaddingY: @smui-space-sm;
154
+ @menuItemPaddingX: @smui-space-lg;
155
+ @menuItemGap: 6px; // off-grid
156
+ @menuDividerSpacing: @smui-space-sm;
157
+ @menuIconGap: 10px; // off-grid
158
+ @menuTextInset: 40px; // off-grid
159
+ @menuTextInsetDense: 36px; // off-grid
160
+
161
+ @progressDotMargin: @smui-space-xs;
162
+
163
+ @screenDividerLabelMargin: 5px; // off-grid
164
+
165
+ @messagePadding: @smui-space-md @smui-space-xl;
166
+ @messageGap: 10px; // off-grid
167
+ @messageTitleMarginBottom: @smui-space-xs;
168
+
169
+ @modalHeaderPadding: @smui-space-xl @smui-space-xl 10px @smui-space-xl; // 10 off-grid
170
+ @modalContentPadding: 10px @smui-space-xl; // 10 off-grid
171
+ @modalActionsPadding: 10px @smui-space-xl @smui-space-xl @smui-space-xl; // 10 off-grid
172
+
173
+ @radioGroupGap: @smui-space-xl;
174
+ @radioRowGap: 50px; // off-grid
175
+
176
+ @selectFieldPadding: @smui-space-lg;
177
+ @selectFieldFilledPadding: 22px @smui-space-lg 10px @smui-space-lg; // 22/10 off-grid
178
+ @selectFieldChipsGap: 6px; // off-grid
179
+ @selectFieldValueGap: @smui-space-xxs;
180
+ @selectFieldMenuItemPadding: @smui-space-sm @smui-space-xxl;
181
+ @selectFieldCreatePaddingY: 10px; // off-grid
182
+ @selectFieldSearchPadding: @smui-space-sm @smui-space-lg;
183
+ @selectFieldChipMarginLeft: @smui-space-xs;
184
+
185
+ @sheetPadding: @smui-space-xl;
186
+ @sheetHeaderPaddingY: 10px; // off-grid
187
+ @sheetHeaderPaddingBottom: 5px; // off-grid
188
+ @sheetContentPaddingLeft: 10px; // off-grid
189
+ @sheetHandleSpace: @smui-space-xl; // drag-to-resize grab-handle hit area
190
+
191
+ @sidebarPadding: @smui-space-lg;
192
+ @sidebarOpenGap: @smui-space-xl;
193
+ @sidebarNavGap: 5px; // off-grid
194
+ @sidebarNavItemGap: @smui-space-sm;
195
+
196
+ @sliderPaddingY: 13px; // off-grid
197
+ @sliderMarksGap: 25px; // off-grid
198
+ @sliderLabelPaddingTop: 10px; // off-grid
199
+ @sliderTooltipPadding: @smui-space-xs 10px; // 10 off-grid
200
+
201
+ @snackbarGap: @smui-space-xl;
202
+ @snackbarWidth: 350px;
203
+ @snackbarPadding: @smui-space-lg;
204
+
205
+ @tabPaddingX: @smui-space-xxl;
206
+ @tabIconPaddingTop: 6px; // off-grid
207
+ @tabIconPaddingBottom: @smui-space-xs;
208
+ @tabLabelPaddingLeft: @smui-space-sm;
209
+
210
+ @tableCellPaddingX: @smui-space-lg;
211
+ @tableToolbarMarginBottom: 10px; // off-grid
212
+ @tableActionsGap: 5px; // off-grid
213
+
214
+ @tablePaginationPaddingX: @smui-space-lg;
215
+ @tablePaginationOuterGap: 60px; // off-grid
216
+ @tablePaginationControlsGap: 30px; // off-grid
217
+ @tablePaginationRowsGap: @smui-space-xl;
218
+ @tablePaginationSelectPaddingY: @smui-space-xs;
219
+
220
+ @textFieldNotchPaddingX: @smui-space-sm;
221
+ @textFieldNotchCondensedPaddingX: 5px; // off-grid
222
+ @textFieldFilledInputPadding: @smui-space-lg @smui-space-lg 17px; // 17 off-grid
223
+ @textFieldFilledLabelPadding: 23px @smui-space-lg 10px @smui-space-lg; // 23/10 off-grid
224
+ @textFieldAffixPaddingX: @smui-space-lg;
225
+ @textFieldHelperMarginTop: @smui-space-sm;
226
+ @textFieldAdornmentGap: @smui-space-sm;
227
+ @textFieldAffixMarginX: @smui-space-lg;
228
+ @textFieldAdornmentFilledMarginTop: @smui-space-md;
229
+
230
+ @toggleGap: @smui-space-sm;
231
+
232
+ @tooltipPaddingX: @smui-space-sm;
233
+
234
+ @treeViewIndent: 30px; // off-grid
235
+ @treeViewItemGap: 10px; // off-grid
236
+
237
+ /*-------------------
238
+ Text Field
239
+ --------------------*/
240
+ @textFieldBorderRadius: @smui-radius-sm;
241
+
242
+ @textFieldLabelColor: rgba(0, 0, 0, 0.6);
243
+ @textFieldLabelDisabledColor: @disabledTextColor;
244
+
245
+ @textFieldInputColor: rgba(0, 0, 0, 0.87);
246
+ @textFieldInputDisabledColor: @disabledTextColor;
247
+
248
+ @textFieldNotchedColor: rgba(0, 0, 0, 0.38);
249
+ @textFieldNotchedHoverColor: #000;
250
+ @textFieldNotchedDisabledColor: rgba(0, 0, 0, 0.26);
251
+
252
+ @textFieldHelperTextColor: rgba(0, 0, 0, 0.6);
253
+ @textFieldHelperTextDisabledColor: @disabledTextColor;
254
+
255
+ @textFieldFilledBorderColor: rgba(0, 0, 0, 0.42);
256
+ @textFieldFilledHoverBorderColor: #000;
257
+ @textFieldFilledDisabledBorderColor: rgba(0, 0, 0, 0.26);
258
+ @textFieldFilledBgColor: rgba(0, 0, 0, 0.05);
259
+ @textFieldFilledHoverBgColor: rgba(0, 0, 0, 0.07);
260
+ @textFieldFilledFocusedBgColor: rgba(0, 0, 0, 0.12);
261
+ @textFieldFilledDisabledBgColor: rgba(0, 0, 0, 0.045);
262
+
263
+ /*-------------------
264
+ App bar
265
+ --------------------*/
266
+ @appBarHeight: 65px;
267
+ @appBarBg: @surfaceBackground;
268
+ @appBarContentColor: @onSurfaceVariant;
269
+
270
+ /*-------------------
271
+ Checkbox
272
+ --------------------*/
273
+ @checkboxBorderRadius: @smui-radius-xs;
274
+ @checkboxBorderColor: @onSurfaceColor;
275
+ @checkboxDisabledColor: @disabledTextColor;
276
+ @checkboxCheckedBg: @primaryColor;
277
+
278
+ /*-------------------
279
+ Radio button
280
+ --------------------*/
281
+ @radioRippleColor: ~"color-mix(in srgb, @{primaryColor} 30%, transparent)";
282
+
283
+ /*-------------------
284
+ Toggle
285
+ --------------------*/
286
+ @toggleTrackColor: @surfaceVariant;
287
+ @toggleDefaultThumbColor: @outlineColor;
288
+ @toggleTrackWidth: 50px;
289
+ @toggleThumbActiveColor: @surfaceBackground;
290
+ @toggleTrackActiveColor: @primaryColor;
291
+ @toggleTrackHeight: 30px;
292
+ @toggleThumbHeight: 20px;
293
+ @toggleThumbUncheckedHeight: 15px;
294
+ @toggleSelectedLeft: 25px;
295
+ @toggleUnselectedLeft: 5px;
296
+ @toggleBorderColor: @outlineColor;
297
+ @toggleWithBorder: true;
298
+
299
+ /*-------------------
300
+ Button
301
+ --------------------*/
302
+ @buttonBorderRadius: 24px;
303
+ @smallButtonFontSize: 13px;
304
+ @mediumButtonFontSize: 14px;
305
+ @largeButtonFontSize: 15px;
306
+ @buttonDisabledBg: ~"color-mix(in srgb, @{onSurfaceColor} 12%, transparent)";
307
+
308
+ @buttonContainedHoverBg: ~"color-mix(in srgb, #fff 4%, @{primaryColor})";
309
+ @buttonContainedActiveBg: ~"color-mix(in srgb, #fff 10%, @{primaryColor})";
310
+ @buttonContainedFocusBg: ~"color-mix(in srgb, #fff 10%, @{primaryColor})";
311
+
312
+ @buttonOutlinedHoverBg: ~"color-mix(in srgb, @{primaryColor} 8%, transparent)";
313
+ @buttonOutlinedActiveBg: ~"color-mix(in srgb, @{primaryColor} 12%, transparent)";
314
+ @buttonOutlinedFocusBg: ~"color-mix(in srgb, @{primaryColor} 12%, transparent)";
315
+
316
+ @fabBorderRadius: @smui-radius-xl;
317
+ @fabFocusBg: @onPrimaryContainerActive;
318
+ @fabActiveBg: @onPrimaryContainerActive;
319
+ @fabHoverBg: @onPrimaryContainerHover;
320
+
321
+ /*-------------------
322
+ Modal
323
+ --------------------*/
324
+ @modalOverlayBg: rgba(0, 0, 0, 0.5);
325
+ @modalBorderRadius: @smui-radius-xl;
326
+
327
+ /*-------------------
328
+ Snackbar
329
+ --------------------*/
330
+ @snackbarDarkBg: #313033;
331
+ @snackbarLightBg: #e6e1e5;
332
+
333
+ /*-------------------
334
+ Chips
335
+ --------------------*/
336
+ @chipsBg: @surfaceBackground;
337
+ @chipsHoverBg: @onSurfaceHover;
338
+ @chipsActiveBg: @onSurfaceActive;
339
+ @chipsOutlinedBorder: @outlineColor;
340
+ @chipsIconColor: @primaryColor;
341
+ @chipsIconColorHover: @primaryColor;
342
+ @chipsBorderRadius: 6px;
343
+ @chipsSelectedBg: #e8def8;
344
+ @chipsDefaultShadow: 0px 3px 5px -1px rgb(0 0 0 / 11%), 0px 1px 1px 0px rgb(0 0 0 / 14%),
345
+ 0px 2px 3px 0px rgb(0 0 0 / 12%);
346
+
347
+ /*-------------------
348
+ Menu
349
+ --------------------*/
350
+ @menuBorderRadius: @smui-radius-sm;
351
+ @menuBgColor: #fff;
352
+ @menuBoxShadow: 0 5px 5px -3px rgb(0 0 0 / 20%), 0 8px 10px 1px rgb(0 0 0 / 14%), 0 3px 14px 2px rgb(0 0 0 / 12%);
353
+ @menuTextColor: @onSurfaceColor;
354
+ @menuDisabledTextColor: @disabledTextColor;
355
+ @menuOpacityHover: 0.08;
356
+ @menuOpacityActive: 0.12;
357
+ @menuOpacity-focus: 0.12;
358
+ @menuOpacitySelected: 0.08;
359
+ @menuDividerColor: @dividerColor;
360
+
361
+ /*-------------------
362
+ Tabs
363
+ --------------------*/
364
+ @tabIconColor: @onSurfaceVariant;
365
+ @tabColorDefault: @onSurfaceVariant;
366
+ @tabColorActive: @primaryColor;
367
+ @tabBgColor: @primaryColor;
368
+ @tabOpacityHover: 0.04;
369
+ @tabOpacityFocus: 0.12;
370
+
371
+ /*-------------------
372
+ Slider
373
+ --------------------*/
374
+ @sliderColor: @primaryColor;
375
+ @sliderHoverColor: ~"color-mix(in srgb, @{primaryColor} 5%, transparent)";
376
+ @sliderActiveColor: ~"color-mix(in srgb, @{primaryColor} 15%, transparent)";
377
+ @sliderDisabledColor: #9e9e9e;
378
+ @sliderLabelRadius: @smui-radius-sm;
379
+
380
+ /*-------------------
381
+ Table
382
+ --------------------*/
383
+ @tableBorderColor: ~"color-mix(in srgb, @{primaryTextColor} 12%, transparent)";
384
+
385
+ /*-------------------
386
+ Progress indicator
387
+ --------------------*/
388
+ @indicatorTrackBg: @surfaceVariant;
389
+
390
+ /*-------------------
391
+ Sidebar
392
+ --------------------*/
393
+ @navItemActiveBg: @primaryColorHover;
394
+
395
+ /*-------------------
396
+ Sheet
397
+ --------------------*/
398
+ @sheetBorderRadius: @smui-radius-xxl;
399
+
400
+ /*-------------------
401
+ Tooltip
402
+ --------------------*/
403
+ @tooltipBg: #6d6d6d;
404
+ @tooltipTextColor: @primaryTextColorDark;
405
+
406
+ /*-------------------
407
+ Select Field
408
+ --------------------*/
409
+ @selectFieldSearchMenuColor: @textFieldInputColor;
410
+
411
+ /*-------------------
412
+ Card
413
+ --------------------*/
414
+ @cardBorderRadius: @smui-radius-lg;
415
+
416
+ /*-------------------
417
+ DataPicker
418
+ --------------------*/
419
+ @dataPickerIconDisabledColor: rgba(0, 0, 0, 0.26);
420
+ @dataPickerWeekDayColor: rgba(0, 0, 0, 0.6);
421
+
422
+ /*-------------------
423
+ Message
424
+ --------------------*/
425
+ @messageBgLight: ~"color-mix(in srgb, @{primaryColor} 10%, transparent)";
426
+ @messageBorderRadius: @smui-radius-xs;
427
+
428
+ /*===================================================== DARK THEME =================================================*/
429
+ /*-------------------
430
+ Common
431
+ --------------------*/
432
+ @pageBgDark: #1f1f1f;
433
+ @surfaceBackgroundDark: #1c1b1f;
434
+ @primaryTextColorDark: #fff;
435
+ @grayColor: rgba(#fff, 0.3);
436
+ @scrollThumbColorDark: @grayColor;
437
+ @primaryColorDark: #d0bcff;
438
+ @onPrimaryColorDark: #371e73;
439
+ @outlineColorDark: #938f99;
440
+ @primaryContainerDark: #4f378b;
441
+ @onPrimaryContainerDark: #eaddff;
442
+ @onPrimaryContainerHoverDark: ~"color-mix(in srgb, #fff 6%, @{primaryContainerDark})";
443
+ @onPrimaryContainerActiveDark: ~"color-mix(in srgb, #fff 10%, @{primaryContainerDark})";
444
+
445
+ @surfaceVariantDark: #49454f;
446
+ @onSurfaceColorDark: #e6e1e5;
447
+ @onSurfaceVariantDark: #cac4d0;
448
+ @onSurfaceHoverDark: ~"color-mix(in srgb, @{onSurfaceColorDark} 8%, transparent)";
449
+ @onSurfaceActiveDark: ~"color-mix(in srgb, @{onSurfaceColorDark} 12%, transparent)";
450
+ @disabledBgColorDark: ~"color-mix(in srgb, @{onSurfaceColorDark} 12%, transparent)";
451
+ @disabledTextColorDark: ~"color-mix(in srgb, @{onSurfaceColorDark} 38%, transparent)";
452
+
453
+ @primaryColorHoverDark: ~"color-mix(in srgb, @{primaryColorDark} 8%, transparent)";
454
+ @primaryColorActiveDark: ~"color-mix(in srgb, @{primaryColorDark} 14%, transparent)";
455
+ @primaryColorFocusDark: ~"color-mix(in srgb, @{primaryColorDark} 12%, transparent)";
456
+
457
+ @dividerColorDark: rgba(255, 255, 255, 0.12);
458
+
459
+ /*-------------------
460
+ Button
461
+ --------------------*/
462
+ @buttonContainedTextColorDark: #371e73;
463
+ @buttonDisabledBgDark: ~"color-mix(in srgb, @{onSurfaceColorDark} 12%, transparent)";
464
+ @buttonContainedHoverBgDark: ~"color-mix(in srgb, #fff 4%, @{primaryColorDark})";
465
+ @buttonContainedActiveBgDark: ~"color-mix(in srgb, #fff 8%, @{primaryColorDark})";
466
+ @buttonContainedFocusBgDark: ~"color-mix(in srgb, #fff 8%, @{primaryColorDark})";
467
+
468
+ @buttonOutlinedHoverBgDark: ~"color-mix(in srgb, @{primaryColorDark} 8%, transparent)";
469
+ @buttonOutlinedActiveBgDark: ~"color-mix(in srgb, @{primaryColorDark} 12%, transparent)";
470
+ @buttonOutlinedFocusBgDark: ~"color-mix(in srgb, @{primaryColorDark} 12%, transparent)";
471
+
472
+ @fabFocusBgDark: @onPrimaryContainerActiveDark;
473
+ @fabActiveBgDark: @onPrimaryContainerActiveDark;
474
+ @fabHoverBgDark: @onPrimaryContainerHoverDark;
475
+
476
+ /*-------------------
477
+ Checkbox
478
+ --------------------*/
479
+ @checkboxBorderColorDark: @onSurfaceColorDark;
480
+ @checkboxDisabledColorDark: @grayColor;
481
+ @checkboxCheckedBgDark: @primaryColorDark;
482
+
483
+ /*-------------------
484
+ Toggle
485
+ --------------------*/
486
+ @toggleTrackColorDark: @surfaceVariantDark;
487
+ @toggleThumbActiveColorDark: @primaryColor;
488
+ @toggleTrackActiveColorDark: @onPrimaryContainerDark;
489
+ @toggleBorderColorDark: @outlineColorDark;
490
+
491
+ /*-------------------
492
+ Text Field
493
+ --------------------*/
494
+ @textFieldLabelColorDark: rgba(255, 255, 255, 0.7);
495
+ @textFieldLabelDisabledColorDark: rgba(255, 255, 255, 0.5);
496
+
497
+ @textFieldInputColorDark: #fff;
498
+ @textFieldInputDisabledColorDark: rgba(255, 255, 255, 0.5);
499
+
500
+ @textFieldNotchedColorDark: rgba(255, 255, 255, 0.3);
501
+ @textFieldNotchedHoverColorDark: #fff;
502
+ @textFieldNotchedDisabledColorDark: rgba(255, 255, 255, 0.3);
503
+
504
+ @textFieldHelperTextColorDark: rgba(255, 255, 255, 0.7);
505
+ @textFieldHelperTextDisabledColorDark: rgba(255, 255, 255, 0.5);
506
+
507
+ @textFieldFilledBorderColorDark: rgba(255, 255, 255, 0.7);
508
+ @textFieldFilledHoverBorderColorDark: #fff;
509
+ @textFieldFilledDisabledBorderColorDark: rgba(255, 255, 255, 0.5);
510
+ @textFieldFilledBgColorDark: rgba(255, 255, 255, 0.09);
511
+ @textFieldFilledHoverBgColorDark: rgba(255, 255, 255, 0.13);
512
+ @textFieldFilledFocusedBgColorDark: rgba(255, 255, 255, 0.13);
513
+ @textFieldFilledDisabledBgColorDark: rgba(255, 255, 255, 0.045);
514
+
515
+ /*-------------------
516
+ Select Field
517
+ --------------------*/
518
+ @selectFieldSearchMenuColorDark: @textFieldInputColorDark;
519
+
520
+ /*-------------------
521
+ Chips
522
+ --------------------*/
523
+ @chipsBgDark: @onSurfaceHoverDark;
524
+ @chipsHoverBgDark: @onSurfaceActiveDark;
525
+ @chipsActiveBgDark: ~"color-mix(in srgb, @{onSurfaceColorDark} 16%, transparent)";
526
+ @chipsOutlinedBorderDark: @outlineColorDark;
527
+ @chipsIconColorDark: ~"color-mix(in srgb, @{onSurfaceColorDark} 60%, transparent)";
528
+ @chipsIconColorHoverDark: @onSurfaceColorDark;
529
+ @chipsSelectedBgDark: @chipsActiveBgDark;
530
+
531
+ /*-------------------
532
+ Radio
533
+ --------------------*/
534
+
535
+ /*-------------------
536
+ Menu
537
+ --------------------*/
538
+ @menuTextColorDark: @onSurfaceColorDark;
539
+ @menuDividerColorDark: @dividerColorDark;
540
+ @menuDisabledTextColorDark: @grayColor;
541
+
542
+ /*-------------------
543
+ Tabs
544
+ --------------------*/
545
+ @tabIconColorDark: ~"color-mix(in srgb, @{primaryTextColorDark} 70%, transparent)";
546
+ @tabColorDefaultDark: ~"color-mix(in srgb, @{primaryTextColorDark} 70%, transparent)";
547
+
548
+ /*-------------------
549
+ Progress indicator
550
+ --------------------*/
551
+ @indicatorTrackBgDark: @surfaceVariantDark;
552
+
553
+ /*-------------------
554
+ App bar
555
+ --------------------*/
556
+ @appBarBgDark: @surfaceBackgroundDark;
557
+ @appBarContentColorDark: @onSurfaceVariantDark;
558
+
559
+ /*-------------------
560
+ Sidebar
561
+ --------------------*/
562
+ @navItemActiveBgDark: transparent;
563
+
564
+ /*-------------------
565
+ Tooltip
566
+ --------------------*/
567
+ @tooltipBgDark: #fff;
568
+ @tooltipTextColorDark: @primaryTextColor;
569
+
570
+ /*-------------------
571
+ DataPicker
572
+ --------------------*/
573
+ @dataPickerIconDisabledColorDark: rgba(255, 255, 255, 0.5);
574
+ @dataPickerWeekDayColorDark: rgba(255, 255, 255, 0.6);
575
+
576
+ /*-------------------
577
+ Table
578
+ --------------------*/
579
+ @tableBorderColorDark: ~"color-mix(in srgb, @{primaryTextColorDark} 12%, transparent)";
580
+
581
+ /*-------------------
582
+ Message
583
+ --------------------*/
584
+ @messageBgDark: #323232;
@@ -0,0 +1,80 @@
1
+ //=====================================================================
2
+ // Responsive breakpoints + media-query mixins
3
+ //---------------------------------------------------------------------
4
+ // Single source for the breakpoint scale (was copy-pasted into every
5
+ // *.variables.less). The legacy @xs..@xl names are kept as aliases so
6
+ // the grid and any client overrides keep working.
7
+ //
8
+ // Mixins take a detached ruleset:
9
+ //
10
+ // .smui-media-up(md; {
11
+ // .smwb-card { padding: @smui-space-xxl; }
12
+ // });
13
+ // .smui-media-down(sm; {
14
+ // .smwb-appbar { padding: 0 @smui-space-sm; }
15
+ // });
16
+ // .smui-media-between(sm; lg; { ... });
17
+ //
18
+ // @bp accepts a scale keyword (xs sm md lg xl) or a raw length.
19
+ // Override a breakpoint from theme.config: @smui-bp-md: 700px;
20
+ //=====================================================================
21
+
22
+ // Breakpoint scale
23
+ @smui-bp-xs: 0;
24
+ @smui-bp-sm: 420px;
25
+ @smui-bp-md: 768px;
26
+ @smui-bp-lg: 1024px;
27
+ @smui-bp-xl: 1200px;
28
+
29
+ // Legacy aliases (grid @gridBreakpoints, client overrides)
30
+ @xs: @smui-bp-xs;
31
+ @sm: @smui-bp-sm;
32
+ @md: @smui-bp-md;
33
+ @lg: @smui-bp-lg;
34
+ @xl: @smui-bp-xl;
35
+
36
+ // keyword -> length resolver (same guarded pattern as spacing.less)
37
+ .smui-resolve-bp(@v) {
38
+ @smui-bp: @v;
39
+ }
40
+ .smui-resolve-bp(xs) {
41
+ @smui-bp: @smui-bp-xs;
42
+ }
43
+ .smui-resolve-bp(sm) {
44
+ @smui-bp: @smui-bp-sm;
45
+ }
46
+ .smui-resolve-bp(md) {
47
+ @smui-bp: @smui-bp-md;
48
+ }
49
+ .smui-resolve-bp(lg) {
50
+ @smui-bp: @smui-bp-lg;
51
+ }
52
+ .smui-resolve-bp(xl) {
53
+ @smui-bp: @smui-bp-xl;
54
+ }
55
+
56
+ // min-width: applies at @bp and wider
57
+ .smui-media-up(@bp; @rules) {
58
+ .smui-resolve-bp(@bp);
59
+ @media (min-width: @smui-bp) {
60
+ @rules();
61
+ }
62
+ }
63
+
64
+ // max-width: applies below @bp (0.02px keeps it exclusive of @bp itself)
65
+ .smui-media-down(@bp; @rules) {
66
+ .smui-resolve-bp(@bp);
67
+ @media (max-width: (@smui-bp - 0.02px)) {
68
+ @rules();
69
+ }
70
+ }
71
+
72
+ // inclusive of @from, exclusive of @to
73
+ .smui-media-between(@from; @to; @rules) {
74
+ .smui-resolve-bp(@from);
75
+ @smui-bp-from: @smui-bp;
76
+ .smui-resolve-bp(@to);
77
+ @media (min-width: @smui-bp-from) and (max-width: (@smui-bp - 0.02px)) {
78
+ @rules();
79
+ }
80
+ }