@mk-kit/ui 0.34.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.
- package/LICENSE +21 -0
- package/README.md +115 -0
- package/block-editor/README.md +254 -0
- package/fesm2022/mk-kit-ui-block-editor.mjs +2158 -0
- package/fesm2022/mk-kit-ui-block-editor.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-button.mjs +81 -0
- package/fesm2022/mk-kit-ui-button.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-checkbox.mjs +136 -0
- package/fesm2022/mk-kit-ui-checkbox.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-chip.mjs +122 -0
- package/fesm2022/mk-kit-ui-chip.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-context-menu.mjs +144 -0
- package/fesm2022/mk-kit-ui-context-menu.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-core.mjs +1576 -0
- package/fesm2022/mk-kit-ui-core.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-data.mjs +6055 -0
- package/fesm2022/mk-kit-ui-data.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-datetime.mjs +3409 -0
- package/fesm2022/mk-kit-ui-datetime.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-directives.mjs +1779 -0
- package/fesm2022/mk-kit-ui-directives.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-dnd.mjs +1073 -0
- package/fesm2022/mk-kit-ui-dnd.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-feedback.mjs +2426 -0
- package/fesm2022/mk-kit-ui-feedback.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-forms.mjs +9208 -0
- package/fesm2022/mk-kit-ui-forms.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-icon.mjs +470 -0
- package/fesm2022/mk-kit-ui-icon.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-media.mjs +896 -0
- package/fesm2022/mk-kit-ui-media.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-navigation.mjs +2542 -0
- package/fesm2022/mk-kit-ui-navigation.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-rich-text.mjs +565 -0
- package/fesm2022/mk-kit-ui-rich-text.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-table.mjs +1378 -0
- package/fesm2022/mk-kit-ui-table.mjs.map +1 -0
- package/fesm2022/mk-kit-ui.mjs +32 -0
- package/fesm2022/mk-kit-ui.mjs.map +1 -0
- package/package.json +130 -0
- package/schematics/collection.json +10 -0
- package/schematics/ng-add/index.js +113 -0
- package/schematics/ng-add/schema.json +22 -0
- package/schematics/package.json +3 -0
- package/styles/mk-kit.css +750 -0
- package/types/mk-kit-ui-block-editor.d.ts +292 -0
- package/types/mk-kit-ui-button.d.ts +40 -0
- package/types/mk-kit-ui-checkbox.d.ts +62 -0
- package/types/mk-kit-ui-chip.d.ts +59 -0
- package/types/mk-kit-ui-context-menu.d.ts +57 -0
- package/types/mk-kit-ui-core.d.ts +1105 -0
- package/types/mk-kit-ui-data.d.ts +2580 -0
- package/types/mk-kit-ui-datetime.d.ts +1171 -0
- package/types/mk-kit-ui-directives.d.ts +807 -0
- package/types/mk-kit-ui-dnd.d.ts +423 -0
- package/types/mk-kit-ui-feedback.d.ts +1270 -0
- package/types/mk-kit-ui-forms.d.ts +3586 -0
- package/types/mk-kit-ui-icon.d.ts +108 -0
- package/types/mk-kit-ui-media.d.ts +549 -0
- package/types/mk-kit-ui-navigation.d.ts +1169 -0
- package/types/mk-kit-ui-rich-text.d.ts +187 -0
- package/types/mk-kit-ui-table.d.ts +739 -0
- package/types/mk-kit-ui.d.ts +17 -0
|
@@ -0,0 +1,750 @@
|
|
|
1
|
+
/* =========================================================================
|
|
2
|
+
* mk-kit — Global theme & design tokens
|
|
3
|
+
* -------------------------------------------------------------------------
|
|
4
|
+
* Everything visual in mk-kit is driven by these CSS custom properties.
|
|
5
|
+
* Override any --mk-* variable on :root (or a scoped element) to re-theme
|
|
6
|
+
* the entire library. Light is the default; dark applies automatically from
|
|
7
|
+
* the OS preference, or explicitly via [data-mk-theme="dark"|"light"].
|
|
8
|
+
*
|
|
9
|
+
* import '@mk-kit/ui/styles.css';
|
|
10
|
+
* ========================================================================= */
|
|
11
|
+
/* -------------------------------------------------------------------------
|
|
12
|
+
* 1. Theme-independent tokens (geometry, type, motion, layering)
|
|
13
|
+
* ---------------------------------------------------------------------- */
|
|
14
|
+
:root {
|
|
15
|
+
/* Font families */
|
|
16
|
+
--mk-font-sans: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial,
|
|
17
|
+
sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
|
|
18
|
+
--mk-font-mono: ui-monospace, 'SF Mono', 'Cascadia Code', 'JetBrains Mono',
|
|
19
|
+
'Fira Code', Consolas, monospace;
|
|
20
|
+
/* Type scale (rem, 1rem = 16px base) */
|
|
21
|
+
--mk-font-size-xs: 0.75rem; /* 12 */
|
|
22
|
+
--mk-font-size-sm: 0.8125rem; /* 13 */
|
|
23
|
+
--mk-font-size-md: 0.875rem; /* 14 — default UI text */
|
|
24
|
+
--mk-font-size-lg: 1rem; /* 16 */
|
|
25
|
+
--mk-font-size-xl: 1.25rem; /* 20 */
|
|
26
|
+
--mk-font-size-2xl: 1.5rem; /* 24 */
|
|
27
|
+
--mk-font-size-3xl: 1.875rem; /* 30 */
|
|
28
|
+
--mk-font-size-4xl: 2.25rem; /* 36 */
|
|
29
|
+
--mk-font-weight-normal: 400;
|
|
30
|
+
--mk-font-weight-medium: 500;
|
|
31
|
+
--mk-font-weight-semibold: 600;
|
|
32
|
+
--mk-font-weight-bold: 700;
|
|
33
|
+
--mk-line-height-tight: 1.2;
|
|
34
|
+
--mk-line-height-snug: 1.35;
|
|
35
|
+
--mk-line-height-normal: 1.5;
|
|
36
|
+
--mk-line-height-relaxed: 1.7;
|
|
37
|
+
--mk-letter-spacing-tight: -0.01em;
|
|
38
|
+
--mk-letter-spacing-normal: 0;
|
|
39
|
+
--mk-letter-spacing-wide: 0.02em;
|
|
40
|
+
/* Spacing scale (4px base) */
|
|
41
|
+
--mk-space-0: 0;
|
|
42
|
+
--mk-space-1: 0.25rem; /* 4 */
|
|
43
|
+
--mk-space-2: 0.5rem; /* 8 */
|
|
44
|
+
--mk-space-3: 0.75rem; /* 12 */
|
|
45
|
+
--mk-space-4: 1rem; /* 16 */
|
|
46
|
+
--mk-space-5: 1.25rem; /* 20 */
|
|
47
|
+
--mk-space-6: 1.5rem; /* 24 */
|
|
48
|
+
--mk-space-8: 2rem; /* 32 */
|
|
49
|
+
--mk-space-10: 2.5rem; /* 40 */
|
|
50
|
+
--mk-space-12: 3rem; /* 48 */
|
|
51
|
+
--mk-space-16: 4rem; /* 64 */
|
|
52
|
+
/* Radii */
|
|
53
|
+
--mk-radius-none: 0;
|
|
54
|
+
--mk-radius-xs: 3px;
|
|
55
|
+
--mk-radius-sm: 5px;
|
|
56
|
+
--mk-radius-md: 8px;
|
|
57
|
+
--mk-radius-lg: 12px;
|
|
58
|
+
--mk-radius-xl: 16px;
|
|
59
|
+
--mk-radius-2xl: 24px;
|
|
60
|
+
--mk-radius-pill: 999px;
|
|
61
|
+
--mk-radius-circle: 50%;
|
|
62
|
+
/* Control sizing (heights for inputs/buttons) */
|
|
63
|
+
--mk-control-height-sm: 30px;
|
|
64
|
+
--mk-control-height-md: 38px;
|
|
65
|
+
--mk-control-height-lg: 46px;
|
|
66
|
+
/* Borders */
|
|
67
|
+
--mk-border-width: 1px;
|
|
68
|
+
--mk-border-width-strong: 2px;
|
|
69
|
+
/* Motion */
|
|
70
|
+
--mk-duration-instant: 80ms;
|
|
71
|
+
--mk-duration-fast: 140ms;
|
|
72
|
+
--mk-duration-normal: 220ms;
|
|
73
|
+
--mk-duration-slow: 360ms;
|
|
74
|
+
--mk-ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
75
|
+
--mk-ease-emphasized: cubic-bezier(0.3, 0, 0, 1);
|
|
76
|
+
--mk-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
77
|
+
/* Z-index layering */
|
|
78
|
+
--mk-z-base: 0;
|
|
79
|
+
--mk-z-sticky: 100;
|
|
80
|
+
--mk-z-drawer: 900;
|
|
81
|
+
--mk-z-overlay: 1000;
|
|
82
|
+
--mk-z-dialog: 1100;
|
|
83
|
+
--mk-z-menu: 1200;
|
|
84
|
+
--mk-z-tooltip: 1300;
|
|
85
|
+
--mk-z-toast: 1400;
|
|
86
|
+
/* Focus ring geometry */
|
|
87
|
+
--mk-focus-ring-width: 2px;
|
|
88
|
+
--mk-focus-ring-offset: 2px;
|
|
89
|
+
/* Layout defaults (admin shell) */
|
|
90
|
+
--mk-sidebar-width: 260px;
|
|
91
|
+
--mk-sidebar-width-collapsed: 68px;
|
|
92
|
+
--mk-header-height: 60px;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* -------------------------------------------------------------------------
|
|
96
|
+
* 2. Light theme (default)
|
|
97
|
+
* ---------------------------------------------------------------------- */
|
|
98
|
+
:root {
|
|
99
|
+
color-scheme: light;
|
|
100
|
+
/* Surfaces */
|
|
101
|
+
--mk-bg: #f5f6f8;
|
|
102
|
+
--mk-surface: #ffffff;
|
|
103
|
+
--mk-surface-2: #f1f3f5;
|
|
104
|
+
--mk-surface-3: #e8ebee;
|
|
105
|
+
--mk-surface-inverse: #1a1d23;
|
|
106
|
+
--mk-overlay-scrim: rgba(17, 20, 26, 0.45);
|
|
107
|
+
/* Text */
|
|
108
|
+
--mk-text: #1a1d23;
|
|
109
|
+
--mk-text-muted: #56606e;
|
|
110
|
+
--mk-text-subtle: #687280;
|
|
111
|
+
--mk-text-inverse: #ffffff;
|
|
112
|
+
--mk-text-disabled: #adb5c0;
|
|
113
|
+
/* Borders / dividers */
|
|
114
|
+
--mk-border: #e3e6eb;
|
|
115
|
+
--mk-border-strong: #cbd1d9;
|
|
116
|
+
--mk-border-subtle: #eef0f3;
|
|
117
|
+
/* Interaction overlays (layered over any surface) */
|
|
118
|
+
--mk-hover-overlay: rgba(17, 20, 26, 0.04);
|
|
119
|
+
--mk-active-overlay: rgba(17, 20, 26, 0.08);
|
|
120
|
+
--mk-selected-bg: #eef2ff;
|
|
121
|
+
--mk-selected-text: #3730a3;
|
|
122
|
+
/* Primary / brand */
|
|
123
|
+
--mk-primary: #4f46e5;
|
|
124
|
+
--mk-primary-hover: #4338ca;
|
|
125
|
+
--mk-primary-active: #3730a3;
|
|
126
|
+
--mk-primary-contrast: #ffffff;
|
|
127
|
+
--mk-primary-subtle: #eef2ff;
|
|
128
|
+
--mk-primary-subtle-hover: #e0e7ff;
|
|
129
|
+
--mk-primary-subtle-text: #3730a3;
|
|
130
|
+
/* Semantic — success */
|
|
131
|
+
--mk-success: #15803d;
|
|
132
|
+
--mk-success-hover: #166534;
|
|
133
|
+
--mk-success-contrast: #ffffff;
|
|
134
|
+
--mk-success-subtle: #e7f6ec;
|
|
135
|
+
--mk-success-subtle-text: #14622f;
|
|
136
|
+
/* Semantic — warning */
|
|
137
|
+
--mk-warning: #b45309;
|
|
138
|
+
--mk-warning-hover: #92400e;
|
|
139
|
+
--mk-warning-contrast: #ffffff;
|
|
140
|
+
--mk-warning-subtle: #fdf1e3;
|
|
141
|
+
--mk-warning-subtle-text: #92400e;
|
|
142
|
+
/* Semantic — danger */
|
|
143
|
+
--mk-danger: #dc2626;
|
|
144
|
+
--mk-danger-hover: #b91c1c;
|
|
145
|
+
--mk-danger-contrast: #ffffff;
|
|
146
|
+
/* Danger as TEXT on surfaces. Same as --mk-danger in light; lighter in dark,
|
|
147
|
+
where the button-label-safe base falls below 4.5:1 as body text. */
|
|
148
|
+
--mk-danger-text: #dc2626;
|
|
149
|
+
--mk-danger-subtle: #fdeaea;
|
|
150
|
+
--mk-danger-subtle-text: #b3201a;
|
|
151
|
+
/* Semantic — info */
|
|
152
|
+
--mk-info: #0369a1;
|
|
153
|
+
--mk-info-hover: #075985;
|
|
154
|
+
--mk-info-contrast: #ffffff;
|
|
155
|
+
--mk-info-subtle: #e5f3fb;
|
|
156
|
+
--mk-info-subtle-text: #075985;
|
|
157
|
+
/* Neutral tone (secondary buttons, tags) */
|
|
158
|
+
--mk-neutral-subtle: #eff1f4;
|
|
159
|
+
--mk-neutral-subtle-hover: #e5e8ec;
|
|
160
|
+
--mk-neutral-subtle-text: #3a424e;
|
|
161
|
+
/* Focus ring color */
|
|
162
|
+
--mk-focus-ring: #4f46e5;
|
|
163
|
+
/* Elevation shadows */
|
|
164
|
+
--mk-shadow-xs: 0 1px 2px rgba(17, 20, 26, 0.06);
|
|
165
|
+
--mk-shadow-sm: 0 1px 3px rgba(17, 20, 26, 0.08), 0 1px 2px rgba(17, 20, 26, 0.04);
|
|
166
|
+
--mk-shadow-md: 0 4px 12px rgba(17, 20, 26, 0.1), 0 2px 4px rgba(17, 20, 26, 0.05);
|
|
167
|
+
--mk-shadow-lg: 0 12px 28px rgba(17, 20, 26, 0.14), 0 4px 8px rgba(17, 20, 26, 0.06);
|
|
168
|
+
--mk-shadow-xl: 0 24px 48px rgba(17, 20, 26, 0.2), 0 8px 16px rgba(17, 20, 26, 0.08);
|
|
169
|
+
/* Backdrops / misc */
|
|
170
|
+
--mk-skeleton-base: #e8ebee;
|
|
171
|
+
--mk-skeleton-shine: #f4f6f8;
|
|
172
|
+
--mk-scrollbar-thumb: #cbd1d9;
|
|
173
|
+
--mk-scrollbar-thumb-hover: #adb5c0;
|
|
174
|
+
--mk-code-bg: #f1f3f5;
|
|
175
|
+
/* Categorical chart palette — validated colorblind-safe, fixed order.
|
|
176
|
+
Assign by series index, never cycle a 9th hue (fold into "Other"). */
|
|
177
|
+
--mk-chart-1: #4f46e5;
|
|
178
|
+
--mk-chart-2: #0e9f6e;
|
|
179
|
+
--mk-chart-3: #c2740f;
|
|
180
|
+
--mk-chart-4: #e0338a;
|
|
181
|
+
--mk-chart-5: #2f8bd6;
|
|
182
|
+
--mk-chart-6: #0d9488;
|
|
183
|
+
--mk-chart-7: #8b5cf6;
|
|
184
|
+
--mk-chart-8: #e5484d;
|
|
185
|
+
/* Recessive chart chrome (alias existing tokens; re-resolves per theme). */
|
|
186
|
+
--mk-chart-grid: var(--mk-border-subtle);
|
|
187
|
+
--mk-chart-axis: var(--mk-text-subtle);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/* -------------------------------------------------------------------------
|
|
191
|
+
* 3. Dark theme values — declared ONCE here, emitted into both dark
|
|
192
|
+
* selectors below. (Previously duplicated verbatim in two places.)
|
|
193
|
+
* ---------------------------------------------------------------------- */
|
|
194
|
+
/* Auto (OS) dark, unless explicitly overridden to light. */
|
|
195
|
+
@media (prefers-color-scheme: dark) {
|
|
196
|
+
:root:not([data-mk-theme=light]) {
|
|
197
|
+
color-scheme: dark;
|
|
198
|
+
--mk-bg: #0d1117;
|
|
199
|
+
--mk-surface: #161b22;
|
|
200
|
+
--mk-surface-2: #1e252e;
|
|
201
|
+
--mk-surface-3: #2a323c;
|
|
202
|
+
--mk-surface-inverse: #e6edf3;
|
|
203
|
+
--mk-overlay-scrim: rgba(1, 4, 9, 0.6);
|
|
204
|
+
--mk-text: #e6edf3;
|
|
205
|
+
--mk-text-muted: #9aa5b1;
|
|
206
|
+
--mk-text-subtle: #788494;
|
|
207
|
+
--mk-text-inverse: #0d1117;
|
|
208
|
+
--mk-text-disabled: #4b545f;
|
|
209
|
+
--mk-border: #2a323c;
|
|
210
|
+
--mk-border-strong: #3a444f;
|
|
211
|
+
--mk-border-subtle: #21272f;
|
|
212
|
+
--mk-hover-overlay: rgba(255, 255, 255, 0.05);
|
|
213
|
+
--mk-active-overlay: rgba(255, 255, 255, 0.09);
|
|
214
|
+
--mk-selected-bg: #1e2540;
|
|
215
|
+
--mk-selected-text: #c7d2fe;
|
|
216
|
+
--mk-primary: #6164f0;
|
|
217
|
+
--mk-primary-hover: #7c7ff4;
|
|
218
|
+
--mk-primary-active: #9599f7;
|
|
219
|
+
--mk-primary-contrast: #ffffff;
|
|
220
|
+
--mk-primary-subtle: #1e2540;
|
|
221
|
+
--mk-primary-subtle-hover: #262f4f;
|
|
222
|
+
--mk-primary-subtle-text: #c7d2fe;
|
|
223
|
+
--mk-success: #22c55e;
|
|
224
|
+
--mk-success-hover: #4ade80;
|
|
225
|
+
--mk-success-contrast: #052e13;
|
|
226
|
+
--mk-success-subtle: #10261a;
|
|
227
|
+
--mk-success-subtle-text: #6ee7a0;
|
|
228
|
+
--mk-warning: #f59e0b;
|
|
229
|
+
--mk-warning-hover: #fbbf24;
|
|
230
|
+
--mk-warning-contrast: #2a1a02;
|
|
231
|
+
--mk-warning-subtle: #2a2010;
|
|
232
|
+
--mk-warning-subtle-text: #fcd34d;
|
|
233
|
+
--mk-danger: #db3636;
|
|
234
|
+
--mk-danger-hover: #f56b6b;
|
|
235
|
+
--mk-danger-contrast: #ffffff;
|
|
236
|
+
--mk-danger-text: #f56b6b;
|
|
237
|
+
--mk-danger-subtle: #2c1416;
|
|
238
|
+
--mk-danger-subtle-text: #fca5a5;
|
|
239
|
+
--mk-info: #38bdf8;
|
|
240
|
+
--mk-info-hover: #5cccf9;
|
|
241
|
+
--mk-info-contrast: #04222e;
|
|
242
|
+
--mk-info-subtle: #0c2733;
|
|
243
|
+
--mk-info-subtle-text: #a5e4fb;
|
|
244
|
+
--mk-neutral-subtle: #232b34;
|
|
245
|
+
--mk-neutral-subtle-hover: #2c3540;
|
|
246
|
+
--mk-neutral-subtle-text: #c4ccd6;
|
|
247
|
+
--mk-focus-ring: #818cf8;
|
|
248
|
+
--mk-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.4);
|
|
249
|
+
--mk-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.3);
|
|
250
|
+
--mk-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.55), 0 2px 4px rgba(0, 0, 0, 0.35);
|
|
251
|
+
--mk-shadow-lg: 0 12px 28px rgba(0, 0, 0, 0.6), 0 4px 8px rgba(0, 0, 0, 0.4);
|
|
252
|
+
--mk-shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.7), 0 8px 16px rgba(0, 0, 0, 0.45);
|
|
253
|
+
--mk-skeleton-base: #232b34;
|
|
254
|
+
--mk-skeleton-shine: #2f3945;
|
|
255
|
+
--mk-scrollbar-thumb: #3a444f;
|
|
256
|
+
--mk-scrollbar-thumb-hover: #4b545f;
|
|
257
|
+
--mk-code-bg: #1e252e;
|
|
258
|
+
--mk-chart-1: #6366f1;
|
|
259
|
+
--mk-chart-2: #16a34a;
|
|
260
|
+
--mk-chart-3: #d97706;
|
|
261
|
+
--mk-chart-4: #db2777;
|
|
262
|
+
--mk-chart-5: #3b82f6;
|
|
263
|
+
--mk-chart-6: #0d9488;
|
|
264
|
+
--mk-chart-7: #8b5cf6;
|
|
265
|
+
--mk-chart-8: #ef4444;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/* Explicit dark. */
|
|
269
|
+
[data-mk-theme=dark] {
|
|
270
|
+
color-scheme: dark;
|
|
271
|
+
--mk-bg: #0d1117;
|
|
272
|
+
--mk-surface: #161b22;
|
|
273
|
+
--mk-surface-2: #1e252e;
|
|
274
|
+
--mk-surface-3: #2a323c;
|
|
275
|
+
--mk-surface-inverse: #e6edf3;
|
|
276
|
+
--mk-overlay-scrim: rgba(1, 4, 9, 0.6);
|
|
277
|
+
--mk-text: #e6edf3;
|
|
278
|
+
--mk-text-muted: #9aa5b1;
|
|
279
|
+
--mk-text-subtle: #788494;
|
|
280
|
+
--mk-text-inverse: #0d1117;
|
|
281
|
+
--mk-text-disabled: #4b545f;
|
|
282
|
+
--mk-border: #2a323c;
|
|
283
|
+
--mk-border-strong: #3a444f;
|
|
284
|
+
--mk-border-subtle: #21272f;
|
|
285
|
+
--mk-hover-overlay: rgba(255, 255, 255, 0.05);
|
|
286
|
+
--mk-active-overlay: rgba(255, 255, 255, 0.09);
|
|
287
|
+
--mk-selected-bg: #1e2540;
|
|
288
|
+
--mk-selected-text: #c7d2fe;
|
|
289
|
+
--mk-primary: #6164f0;
|
|
290
|
+
--mk-primary-hover: #7c7ff4;
|
|
291
|
+
--mk-primary-active: #9599f7;
|
|
292
|
+
--mk-primary-contrast: #ffffff;
|
|
293
|
+
--mk-primary-subtle: #1e2540;
|
|
294
|
+
--mk-primary-subtle-hover: #262f4f;
|
|
295
|
+
--mk-primary-subtle-text: #c7d2fe;
|
|
296
|
+
--mk-success: #22c55e;
|
|
297
|
+
--mk-success-hover: #4ade80;
|
|
298
|
+
--mk-success-contrast: #052e13;
|
|
299
|
+
--mk-success-subtle: #10261a;
|
|
300
|
+
--mk-success-subtle-text: #6ee7a0;
|
|
301
|
+
--mk-warning: #f59e0b;
|
|
302
|
+
--mk-warning-hover: #fbbf24;
|
|
303
|
+
--mk-warning-contrast: #2a1a02;
|
|
304
|
+
--mk-warning-subtle: #2a2010;
|
|
305
|
+
--mk-warning-subtle-text: #fcd34d;
|
|
306
|
+
--mk-danger: #db3636;
|
|
307
|
+
--mk-danger-hover: #f56b6b;
|
|
308
|
+
--mk-danger-contrast: #ffffff;
|
|
309
|
+
--mk-danger-text: #f56b6b;
|
|
310
|
+
--mk-danger-subtle: #2c1416;
|
|
311
|
+
--mk-danger-subtle-text: #fca5a5;
|
|
312
|
+
--mk-info: #38bdf8;
|
|
313
|
+
--mk-info-hover: #5cccf9;
|
|
314
|
+
--mk-info-contrast: #04222e;
|
|
315
|
+
--mk-info-subtle: #0c2733;
|
|
316
|
+
--mk-info-subtle-text: #a5e4fb;
|
|
317
|
+
--mk-neutral-subtle: #232b34;
|
|
318
|
+
--mk-neutral-subtle-hover: #2c3540;
|
|
319
|
+
--mk-neutral-subtle-text: #c4ccd6;
|
|
320
|
+
--mk-focus-ring: #818cf8;
|
|
321
|
+
--mk-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.4);
|
|
322
|
+
--mk-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.3);
|
|
323
|
+
--mk-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.55), 0 2px 4px rgba(0, 0, 0, 0.35);
|
|
324
|
+
--mk-shadow-lg: 0 12px 28px rgba(0, 0, 0, 0.6), 0 4px 8px rgba(0, 0, 0, 0.4);
|
|
325
|
+
--mk-shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.7), 0 8px 16px rgba(0, 0, 0, 0.45);
|
|
326
|
+
--mk-skeleton-base: #232b34;
|
|
327
|
+
--mk-skeleton-shine: #2f3945;
|
|
328
|
+
--mk-scrollbar-thumb: #3a444f;
|
|
329
|
+
--mk-scrollbar-thumb-hover: #4b545f;
|
|
330
|
+
--mk-code-bg: #1e252e;
|
|
331
|
+
--mk-chart-1: #6366f1;
|
|
332
|
+
--mk-chart-2: #16a34a;
|
|
333
|
+
--mk-chart-3: #d97706;
|
|
334
|
+
--mk-chart-4: #db2777;
|
|
335
|
+
--mk-chart-5: #3b82f6;
|
|
336
|
+
--mk-chart-6: #0d9488;
|
|
337
|
+
--mk-chart-7: #8b5cf6;
|
|
338
|
+
--mk-chart-8: #ef4444;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
/* -------------------------------------------------------------------------
|
|
342
|
+
* 4. Base / reset — opt-in via the `mk-scope` class or applied globally.
|
|
343
|
+
* Kept minimal and non-destructive.
|
|
344
|
+
* ---------------------------------------------------------------------- */
|
|
345
|
+
.mk-app,
|
|
346
|
+
body.mk-app {
|
|
347
|
+
margin: 0;
|
|
348
|
+
background: var(--mk-bg);
|
|
349
|
+
color: var(--mk-text);
|
|
350
|
+
font-family: var(--mk-font-sans);
|
|
351
|
+
font-size: var(--mk-font-size-md);
|
|
352
|
+
line-height: var(--mk-line-height-normal);
|
|
353
|
+
-webkit-font-smoothing: antialiased;
|
|
354
|
+
-moz-osx-font-smoothing: grayscale;
|
|
355
|
+
text-rendering: optimizeLegibility;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/* Shared box-sizing for all mk components */
|
|
359
|
+
[class^=mk-],
|
|
360
|
+
[class*=" mk-"] {
|
|
361
|
+
box-sizing: border-box;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/* Accessible focus-visible ring, usable by any interactive element */
|
|
365
|
+
.mk-focus-ring:focus-visible,
|
|
366
|
+
.mk-focusable:focus-visible {
|
|
367
|
+
outline: var(--mk-focus-ring-width) solid var(--mk-focus-ring);
|
|
368
|
+
outline-offset: var(--mk-focus-ring-offset);
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/* Screen-reader-only utility */
|
|
372
|
+
.mk-visually-hidden {
|
|
373
|
+
position: absolute !important;
|
|
374
|
+
width: 1px;
|
|
375
|
+
height: 1px;
|
|
376
|
+
padding: 0;
|
|
377
|
+
margin: -1px;
|
|
378
|
+
overflow: hidden;
|
|
379
|
+
clip: rect(0, 0, 0, 0);
|
|
380
|
+
white-space: nowrap;
|
|
381
|
+
border: 0;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/* mk-drag-handle — the grip a pointer drag must start on. MkDragHandle is a
|
|
385
|
+
* DIRECTIVE (so it composes onto any element, including other components'
|
|
386
|
+
* hosts like mk-icon), and directives cannot carry styles — hence the global
|
|
387
|
+
* class, same precedent as the overlay chrome below. */
|
|
388
|
+
.mk-drag-handle {
|
|
389
|
+
display: inline-flex;
|
|
390
|
+
align-items: center;
|
|
391
|
+
justify-content: center;
|
|
392
|
+
cursor: grab;
|
|
393
|
+
/* Stop the browser from treating a press-drag as a scroll/gesture. */
|
|
394
|
+
touch-action: none;
|
|
395
|
+
color: var(--mk-text-subtle);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
.mk-drag-handle:hover {
|
|
399
|
+
color: var(--mk-text-muted);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
.mk-drag-handle:active {
|
|
403
|
+
cursor: grabbing;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/* Themed scrollbars (progressive enhancement) */
|
|
407
|
+
.mk-app * {
|
|
408
|
+
scrollbar-color: var(--mk-scrollbar-thumb) transparent;
|
|
409
|
+
scrollbar-width: thin;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
.mk-app *::-webkit-scrollbar {
|
|
413
|
+
width: 10px;
|
|
414
|
+
height: 10px;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
.mk-app *::-webkit-scrollbar-thumb {
|
|
418
|
+
background: var(--mk-scrollbar-thumb);
|
|
419
|
+
border-radius: var(--mk-radius-pill);
|
|
420
|
+
border: 2px solid transparent;
|
|
421
|
+
background-clip: content-box;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
.mk-app *::-webkit-scrollbar-thumb:hover {
|
|
425
|
+
background: var(--mk-scrollbar-thumb-hover);
|
|
426
|
+
background-clip: content-box;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/* Body-level overlay chrome.
|
|
430
|
+
*
|
|
431
|
+
* These MUST live in the global sheet rather than a component stylesheet.
|
|
432
|
+
* MkOverlayService renders an arbitrary component into `.mk-overlay-panel`, so
|
|
433
|
+
* chrome defined in dialog.scss (which is MkDialog's own stylesheet) only
|
|
434
|
+
* existed when MkDialog itself happened to be rendered. A component opened with
|
|
435
|
+
* `MkDialogService.open(MyComponent)` therefore got no surface at all — no
|
|
436
|
+
* background, no radius, no overflow containment — and its content spilled onto
|
|
437
|
+
* the scrim. */
|
|
438
|
+
/* The panel receives programmatic focus (`autoFocus: false` hands the focus
|
|
439
|
+
* trap the panel itself, tabindex="-1") purely for Tab containment — the UA
|
|
440
|
+
* focus ring there renders as a stray blue outline around the whole sheet or
|
|
441
|
+
* dialog. Controls inside keep their own rings. */
|
|
442
|
+
.mk-overlay-panel:focus,
|
|
443
|
+
.mk-overlay-panel:focus-visible {
|
|
444
|
+
outline: none;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
.mk-dialog-panel {
|
|
448
|
+
display: flex;
|
|
449
|
+
flex-direction: column;
|
|
450
|
+
width: min(92vw, 32rem);
|
|
451
|
+
/* vh fallback first; dvh tracks iOS Safari's dynamic toolbar. */
|
|
452
|
+
max-height: min(90vh, 44rem);
|
|
453
|
+
max-height: min(90dvh, 44rem);
|
|
454
|
+
overflow: hidden;
|
|
455
|
+
background-color: var(--mk-surface);
|
|
456
|
+
color: var(--mk-text);
|
|
457
|
+
border: var(--mk-border-width) solid var(--mk-border-subtle);
|
|
458
|
+
border-radius: var(--mk-radius-lg);
|
|
459
|
+
box-shadow: var(--mk-shadow-xl);
|
|
460
|
+
animation: mk-overlay-pop var(--mk-duration-normal) var(--mk-ease-emphasized);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/* Width presets (MkDialogConfig.size). Always `min(target, 92vw)` so a dialog
|
|
464
|
+
* shrinks to fit a phone and grows to its target on a desktop. */
|
|
465
|
+
.mk-dialog-panel--sm {
|
|
466
|
+
width: min(92vw, 32rem);
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
.mk-dialog-panel--md {
|
|
470
|
+
width: min(92vw, 45rem);
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
.mk-dialog-panel--lg {
|
|
474
|
+
width: min(92vw, 56rem);
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
.mk-dialog-panel--xl {
|
|
478
|
+
width: min(92vw, 75rem);
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
/* A bare component (no mk-dialog wrapper) still needs its own padding and a
|
|
482
|
+
* scroll region, otherwise long content is clipped by `overflow: hidden`. */
|
|
483
|
+
.mk-dialog-panel > :not(.mk-dialog) {
|
|
484
|
+
min-height: 0;
|
|
485
|
+
overflow: auto;
|
|
486
|
+
/* Don't let dialog scroll chain into (rubber-band) the page behind. */
|
|
487
|
+
overscroll-behavior: contain;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
.mk-dialog-panel:not(:has(.mk-dialog)) {
|
|
491
|
+
padding: var(--mk-space-5);
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
@media (prefers-reduced-motion: reduce) {
|
|
495
|
+
.mk-dialog-panel {
|
|
496
|
+
animation: none;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
/* Bottom-sheet panel chrome. Lives here rather than in bottom-sheet.scss so a
|
|
500
|
+
* BARE component opened through MkBottomSheetService gets a real panel — that
|
|
501
|
+
* component stylesheet only loads when the `mk-bottom-sheet` layout component
|
|
502
|
+
* is actually rendered, which apps with a bespoke sheet body never do. Mirrors
|
|
503
|
+
* how `.mk-dialog-panel` is handled above. */
|
|
504
|
+
.mk-bottom-sheet-panel {
|
|
505
|
+
align-self: flex-end;
|
|
506
|
+
/* `width` (not max-width) so the panel's inline max-width:100% can't win. */
|
|
507
|
+
width: min(100%, 42rem);
|
|
508
|
+
/* vh fallback first; dvh tracks iOS Safari's dynamic toolbar. */
|
|
509
|
+
max-height: 90vh;
|
|
510
|
+
max-height: 90dvh;
|
|
511
|
+
display: flex;
|
|
512
|
+
flex-direction: column;
|
|
513
|
+
overflow: hidden;
|
|
514
|
+
/* Keep sheet content clear of the iOS home indicator. Applied on the panel
|
|
515
|
+
(not the sheet footer) so bare components and footer-less sheets are
|
|
516
|
+
covered too; env() falls back to 0px elsewhere. */
|
|
517
|
+
padding-bottom: env(safe-area-inset-bottom, 0px);
|
|
518
|
+
background-color: var(--mk-surface);
|
|
519
|
+
color: var(--mk-text);
|
|
520
|
+
border: var(--mk-border-width) solid var(--mk-border-subtle);
|
|
521
|
+
border-bottom: none;
|
|
522
|
+
border-top-left-radius: var(--mk-radius-xl);
|
|
523
|
+
border-top-right-radius: var(--mk-radius-xl);
|
|
524
|
+
box-shadow: var(--mk-shadow-xl);
|
|
525
|
+
animation: mk-bottom-sheet-in var(--mk-duration-normal) var(--mk-ease-emphasized);
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
/* As with dialogs, a bare component still needs a scroll region and padding. */
|
|
529
|
+
.mk-bottom-sheet-panel > :not(.mk-bottom-sheet) {
|
|
530
|
+
min-height: 0;
|
|
531
|
+
overflow: auto;
|
|
532
|
+
/* Don't let sheet scroll chain into (rubber-band) the page behind. */
|
|
533
|
+
overscroll-behavior: contain;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
.mk-bottom-sheet-panel:not(:has(.mk-bottom-sheet)) {
|
|
537
|
+
padding: var(--mk-space-5);
|
|
538
|
+
/* The shorthand above would clobber the panel's safe-area padding-bottom;
|
|
539
|
+
restate it on top of the bare-component padding. */
|
|
540
|
+
padding-bottom: calc(var(--mk-space-5) + env(safe-area-inset-bottom, 0px));
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
@keyframes mk-bottom-sheet-in {
|
|
544
|
+
from {
|
|
545
|
+
transform: translateY(100%);
|
|
546
|
+
}
|
|
547
|
+
to {
|
|
548
|
+
transform: translateY(0);
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
@media (prefers-reduced-motion: reduce) {
|
|
552
|
+
.mk-bottom-sheet-panel {
|
|
553
|
+
animation: none;
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
/* Body-level overlay animations (dialog / menu / toast live outside components) */
|
|
557
|
+
@keyframes mk-overlay-fade {
|
|
558
|
+
from {
|
|
559
|
+
opacity: 0;
|
|
560
|
+
}
|
|
561
|
+
to {
|
|
562
|
+
opacity: 1;
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
@keyframes mk-overlay-pop {
|
|
566
|
+
from {
|
|
567
|
+
opacity: 0;
|
|
568
|
+
transform: translateY(8px) scale(0.98);
|
|
569
|
+
}
|
|
570
|
+
to {
|
|
571
|
+
opacity: 1;
|
|
572
|
+
transform: translateY(0) scale(1);
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
@keyframes mk-toast-in {
|
|
576
|
+
from {
|
|
577
|
+
opacity: 0;
|
|
578
|
+
transform: translateY(12px);
|
|
579
|
+
}
|
|
580
|
+
to {
|
|
581
|
+
opacity: 1;
|
|
582
|
+
transform: translateY(0);
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
/* Respect reduced-motion globally for library animations */
|
|
586
|
+
@media (prefers-reduced-motion: reduce) {
|
|
587
|
+
:root {
|
|
588
|
+
--mk-duration-instant: 0ms;
|
|
589
|
+
--mk-duration-fast: 0ms;
|
|
590
|
+
--mk-duration-normal: 0ms;
|
|
591
|
+
--mk-duration-slow: 0ms;
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
/* ---------------------------------------------------------------------------
|
|
595
|
+
* Density — `data-mk-density` retunes control heights and the two spacing
|
|
596
|
+
* steps most controls use for padding. Components need no changes: everything
|
|
597
|
+
* reads these tokens.
|
|
598
|
+
*
|
|
599
|
+
* Set it on <html> for a global mode (MkThemeService.setDensity), or on ANY
|
|
600
|
+
* element to rescale just that subtree — these are plain custom properties, so
|
|
601
|
+
* they inherit. That is what makes a touch-sized dialog inside an otherwise
|
|
602
|
+
* mouse-sized admin possible.
|
|
603
|
+
*
|
|
604
|
+
* `compact` tightens for dense data screens. `touch` goes the other way, for
|
|
605
|
+
* tablets and kiosks: the default 38px control is comfortable under a cursor
|
|
606
|
+
* and too small for a finger. 48px is the WCAG 2.5.5 / Material target, and
|
|
607
|
+
* the spacing steps grow with it so controls do not end up shoulder to
|
|
608
|
+
* shoulder — adjacent targets are as much of a mis-tap problem as small ones.
|
|
609
|
+
* ------------------------------------------------------------------------- */
|
|
610
|
+
[data-mk-density=compact] {
|
|
611
|
+
--mk-control-height-sm: 26px;
|
|
612
|
+
--mk-control-height-md: 32px;
|
|
613
|
+
--mk-control-height-lg: 38px;
|
|
614
|
+
--mk-space-3: 0.5rem; /* 8 — was 12 */
|
|
615
|
+
--mk-space-4: 0.75rem; /* 12 — was 16 */
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
[data-mk-density=touch] {
|
|
619
|
+
--mk-control-height-sm: 40px;
|
|
620
|
+
--mk-control-height-md: 48px;
|
|
621
|
+
--mk-control-height-lg: 56px;
|
|
622
|
+
--mk-space-3: 1rem; /* 16 — was 12 */
|
|
623
|
+
--mk-space-4: 1.25rem; /* 20 — was 16 */
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
/* ==========================================================================
|
|
627
|
+
Forced colors (Windows High Contrast / forced-colors: active)
|
|
628
|
+
--------------------------------------------------------------------------
|
|
629
|
+
In forced-colors mode the browser overrides author colors with the system
|
|
630
|
+
palette, which erases background-only state indicators (selection, checked
|
|
631
|
+
toggles, slider fills, ink bars). The rules below re-express those states
|
|
632
|
+
with system colors (`Highlight` / `HighlightText`, etc.) — opting out of
|
|
633
|
+
forcing only where a background IS the state — and add borders where a
|
|
634
|
+
surface would otherwise vanish. Everything else (text, borders, focus
|
|
635
|
+
outlines) is left to the system palette on purpose.
|
|
636
|
+
========================================================================== */
|
|
637
|
+
@media (forced-colors: active) {
|
|
638
|
+
/* --- Selection & active states: Highlight on HighlightText -------------- */
|
|
639
|
+
.mk-select__option--selected,
|
|
640
|
+
.mk-cmdk__option--active,
|
|
641
|
+
.mk-pagination__btn--active,
|
|
642
|
+
.mk-tabs__tab--active,
|
|
643
|
+
.mk-chip--selected,
|
|
644
|
+
.mk-button-toggle__btn[aria-pressed=true],
|
|
645
|
+
.mk-nav-item--active > .mk-nav-item__link,
|
|
646
|
+
.mk-calendar__day--selected,
|
|
647
|
+
.mk-calendar__day--range-start,
|
|
648
|
+
.mk-calendar__day--range-end,
|
|
649
|
+
.mk-tree__item--selected,
|
|
650
|
+
.mk-table__row--selected .mk-table__td {
|
|
651
|
+
forced-color-adjust: none;
|
|
652
|
+
background-color: Highlight !important;
|
|
653
|
+
color: HighlightText !important;
|
|
654
|
+
}
|
|
655
|
+
.mk-calendar__day--in-range {
|
|
656
|
+
forced-color-adjust: none;
|
|
657
|
+
background-color: Highlight !important;
|
|
658
|
+
color: HighlightText !important;
|
|
659
|
+
opacity: 0.7;
|
|
660
|
+
}
|
|
661
|
+
/* Hover/keyboard-active rows where selection is transient: use an outline
|
|
662
|
+
instead of a background so the underlying text keeps system colors. */
|
|
663
|
+
.mk-select__option--active,
|
|
664
|
+
mk-menu-item:hover,
|
|
665
|
+
mk-menu-item:focus,
|
|
666
|
+
.mk-tree__item:hover {
|
|
667
|
+
outline: 2px solid Highlight;
|
|
668
|
+
outline-offset: -2px;
|
|
669
|
+
}
|
|
670
|
+
/* --- Toggles: checked state must survive without author backgrounds ----- */
|
|
671
|
+
.mk-switch__track {
|
|
672
|
+
border: 1px solid ButtonText;
|
|
673
|
+
}
|
|
674
|
+
.mk-switch__thumb {
|
|
675
|
+
forced-color-adjust: none;
|
|
676
|
+
background-color: ButtonText;
|
|
677
|
+
}
|
|
678
|
+
.mk-switch--checked .mk-switch__track {
|
|
679
|
+
forced-color-adjust: none;
|
|
680
|
+
background-color: Highlight !important;
|
|
681
|
+
border-color: Highlight;
|
|
682
|
+
}
|
|
683
|
+
.mk-switch--checked .mk-switch__thumb {
|
|
684
|
+
background-color: HighlightText;
|
|
685
|
+
}
|
|
686
|
+
.mk-checkbox--checked .mk-checkbox__box,
|
|
687
|
+
.mk-checkbox--indeterminate .mk-checkbox__box {
|
|
688
|
+
forced-color-adjust: none;
|
|
689
|
+
background-color: Highlight !important;
|
|
690
|
+
border-color: Highlight !important;
|
|
691
|
+
}
|
|
692
|
+
.mk-checkbox--checked .mk-checkbox__check {
|
|
693
|
+
border-color: HighlightText !important;
|
|
694
|
+
}
|
|
695
|
+
.mk-checkbox--indeterminate .mk-checkbox__dash {
|
|
696
|
+
border-color: HighlightText !important;
|
|
697
|
+
}
|
|
698
|
+
.mk-radio--checked .mk-radio__control {
|
|
699
|
+
forced-color-adjust: none;
|
|
700
|
+
border-color: Highlight !important;
|
|
701
|
+
background-color: Canvas;
|
|
702
|
+
}
|
|
703
|
+
.mk-radio--checked .mk-radio__dot {
|
|
704
|
+
forced-color-adjust: none;
|
|
705
|
+
background-color: Highlight !important;
|
|
706
|
+
}
|
|
707
|
+
/* --- Value fills: sliders, progress, loading, tabs ink bar --------------- */
|
|
708
|
+
.mk-slider__fill,
|
|
709
|
+
.mk-range-slider__fill,
|
|
710
|
+
.mk-progress-bar__fill,
|
|
711
|
+
.mk-loading-bar__fill,
|
|
712
|
+
.mk-tabs__indicator {
|
|
713
|
+
forced-color-adjust: none;
|
|
714
|
+
background-color: Highlight !important;
|
|
715
|
+
}
|
|
716
|
+
.mk-slider__track,
|
|
717
|
+
.mk-range-slider__track,
|
|
718
|
+
.mk-progress-bar__track {
|
|
719
|
+
border: 1px solid ButtonText;
|
|
720
|
+
}
|
|
721
|
+
.mk-slider__thumb,
|
|
722
|
+
.mk-range-slider__thumb {
|
|
723
|
+
forced-color-adjust: none;
|
|
724
|
+
background-color: ButtonText;
|
|
725
|
+
border: 1px solid Canvas;
|
|
726
|
+
}
|
|
727
|
+
/* --- Surfaces that rely on shadow/background to read as raised ---------- */
|
|
728
|
+
.mk-menu__panel,
|
|
729
|
+
.mk-cmdk__panel,
|
|
730
|
+
.mk-select__list,
|
|
731
|
+
.mk-autocomplete__list,
|
|
732
|
+
.mk-phone-input__panel {
|
|
733
|
+
border: 1px solid CanvasText;
|
|
734
|
+
}
|
|
735
|
+
/* --- Phone input country list (same pattern as select) ------------------- */
|
|
736
|
+
.mk-phone-input__option--selected {
|
|
737
|
+
forced-color-adjust: none;
|
|
738
|
+
background-color: Highlight !important;
|
|
739
|
+
color: HighlightText !important;
|
|
740
|
+
}
|
|
741
|
+
.mk-phone-input__option--active {
|
|
742
|
+
outline: 2px solid Highlight;
|
|
743
|
+
outline-offset: -2px;
|
|
744
|
+
}
|
|
745
|
+
/* --- Card brand badge / currency affix: keep their boundary -------------- */
|
|
746
|
+
.mk-card-number-input__brand,
|
|
747
|
+
.mk-currency-input__symbol {
|
|
748
|
+
border: 1px solid ButtonText;
|
|
749
|
+
}
|
|
750
|
+
}
|