@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.
Files changed (200) hide show
  1. package/.github/workflows/deploy-docs.yml +1 -1
  2. package/LICENSE.md +21 -0
  3. package/README.md +17 -189
  4. package/dist/senangstart-css.js +40 -10
  5. package/dist/senangstart-css.min.js +24 -3
  6. package/docs/.vitepress/cache/deps/_metadata.json +7 -28
  7. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +9432 -284
  8. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +4 -4
  9. package/docs/.vitepress/config.js +183 -91
  10. package/docs/.vitepress/dist/404.html +5 -5
  11. package/docs/.vitepress/dist/assets/{app.BTYj1wZj.js → app.DBXoyO4w.js} +1 -1
  12. package/docs/.vitepress/dist/assets/chunks/framework.I305HrzY.js +19 -0
  13. package/docs/.vitepress/dist/assets/chunks/theme.CaXH1t3X.js +1 -0
  14. package/docs/.vitepress/dist/assets/{examples_cards.md.D4i0phvj.js → examples_cards.md.BCzaqSD6.js} +1 -1
  15. package/docs/.vitepress/dist/assets/{examples_cards.md.D4i0phvj.lean.js → examples_cards.md.BCzaqSD6.lean.js} +1 -1
  16. package/docs/.vitepress/dist/assets/{examples_forms.md.BnsjqHST.js → examples_forms.md.DOjr9LrG.js} +1 -1
  17. package/docs/.vitepress/dist/assets/{examples_forms.md.BnsjqHST.lean.js → examples_forms.md.DOjr9LrG.lean.js} +1 -1
  18. package/docs/.vitepress/dist/assets/{examples_hero.md.CCcb2x8Y.js → examples_hero.md.CAorji-Y.js} +1 -1
  19. package/docs/.vitepress/dist/assets/{examples_hero.md.CCcb2x8Y.lean.js → examples_hero.md.CAorji-Y.lean.js} +1 -1
  20. package/docs/.vitepress/dist/assets/{examples_index.md.CcyXbirn.js → examples_index.md.BjUNsTob.js} +2 -2
  21. package/docs/.vitepress/dist/assets/{examples_index.md.CcyXbirn.lean.js → examples_index.md.BjUNsTob.lean.js} +1 -1
  22. package/docs/.vitepress/dist/assets/{examples_navigation.md.CppyHbnP.js → examples_navigation.md.DvL-Yv_5.js} +1 -1
  23. package/docs/.vitepress/dist/assets/{examples_navigation.md.CppyHbnP.lean.js → examples_navigation.md.DvL-Yv_5.lean.js} +1 -1
  24. package/docs/.vitepress/dist/assets/{guide_cdn.md.CANCjnm5.js → guide_cdn.md.Bbb7-icp.js} +3 -3
  25. package/docs/.vitepress/dist/assets/{guide_cdn.md.CANCjnm5.lean.js → guide_cdn.md.Bbb7-icp.lean.js} +1 -1
  26. package/docs/.vitepress/dist/assets/{guide_cli.md.zXEKk-bu.js → guide_cli.md.yLsOZ7NL.js} +1 -1
  27. package/docs/.vitepress/dist/assets/{guide_cli.md.zXEKk-bu.lean.js → guide_cli.md.yLsOZ7NL.lean.js} +1 -1
  28. package/docs/.vitepress/dist/assets/{guide_configuration.md.D2JZzhKm.js → guide_configuration.md.DN4FfKw4.js} +1 -1
  29. package/docs/.vitepress/dist/assets/{guide_configuration.md.D2JZzhKm.lean.js → guide_configuration.md.DN4FfKw4.lean.js} +1 -1
  30. package/docs/.vitepress/dist/assets/guide_dark-mode.md.D6UJvQtM.js +69 -0
  31. package/docs/.vitepress/dist/assets/guide_dark-mode.md.D6UJvQtM.lean.js +1 -0
  32. package/docs/.vitepress/dist/assets/{guide_getting-started.md.tO7bvmZd.js → guide_getting-started.md.K5nA8wXY.js} +4 -4
  33. package/docs/.vitepress/dist/assets/{guide_getting-started.md.tO7bvmZd.lean.js → guide_getting-started.md.K5nA8wXY.lean.js} +1 -1
  34. package/docs/.vitepress/dist/assets/{guide_index.md.C1xk2lBl.js → guide_index.md.B0lRU150.js} +1 -1
  35. package/docs/.vitepress/dist/assets/{guide_index.md.C1xk2lBl.lean.js → guide_index.md.B0lRU150.lean.js} +1 -1
  36. package/docs/.vitepress/dist/assets/{guide_natural-scale.md.D1oVRN5V.js → guide_natural-scale.md.vvauT7U1.js} +1 -1
  37. package/docs/.vitepress/dist/assets/{guide_natural-scale.md.D1oVRN5V.lean.js → guide_natural-scale.md.vvauT7U1.lean.js} +1 -1
  38. package/docs/.vitepress/dist/assets/{guide_philosophy.md.DPyyMH8d.js → guide_philosophy.md.mOb9kp32.js} +1 -1
  39. package/docs/.vitepress/dist/assets/{guide_philosophy.md.DPyyMH8d.lean.js → guide_philosophy.md.mOb9kp32.lean.js} +1 -1
  40. package/docs/.vitepress/dist/assets/{guide_responsive.md.wksOAMT5.js → guide_responsive.md.C7cF-4cR.js} +1 -1
  41. package/docs/.vitepress/dist/assets/{guide_responsive.md.wksOAMT5.lean.js → guide_responsive.md.C7cF-4cR.lean.js} +1 -1
  42. package/docs/.vitepress/dist/assets/{guide_states.md.DRjYOZDJ.js → guide_states.md.CwtGEGHB.js} +1 -1
  43. package/docs/.vitepress/dist/assets/{guide_states.md.DRjYOZDJ.lean.js → guide_states.md.CwtGEGHB.lean.js} +1 -1
  44. package/docs/.vitepress/dist/assets/{guide_tri-attribute.md.CoFqfmPZ.js → guide_tri-attribute.md.CpjJLEMP.js} +1 -1
  45. package/docs/.vitepress/dist/assets/{guide_tri-attribute.md.CoFqfmPZ.lean.js → guide_tri-attribute.md.CpjJLEMP.lean.js} +1 -1
  46. package/docs/.vitepress/dist/assets/{index.md.CUZJzNzP.js → index.md.mYp6_S5X.js} +1 -1
  47. package/docs/.vitepress/dist/assets/{index.md.CUZJzNzP.lean.js → index.md.mYp6_S5X.lean.js} +1 -1
  48. package/docs/.vitepress/dist/assets/ms_examples_cards.md.CaE5JNAs.js +84 -0
  49. package/docs/.vitepress/dist/assets/ms_examples_cards.md.CaE5JNAs.lean.js +1 -0
  50. package/docs/.vitepress/dist/assets/ms_examples_forms.md.VvDzMzxF.js +169 -0
  51. package/docs/.vitepress/dist/assets/ms_examples_forms.md.VvDzMzxF.lean.js +1 -0
  52. package/docs/.vitepress/dist/assets/ms_examples_hero.md.DC4c3kKW.js +118 -0
  53. package/docs/.vitepress/dist/assets/ms_examples_hero.md.DC4c3kKW.lean.js +1 -0
  54. package/docs/.vitepress/dist/assets/ms_examples_index.md.C13ShcjA.js +52 -0
  55. package/docs/.vitepress/dist/assets/ms_examples_index.md.C13ShcjA.lean.js +1 -0
  56. package/docs/.vitepress/dist/assets/ms_examples_navigation.md.BPtVjKbk.js +106 -0
  57. package/docs/.vitepress/dist/assets/ms_examples_navigation.md.BPtVjKbk.lean.js +1 -0
  58. package/docs/.vitepress/dist/assets/ms_guide_cdn.md.tZFpEjTS.js +30 -0
  59. package/docs/.vitepress/dist/assets/ms_guide_cdn.md.tZFpEjTS.lean.js +1 -0
  60. package/docs/.vitepress/dist/assets/ms_guide_cli.md.DBjxv3-o.js +44 -0
  61. package/docs/.vitepress/dist/assets/ms_guide_cli.md.DBjxv3-o.lean.js +1 -0
  62. package/docs/.vitepress/dist/assets/ms_guide_configuration.md.CyYNqREm.js +79 -0
  63. package/docs/.vitepress/dist/assets/ms_guide_configuration.md.CyYNqREm.lean.js +1 -0
  64. package/docs/.vitepress/dist/assets/ms_guide_dark-mode.md.DWDWvzzv.js +69 -0
  65. package/docs/.vitepress/dist/assets/ms_guide_dark-mode.md.DWDWvzzv.lean.js +1 -0
  66. package/docs/.vitepress/dist/assets/ms_guide_getting-started.md.WoQwRhlY.js +47 -0
  67. package/docs/.vitepress/dist/assets/ms_guide_getting-started.md.WoQwRhlY.lean.js +1 -0
  68. package/docs/.vitepress/dist/assets/ms_guide_index.md.pHpXZMmU.js +3 -0
  69. package/docs/.vitepress/dist/assets/ms_guide_index.md.pHpXZMmU.lean.js +1 -0
  70. package/docs/.vitepress/dist/assets/ms_guide_natural-scale.md.BiUfU-TH.js +22 -0
  71. package/docs/.vitepress/dist/assets/ms_guide_natural-scale.md.BiUfU-TH.lean.js +1 -0
  72. package/docs/.vitepress/dist/assets/ms_guide_philosophy.md.hf3SG2Ts.js +7 -0
  73. package/docs/.vitepress/dist/assets/ms_guide_philosophy.md.hf3SG2Ts.lean.js +1 -0
  74. package/docs/.vitepress/dist/assets/ms_guide_responsive.md.C4yS3zzM.js +57 -0
  75. package/docs/.vitepress/dist/assets/ms_guide_responsive.md.C4yS3zzM.lean.js +1 -0
  76. package/docs/.vitepress/dist/assets/ms_guide_states.md.DkDEjPdC.js +77 -0
  77. package/docs/.vitepress/dist/assets/ms_guide_states.md.DkDEjPdC.lean.js +1 -0
  78. package/docs/.vitepress/dist/assets/ms_guide_tri-attribute.md.C3Es_V5J.js +45 -0
  79. package/docs/.vitepress/dist/assets/ms_guide_tri-attribute.md.C3Es_V5J.lean.js +1 -0
  80. package/docs/.vitepress/dist/assets/ms_index.md.Bmo9il08.js +7 -0
  81. package/docs/.vitepress/dist/assets/ms_index.md.Bmo9il08.lean.js +1 -0
  82. package/docs/.vitepress/dist/assets/ms_reference_breakpoints.md.DR7i_--b.js +48 -0
  83. package/docs/.vitepress/dist/assets/ms_reference_breakpoints.md.DR7i_--b.lean.js +1 -0
  84. package/docs/.vitepress/dist/assets/ms_reference_colors.md.06ZYiMcJ.js +17 -0
  85. package/docs/.vitepress/dist/assets/ms_reference_colors.md.06ZYiMcJ.lean.js +1 -0
  86. package/docs/.vitepress/dist/assets/ms_reference_layout.md.NGL6A5SR.js +13 -0
  87. package/docs/.vitepress/dist/assets/ms_reference_layout.md.NGL6A5SR.lean.js +1 -0
  88. package/docs/.vitepress/dist/assets/ms_reference_space.md.BG5YQ-09.js +24 -0
  89. package/docs/.vitepress/dist/assets/ms_reference_space.md.BG5YQ-09.lean.js +1 -0
  90. package/docs/.vitepress/dist/assets/ms_reference_spacing.md.XmXLLPOZ.js +32 -0
  91. package/docs/.vitepress/dist/assets/ms_reference_spacing.md.XmXLLPOZ.lean.js +1 -0
  92. package/docs/.vitepress/dist/assets/ms_reference_visual.md.BVOlkEqc.js +22 -0
  93. package/docs/.vitepress/dist/assets/ms_reference_visual.md.BVOlkEqc.lean.js +1 -0
  94. package/docs/.vitepress/dist/assets/{reference_breakpoints.md.BEhuwXBS.js → reference_breakpoints.md.BRbG8Fzi.js} +1 -1
  95. package/docs/.vitepress/dist/assets/{reference_breakpoints.md.BEhuwXBS.lean.js → reference_breakpoints.md.BRbG8Fzi.lean.js} +1 -1
  96. package/docs/.vitepress/dist/assets/reference_colors.md.C7j7dSO1.js +17 -0
  97. package/docs/.vitepress/dist/assets/reference_colors.md.C7j7dSO1.lean.js +1 -0
  98. package/docs/.vitepress/dist/assets/{reference_layout.md.DqSoofMZ.js → reference_layout.md.BWJ5NxSp.js} +1 -1
  99. package/docs/.vitepress/dist/assets/{reference_layout.md.DqSoofMZ.lean.js → reference_layout.md.BWJ5NxSp.lean.js} +1 -1
  100. package/docs/.vitepress/dist/assets/{reference_space.md.luOYAfQg.js → reference_space.md.DCsqfTWb.js} +1 -1
  101. package/docs/.vitepress/dist/assets/{reference_space.md.luOYAfQg.lean.js → reference_space.md.DCsqfTWb.lean.js} +1 -1
  102. package/docs/.vitepress/dist/assets/{reference_spacing.md.DdsDhDhS.js → reference_spacing.md.BInFD8gd.js} +1 -1
  103. package/docs/.vitepress/dist/assets/{reference_spacing.md.DdsDhDhS.lean.js → reference_spacing.md.BInFD8gd.lean.js} +1 -1
  104. package/docs/.vitepress/dist/assets/{reference_visual.md.DZFvxgPk.js → reference_visual.md.BRK7S9T1.js} +1 -1
  105. package/docs/.vitepress/dist/assets/{reference_visual.md.DZFvxgPk.lean.js → reference_visual.md.BRK7S9T1.lean.js} +1 -1
  106. package/docs/.vitepress/dist/assets/{style.BuMqNgkb.css → style.D82StYDI.css} +1 -1
  107. package/docs/.vitepress/dist/examples/cards.html +9 -9
  108. package/docs/.vitepress/dist/examples/forms.html +9 -9
  109. package/docs/.vitepress/dist/examples/hero.html +9 -9
  110. package/docs/.vitepress/dist/examples/index.html +10 -10
  111. package/docs/.vitepress/dist/examples/navigation.html +9 -9
  112. package/docs/.vitepress/dist/guide/cdn.html +12 -12
  113. package/docs/.vitepress/dist/guide/cli.html +9 -9
  114. package/docs/.vitepress/dist/guide/configuration.html +9 -9
  115. package/docs/.vitepress/dist/guide/dark-mode.html +93 -0
  116. package/docs/.vitepress/dist/guide/getting-started.html +11 -11
  117. package/docs/.vitepress/dist/guide/index.html +9 -9
  118. package/docs/.vitepress/dist/guide/natural-scale.html +9 -9
  119. package/docs/.vitepress/dist/guide/philosophy.html +9 -9
  120. package/docs/.vitepress/dist/guide/responsive.html +9 -9
  121. package/docs/.vitepress/dist/guide/states.html +10 -10
  122. package/docs/.vitepress/dist/guide/tri-attribute.html +9 -9
  123. package/docs/.vitepress/dist/hashmap.json +1 -1
  124. package/docs/.vitepress/dist/index.html +9 -9
  125. package/docs/.vitepress/dist/ms/examples/cards.html +108 -0
  126. package/docs/.vitepress/dist/ms/examples/forms.html +193 -0
  127. package/docs/.vitepress/dist/ms/examples/hero.html +142 -0
  128. package/docs/.vitepress/dist/ms/examples/index.html +76 -0
  129. package/docs/.vitepress/dist/ms/examples/navigation.html +130 -0
  130. package/docs/.vitepress/dist/ms/guide/cdn.html +54 -0
  131. package/docs/.vitepress/dist/ms/guide/cli.html +68 -0
  132. package/docs/.vitepress/dist/ms/guide/configuration.html +103 -0
  133. package/docs/.vitepress/dist/ms/guide/dark-mode.html +93 -0
  134. package/docs/.vitepress/dist/ms/guide/getting-started.html +71 -0
  135. package/docs/.vitepress/dist/ms/guide/index.html +27 -0
  136. package/docs/.vitepress/dist/ms/guide/natural-scale.html +46 -0
  137. package/docs/.vitepress/dist/ms/guide/philosophy.html +31 -0
  138. package/docs/.vitepress/dist/ms/guide/responsive.html +81 -0
  139. package/docs/.vitepress/dist/ms/guide/states.html +101 -0
  140. package/docs/.vitepress/dist/ms/guide/tri-attribute.html +69 -0
  141. package/docs/.vitepress/dist/ms/index.html +31 -0
  142. package/docs/.vitepress/dist/ms/reference/breakpoints.html +72 -0
  143. package/docs/.vitepress/dist/ms/reference/colors.html +41 -0
  144. package/docs/.vitepress/dist/ms/reference/layout.html +37 -0
  145. package/docs/.vitepress/dist/ms/reference/space.html +48 -0
  146. package/docs/.vitepress/dist/ms/reference/spacing.html +56 -0
  147. package/docs/.vitepress/dist/ms/reference/visual.html +46 -0
  148. package/docs/.vitepress/dist/reference/breakpoints.html +9 -9
  149. package/docs/.vitepress/dist/reference/colors.html +15 -27
  150. package/docs/.vitepress/dist/reference/layout.html +9 -9
  151. package/docs/.vitepress/dist/reference/space.html +9 -9
  152. package/docs/.vitepress/dist/reference/spacing.html +9 -9
  153. package/docs/.vitepress/dist/reference/visual.html +9 -9
  154. package/docs/examples/index.md +1 -1
  155. package/docs/guide/cdn.md +2 -2
  156. package/docs/guide/dark-mode.md +152 -0
  157. package/docs/guide/getting-started.md +2 -2
  158. package/docs/ms/examples/cards.md +116 -0
  159. package/docs/ms/examples/forms.md +207 -0
  160. package/docs/ms/examples/hero.md +150 -0
  161. package/docs/ms/examples/index.md +87 -0
  162. package/docs/ms/examples/navigation.md +144 -0
  163. package/docs/ms/guide/cdn.md +110 -0
  164. package/docs/ms/guide/cli.md +174 -0
  165. package/docs/ms/guide/configuration.md +152 -0
  166. package/docs/ms/guide/dark-mode.md +152 -0
  167. package/docs/ms/guide/getting-started.md +130 -0
  168. package/docs/ms/guide/index.md +64 -0
  169. package/docs/ms/guide/natural-scale.md +123 -0
  170. package/docs/ms/guide/philosophy.md +103 -0
  171. package/docs/ms/guide/responsive.md +129 -0
  172. package/docs/ms/guide/states.md +162 -0
  173. package/docs/ms/guide/tri-attribute.md +187 -0
  174. package/docs/ms/index.md +64 -0
  175. package/docs/ms/reference/breakpoints.md +131 -0
  176. package/docs/ms/reference/colors.md +126 -0
  177. package/docs/ms/reference/layout.md +115 -0
  178. package/docs/ms/reference/space.md +121 -0
  179. package/docs/ms/reference/spacing.md +74 -0
  180. package/docs/ms/reference/visual.md +160 -0
  181. package/docs/reference/colors.md +52 -32
  182. package/package.json +1 -1
  183. package/src/cdn/jit.js +40 -10
  184. package/src/compiler/generators/css.js +57 -5
  185. package/src/compiler/tokenizer.js +1 -1
  186. package/src/config/defaults.js +297 -2
  187. package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js +0 -9719
  188. package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js.map +0 -7
  189. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +0 -1333
  190. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +0 -7
  191. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +0 -1665
  192. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +0 -7
  193. package/docs/.vitepress/cache/deps/vitepress___minisearch.js +0 -1813
  194. package/docs/.vitepress/cache/deps/vitepress___minisearch.js.map +0 -7
  195. package/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.DmMP4oUp.js +0 -1
  196. package/docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.jxQ0k_uL.js +0 -9
  197. package/docs/.vitepress/dist/assets/chunks/framework.qISVh_QZ.js +0 -19
  198. package/docs/.vitepress/dist/assets/chunks/theme.B9Wtbwgj.js +0 -2
  199. package/docs/.vitepress/dist/assets/reference_colors.md.Do4abjs1.js +0 -29
  200. 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
+ ```