@bookklik/senangstart-css 0.1.3 → 0.1.4
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/dist/senangstart-css.js +38 -8
- package/dist/senangstart-css.min.js +24 -3
- package/docs/.vitepress/cache/deps/_metadata.json +7 -28
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +9432 -284
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +4 -4
- package/docs/.vitepress/config.js +183 -91
- package/docs/.vitepress/dist/404.html +5 -5
- package/docs/.vitepress/dist/assets/{app.CwVZm472.js → app.DBXoyO4w.js} +1 -1
- package/docs/.vitepress/dist/assets/chunks/framework.I305HrzY.js +19 -0
- package/docs/.vitepress/dist/assets/chunks/theme.CaXH1t3X.js +1 -0
- package/docs/.vitepress/dist/assets/{examples_cards.md.D4i0phvj.js → examples_cards.md.BCzaqSD6.js} +1 -1
- package/docs/.vitepress/dist/assets/{examples_cards.md.D4i0phvj.lean.js → examples_cards.md.BCzaqSD6.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{examples_forms.md.BnsjqHST.js → examples_forms.md.DOjr9LrG.js} +1 -1
- package/docs/.vitepress/dist/assets/{examples_forms.md.BnsjqHST.lean.js → examples_forms.md.DOjr9LrG.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{examples_hero.md.CCcb2x8Y.js → examples_hero.md.CAorji-Y.js} +1 -1
- package/docs/.vitepress/dist/assets/{examples_hero.md.CCcb2x8Y.lean.js → examples_hero.md.CAorji-Y.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{examples_index.md.Dj7lqhZt.js → examples_index.md.BjUNsTob.js} +1 -1
- package/docs/.vitepress/dist/assets/{examples_index.md.Dj7lqhZt.lean.js → examples_index.md.BjUNsTob.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{examples_navigation.md.CppyHbnP.js → examples_navigation.md.DvL-Yv_5.js} +1 -1
- package/docs/.vitepress/dist/assets/{examples_navigation.md.CppyHbnP.lean.js → examples_navigation.md.DvL-Yv_5.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_cdn.md.BzsOep2E.js → guide_cdn.md.Bbb7-icp.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_cdn.md.BzsOep2E.lean.js → guide_cdn.md.Bbb7-icp.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_cli.md.zXEKk-bu.js → guide_cli.md.yLsOZ7NL.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_cli.md.zXEKk-bu.lean.js → guide_cli.md.yLsOZ7NL.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_configuration.md.D2JZzhKm.js → guide_configuration.md.DN4FfKw4.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_configuration.md.D2JZzhKm.lean.js → guide_configuration.md.DN4FfKw4.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/guide_dark-mode.md.D6UJvQtM.js +69 -0
- package/docs/.vitepress/dist/assets/guide_dark-mode.md.D6UJvQtM.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{guide_getting-started.md.to1dkMR9.js → guide_getting-started.md.K5nA8wXY.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_getting-started.md.to1dkMR9.lean.js → guide_getting-started.md.K5nA8wXY.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_index.md.C1xk2lBl.js → guide_index.md.B0lRU150.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_index.md.C1xk2lBl.lean.js → guide_index.md.B0lRU150.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_natural-scale.md.D1oVRN5V.js → guide_natural-scale.md.vvauT7U1.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_natural-scale.md.D1oVRN5V.lean.js → guide_natural-scale.md.vvauT7U1.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_philosophy.md.DPyyMH8d.js → guide_philosophy.md.mOb9kp32.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_philosophy.md.DPyyMH8d.lean.js → guide_philosophy.md.mOb9kp32.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_responsive.md.wksOAMT5.js → guide_responsive.md.C7cF-4cR.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_responsive.md.wksOAMT5.lean.js → guide_responsive.md.C7cF-4cR.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_states.md.DRjYOZDJ.js → guide_states.md.CwtGEGHB.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_states.md.DRjYOZDJ.lean.js → guide_states.md.CwtGEGHB.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_tri-attribute.md.CoFqfmPZ.js → guide_tri-attribute.md.CpjJLEMP.js} +1 -1
- package/docs/.vitepress/dist/assets/{guide_tri-attribute.md.CoFqfmPZ.lean.js → guide_tri-attribute.md.CpjJLEMP.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{index.md.CUZJzNzP.js → index.md.mYp6_S5X.js} +1 -1
- package/docs/.vitepress/dist/assets/{index.md.CUZJzNzP.lean.js → index.md.mYp6_S5X.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/ms_examples_cards.md.CaE5JNAs.js +84 -0
- package/docs/.vitepress/dist/assets/ms_examples_cards.md.CaE5JNAs.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_examples_forms.md.VvDzMzxF.js +169 -0
- package/docs/.vitepress/dist/assets/ms_examples_forms.md.VvDzMzxF.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_examples_hero.md.DC4c3kKW.js +118 -0
- package/docs/.vitepress/dist/assets/ms_examples_hero.md.DC4c3kKW.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_examples_index.md.C13ShcjA.js +52 -0
- package/docs/.vitepress/dist/assets/ms_examples_index.md.C13ShcjA.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_examples_navigation.md.BPtVjKbk.js +106 -0
- package/docs/.vitepress/dist/assets/ms_examples_navigation.md.BPtVjKbk.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_guide_cdn.md.tZFpEjTS.js +30 -0
- package/docs/.vitepress/dist/assets/ms_guide_cdn.md.tZFpEjTS.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_guide_cli.md.DBjxv3-o.js +44 -0
- package/docs/.vitepress/dist/assets/ms_guide_cli.md.DBjxv3-o.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_guide_configuration.md.CyYNqREm.js +79 -0
- package/docs/.vitepress/dist/assets/ms_guide_configuration.md.CyYNqREm.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_guide_dark-mode.md.DWDWvzzv.js +69 -0
- package/docs/.vitepress/dist/assets/ms_guide_dark-mode.md.DWDWvzzv.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_guide_getting-started.md.WoQwRhlY.js +47 -0
- package/docs/.vitepress/dist/assets/ms_guide_getting-started.md.WoQwRhlY.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_guide_index.md.pHpXZMmU.js +3 -0
- package/docs/.vitepress/dist/assets/ms_guide_index.md.pHpXZMmU.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_guide_natural-scale.md.BiUfU-TH.js +22 -0
- package/docs/.vitepress/dist/assets/ms_guide_natural-scale.md.BiUfU-TH.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_guide_philosophy.md.hf3SG2Ts.js +7 -0
- package/docs/.vitepress/dist/assets/ms_guide_philosophy.md.hf3SG2Ts.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_guide_responsive.md.C4yS3zzM.js +57 -0
- package/docs/.vitepress/dist/assets/ms_guide_responsive.md.C4yS3zzM.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_guide_states.md.DkDEjPdC.js +77 -0
- package/docs/.vitepress/dist/assets/ms_guide_states.md.DkDEjPdC.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_guide_tri-attribute.md.C3Es_V5J.js +45 -0
- package/docs/.vitepress/dist/assets/ms_guide_tri-attribute.md.C3Es_V5J.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_index.md.Bmo9il08.js +7 -0
- package/docs/.vitepress/dist/assets/ms_index.md.Bmo9il08.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_reference_breakpoints.md.DR7i_--b.js +48 -0
- package/docs/.vitepress/dist/assets/ms_reference_breakpoints.md.DR7i_--b.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_reference_colors.md.06ZYiMcJ.js +17 -0
- package/docs/.vitepress/dist/assets/ms_reference_colors.md.06ZYiMcJ.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_reference_layout.md.NGL6A5SR.js +13 -0
- package/docs/.vitepress/dist/assets/ms_reference_layout.md.NGL6A5SR.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_reference_space.md.BG5YQ-09.js +24 -0
- package/docs/.vitepress/dist/assets/ms_reference_space.md.BG5YQ-09.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_reference_spacing.md.XmXLLPOZ.js +32 -0
- package/docs/.vitepress/dist/assets/ms_reference_spacing.md.XmXLLPOZ.lean.js +1 -0
- package/docs/.vitepress/dist/assets/ms_reference_visual.md.BVOlkEqc.js +22 -0
- package/docs/.vitepress/dist/assets/ms_reference_visual.md.BVOlkEqc.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{reference_breakpoints.md.BEhuwXBS.js → reference_breakpoints.md.BRbG8Fzi.js} +1 -1
- package/docs/.vitepress/dist/assets/{reference_breakpoints.md.BEhuwXBS.lean.js → reference_breakpoints.md.BRbG8Fzi.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{reference_colors.md.o5ltImYJ.js → reference_colors.md.C7j7dSO1.js} +1 -1
- package/docs/.vitepress/dist/assets/{reference_colors.md.o5ltImYJ.lean.js → reference_colors.md.C7j7dSO1.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{reference_layout.md.DqSoofMZ.js → reference_layout.md.BWJ5NxSp.js} +1 -1
- package/docs/.vitepress/dist/assets/{reference_layout.md.DqSoofMZ.lean.js → reference_layout.md.BWJ5NxSp.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{reference_space.md.luOYAfQg.js → reference_space.md.DCsqfTWb.js} +1 -1
- package/docs/.vitepress/dist/assets/{reference_space.md.luOYAfQg.lean.js → reference_space.md.DCsqfTWb.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{reference_spacing.md.DdsDhDhS.js → reference_spacing.md.BInFD8gd.js} +1 -1
- package/docs/.vitepress/dist/assets/{reference_spacing.md.DdsDhDhS.lean.js → reference_spacing.md.BInFD8gd.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{reference_visual.md.DZFvxgPk.js → reference_visual.md.BRK7S9T1.js} +1 -1
- package/docs/.vitepress/dist/assets/{reference_visual.md.DZFvxgPk.lean.js → reference_visual.md.BRK7S9T1.lean.js} +1 -1
- package/docs/.vitepress/dist/assets/{style.BuMqNgkb.css → style.D82StYDI.css} +1 -1
- package/docs/.vitepress/dist/examples/cards.html +9 -9
- package/docs/.vitepress/dist/examples/forms.html +9 -9
- package/docs/.vitepress/dist/examples/hero.html +9 -9
- package/docs/.vitepress/dist/examples/index.html +9 -9
- package/docs/.vitepress/dist/examples/navigation.html +9 -9
- package/docs/.vitepress/dist/guide/cdn.html +10 -10
- package/docs/.vitepress/dist/guide/cli.html +9 -9
- package/docs/.vitepress/dist/guide/configuration.html +9 -9
- package/docs/.vitepress/dist/guide/dark-mode.html +93 -0
- package/docs/.vitepress/dist/guide/getting-started.html +9 -9
- package/docs/.vitepress/dist/guide/index.html +9 -9
- package/docs/.vitepress/dist/guide/natural-scale.html +9 -9
- package/docs/.vitepress/dist/guide/philosophy.html +9 -9
- package/docs/.vitepress/dist/guide/responsive.html +9 -9
- package/docs/.vitepress/dist/guide/states.html +10 -10
- package/docs/.vitepress/dist/guide/tri-attribute.html +9 -9
- package/docs/.vitepress/dist/hashmap.json +1 -1
- package/docs/.vitepress/dist/index.html +9 -9
- package/docs/.vitepress/dist/ms/examples/cards.html +108 -0
- package/docs/.vitepress/dist/ms/examples/forms.html +193 -0
- package/docs/.vitepress/dist/ms/examples/hero.html +142 -0
- package/docs/.vitepress/dist/ms/examples/index.html +76 -0
- package/docs/.vitepress/dist/ms/examples/navigation.html +130 -0
- package/docs/.vitepress/dist/ms/guide/cdn.html +54 -0
- package/docs/.vitepress/dist/ms/guide/cli.html +68 -0
- package/docs/.vitepress/dist/ms/guide/configuration.html +103 -0
- package/docs/.vitepress/dist/ms/guide/dark-mode.html +93 -0
- package/docs/.vitepress/dist/ms/guide/getting-started.html +71 -0
- package/docs/.vitepress/dist/ms/guide/index.html +27 -0
- package/docs/.vitepress/dist/ms/guide/natural-scale.html +46 -0
- package/docs/.vitepress/dist/ms/guide/philosophy.html +31 -0
- package/docs/.vitepress/dist/ms/guide/responsive.html +81 -0
- package/docs/.vitepress/dist/ms/guide/states.html +101 -0
- package/docs/.vitepress/dist/ms/guide/tri-attribute.html +69 -0
- package/docs/.vitepress/dist/ms/index.html +31 -0
- package/docs/.vitepress/dist/ms/reference/breakpoints.html +72 -0
- package/docs/.vitepress/dist/ms/reference/colors.html +41 -0
- package/docs/.vitepress/dist/ms/reference/layout.html +37 -0
- package/docs/.vitepress/dist/ms/reference/space.html +48 -0
- package/docs/.vitepress/dist/ms/reference/spacing.html +56 -0
- package/docs/.vitepress/dist/ms/reference/visual.html +46 -0
- package/docs/.vitepress/dist/reference/breakpoints.html +9 -9
- package/docs/.vitepress/dist/reference/colors.html +9 -9
- package/docs/.vitepress/dist/reference/layout.html +9 -9
- package/docs/.vitepress/dist/reference/space.html +9 -9
- package/docs/.vitepress/dist/reference/spacing.html +9 -9
- package/docs/.vitepress/dist/reference/visual.html +9 -9
- package/docs/guide/dark-mode.md +152 -0
- package/docs/ms/examples/cards.md +116 -0
- package/docs/ms/examples/forms.md +207 -0
- package/docs/ms/examples/hero.md +150 -0
- package/docs/ms/examples/index.md +87 -0
- package/docs/ms/examples/navigation.md +144 -0
- package/docs/ms/guide/cdn.md +110 -0
- package/docs/ms/guide/cli.md +174 -0
- package/docs/ms/guide/configuration.md +152 -0
- package/docs/ms/guide/dark-mode.md +152 -0
- package/docs/ms/guide/getting-started.md +130 -0
- package/docs/ms/guide/index.md +64 -0
- package/docs/ms/guide/natural-scale.md +123 -0
- package/docs/ms/guide/philosophy.md +103 -0
- package/docs/ms/guide/responsive.md +129 -0
- package/docs/ms/guide/states.md +162 -0
- package/docs/ms/guide/tri-attribute.md +187 -0
- package/docs/ms/index.md +64 -0
- package/docs/ms/reference/breakpoints.md +131 -0
- package/docs/ms/reference/colors.md +126 -0
- package/docs/ms/reference/layout.md +115 -0
- package/docs/ms/reference/space.md +121 -0
- package/docs/ms/reference/spacing.md +74 -0
- package/docs/ms/reference/visual.md +160 -0
- package/package.json +1 -1
- package/src/cdn/jit.js +38 -8
- package/src/compiler/generators/css.js +57 -5
- package/src/compiler/tokenizer.js +1 -1
- package/src/config/defaults.js +6 -0
- package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js +0 -9719
- package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js.map +0 -7
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +0 -1333
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +0 -7
- package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +0 -1665
- package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +0 -7
- package/docs/.vitepress/cache/deps/vitepress___minisearch.js +0 -1813
- package/docs/.vitepress/cache/deps/vitepress___minisearch.js.map +0 -7
- package/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.BTWwOmXN.js +0 -1
- package/docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.B-RMQ_ux.js +0 -9
- package/docs/.vitepress/dist/assets/chunks/framework.qISVh_QZ.js +0 -19
- package/docs/.vitepress/dist/assets/chunks/theme.B37_rtT6.js +0 -2
package/dist/senangstart-css.js
CHANGED
|
@@ -80,7 +80,11 @@
|
|
|
80
80
|
'high': '100',
|
|
81
81
|
'top': '9999'
|
|
82
82
|
}
|
|
83
|
-
}
|
|
83
|
+
},
|
|
84
|
+
// Dark mode configuration
|
|
85
|
+
// 'media' - Uses @media (prefers-color-scheme: dark)
|
|
86
|
+
// 'selector' - Uses .dark class on html/body
|
|
87
|
+
darkMode: 'media'
|
|
84
88
|
};
|
|
85
89
|
|
|
86
90
|
// ============================================
|
|
@@ -195,7 +199,7 @@
|
|
|
195
199
|
// ============================================
|
|
196
200
|
|
|
197
201
|
const breakpoints = ['mob', 'tab', 'lap', 'desk'];
|
|
198
|
-
const states = ['hover', 'focus', 'active', 'disabled'];
|
|
202
|
+
const states = ['hover', 'focus', 'active', 'disabled', 'dark'];
|
|
199
203
|
|
|
200
204
|
function parseToken(raw) {
|
|
201
205
|
const token = {
|
|
@@ -367,7 +371,8 @@
|
|
|
367
371
|
if (!cssDeclaration) return '';
|
|
368
372
|
|
|
369
373
|
let selector = `[${attrType}~="${raw}"]`;
|
|
370
|
-
|
|
374
|
+
// Add pseudo-class for states (but not for 'dark' - handled separately)
|
|
375
|
+
if (token.state && token.state !== 'dark') {
|
|
371
376
|
selector += `:${token.state}`;
|
|
372
377
|
}
|
|
373
378
|
|
|
@@ -409,6 +414,7 @@
|
|
|
409
414
|
let css = generateCSSVariables(config);
|
|
410
415
|
|
|
411
416
|
const baseRules = [];
|
|
417
|
+
const darkRules = [];
|
|
412
418
|
const mediaRules = {
|
|
413
419
|
mob: [],
|
|
414
420
|
tab: [],
|
|
@@ -420,12 +426,18 @@
|
|
|
420
426
|
for (const raw of values) {
|
|
421
427
|
const rule = generateRule(raw, attrType);
|
|
422
428
|
if (rule) {
|
|
429
|
+
// Check for dark: prefix
|
|
430
|
+
if (raw.match(/^(mob:|tab:|lap:|desk:)?dark:/)) {
|
|
431
|
+
darkRules.push(rule);
|
|
432
|
+
}
|
|
423
433
|
// Check for breakpoint prefix
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
434
|
+
else {
|
|
435
|
+
const bpMatch = raw.match(/^(mob|tab|lap|desk):/);
|
|
436
|
+
if (bpMatch) {
|
|
437
|
+
mediaRules[bpMatch[1]].push(rule);
|
|
438
|
+
} else {
|
|
439
|
+
baseRules.push(rule);
|
|
440
|
+
}
|
|
429
441
|
}
|
|
430
442
|
}
|
|
431
443
|
}
|
|
@@ -444,6 +456,24 @@
|
|
|
444
456
|
}
|
|
445
457
|
}
|
|
446
458
|
|
|
459
|
+
// Add dark mode rules
|
|
460
|
+
if (darkRules.length > 0) {
|
|
461
|
+
const darkMode = config.darkMode || 'media';
|
|
462
|
+
|
|
463
|
+
if (darkMode === 'media') {
|
|
464
|
+
css += `\n@media (prefers-color-scheme: dark) {\n`;
|
|
465
|
+
css += darkRules.map(r => ' ' + r).join('');
|
|
466
|
+
css += '}\n';
|
|
467
|
+
} else {
|
|
468
|
+
// Selector strategy
|
|
469
|
+
const darkSelector = Array.isArray(darkMode) ? darkMode[1] : '.dark';
|
|
470
|
+
css += `\n/* Dark Mode */\n`;
|
|
471
|
+
for (const rule of darkRules) {
|
|
472
|
+
css += rule.replace(/^(\[[^\]]+\])/, `${darkSelector} $1`);
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
|
|
447
477
|
return css;
|
|
448
478
|
}
|
|
449
479
|
|
|
@@ -63,7 +63,8 @@ zIndex: {
|
|
|
63
63
|
'high': '100',
|
|
64
64
|
'top': '9999'
|
|
65
65
|
}
|
|
66
|
-
}
|
|
66
|
+
},
|
|
67
|
+
darkMode: 'media'
|
|
67
68
|
};
|
|
68
69
|
function loadInlineConfig() {
|
|
69
70
|
const configEl = document.querySelector('script[type="senangstart/config"]');
|
|
@@ -138,7 +139,7 @@ const layoutKeywords = {
|
|
|
138
139
|
'sticky': 'position: sticky;'
|
|
139
140
|
};
|
|
140
141
|
const breakpoints = ['mob', 'tab', 'lap', 'desk'];
|
|
141
|
-
const states = ['hover', 'focus', 'active', 'disabled'];
|
|
142
|
+
const states = ['hover', 'focus', 'active', 'disabled', 'dark'];
|
|
142
143
|
function parseToken(raw) {
|
|
143
144
|
const token = {
|
|
144
145
|
raw,
|
|
@@ -279,7 +280,7 @@ break;
|
|
|
279
280
|
}
|
|
280
281
|
if (!cssDeclaration) return '';
|
|
281
282
|
let selector = `[${attrType}~="${raw}"]`;
|
|
282
|
-
if (token.state) {
|
|
283
|
+
if (token.state && token.state !== 'dark') {
|
|
283
284
|
selector += `:${token.state}`;
|
|
284
285
|
}
|
|
285
286
|
return `${selector} { ${cssDeclaration} }\n`;
|
|
@@ -306,6 +307,7 @@ return tokens;
|
|
|
306
307
|
function compileCSS(tokens, config) {
|
|
307
308
|
let css = generateCSSVariables(config);
|
|
308
309
|
const baseRules = [];
|
|
310
|
+
const darkRules = [];
|
|
309
311
|
const mediaRules = {
|
|
310
312
|
mob: [],
|
|
311
313
|
tab: [],
|
|
@@ -316,6 +318,10 @@ for (const [attrType, values] of Object.entries(tokens)) {
|
|
|
316
318
|
for (const raw of values) {
|
|
317
319
|
const rule = generateRule(raw, attrType);
|
|
318
320
|
if (rule) {
|
|
321
|
+
if (raw.match(/^(mob:|tab:|lap:|desk:)?dark:/)) {
|
|
322
|
+
darkRules.push(rule);
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
319
325
|
const bpMatch = raw.match(/^(mob|tab|lap|desk):/);
|
|
320
326
|
if (bpMatch) {
|
|
321
327
|
mediaRules[bpMatch[1]].push(rule);
|
|
@@ -325,6 +331,7 @@ baseRules.push(rule);
|
|
|
325
331
|
}
|
|
326
332
|
}
|
|
327
333
|
}
|
|
334
|
+
}
|
|
328
335
|
css += baseRules.join('');
|
|
329
336
|
const { screens } = config.theme;
|
|
330
337
|
for (const [bp, rules] of Object.entries(mediaRules)) {
|
|
@@ -334,6 +341,20 @@ css += rules.map(r => ' ' + r).join('');
|
|
|
334
341
|
css += '}\n';
|
|
335
342
|
}
|
|
336
343
|
}
|
|
344
|
+
if (darkRules.length > 0) {
|
|
345
|
+
const darkMode = config.darkMode || 'media';
|
|
346
|
+
if (darkMode === 'media') {
|
|
347
|
+
css += `\n@media (prefers-color-scheme: dark) {\n`;
|
|
348
|
+
css += darkRules.map(r => ' ' + r).join('');
|
|
349
|
+
css += '}\n';
|
|
350
|
+
} else {
|
|
351
|
+
const darkSelector = Array.isArray(darkMode) ? darkMode[1] : '.dark';
|
|
352
|
+
css += `\n\n`;
|
|
353
|
+
for (const rule of darkRules) {
|
|
354
|
+
css += rule.replace(/^(\[[^\]]+\])/, `${darkSelector} $1`);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
337
358
|
return css;
|
|
338
359
|
}
|
|
339
360
|
function injectStyles(css) {
|
|
@@ -1,50 +1,29 @@
|
|
|
1
1
|
{
|
|
2
|
-
"hash": "
|
|
3
|
-
"configHash": "
|
|
4
|
-
"lockfileHash": "
|
|
5
|
-
"browserHash": "
|
|
2
|
+
"hash": "d06eb655",
|
|
3
|
+
"configHash": "d3307f65",
|
|
4
|
+
"lockfileHash": "50ffd037",
|
|
5
|
+
"browserHash": "086d8429",
|
|
6
6
|
"optimized": {
|
|
7
7
|
"vue": {
|
|
8
8
|
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
|
9
9
|
"file": "vue.js",
|
|
10
|
-
"fileHash": "
|
|
10
|
+
"fileHash": "a432d3f8",
|
|
11
11
|
"needsInterop": false
|
|
12
12
|
},
|
|
13
13
|
"vitepress > @vue/devtools-api": {
|
|
14
14
|
"src": "../../../../node_modules/@vue/devtools-api/dist/index.js",
|
|
15
15
|
"file": "vitepress___@vue_devtools-api.js",
|
|
16
|
-
"fileHash": "
|
|
16
|
+
"fileHash": "af5a81ac",
|
|
17
17
|
"needsInterop": false
|
|
18
18
|
},
|
|
19
19
|
"vitepress > @vueuse/core": {
|
|
20
20
|
"src": "../../../../node_modules/@vueuse/core/index.mjs",
|
|
21
21
|
"file": "vitepress___@vueuse_core.js",
|
|
22
|
-
"fileHash": "
|
|
23
|
-
"needsInterop": false
|
|
24
|
-
},
|
|
25
|
-
"vitepress > @vueuse/integrations/useFocusTrap": {
|
|
26
|
-
"src": "../../../../node_modules/@vueuse/integrations/useFocusTrap.mjs",
|
|
27
|
-
"file": "vitepress___@vueuse_integrations_useFocusTrap.js",
|
|
28
|
-
"fileHash": "4a67da49",
|
|
29
|
-
"needsInterop": false
|
|
30
|
-
},
|
|
31
|
-
"vitepress > mark.js/src/vanilla.js": {
|
|
32
|
-
"src": "../../../../node_modules/mark.js/src/vanilla.js",
|
|
33
|
-
"file": "vitepress___mark__js_src_vanilla__js.js",
|
|
34
|
-
"fileHash": "ffe975a7",
|
|
35
|
-
"needsInterop": false
|
|
36
|
-
},
|
|
37
|
-
"vitepress > minisearch": {
|
|
38
|
-
"src": "../../../../node_modules/minisearch/dist/es/index.js",
|
|
39
|
-
"file": "vitepress___minisearch.js",
|
|
40
|
-
"fileHash": "da3112be",
|
|
22
|
+
"fileHash": "cfba6d4a",
|
|
41
23
|
"needsInterop": false
|
|
42
24
|
}
|
|
43
25
|
},
|
|
44
26
|
"chunks": {
|
|
45
|
-
"chunk-2CLQ7TTZ": {
|
|
46
|
-
"file": "chunk-2CLQ7TTZ.js"
|
|
47
|
-
},
|
|
48
27
|
"chunk-LE5NDSFD": {
|
|
49
28
|
"file": "chunk-LE5NDSFD.js"
|
|
50
29
|
}
|