@bookklik/senangstart-css 0.1.2 → 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/.github/workflows/deploy-docs.yml +1 -1
- package/LICENSE.md +21 -0
- package/README.md +17 -189
- package/dist/senangstart-css.js +40 -10
- 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.BTYj1wZj.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.CcyXbirn.js → examples_index.md.BjUNsTob.js} +2 -2
- package/docs/.vitepress/dist/assets/{examples_index.md.CcyXbirn.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.CANCjnm5.js → guide_cdn.md.Bbb7-icp.js} +3 -3
- package/docs/.vitepress/dist/assets/{guide_cdn.md.CANCjnm5.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.tO7bvmZd.js → guide_getting-started.md.K5nA8wXY.js} +4 -4
- package/docs/.vitepress/dist/assets/{guide_getting-started.md.tO7bvmZd.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.C7j7dSO1.js +17 -0
- package/docs/.vitepress/dist/assets/reference_colors.md.C7j7dSO1.lean.js +1 -0
- 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 +10 -10
- package/docs/.vitepress/dist/examples/navigation.html +9 -9
- package/docs/.vitepress/dist/guide/cdn.html +12 -12
- 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 +11 -11
- 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 +15 -27
- 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/examples/index.md +1 -1
- package/docs/guide/cdn.md +2 -2
- package/docs/guide/dark-mode.md +152 -0
- package/docs/guide/getting-started.md +2 -2
- 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/docs/reference/colors.md +52 -32
- package/package.json +1 -1
- package/src/cdn/jit.js +40 -10
- package/src/compiler/generators/css.js +57 -5
- package/src/compiler/tokenizer.js +1 -1
- package/src/config/defaults.js +297 -2
- 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.DmMP4oUp.js +0 -1
- package/docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.jxQ0k_uL.js +0 -9
- package/docs/.vitepress/dist/assets/chunks/framework.qISVh_QZ.js +0 -19
- package/docs/.vitepress/dist/assets/chunks/theme.B9Wtbwgj.js +0 -2
- package/docs/.vitepress/dist/assets/reference_colors.md.Do4abjs1.js +0 -29
- package/docs/.vitepress/dist/assets/reference_colors.md.Do4abjs1.lean.js +0 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Contoh
|
|
2
|
+
|
|
3
|
+
Contoh komponen sedia guna dibina dengan SenangStart CSS.
|
|
4
|
+
|
|
5
|
+
## Pautan Pantas
|
|
6
|
+
|
|
7
|
+
- [Kad](/ms/examples/cards) — Kad profil, kad harga, kad ciri
|
|
8
|
+
- [Navigasi](/ms/examples/navigation) — Navbar, sidebar, menu
|
|
9
|
+
- [Bahagian Hero](/ms/examples/hero) — Hero halaman pendaratan
|
|
10
|
+
- [Borang](/ms/examples/forms) — Input, butang, layout borang
|
|
11
|
+
|
|
12
|
+
## Bermula
|
|
13
|
+
|
|
14
|
+
Semua contoh menggunakan CDN SenangStart untuk penggunaan tanpa konfigurasi:
|
|
15
|
+
|
|
16
|
+
```html
|
|
17
|
+
<!DOCTYPE html>
|
|
18
|
+
<html>
|
|
19
|
+
<head>
|
|
20
|
+
<script src="https://unpkg.com/@bookklik/senangstart-css/dist/senangstart-css.min.js"></script>
|
|
21
|
+
</head>
|
|
22
|
+
<body>
|
|
23
|
+
<!-- Tampal mana-mana contoh di sini -->
|
|
24
|
+
</body>
|
|
25
|
+
</html>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Kad Ringkas
|
|
29
|
+
|
|
30
|
+
```html
|
|
31
|
+
<div
|
|
32
|
+
layout="flex col"
|
|
33
|
+
space="w:[320px] p:medium"
|
|
34
|
+
visual="bg:white rounded:big shadow:medium"
|
|
35
|
+
>
|
|
36
|
+
<h3 visual="font:bold text-size:big text:dark">Tajuk Kad</h3>
|
|
37
|
+
<p space="m-t:small" visual="text:grey">
|
|
38
|
+
Penerangan kad di sini.
|
|
39
|
+
</p>
|
|
40
|
+
<button
|
|
41
|
+
space="m-t:medium p-y:small"
|
|
42
|
+
visual="bg:primary text:white rounded:medium"
|
|
43
|
+
>
|
|
44
|
+
Tindakan
|
|
45
|
+
</button>
|
|
46
|
+
</div>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Navigasi Asas
|
|
50
|
+
|
|
51
|
+
```html
|
|
52
|
+
<nav
|
|
53
|
+
layout="flex between center"
|
|
54
|
+
space="p-x:big p-y:small"
|
|
55
|
+
visual="bg:white shadow:small"
|
|
56
|
+
>
|
|
57
|
+
<div visual="font:bold text-size:big text:primary">Logo</div>
|
|
58
|
+
<div layout="flex" space="g:medium">
|
|
59
|
+
<a visual="text:dark hover:text:primary">Laman Utama</a>
|
|
60
|
+
<a visual="text:grey hover:text:primary">Tentang</a>
|
|
61
|
+
<a visual="text:grey hover:text:primary">Hubungi</a>
|
|
62
|
+
</div>
|
|
63
|
+
</nav>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Bahagian Hero
|
|
67
|
+
|
|
68
|
+
```html
|
|
69
|
+
<section
|
|
70
|
+
layout="flex col center"
|
|
71
|
+
space="p:giant min-h:[80vh]"
|
|
72
|
+
visual="bg:dark text:white"
|
|
73
|
+
>
|
|
74
|
+
<h1 visual="text-size:vast font:bold text:center">
|
|
75
|
+
Selamat Datang
|
|
76
|
+
</h1>
|
|
77
|
+
<p space="m-t:medium max-w:[600px]" visual="text:light text:center text-size:big">
|
|
78
|
+
Bina antara muka cantik dengan bahasa semula jadi.
|
|
79
|
+
</p>
|
|
80
|
+
<button
|
|
81
|
+
space="m-t:big p-x:big p-y:small"
|
|
82
|
+
visual="bg:primary text:white rounded:medium hover:bg:[#2563EB]"
|
|
83
|
+
>
|
|
84
|
+
Bermula
|
|
85
|
+
</button>
|
|
86
|
+
</section>
|
|
87
|
+
```
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Contoh Navigasi
|
|
2
|
+
|
|
3
|
+
Corak navigasi dibina dengan SenangStart CSS.
|
|
4
|
+
|
|
5
|
+
## Navbar Ringkas
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<nav
|
|
9
|
+
layout="flex between center"
|
|
10
|
+
space="p-x:big p-y:small"
|
|
11
|
+
visual="bg:white shadow:small"
|
|
12
|
+
>
|
|
13
|
+
<div visual="font:bold text-size:big text:primary">Logo</div>
|
|
14
|
+
<div layout="flex" space="g:medium">
|
|
15
|
+
<a visual="text:dark hover:text:primary">Laman Utama</a>
|
|
16
|
+
<a visual="text:grey hover:text:primary">Tentang</a>
|
|
17
|
+
<a visual="text:grey hover:text:primary">Hubungi</a>
|
|
18
|
+
</div>
|
|
19
|
+
</nav>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Navigasi Fixed
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<nav
|
|
26
|
+
layout="flex between center fixed z:top"
|
|
27
|
+
space="w:[100%] p-x:big p-y:small"
|
|
28
|
+
visual="bg:white shadow:small"
|
|
29
|
+
>
|
|
30
|
+
<div visual="font:bold text-size:big text:primary">Logo</div>
|
|
31
|
+
<div layout="flex" space="g:medium">
|
|
32
|
+
<a visual="text:dark hover:text:primary font:medium">Laman Utama</a>
|
|
33
|
+
<a visual="text:grey hover:text:primary">Produk</a>
|
|
34
|
+
<a visual="text:grey hover:text:primary">Harga</a>
|
|
35
|
+
<a visual="text:grey hover:text:primary">Tentang</a>
|
|
36
|
+
</div>
|
|
37
|
+
<button
|
|
38
|
+
space="p-x:medium p-y:tiny"
|
|
39
|
+
visual="bg:primary text:white rounded:medium hover:bg:[#2563EB]"
|
|
40
|
+
>
|
|
41
|
+
Daftar
|
|
42
|
+
</button>
|
|
43
|
+
</nav>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Navigasi Responsif
|
|
47
|
+
|
|
48
|
+
```html
|
|
49
|
+
<!-- Butang menu mudah alih (tersembunyi pada tablet+) -->
|
|
50
|
+
<button layout="block tab:hidden" visual="text:dark">
|
|
51
|
+
☰ Menu
|
|
52
|
+
</button>
|
|
53
|
+
|
|
54
|
+
<!-- Navigasi desktop (tersembunyi pada mudah alih) -->
|
|
55
|
+
<nav
|
|
56
|
+
layout="hidden tab:flex between center"
|
|
57
|
+
space="p-x:big p-y:small"
|
|
58
|
+
visual="bg:white"
|
|
59
|
+
>
|
|
60
|
+
<div visual="font:bold text-size:big">Logo</div>
|
|
61
|
+
<div layout="flex" space="g:medium">
|
|
62
|
+
<a visual="text:dark hover:text:primary">Laman Utama</a>
|
|
63
|
+
<a visual="text:grey hover:text:primary">Tentang</a>
|
|
64
|
+
</div>
|
|
65
|
+
</nav>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Navigasi Sidebar
|
|
69
|
+
|
|
70
|
+
```html
|
|
71
|
+
<aside
|
|
72
|
+
layout="flex col"
|
|
73
|
+
space="w:[250px] h:[100vh] p:medium"
|
|
74
|
+
visual="bg:dark"
|
|
75
|
+
>
|
|
76
|
+
<div space="m-b:big" visual="font:bold text-size:big text:white">
|
|
77
|
+
Dashboard
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
<nav layout="flex col" space="g:tiny">
|
|
81
|
+
<a
|
|
82
|
+
space="p:small"
|
|
83
|
+
visual="text:white bg:[rgba(255,255,255,0.1)] rounded:small"
|
|
84
|
+
>
|
|
85
|
+
🏠 Laman Utama
|
|
86
|
+
</a>
|
|
87
|
+
<a
|
|
88
|
+
space="p:small"
|
|
89
|
+
visual="text:light hover:bg:[rgba(255,255,255,0.1)] rounded:small"
|
|
90
|
+
>
|
|
91
|
+
📊 Analitik
|
|
92
|
+
</a>
|
|
93
|
+
<a
|
|
94
|
+
space="p:small"
|
|
95
|
+
visual="text:light hover:bg:[rgba(255,255,255,0.1)] rounded:small"
|
|
96
|
+
>
|
|
97
|
+
👥 Pengguna
|
|
98
|
+
</a>
|
|
99
|
+
<a
|
|
100
|
+
space="p:small"
|
|
101
|
+
visual="text:light hover:bg:[rgba(255,255,255,0.1)] rounded:small"
|
|
102
|
+
>
|
|
103
|
+
⚙️ Tetapan
|
|
104
|
+
</a>
|
|
105
|
+
</nav>
|
|
106
|
+
</aside>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Breadcrumb
|
|
110
|
+
|
|
111
|
+
```html
|
|
112
|
+
<nav layout="flex" space="g:small p:small">
|
|
113
|
+
<a visual="text:primary hover:text:[#2563EB]">Laman Utama</a>
|
|
114
|
+
<span visual="text:grey">/</span>
|
|
115
|
+
<a visual="text:primary hover:text:[#2563EB]">Produk</a>
|
|
116
|
+
<span visual="text:grey">/</span>
|
|
117
|
+
<span visual="text:dark">Halaman Semasa</span>
|
|
118
|
+
</nav>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Navigasi Tab
|
|
122
|
+
|
|
123
|
+
```html
|
|
124
|
+
<div layout="flex" space="g:none" visual="border-b:light">
|
|
125
|
+
<button
|
|
126
|
+
space="p-x:medium p-y:small"
|
|
127
|
+
visual="text:primary border-b:[2px] border:primary"
|
|
128
|
+
>
|
|
129
|
+
Tab 1
|
|
130
|
+
</button>
|
|
131
|
+
<button
|
|
132
|
+
space="p-x:medium p-y:small"
|
|
133
|
+
visual="text:grey hover:text:dark"
|
|
134
|
+
>
|
|
135
|
+
Tab 2
|
|
136
|
+
</button>
|
|
137
|
+
<button
|
|
138
|
+
space="p-x:medium p-y:small"
|
|
139
|
+
visual="text:grey hover:text:dark"
|
|
140
|
+
>
|
|
141
|
+
Tab 3
|
|
142
|
+
</button>
|
|
143
|
+
</div>
|
|
144
|
+
```
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# CDN (Tanpa Bina)
|
|
2
|
+
|
|
3
|
+
Cara terpantas untuk guna SenangStart CSS — tiada langkah bina diperlukan.
|
|
4
|
+
|
|
5
|
+
## Mula Pantas
|
|
6
|
+
|
|
7
|
+
Tambah satu tag skrip ke HTML anda:
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<!DOCTYPE html>
|
|
11
|
+
<html>
|
|
12
|
+
<head>
|
|
13
|
+
<title>Aplikasi Saya</title>
|
|
14
|
+
<script src="https://unpkg.com/@bookklik/senangstart-css/dist/senangstart-css.min.js"></script>
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
<div
|
|
18
|
+
layout="flex col center"
|
|
19
|
+
space="p:big"
|
|
20
|
+
visual="bg:primary text:white rounded:big"
|
|
21
|
+
>
|
|
22
|
+
Hello SenangStart!
|
|
23
|
+
</div>
|
|
24
|
+
</body>
|
|
25
|
+
</html>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Itu sahaja! Tiada npm, tiada proses bina, tiada konfigurasi.
|
|
29
|
+
|
|
30
|
+
## Bagaimana Ia Berfungsi
|
|
31
|
+
|
|
32
|
+
CDN JIT (Just-In-Time) runtime:
|
|
33
|
+
|
|
34
|
+
1. **Imbas DOM** — Cari semua elemen dengan atribusi `layout`, `space`, dan `visual`
|
|
35
|
+
2. **Jana CSS** — Kompil style secara on-the-fly dalam pelayar
|
|
36
|
+
3. **Suntik Styles** — Cipta tag `<style>` dengan CSS terkompil
|
|
37
|
+
4. **Pantau Perubahan** — Guna MutationObserver untuk kandungan dinamik
|
|
38
|
+
|
|
39
|
+
## Konfigurasi Tersuai
|
|
40
|
+
|
|
41
|
+
Tindih ganti nilai tema lalai dengan config inline:
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<script type="senangstart/config">
|
|
45
|
+
{
|
|
46
|
+
"theme": {
|
|
47
|
+
"colors": {
|
|
48
|
+
"brand": "#8B5CF6",
|
|
49
|
+
"accent": "#EC4899"
|
|
50
|
+
},
|
|
51
|
+
"spacing": {
|
|
52
|
+
"huge": "256px"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
</script>
|
|
57
|
+
<script src="https://unpkg.com/@bookklik/senangstart-css/dist/senangstart-css.min.js"></script>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Sekarang anda boleh guna nilai tersuai anda:
|
|
61
|
+
|
|
62
|
+
```html
|
|
63
|
+
<div visual="bg:brand text:accent">Warna tersuai!</div>
|
|
64
|
+
<div space="p:huge">Padding huge!</div>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Pembangunan Tempatan
|
|
68
|
+
|
|
69
|
+
Untuk pembangunan tempatan tanpa CDN, guna fail JIT tempatan:
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
<script src="./path/to/senangstart/src/cdn/jit.js"></script>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Pertimbangan Prestasi
|
|
76
|
+
|
|
77
|
+
::: warning Bila Guna CLI
|
|
78
|
+
CDN JIT sesuai untuk:
|
|
79
|
+
- Prototaip dan eksperimen
|
|
80
|
+
- Mempelajari rangka kerja
|
|
81
|
+
- Projek kecil dan demo
|
|
82
|
+
- Pembangunan pantas
|
|
83
|
+
|
|
84
|
+
Untuk aplikasi produksi, pertimbangkan [CLI build](/ms/guide/cli) untuk:
|
|
85
|
+
- Prestasi lebih baik (CSS pra-kompil)
|
|
86
|
+
- Saiz fail lebih kecil
|
|
87
|
+
- Tiada beban kelola
|
|
88
|
+
:::
|
|
89
|
+
|
|
90
|
+
## Sokongan Pelayar
|
|
91
|
+
|
|
92
|
+
CDN JIT menggunakan ciri JavaScript moden:
|
|
93
|
+
- Sintaksis ES6+
|
|
94
|
+
- API MutationObserver
|
|
95
|
+
- CSS Custom Sari Diri
|
|
96
|
+
|
|
97
|
+
Disokong dalam semua pelayar moden (Chrome, Firefox, Safari, Edge).
|
|
98
|
+
|
|
99
|
+
## Debugging
|
|
100
|
+
|
|
101
|
+
Buka Developer Tools pelayar anda untuk lihat:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
[SenangStart CSS] JIT runtime initialized ✓
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Jika anda tidak nampak mesej ini, periksa bahawa:
|
|
108
|
+
1. Skrip memuatkan dengan betul
|
|
109
|
+
2. Tiada ralat JavaScript dalam konsol
|
|
110
|
+
3. Config JSON (jika digunakan) adalah sah
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Bina CLI
|
|
2
|
+
|
|
3
|
+
Guna CLI untuk bina sedia produksi dengan output teroptimum.
|
|
4
|
+
|
|
5
|
+
## Pemasangan
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Pasang secara global
|
|
9
|
+
npm install -g @bookklik/senangstart-css
|
|
10
|
+
|
|
11
|
+
# Atau guna npx (tanpa pasang)
|
|
12
|
+
npx @bookklik/senangstart-css init
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Arahan
|
|
16
|
+
|
|
17
|
+
### `senangstart init`
|
|
18
|
+
|
|
19
|
+
Cipta fail konfigurasi:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
senangstart init
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Ini mencipta `senangstart.config.js` dalam root projek anda dengan lalai yang baik.
|
|
26
|
+
|
|
27
|
+
### `senangstart build`
|
|
28
|
+
|
|
29
|
+
Kompil CSS dari fail sumber anda:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
senangstart build
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Pilihan:**
|
|
36
|
+
|
|
37
|
+
| Pilihan | Penerangan |
|
|
38
|
+
|---------|------------|
|
|
39
|
+
| `--minify` | Minify output CSS |
|
|
40
|
+
| `--config <path>` | Laluan ke fail config |
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Build produksi dengan minification
|
|
44
|
+
senangstart build --minify
|
|
45
|
+
|
|
46
|
+
# Guna config tersuai
|
|
47
|
+
senangstart build --config ./custom.config.js
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### `senangstart dev`
|
|
51
|
+
|
|
52
|
+
Mod watch untuk pembangunan:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
senangstart dev
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Ini memantau fail sumber anda dan membina semula secara automatik apabila ada perubahan.
|
|
59
|
+
|
|
60
|
+
## Fail Output
|
|
61
|
+
|
|
62
|
+
CLI menghasilkan tiga fail:
|
|
63
|
+
|
|
64
|
+
| Fail | Penerangan |
|
|
65
|
+
|------|------------|
|
|
66
|
+
| `public/senangstart.css` | Stylesheet terkompil |
|
|
67
|
+
| `.cursorrules` | Fail konteks AI untuk LLM |
|
|
68
|
+
| `types/senang.d.ts` | Definisi TypeScript |
|
|
69
|
+
|
|
70
|
+
## Persediaan Projek
|
|
71
|
+
|
|
72
|
+
### 1. Mulakan
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
cd projek-anda
|
|
76
|
+
npm init -y
|
|
77
|
+
npm i @bookklik/senangstart-css
|
|
78
|
+
npx senangstart init
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 2. Tambah HTML
|
|
82
|
+
|
|
83
|
+
```html
|
|
84
|
+
<!DOCTYPE html>
|
|
85
|
+
<html>
|
|
86
|
+
<head>
|
|
87
|
+
<link rel="stylesheet" href="./public/senangstart.css">
|
|
88
|
+
</head>
|
|
89
|
+
<body>
|
|
90
|
+
<div
|
|
91
|
+
layout="flex col center"
|
|
92
|
+
space="p:big"
|
|
93
|
+
visual="bg:primary text:white rounded:big"
|
|
94
|
+
>
|
|
95
|
+
Hello SenangStart!
|
|
96
|
+
</div>
|
|
97
|
+
</body>
|
|
98
|
+
</html>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 3. Bina
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
npx senangstart build
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 4. Pembangunan
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
npx senangstart dev
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Skrip Package.json
|
|
114
|
+
|
|
115
|
+
Tambah skrip ini ke `package.json` anda:
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"scripts": {
|
|
120
|
+
"build:css": "senangstart build --minify",
|
|
121
|
+
"dev:css": "senangstart dev"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Integrasi dengan Framework
|
|
127
|
+
|
|
128
|
+
### Vite / React / Vue
|
|
129
|
+
|
|
130
|
+
Tambah ke proses bina anda:
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"scripts": {
|
|
135
|
+
"dev": "concurrently \"vite\" \"senangstart dev\"",
|
|
136
|
+
"build": "senangstart build --minify && vite build"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Next.js
|
|
142
|
+
|
|
143
|
+
Import CSS yang dijana dalam `_app.js`:
|
|
144
|
+
|
|
145
|
+
```jsx
|
|
146
|
+
import '../public/senangstart.css'
|
|
147
|
+
|
|
148
|
+
function MyApp({ Component, pageProps }) {
|
|
149
|
+
return <Component {...pageProps} />
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export default MyApp
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Integrasi CI/CD
|
|
156
|
+
|
|
157
|
+
Tambah ke pipeline bina anda:
|
|
158
|
+
|
|
159
|
+
```yaml
|
|
160
|
+
# Contoh GitHub Actions
|
|
161
|
+
- name: Build CSS
|
|
162
|
+
run: npx senangstart build --minify
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Perbandingan CDN vs CLI
|
|
166
|
+
|
|
167
|
+
| Ciri | CDN JIT | CLI Build |
|
|
168
|
+
|------|---------|-----------|
|
|
169
|
+
| Persediaan | Tanpa config | Memerlukan npm |
|
|
170
|
+
| Langkah Bina | Tiada | Diperlukan |
|
|
171
|
+
| Prestasi | Overhead runtime | Pra-kompil |
|
|
172
|
+
| Saiz Fail | ~15KB JS | Hanya CSS yang digunakan |
|
|
173
|
+
| Kes Penggunaan | Prototaip | Produksi |
|
|
174
|
+
| Kandungan Dinamik | ✅ Automatik | Perlu rebuild |
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Konfigurasi
|
|
2
|
+
|
|
3
|
+
Sesuaikan SenangStart CSS dengan `senangstart.config.js`.
|
|
4
|
+
|
|
5
|
+
## Mencipta Fail Config
|
|
6
|
+
|
|
7
|
+
Jalankan arahan init untuk mencipta fail config:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
senangstart init
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Atau cipta secara manual:
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
// senangstart.config.js
|
|
17
|
+
export default {
|
|
18
|
+
// Fail untuk diimbas untuk atribusi SenangStart
|
|
19
|
+
content: [
|
|
20
|
+
'./**/*.html',
|
|
21
|
+
'./src/**/*.{html,jsx,tsx,vue,svelte}',
|
|
22
|
+
'./components/**/*.{html,jsx,tsx}'
|
|
23
|
+
],
|
|
24
|
+
|
|
25
|
+
// Konfigurasi output
|
|
26
|
+
output: {
|
|
27
|
+
css: './public/senangstart.css',
|
|
28
|
+
minify: true,
|
|
29
|
+
aiContext: './.cursorrules',
|
|
30
|
+
typescript: './types/senang.d.ts'
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
// Penyesuaian tema
|
|
34
|
+
theme: {
|
|
35
|
+
// Tindih ganti anda di sini
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Corak Kandungan
|
|
41
|
+
|
|
42
|
+
Tentukan fail mana untuk diimbas:
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
content: [
|
|
46
|
+
'./**/*.html', // Semua fail HTML
|
|
47
|
+
'./src/**/*.jsx', // Komponen React
|
|
48
|
+
'./pages/**/*.vue', // Halaman Vue
|
|
49
|
+
'./components/**/*.svelte'
|
|
50
|
+
]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Pilihan Output
|
|
54
|
+
|
|
55
|
+
| Pilihan | Penerangan | Lalai |
|
|
56
|
+
|---------|------------|-------|
|
|
57
|
+
| `css` | Laluan output CSS | `./public/senangstart.css` |
|
|
58
|
+
| `minify` | Minify output | `false` |
|
|
59
|
+
| `aiContext` | Laluan fail konteks AI | `./.cursorrules` |
|
|
60
|
+
| `typescript` | Laluan definisi TypeScript | `./types/senang.d.ts` |
|
|
61
|
+
|
|
62
|
+
## Penyesuaian Tema
|
|
63
|
+
|
|
64
|
+
### Spacing Tersuai
|
|
65
|
+
|
|
66
|
+
```javascript
|
|
67
|
+
theme: {
|
|
68
|
+
spacing: {
|
|
69
|
+
'tiny': '2px', // Tindih ganti sedia ada
|
|
70
|
+
'huge': '256px', // Tambah skala baru
|
|
71
|
+
'massive': '512px'
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Warna Tersuai
|
|
77
|
+
|
|
78
|
+
```javascript
|
|
79
|
+
theme: {
|
|
80
|
+
colors: {
|
|
81
|
+
'brand': '#8B5CF6',
|
|
82
|
+
'accent': '#EC4899',
|
|
83
|
+
'custom': '#FF5733'
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Titik Henti Tersuai
|
|
89
|
+
|
|
90
|
+
```javascript
|
|
91
|
+
theme: {
|
|
92
|
+
screens: {
|
|
93
|
+
'mob': '480px',
|
|
94
|
+
'tab': '768px',
|
|
95
|
+
'lap': '1024px',
|
|
96
|
+
'desk': '1280px',
|
|
97
|
+
'wide': '1536px' // Tambah breakpoint lebih lebar
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Bayang Tersuai
|
|
103
|
+
|
|
104
|
+
```javascript
|
|
105
|
+
theme: {
|
|
106
|
+
shadow: {
|
|
107
|
+
'glow': '0 0 20px rgba(59, 130, 246, 0.5)',
|
|
108
|
+
'inset': 'inset 0 2px 4px rgba(0,0,0,0.1)'
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Contoh Penuh
|
|
114
|
+
|
|
115
|
+
```javascript
|
|
116
|
+
export default {
|
|
117
|
+
content: [
|
|
118
|
+
'./src/**/*.{html,jsx,tsx}',
|
|
119
|
+
'./components/**/*.vue'
|
|
120
|
+
],
|
|
121
|
+
|
|
122
|
+
output: {
|
|
123
|
+
css: './dist/styles.css',
|
|
124
|
+
minify: true,
|
|
125
|
+
aiContext: './.cursorrules',
|
|
126
|
+
typescript: './src/types/senang.d.ts'
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
theme: {
|
|
130
|
+
spacing: {
|
|
131
|
+
'huge': '256px'
|
|
132
|
+
},
|
|
133
|
+
colors: {
|
|
134
|
+
'brand': '#8B5CF6',
|
|
135
|
+
'accent': '#EC4899'
|
|
136
|
+
},
|
|
137
|
+
screens: {
|
|
138
|
+
'wide': '1536px'
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Menggunakan Nilai Tersuai
|
|
145
|
+
|
|
146
|
+
Selepas mengkonfigurasi, guna skala tersuai anda:
|
|
147
|
+
|
|
148
|
+
```html
|
|
149
|
+
<div space="p:huge">Padding huge tersuai</div>
|
|
150
|
+
<div visual="bg:brand text:accent">Warna tersuai</div>
|
|
151
|
+
<div space="tab:p:big wide:p:huge">Titik Henti tersuai</div>
|
|
152
|
+
```
|