@wpmoo/ui 0.9.0 → 1.0.0-rc.10

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 (99) hide show
  1. package/ASSET_LICENSE.md +4 -2
  2. package/LICENSE +28 -0
  3. package/README.md +105 -100
  4. package/certification.json +25 -3
  5. package/dist/assets/css/moo-ui.css +14005 -12457
  6. package/dist/assets/css/moo-ui.min.css +10 -28
  7. package/dist/assets/css/moo.css +2606 -902
  8. package/dist/assets/css/moo.min.css +10 -29
  9. package/dist/js/chart.js +15312 -0
  10. package/dist/js/chart.min.js +27 -0
  11. package/dist/js/combobox.js +129 -85
  12. package/dist/js/context-menu.js +35 -66
  13. package/dist/js/datatable.js +390 -188
  14. package/dist/js/datepicker.js +1197 -0
  15. package/dist/js/datepicker.min.js +7 -0
  16. package/dist/js/moo-ui.js +3947 -0
  17. package/dist/js/moo-ui.min.js +7 -0
  18. package/dist/js/sheet.js +46 -0
  19. package/dist/js/sidebar.js +190 -172
  20. package/dist/js/slider.js +289 -0
  21. package/dist/js/state.js +76 -0
  22. package/dist/release-manifest.json +24 -0
  23. package/package.json +39 -9
  24. package/scss/_components.scss +70 -0
  25. package/scss/_config.scss +18 -0
  26. package/scss/_settings.scss +5 -0
  27. package/scss/components/_accordion.scss +54 -0
  28. package/scss/components/_alert.scss +82 -0
  29. package/scss/components/_avatar.scss +139 -0
  30. package/scss/components/_badge.scss +34 -0
  31. package/scss/components/_breadcrumb.scss +119 -0
  32. package/scss/components/_button.scss +200 -0
  33. package/scss/components/_button_group.scss +57 -0
  34. package/scss/components/_card.scss +114 -0
  35. package/scss/components/_checkbox.scss +78 -0
  36. package/scss/components/_close_button.scss +56 -0
  37. package/scss/components/_collapsible.scss +44 -0
  38. package/scss/components/_combobox.scss +253 -0
  39. package/scss/components/_context-menu.scss +18 -0
  40. package/scss/components/_datatable.scss +1067 -0
  41. package/scss/components/_datepicker.scss +237 -0
  42. package/scss/components/_dialog.scss +69 -0
  43. package/scss/components/_dropdown.scss +201 -0
  44. package/scss/components/_field.scss +94 -0
  45. package/scss/components/_input.scss +31 -0
  46. package/scss/components/_input_group.scss +151 -0
  47. package/scss/components/_kbd.scss +11 -0
  48. package/scss/components/_menubar.scss +17 -0
  49. package/scss/components/_navigation.scss +36 -0
  50. package/scss/components/_pagination.scss +58 -0
  51. package/scss/components/_popover.scss +26 -0
  52. package/scss/components/_progress.scss +5 -0
  53. package/scss/components/_radio_group.scss +108 -0
  54. package/scss/components/_search_trigger.scss +61 -0
  55. package/scss/components/_select.scss +8 -0
  56. package/scss/components/_separator.scss +10 -0
  57. package/scss/components/_sheet.scss +16 -0
  58. package/scss/components/_sidebar.scss +5 -0
  59. package/scss/components/_skeleton.scss +10 -0
  60. package/scss/components/_slider.scss +213 -0
  61. package/scss/components/_spinner.scss +11 -0
  62. package/scss/components/_switch.scss +30 -0
  63. package/scss/components/_table.scss +12 -0
  64. package/scss/components/_tabs.scss +116 -0
  65. package/scss/components/_textarea.scss +8 -0
  66. package/scss/components/_toast.scss +116 -0
  67. package/scss/components/_toggle_group.scss +17 -0
  68. package/scss/components/_tooltip.scss +64 -0
  69. package/scss/components/sidebar/_base.scss +86 -0
  70. package/scss/components/sidebar/_collapsed.scss +112 -0
  71. package/scss/components/sidebar/_identity.scss +71 -0
  72. package/scss/components/sidebar/_menus.scss +219 -0
  73. package/scss/foundations/_backdrop.scss +102 -0
  74. package/scss/foundations/_focus.scss +83 -0
  75. package/scss/foundations/_globals.scss +5 -0
  76. package/scss/foundations/_scope.scss +26 -0
  77. package/scss/layouts/_app.scss +75 -0
  78. package/scss/layouts/_page_grid.scss +27 -0
  79. package/scss/layouts/app/sidebar/_base.scss +84 -0
  80. package/scss/layouts/app/sidebar/_default.scss +20 -0
  81. package/scss/layouts/app/sidebar/_floating.scss +36 -0
  82. package/scss/layouts/app/sidebar/_inset.scss +32 -0
  83. package/scss/mixins/_banner.scss +9 -0
  84. package/scss/moo-core.scss +16 -0
  85. package/scss/moo-ui.scss +54 -0
  86. package/scss/settings/_bootstrap_overrides.scss +7 -0
  87. package/scss/settings/_component_variables.scss +244 -0
  88. package/scss/settings/_forms.scss +28 -0
  89. package/scss/settings/_options.scss +2 -0
  90. package/scss/settings/_palette.scss +90 -0
  91. package/scss/themes/_forms.scss +15 -0
  92. package/scss/themes/_root.scss +20 -0
  93. package/scss/themes/_standalone.scss +3 -0
  94. package/scss/themes/_theme.scss +244 -0
  95. package/scss/utilities/_background_color.scss +18 -0
  96. package/scss/utilities/_scroll_fade.scss +193 -0
  97. package/scss/utilities/_scroll_fade_primitives.scss +43 -0
  98. package/scss/_facade-settings.scss +0 -51
  99. package/scss/settings/_facade_public.scss +0 -23
@@ -0,0 +1,20 @@
1
+ .moo-ui[data-bs-theme] {
2
+ @include moo-core-scales;
3
+ @include moo-core-shared;
4
+ font-family: var(--bs-body-font-family);
5
+ font-size: var(--bs-body-font-size);
6
+ font-weight: var(--bs-body-font-weight);
7
+ line-height: var(--bs-body-line-height);
8
+ }
9
+
10
+ .moo-ui[data-bs-theme="light"] {
11
+ @include moo-core-light;
12
+ }
13
+
14
+ .moo-ui[data-bs-theme="dark"] {
15
+ @include moo-core-dark;
16
+ }
17
+
18
+ .moo-ui[data-bs-theme][dir="rtl"] {
19
+ direction: rtl;
20
+ }
@@ -0,0 +1,3 @@
1
+ body > .moo-ui[data-bs-theme]:not([data-moo-overlay-host]) {
2
+ min-block-size: 100dvh;
3
+ }
@@ -0,0 +1,244 @@
1
+ $moo-theme-colors-text-dark: (
2
+ "primary": $primary-text-emphasis-dark,
3
+ "secondary": $secondary-text-emphasis-dark,
4
+ "success": $success-text-emphasis-dark,
5
+ "info": $info-text-emphasis-dark,
6
+ "warning": $warning-text-emphasis-dark,
7
+ "danger": $danger-text-emphasis-dark,
8
+ "light": $light-text-emphasis-dark,
9
+ "dark": $dark-text-emphasis-dark,
10
+ ) !default;
11
+
12
+ $moo-theme-colors-bg-subtle-dark: (
13
+ "primary": $primary-bg-subtle-dark,
14
+ "secondary": $secondary-bg-subtle-dark,
15
+ "success": $success-bg-subtle-dark,
16
+ "info": $info-bg-subtle-dark,
17
+ "warning": $warning-bg-subtle-dark,
18
+ "danger": $danger-bg-subtle-dark,
19
+ "light": $light-bg-subtle-dark,
20
+ "dark": $dark-bg-subtle-dark,
21
+ ) !default;
22
+
23
+ $moo-theme-colors-border-subtle-dark: (
24
+ "primary": $primary-border-subtle-dark,
25
+ "secondary": $secondary-border-subtle-dark,
26
+ "success": $success-border-subtle-dark,
27
+ "info": $info-border-subtle-dark,
28
+ "warning": $warning-border-subtle-dark,
29
+ "danger": $danger-border-subtle-dark,
30
+ "light": $light-border-subtle-dark,
31
+ "dark": $dark-border-subtle-dark,
32
+ ) !default;
33
+
34
+ @mixin moo-core-scales {
35
+ @each $color, $value in $colors {
36
+ --#{$prefix}#{$color}: #{$value};
37
+ }
38
+
39
+ @each $color, $value in $grays {
40
+ --#{$prefix}gray-#{$color}: #{$value};
41
+ }
42
+
43
+ @each $color, $value in $theme-colors {
44
+ --#{$prefix}#{$color}: #{$value};
45
+ }
46
+
47
+ @each $color, $value in $theme-colors-rgb {
48
+ --#{$prefix}#{$color}-rgb: #{$value};
49
+ }
50
+
51
+ --#{$prefix}white-rgb: #{to-rgb($white)};
52
+ --#{$prefix}black-rgb: #{to-rgb($black)};
53
+ --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};
54
+ --#{$prefix}font-monospace: #{inspect($font-family-monospace)};
55
+ --#{$prefix}gradient: #{$gradient};
56
+ --#{$prefix}body-font-family: #{inspect($font-family-base)};
57
+ @include rfs($font-size-base, --#{$prefix}body-font-size);
58
+ --#{$prefix}body-font-weight: #{$font-weight-base};
59
+ --#{$prefix}body-line-height: #{$line-height-base};
60
+ --#{$prefix}link-decoration: #{$link-decoration};
61
+ --#{$prefix}border-width: #{$border-width};
62
+ --#{$prefix}border-style: #{$border-style};
63
+ --#{$prefix}border-radius: #{$border-radius};
64
+ --#{$prefix}border-radius-sm: #{$border-radius-sm};
65
+ --#{$prefix}border-radius-lg: #{$border-radius-lg};
66
+ --#{$prefix}border-radius-xl: #{$border-radius-xl};
67
+ --#{$prefix}border-radius-xxl: #{$border-radius-xxl};
68
+ --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl);
69
+ --#{$prefix}border-radius-pill: #{$border-radius-pill};
70
+ --#{$prefix}box-shadow: #{$box-shadow};
71
+ --#{$prefix}box-shadow-sm: #{$box-shadow-sm};
72
+ --#{$prefix}box-shadow-lg: #{$box-shadow-lg};
73
+ --#{$prefix}box-shadow-inset: #{$box-shadow-inset};
74
+ --#{$prefix}focus-ring-width: #{$focus-ring-width};
75
+ --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};
76
+ --#{$prefix}focus-ring-color: var(--moo-ring);
77
+ }
78
+
79
+ @mixin moo-core-shared {
80
+ --moo-overlay-motion-duration: #{$moo-overlay-motion-duration};
81
+ --moo-overlay-backdrop-opacity: #{$moo-overlay-backdrop-opacity};
82
+ --moo-overlay-backdrop-bg: #{$moo-overlay-backdrop-bg};
83
+ --moo-overlay-backdrop-filter: #{$moo-overlay-backdrop-filter};
84
+ --moo-input-group-border-radius: #{$moo-input-group-border-radius};
85
+ --moo-disabled-control-opacity: #{$moo-disabled-control-opacity};
86
+ --moo-sidebar-foreground: var(--moo-foreground);
87
+ --moo-sidebar-accent: var(--moo-muted-surface);
88
+ --moo-sidebar-border: var(--moo-border);
89
+ --moo-chart-1: #{$moo-chart-1};
90
+ --moo-chart-2: #{$moo-chart-2};
91
+ --moo-chart-3: #{$moo-chart-3};
92
+ --moo-chart-4: #{$moo-chart-4};
93
+ --moo-chart-5: #{$moo-chart-5};
94
+ --moo-heading-font-family: var(--#{$prefix}body-font-family);
95
+ --moo-small-font-size: #{$moo-small-font-size};
96
+ --moo-paragraph-margin-top: #{$moo-paragraph-margin-top};
97
+ --moo-paragraph-margin-bottom: #{$paragraph-margin-bottom};
98
+ }
99
+
100
+ @mixin moo-core-light {
101
+ color-scheme: light;
102
+ color: var(--#{$prefix}body-color);
103
+ background-color: var(--#{$prefix}body-bg);
104
+ --moo-surface: #{$moo-surface};
105
+ --moo-muted-surface: #{$moo-muted-surface};
106
+ --moo-border: #{$moo-border};
107
+ --moo-primary: #{$moo-primary};
108
+ --moo-primary-foreground: #{$moo-primary-foreground};
109
+ --moo-foreground: #{$moo-foreground};
110
+ --moo-muted-foreground: #{$moo-muted-foreground};
111
+ --moo-disabled-foreground: #{$moo-disabled-foreground};
112
+ --moo-ring: #{$moo-ring};
113
+ --moo-destructive: #{$moo-destructive};
114
+ --moo-destructive-surface: #{$moo-destructive-surface};
115
+ --moo-destructive-surface-hover: #{$moo-destructive-surface-hover};
116
+ --moo-destructive-foreground: #{$moo-destructive-foreground};
117
+ --moo-form-invalid-ring-color: #{$moo-form-invalid-ring-color};
118
+ --moo-warning: #{$moo-warning};
119
+ --moo-warning-surface: #{$moo-warning-surface};
120
+ --moo-warning-surface-hover: #{$moo-warning-surface-hover};
121
+ --moo-warning-foreground: #{$moo-warning-foreground};
122
+ --moo-success: #{$moo-success};
123
+ --moo-success-surface: #{$moo-success-surface};
124
+ --moo-success-surface-hover: #{$moo-success-surface-hover};
125
+ --moo-success-foreground: #{$moo-success-foreground};
126
+ --moo-info: #{$moo-info};
127
+ --moo-info-surface: #{$moo-info-surface};
128
+ --moo-info-surface-hover: #{$moo-info-surface-hover};
129
+ --moo-info-foreground: #{$moo-info-foreground};
130
+ --moo-sidebar: #{$moo-sidebar};
131
+ --#{$prefix}body-color: var(--moo-foreground);
132
+ --#{$prefix}body-color-rgb: #{to-rgb($moo-foreground)};
133
+ --#{$prefix}body-bg: var(--moo-surface);
134
+ --#{$prefix}body-bg-rgb: #{to-rgb($moo-surface)};
135
+ --#{$prefix}emphasis-color: var(--moo-foreground);
136
+ --#{$prefix}emphasis-color-rgb: #{to-rgb($moo-foreground)};
137
+ --#{$prefix}secondary-color: var(--moo-muted-foreground);
138
+ --#{$prefix}secondary-color-rgb: #{to-rgb($moo-muted-foreground)};
139
+ --#{$prefix}secondary-bg: var(--moo-muted-surface);
140
+ --#{$prefix}secondary-bg-rgb: #{to-rgb($moo-muted-surface)};
141
+ --#{$prefix}tertiary-color: #{$body-tertiary-color};
142
+ --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};
143
+ --#{$prefix}tertiary-bg: #{$body-tertiary-bg};
144
+ --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};
145
+ --#{$prefix}heading-color: var(--moo-foreground);
146
+ --#{$prefix}link-color: var(--moo-foreground);
147
+ --#{$prefix}link-color-rgb: #{to-rgb($moo-foreground)};
148
+ --#{$prefix}link-hover-color: var(--moo-muted-foreground);
149
+ --#{$prefix}link-hover-color-rgb: #{to-rgb($moo-muted-foreground)};
150
+ --#{$prefix}code-color: #{$code-color};
151
+ --#{$prefix}highlight-color: var(--moo-foreground);
152
+ --#{$prefix}highlight-bg: #{$mark-bg};
153
+ --#{$prefix}border-color: var(--moo-border);
154
+ --#{$prefix}border-color-translucent: #{$border-color-translucent};
155
+ --#{$prefix}form-valid-color: #{$form-valid-color};
156
+ --#{$prefix}form-valid-border-color: #{$form-valid-border-color};
157
+ --#{$prefix}form-invalid-color: var(--moo-destructive);
158
+ --#{$prefix}form-invalid-border-color: #{$moo-form-invalid-border-color};
159
+
160
+ @each $color, $value in $theme-colors-text {
161
+ --#{$prefix}#{$color}-text-emphasis: #{$value};
162
+ }
163
+
164
+ @each $color, $value in $theme-colors-bg-subtle {
165
+ --#{$prefix}#{$color}-bg-subtle: #{$value};
166
+ }
167
+
168
+ @each $color, $value in $theme-colors-border-subtle {
169
+ --#{$prefix}#{$color}-border-subtle: #{$value};
170
+ }
171
+ }
172
+
173
+ @mixin moo-core-dark {
174
+ color-scheme: dark;
175
+ color: var(--#{$prefix}body-color);
176
+ background-color: var(--#{$prefix}body-bg);
177
+ --moo-surface: #{$moo-surface-dark};
178
+ --moo-muted-surface: #{$moo-muted-surface-dark};
179
+ --moo-border: #{$moo-border-dark};
180
+ --moo-primary: #{$moo-primary-dark};
181
+ --moo-primary-foreground: #{$moo-primary-foreground-dark};
182
+ --moo-foreground: #{$moo-foreground-dark};
183
+ --moo-muted-foreground: #{$moo-muted-foreground-dark};
184
+ --moo-disabled-foreground: #{$moo-disabled-foreground-dark};
185
+ --moo-ring: #{$moo-ring-dark};
186
+ --moo-destructive: #{$moo-destructive-dark};
187
+ --moo-destructive-surface: #{$moo-destructive-surface-dark};
188
+ --moo-destructive-surface-hover: #{$moo-destructive-surface-hover-dark};
189
+ --moo-destructive-foreground: #{$moo-destructive-foreground-dark};
190
+ --moo-form-invalid-ring-color: #{$moo-form-invalid-ring-color-dark};
191
+ --moo-warning: #{$moo-warning-dark};
192
+ --moo-warning-surface: #{$moo-warning-surface-dark};
193
+ --moo-warning-surface-hover: #{$moo-warning-surface-hover-dark};
194
+ --moo-warning-foreground: #{$moo-warning-foreground-dark};
195
+ --moo-success: #{$moo-success-dark};
196
+ --moo-success-surface: #{$moo-success-surface-dark};
197
+ --moo-success-surface-hover: #{$moo-success-surface-hover-dark};
198
+ --moo-success-foreground: #{$moo-success-foreground-dark};
199
+ --moo-info: #{$moo-info-dark};
200
+ --moo-info-surface: #{$moo-info-surface-dark};
201
+ --moo-info-surface-hover: #{$moo-info-surface-hover-dark};
202
+ --moo-info-foreground: #{$moo-info-foreground-dark};
203
+ --moo-sidebar: #{$moo-sidebar-dark};
204
+ --#{$prefix}body-color: var(--moo-foreground);
205
+ --#{$prefix}body-color-rgb: #{to-rgb($moo-foreground-dark)};
206
+ --#{$prefix}body-bg: var(--moo-surface);
207
+ --#{$prefix}body-bg-rgb: #{to-rgb($moo-surface-dark)};
208
+ --#{$prefix}emphasis-color: var(--moo-foreground);
209
+ --#{$prefix}emphasis-color-rgb: #{to-rgb($moo-foreground-dark)};
210
+ --#{$prefix}secondary-color: var(--moo-muted-foreground);
211
+ --#{$prefix}secondary-color-rgb: #{to-rgb($moo-muted-foreground-dark)};
212
+ --#{$prefix}secondary-bg: var(--moo-muted-surface);
213
+ --#{$prefix}secondary-bg-rgb: #{to-rgb($moo-muted-surface-dark)};
214
+ --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};
215
+ --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};
216
+ --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};
217
+ --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};
218
+ --#{$prefix}heading-color: var(--moo-foreground);
219
+ --#{$prefix}link-color: var(--moo-foreground);
220
+ --#{$prefix}link-color-rgb: #{to-rgb($moo-foreground-dark)};
221
+ --#{$prefix}link-hover-color: var(--moo-muted-foreground);
222
+ --#{$prefix}link-hover-color-rgb: #{to-rgb($moo-muted-foreground-dark)};
223
+ --#{$prefix}code-color: #{$code-color-dark};
224
+ --#{$prefix}highlight-color: var(--moo-foreground);
225
+ --#{$prefix}highlight-bg: #{$mark-bg-dark};
226
+ --#{$prefix}border-color: var(--moo-border);
227
+ --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};
228
+ --#{$prefix}form-valid-color: #{$form-valid-color-dark};
229
+ --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};
230
+ --#{$prefix}form-invalid-color: var(--moo-destructive);
231
+ --#{$prefix}form-invalid-border-color: #{$moo-form-invalid-border-color-dark};
232
+
233
+ @each $color, $value in $moo-theme-colors-text-dark {
234
+ --#{$prefix}#{$color}-text-emphasis: #{$value};
235
+ }
236
+
237
+ @each $color, $value in $moo-theme-colors-bg-subtle-dark {
238
+ --#{$prefix}#{$color}-bg-subtle: #{$value};
239
+ }
240
+
241
+ @each $color, $value in $moo-theme-colors-border-subtle-dark {
242
+ --#{$prefix}#{$color}-border-subtle: #{$value};
243
+ }
244
+ }
@@ -0,0 +1,18 @@
1
+ $moo-bg-color-utility: map-get($utilities, "background-color");
2
+ $moo-bg-color-values: map-get($moo-bg-color-utility, values);
3
+ $utilities: map-merge(
4
+ $utilities,
5
+ (
6
+ "background-color": map-merge(
7
+ $moo-bg-color-utility,
8
+ (
9
+ values: map-merge(
10
+ $moo-bg-color-values,
11
+ (
12
+ "body-secondary": unquote("rgb(from var(--#{$prefix}secondary-bg) r g b / var(--#{$prefix}bg-opacity))"),
13
+ )
14
+ ),
15
+ )
16
+ ),
17
+ )
18
+ );
@@ -0,0 +1,193 @@
1
+ :where(
2
+ .scroll-fade,
3
+ .scroll-fade-y,
4
+ .scroll-fade-x,
5
+ .scroll-fade-t,
6
+ .scroll-fade-b,
7
+ .scroll-fade-l,
8
+ .scroll-fade-r,
9
+ .scroll-fade-s,
10
+ .scroll-fade-e
11
+ ) {
12
+ --scroll-fade-size: min(12%, 2.5rem);
13
+ --scroll-fade-reveal: 6rem;
14
+ --moo-scroll-fade-t-size: var(--scroll-fade-size);
15
+ --moo-scroll-fade-b-size: var(--scroll-fade-size);
16
+ --moo-scroll-fade-s-size: var(--scroll-fade-size);
17
+ --moo-scroll-fade-e-size: var(--scroll-fade-size);
18
+ --moo-scroll-fade-mask: linear-gradient(
19
+ to bottom,
20
+ transparent 0,
21
+ #000 var(--moo-scroll-fade-t),
22
+ #000 calc(100% - var(--moo-scroll-fade-b)),
23
+ transparent 100%
24
+ );
25
+ mask-image: var(--moo-scroll-fade-mask);
26
+ }
27
+
28
+ .scroll-fade,
29
+ .scroll-fade-y {
30
+ animation-name: moo-scroll-fade-reveal-t, moo-scroll-fade-reveal-b;
31
+ animation-duration: 1ms, 1ms;
32
+ animation-fill-mode: both, both;
33
+ animation-timing-function: linear, linear;
34
+ animation-timeline: scroll(self y), scroll(self y);
35
+ animation-range: 0 var(--scroll-fade-reveal), calc(100% - var(--scroll-fade-reveal)) 100%;
36
+ }
37
+
38
+ .scroll-fade-t {
39
+ animation-name: moo-scroll-fade-reveal-t;
40
+ animation-duration: 1ms;
41
+ animation-fill-mode: both;
42
+ animation-timing-function: linear;
43
+ animation-timeline: scroll(self y);
44
+ animation-range: 0 var(--scroll-fade-reveal);
45
+ }
46
+
47
+ .scroll-fade-b {
48
+ animation-name: moo-scroll-fade-reveal-b;
49
+ animation-duration: 1ms;
50
+ animation-fill-mode: both;
51
+ animation-timing-function: linear;
52
+ animation-timeline: scroll(self y);
53
+ animation-range: calc(100% - var(--scroll-fade-reveal)) 100%;
54
+ }
55
+
56
+ .scroll-fade-x,
57
+ .scroll-fade-s,
58
+ .scroll-fade-e {
59
+ --moo-scroll-fade-mask: linear-gradient(
60
+ to right,
61
+ transparent 0,
62
+ #000 var(--moo-scroll-fade-s),
63
+ #000 calc(100% - var(--moo-scroll-fade-e)),
64
+ transparent 100%
65
+ );
66
+ }
67
+
68
+ .scroll-fade-x {
69
+ animation-name: moo-scroll-fade-reveal-s, moo-scroll-fade-reveal-e;
70
+ animation-duration: 1ms, 1ms;
71
+ animation-fill-mode: both, both;
72
+ animation-timing-function: linear, linear;
73
+ animation-timeline: scroll(self inline), scroll(self inline);
74
+ animation-range: 0 var(--scroll-fade-reveal), calc(100% - var(--scroll-fade-reveal)) 100%;
75
+ }
76
+
77
+ .scroll-fade-s {
78
+ animation-name: moo-scroll-fade-reveal-s;
79
+ animation-duration: 1ms;
80
+ animation-fill-mode: both;
81
+ animation-timing-function: linear;
82
+ animation-timeline: scroll(self inline);
83
+ animation-range: 0 var(--scroll-fade-reveal);
84
+ }
85
+
86
+ .scroll-fade-e {
87
+ animation-name: moo-scroll-fade-reveal-e;
88
+ animation-duration: 1ms;
89
+ animation-fill-mode: both;
90
+ animation-timing-function: linear;
91
+ animation-timeline: scroll(self inline);
92
+ animation-range: calc(100% - var(--scroll-fade-reveal)) 100%;
93
+ }
94
+
95
+ .scroll-fade-x:where([dir="rtl"], [dir="rtl"] *),
96
+ .scroll-fade-s:where([dir="rtl"], [dir="rtl"] *),
97
+ .scroll-fade-e:where([dir="rtl"], [dir="rtl"] *) {
98
+ --moo-scroll-fade-mask: linear-gradient(
99
+ to left,
100
+ transparent 0,
101
+ #000 var(--moo-scroll-fade-s),
102
+ #000 calc(100% - var(--moo-scroll-fade-e)),
103
+ transparent 100%
104
+ );
105
+ }
106
+
107
+ .scroll-fade-l,
108
+ .scroll-fade-r {
109
+ --moo-scroll-fade-mask: linear-gradient(
110
+ to right,
111
+ transparent 0,
112
+ #000 var(--moo-scroll-fade-s),
113
+ #000 calc(100% - var(--moo-scroll-fade-e)),
114
+ transparent 100%
115
+ );
116
+ }
117
+
118
+ .scroll-fade-l {
119
+ animation-name: moo-scroll-fade-reveal-s;
120
+ animation-duration: 1ms;
121
+ animation-fill-mode: both;
122
+ animation-timing-function: linear;
123
+ animation-timeline: scroll(self x);
124
+ animation-range: 0 var(--scroll-fade-reveal);
125
+ }
126
+
127
+ .scroll-fade-r {
128
+ animation-name: moo-scroll-fade-reveal-e;
129
+ animation-duration: 1ms;
130
+ animation-fill-mode: both;
131
+ animation-timing-function: linear;
132
+ animation-timeline: scroll(self x);
133
+ animation-range: calc(100% - var(--scroll-fade-reveal)) 100%;
134
+ }
135
+
136
+ .scroll-fade-none {
137
+ --moo-scroll-fade-mask: none;
138
+ }
139
+
140
+ .no-scrollbar {
141
+ scrollbar-width: none;
142
+ }
143
+
144
+ .no-scrollbar::-webkit-scrollbar {
145
+ display: none;
146
+ }
147
+
148
+ .scrollbar-thin {
149
+ --moo-scrollbar-thin-size: #{$moo-scrollbar-thin-size};
150
+ --moo-scrollbar-thin-thumb-bg: color-mix(in srgb, var(--bs-secondary-color) 28%, transparent);
151
+ --moo-scrollbar-thin-thumb-hover-bg: color-mix(in srgb, var(--bs-secondary-color) 45%, transparent);
152
+
153
+ scrollbar-color: var(--moo-scrollbar-thin-thumb-bg) transparent;
154
+ scrollbar-width: thin;
155
+ }
156
+
157
+ .scrollbar-thin::-webkit-scrollbar {
158
+ width: var(--moo-scrollbar-thin-size);
159
+ height: var(--moo-scrollbar-thin-size);
160
+ }
161
+
162
+ .scrollbar-thin::-webkit-scrollbar-track {
163
+ background: transparent;
164
+ }
165
+
166
+ .scrollbar-thin::-webkit-scrollbar-thumb {
167
+ border-radius: var(--bs-border-radius-pill);
168
+ background-color: var(--moo-scrollbar-thin-thumb-bg);
169
+ }
170
+
171
+ .scrollbar-thin::-webkit-scrollbar-thumb:hover {
172
+ background-color: var(--moo-scrollbar-thin-thumb-hover-bg);
173
+ }
174
+
175
+ @supports not (animation-timeline: scroll()) {
176
+ .scroll-fade,
177
+ .scroll-fade-y {
178
+ --moo-scroll-fade-t: var(--moo-scroll-fade-t-size);
179
+ --moo-scroll-fade-b: var(--moo-scroll-fade-b-size);
180
+ }
181
+
182
+ .scroll-fade-x {
183
+ --moo-scroll-fade-s: var(--moo-scroll-fade-s-size);
184
+ --moo-scroll-fade-e: var(--moo-scroll-fade-e-size);
185
+ }
186
+
187
+ .scroll-fade-t { --moo-scroll-fade-t: var(--moo-scroll-fade-t-size); }
188
+ .scroll-fade-b { --moo-scroll-fade-b: var(--moo-scroll-fade-b-size); }
189
+ .scroll-fade-l,
190
+ .scroll-fade-s { --moo-scroll-fade-s: var(--moo-scroll-fade-s-size); }
191
+ .scroll-fade-r,
192
+ .scroll-fade-e { --moo-scroll-fade-e: var(--moo-scroll-fade-e-size); }
193
+ }
@@ -0,0 +1,43 @@
1
+ @property --moo-scroll-fade-t {
2
+ syntax: "<length-percentage>";
3
+ inherits: false;
4
+ initial-value: 0;
5
+ }
6
+
7
+ @property --moo-scroll-fade-b {
8
+ syntax: "<length-percentage>";
9
+ inherits: false;
10
+ initial-value: 0;
11
+ }
12
+
13
+ @property --moo-scroll-fade-s {
14
+ syntax: "<length-percentage>";
15
+ inherits: false;
16
+ initial-value: 0;
17
+ }
18
+
19
+ @property --moo-scroll-fade-e {
20
+ syntax: "<length-percentage>";
21
+ inherits: false;
22
+ initial-value: 0;
23
+ }
24
+
25
+ @keyframes moo-scroll-fade-reveal-t {
26
+ from { --moo-scroll-fade-t: 0; }
27
+ to { --moo-scroll-fade-t: var(--moo-scroll-fade-t-size); }
28
+ }
29
+
30
+ @keyframes moo-scroll-fade-reveal-b {
31
+ from { --moo-scroll-fade-b: var(--moo-scroll-fade-b-size); }
32
+ to { --moo-scroll-fade-b: 0; }
33
+ }
34
+
35
+ @keyframes moo-scroll-fade-reveal-s {
36
+ from { --moo-scroll-fade-s: 0; }
37
+ to { --moo-scroll-fade-s: var(--moo-scroll-fade-s-size); }
38
+ }
39
+
40
+ @keyframes moo-scroll-fade-reveal-e {
41
+ from { --moo-scroll-fade-e: var(--moo-scroll-fade-e-size); }
42
+ to { --moo-scroll-fade-e: 0; }
43
+ }
@@ -1,51 +0,0 @@
1
- // Moo UI — Public Sass Facade: Settings
2
- //
3
- // This is the consumer-facing subset of Moo UI's Sass variables.
4
- // Import this file BEFORE Bootstrap's _variables.scss so your overrides
5
- // take precedence over Bootstrap's own !default values.
6
- //
7
- // Usage (relative-path, Bootstrap Option B pattern):
8
- // @import "../node_modules/bootstrap/scss/functions";
9
- // @import "../node_modules/@wpmoo/ui/scss/facade-settings";
10
- // $primary: #your-brand-color;
11
- // @import "../node_modules/bootstrap/scss/variables";
12
- // ...
13
- //
14
- // Usage (include_paths-based, bundler-configured):
15
- // @import "bootstrap/scss/functions";
16
- // @import "@wpmoo/ui/scss/facade-settings";
17
- // $primary: #your-brand-color;
18
- // @import "bootstrap/scss/variables";
19
- // ...
20
- //
21
- // Public variable allow-list (0.9.0):
22
- //
23
- // Brand colors — any valid Sass color value:
24
- // $primary Default: #171717
25
- // $secondary Default: #f4f4f5
26
- // $success Default: #16803c
27
- // $info Default: #0f6e8c
28
- // $warning Default: #a15c00
29
- // $danger Default: #dc2626
30
- // $light Default: #fafafa
31
- // $dark Default: #18181b
32
- //
33
- // Body — any valid Sass color value:
34
- // $body-color Default: #18181b
35
- // $body-bg Default: #fff
36
- //
37
- // Borders — any valid Sass color (border-color) or CSS <length> (radius):
38
- // $border-color Default: #e4e4e7
39
- // $border-radius Default: 0.5rem
40
- // $border-radius-sm Default: 0.375rem
41
- // $border-radius-lg Default: 0.625rem
42
- //
43
- // Typography — rem/em/unitless ratio (same constraint as Bootstrap's
44
- // $font-size-base; see vendor/bootstrap/scss/_variables.scss):
45
- // $font-size-base Default: 0.875rem
46
- //
47
- // Derived tokens ($moo-*) are computed from the above and are not part of
48
- // the public facade. Component-level knobs ($moo-*-dark, $moo-sidebar,
49
- // etc.) are internal and may change without notice.
50
-
51
- @import "settings/facade_public";
@@ -1,23 +0,0 @@
1
- // Public Sass facade allow-list — the only variables a facade consumer can
2
- // override. This file is the source of truth for the public Sass surface.
3
- // _palette.scss imports this first, then declares its own internal additions.
4
- // Do NOT add variables here without updating the freeze document
5
- // (src/certification/api-freeze-0.9.0.json) and getting explicit approval.
6
-
7
- $primary: #171717 !default;
8
- $secondary: #f4f4f5 !default;
9
- $success: #16803c !default;
10
- $info: #0f6e8c !default;
11
- $warning: #a15c00 !default;
12
- $danger: #dc2626 !default;
13
- $light: #fafafa !default;
14
- $dark: #18181b !default;
15
-
16
- $body-color: #18181b !default;
17
- $body-bg: #fff !default;
18
- $font-size-base: 0.875rem !default;
19
-
20
- $border-color: #e4e4e7 !default;
21
- $border-radius: 0.5rem !default;
22
- $border-radius-sm: 0.375rem !default;
23
- $border-radius-lg: 0.625rem !default;