@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,162 @@
1
+ # Hover & Keadaan
2
+
3
+ Tambah gaya interaktif dengan prefiks keadaan.
4
+
5
+ ## Prefiks Keadaan
6
+
7
+ | Prefiks | Pencetus |
8
+ |---------|----------|
9
+ | `hover:` | Tetikus atas elemen |
10
+ | `focus:` | Elemen mempunyai fokus |
11
+ | `active:` | Elemen sedang diklik |
12
+ | `disabled:` | Elemen adalah disabled |
13
+
14
+ ## Penggunaan Asas
15
+
16
+ ### Hover
17
+
18
+ ```html
19
+ <button visual="bg:primary hover:bg:[#2563EB] text:white">
20
+ Hover saya
21
+ </button>
22
+
23
+ <a visual="text:grey hover:text:primary">
24
+ Pautan dengan warna hover
25
+ </a>
26
+ ```
27
+
28
+ ### Focus
29
+
30
+ ```html
31
+ <input
32
+ visual="border:grey focus:border:primary"
33
+ space="p:small"
34
+ />
35
+ ```
36
+
37
+ ### Active
38
+
39
+ ```html
40
+ <button visual="bg:primary active:bg:[#1D4ED8]">
41
+ Klik saya
42
+ </button>
43
+ ```
44
+
45
+ ### Disabled
46
+
47
+ ```html
48
+ <button visual="bg:primary disabled:bg:grey disabled:opacity:[0.5]">
49
+ Hantar
50
+ </button>
51
+ ```
52
+
53
+ ## Corak Biasa
54
+
55
+ ### Butang dengan Keadaan
56
+
57
+ ```html
58
+ <button
59
+ space="p-x:big p-y:small"
60
+ visual="
61
+ bg:primary
62
+ text:white
63
+ rounded:medium
64
+ hover:bg:[#2563EB]
65
+ active:bg:[#1D4ED8]
66
+ disabled:bg:grey
67
+ disabled:opacity:[0.5]
68
+ "
69
+ >
70
+ Hantar
71
+ </button>
72
+ ```
73
+
74
+ ### Kad dengan Kesan Hover
75
+
76
+ ```html
77
+ <div
78
+ layout="flex col"
79
+ space="p:medium"
80
+ visual="
81
+ bg:white
82
+ rounded:big
83
+ shadow:small
84
+ hover:shadow:big
85
+ "
86
+ >
87
+ <h3>Tajuk Kad</h3>
88
+ <p>Kandungan kad yang terangkat apabila hover.</p>
89
+ </div>
90
+ ```
91
+
92
+ ### Navigasi Pautan
93
+
94
+ ```html
95
+ <nav layout="flex" space="g:medium">
96
+ <a visual="text:dark hover:text:primary font:medium">Laman Utama</a>
97
+ <a visual="text:grey hover:text:primary">Tentang</a>
98
+ <a visual="text:grey hover:text:primary">Hubungi</a>
99
+ </nav>
100
+ ```
101
+
102
+ ### Input dengan Cincin Fokus
103
+
104
+ ```html
105
+ <input
106
+ type="text"
107
+ space="p:small w:[100%]"
108
+ visual="
109
+ border:grey
110
+ border-w:[1px]
111
+ rounded:small
112
+ focus:border:primary
113
+ "
114
+ placeholder="Masukkan emel anda"
115
+ />
116
+ ```
117
+
118
+ ### Butang Toggle
119
+
120
+ ```html
121
+ <button
122
+ space="p:small"
123
+ visual="
124
+ bg:light
125
+ text:dark
126
+ rounded:medium
127
+ hover:bg:grey
128
+ active:bg:dark
129
+ active:text:white
130
+ "
131
+ >
132
+ Toggle
133
+ </button>
134
+ ```
135
+
136
+ ## Menggabungkan dengan Responsif
137
+
138
+ Keadaan boleh digabungkan dengan prefiks responsif:
139
+
140
+ ```html
141
+ <button visual="
142
+ bg:primary
143
+ hover:bg:[#2563EB]
144
+ tab:hover:shadow:big
145
+ ">
146
+ Bayang hover hanya pada tablet+
147
+ </button>
148
+ ```
149
+
150
+ ## Nota Kebolehcapaian
151
+
152
+ Sentiasa pastikan kontras warna yang mencukupi untuk keadaan hover dan focus. Keadaan `:focus` terutamanya penting untuk navigasi papan kekunci.
153
+
154
+ ```html
155
+ <button visual="
156
+ bg:primary
157
+ text:white
158
+ focus:shadow:[0_0_0_3px_rgba(59,130,246,0.5)]
159
+ ">
160
+ Cincin fokus yang boleh diakses
161
+ </button>
162
+ ```
@@ -0,0 +1,187 @@
1
+ # Sintaksis Tri-Atribusi
2
+
3
+ SenangStart mengasingkan aspek stail kepada tiga atribusi yang berbeza.
4
+
5
+ ## Gambaran Keseluruhan
6
+
7
+ | Atribusi | Tujuan | Contoh |
8
+ |---------|--------|--------|
9
+ | `layout` | Struktur & kedudukan | `layout="flex col center"` |
10
+ | `space` | Saiz & jarak | `space="p:medium g:small"` |
11
+ | `visual` | Warna & penampilan | `visual="bg:white rounded:big"` |
12
+
13
+ ## Mengapa Tiga Atribusi?
14
+
15
+ ### Kelas CSS tradisional adalah huru-hara:
16
+
17
+ ```html
18
+ <div class="flex flex-col items-center p-4 gap-2 bg-white rounded-lg shadow-md">
19
+ ```
20
+
21
+ Semua bercampur aduk. Mana layout? Mana spacing? Mana visual?
22
+
23
+ ### SenangStart adalah teratur:
24
+
25
+ ```html
26
+ <div
27
+ layout="flex col center"
28
+ space="p:medium g:small"
29
+ visual="bg:white rounded:big shadow:medium"
30
+ >
31
+ ```
32
+
33
+ **Pengasingan jelas.** Sesiapa yang baca kod ini terus tahu:
34
+ - **Struktur:** Flexbox column, di tengah
35
+ - **Saiz:** Medium padding, small gap
36
+ - **Penampilan:** Putih, bulat, berlorek
37
+
38
+ ## Atribusi `layout`
39
+
40
+ Mengawal **bagaimana elemen diposisikan** dan **bagaimana ia mengalir**.
41
+
42
+ ### Jenis Paparan
43
+
44
+ ```html
45
+ <div layout="flex">Kontena Flexbox</div>
46
+ <div layout="grid">Kontena Grid</div>
47
+ <div layout="block">Elemen Block</div>
48
+ <div layout="hidden">Elemen Tersembunyi</div>
49
+ ```
50
+
51
+ ### Arah Flex
52
+
53
+ ```html
54
+ <div layout="flex row">Horizontal (lalai)</div>
55
+ <div layout="flex col">Menegak</div>
56
+ <div layout="flex row-reverse">Horizontal terbalik</div>
57
+ <div layout="flex col-reverse">Menegak terbalik</div>
58
+ ```
59
+
60
+ ### Penjajaran
61
+
62
+ ```html
63
+ <div layout="flex center">Tengah kedua-dua paksi</div>
64
+ <div layout="flex between">Jarak antara item</div>
65
+ <div layout="flex start">Jajar ke permulaan</div>
66
+ <div layout="flex end">Jajar ke hujung</div>
67
+ ```
68
+
69
+ ### Kedudukan
70
+
71
+ ```html
72
+ <nav layout="fixed z:top">Navigasi Fixed</nav>
73
+ <div layout="sticky">Elemen Sticky</div>
74
+ <div layout="absolute z:high">Absolute positioned</div>
75
+ <div layout="relative">Relative positioned</div>
76
+ ```
77
+
78
+ ## Atribusi `space`
79
+
80
+ Mengawal **saiz dan jarak** menggunakan skala semula jadi.
81
+
82
+ ### Sintaksis
83
+
84
+ ```
85
+ [breakpoint]:[property]:[scale]
86
+ ```
87
+
88
+ ### Padding
89
+
90
+ ```html
91
+ <div space="p:medium">Semua sisi</div>
92
+ <div space="p-x:big p-y:small">Horizontal & menegak</div>
93
+ <div space="p-t:small p-b:big">Atas & bawah</div>
94
+ ```
95
+
96
+ ### Margin
97
+
98
+ ```html
99
+ <div space="m:medium">Semua sisi</div>
100
+ <div space="m-b:big">Bawah sahaja</div>
101
+ <div space="m-x:auto">Tengah secara horizontal</div>
102
+ ```
103
+
104
+ ### Sela (Flex/Grid)
105
+
106
+ ```html
107
+ <div layout="flex" space="g:small">Small gap</div>
108
+ <div layout="grid" space="g:medium">Medium gap</div>
109
+ ```
110
+
111
+ ### Saiz
112
+
113
+ ```html
114
+ <div space="w:[100%] h:[400px]">Saiz eksplisit</div>
115
+ <div space="max-w:[1200px] min-h:[80vh]">Kekangan</div>
116
+ ```
117
+
118
+ ### Nilai Arbitrari (Escape Hatch)
119
+
120
+ Guna kurungan untuk nilai spesifik:
121
+
122
+ ```html
123
+ <div space="w:[350px]">Lebar 350px</div>
124
+ <div space="p:[20px_40px]">20px atas/bawah, 40px kiri/kanan</div>
125
+ <div space="m-t:[5rem]">5rem margin atas</div>
126
+ ```
127
+
128
+ ## Atribusi `visual`
129
+
130
+ Mengawal **warna, tekstur, dan penampilan**.
131
+
132
+ ### Latar Belakang
133
+
134
+ ```html
135
+ <div visual="bg:white">Latar belakang putih</div>
136
+ <div visual="bg:primary">Warna primary</div>
137
+ <div visual="bg:[#FF5733]">Hex tersuai</div>
138
+ ```
139
+
140
+ ### Teks
141
+
142
+ ```html
143
+ <span visual="text:dark">Teks gelap</span>
144
+ <span visual="text:grey text-size:small">Kelabu, teks kecil</span>
145
+ <span visual="font:bold">Teks tebal</span>
146
+ ```
147
+
148
+ ### Sempadan & Bayang
149
+
150
+ ```html
151
+ <div visual="rounded:medium shadow:big">Bulat dengan bayang</div>
152
+ <div visual="border:grey border-w:[2px]">Sempadan kelabu</div>
153
+ ```
154
+
155
+ ### Menggabungkan Sari Diri
156
+
157
+ ```html
158
+ <div visual="bg:white rounded:big shadow:medium text:dark">
159
+ Kad dengan pelbagai visual properties
160
+ </div>
161
+ ```
162
+
163
+ ## Menggabungkan Ketiga-tiga
164
+
165
+ Berikut contoh lengkap:
166
+
167
+ ```html
168
+ <div
169
+ layout="flex col"
170
+ space="w:[320px] p:medium g:small"
171
+ visual="bg:white rounded:big shadow:medium"
172
+ >
173
+ <h2 visual="font:bold text-size:big text:dark">Tajuk Kad</h2>
174
+ <p visual="text:grey">Penerangan kad di sini.</p>
175
+ <button
176
+ space="p-x:big p-y:small"
177
+ visual="bg:primary text:white rounded:medium"
178
+ >
179
+ Tindakan
180
+ </button>
181
+ </div>
182
+ ```
183
+
184
+ **Membaca kod ini:**
185
+ - Kontena adalah flex column menegak, lebar 320px, dengan medium padding, small gap, latar belakang putih, sudut bulat big, dan bayang medium
186
+ - Tajuk adalah bold, teks big, warna dark
187
+ - Butang mempunyai big horizontal padding, small vertical padding, latar belakang primary, teks putih, sudut bulat medium
@@ -0,0 +1,64 @@
1
+ ---
2
+ layout: home
3
+
4
+ hero:
5
+ name: SenangStart CSS
6
+ text: Enjin CSS Niat Nan Utama
7
+ tagline: Cakap Manusia. Kompil ke Logik.
8
+ image:
9
+ src: https://senangstart.com/img/use_senangstart.svg
10
+ alt: SenangStart CSS
11
+ actions:
12
+ - theme: brand
13
+ text: Bermula
14
+ link: /ms/guide/getting-started
15
+ - theme: alt
16
+ text: Lihat di GitHub
17
+ link: https://github.com/bookklik-technologies/senangstart-css
18
+
19
+ features:
20
+ - icon: 🧠
21
+ title: Bahasa Semula Jadi
22
+ details: Guna tiny, small, medium, big, giant, vast — perkataan yang anda sudah tahu. Tak perlu hafal px-4, px-8, px-16.
23
+ - icon: 🎯
24
+ title: Pengasingan Tanggungjawab
25
+ details: layout untuk struktur, space untuk saiz, visual untuk penampilan. Bersih, semantik, mudah diselenggara.
26
+ - icon: 🤖
27
+ title: Mesra AI
28
+ details: Menghasilkan fail konteks untuk LLM. Cakap "ketatkan" dan AI tahu untuk kurangkan jarak.
29
+ - icon: ⚡
30
+ title: Pilihan Tanpa Bina
31
+ details: Guna CDN JIT runtime untuk stail serta-merta. Tiada langkah bina diperlukan untuk prototaip.
32
+ - icon: 📱
33
+ title: Responsif Secara Rekaan
34
+ details: Titik Henti mobile-first dengan prefiks intuitif seperti mob:, tab:, lap:, desk:.
35
+ - icon: 🎨
36
+ title: Boleh Disesuaikan Sepenuhnya
37
+ details: Tindih ganti mana-mana skala, tambah warna tersuai, lanjutkan tema untuk padankan jenama anda.
38
+ ---
39
+
40
+ <style>
41
+ :root {
42
+ --vp-home-hero-name-color: transparent;
43
+ --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #2563EB 30%, #3B82F6);
44
+ --vp-home-hero-image-background-image: linear-gradient(-45deg, #2563EB 50%, #3B82F6 50%);
45
+ --vp-home-hero-image-filter: blur(44px);
46
+ --vp-c-brand-1: #2563EB;
47
+ --vp-c-brand-2: #3B82F6;
48
+ --vp-c-brand-3: #DBEAFE;
49
+ }
50
+ </style>
51
+
52
+ ## Contoh Pantas
53
+
54
+ ```html
55
+ <div
56
+ layout="flex col center"
57
+ space="p:big"
58
+ visual="bg:primary text:white rounded:big"
59
+ >
60
+ Hello SenangStart!
61
+ </div>
62
+ ```
63
+
64
+ Ini mencipta flexbox column, di tengah, dengan padding big, latar belakang primary, teks putih, dan sudut bulat big. **Tiada kelas CSS untuk dihafal.**
@@ -0,0 +1,131 @@
1
+ # Rujukan Titik Henti
2
+
3
+ Rujukan lengkap untuk breakpoint responsif.
4
+
5
+ ## Titik Henti Lalai
6
+
7
+ | Prefiks | Min-Width | Sasaran Peranti |
8
+ |---------|-----------|-----------------|
9
+ | (tiada) | 0px | Mudah alih (lalai) |
10
+ | `mob:` | 480px | Mudah alih besar |
11
+ | `tab:` | 768px | Tablet |
12
+ | `lap:` | 1024px | Komputer riba |
13
+ | `desk:` | 1280px | Desktop |
14
+
15
+ ## Media Query CSS
16
+
17
+ ```css
18
+ /* Mobile first - tiada prefiks diperlukan */
19
+
20
+ @media (min-width: 480px) { /* mob: */ }
21
+ @media (min-width: 768px) { /* tab: */ }
22
+ @media (min-width: 1024px) { /* lap: */ }
23
+ @media (min-width: 1280px) { /* desk: */ }
24
+ ```
25
+
26
+ ## Penggunaan
27
+
28
+ ### Jarak Responsif
29
+
30
+ ```html
31
+ <div space="p:small tab:p:medium lap:p:big">
32
+ Padding progresif
33
+ </div>
34
+ ```
35
+
36
+ ### Layout Responsif
37
+
38
+ ```html
39
+ <div layout="flex col tab:row">
40
+ Column pada mudah alih, row pada tablet+
41
+ </div>
42
+
43
+ <nav layout="hidden tab:flex">
44
+ Tersembunyi pada mudah alih, kelihatan pada tablet+
45
+ </nav>
46
+ ```
47
+
48
+ ### Tipografi Responsif
49
+
50
+ ```html
51
+ <h1 visual="text-size:big tab:text-size:giant lap:text-size:vast">
52
+ Tajuk responsif
53
+ </h1>
54
+ ```
55
+
56
+ ## Pendekatan Mobile-First
57
+
58
+ SenangStart menggunakan reka bentuk responsif mobile-first:
59
+
60
+ 1. **Gaya asas** digunakan untuk semua saiz skrin
61
+ 2. **Prefiks breakpoint** digunakan dari breakpoint itu KE ATAS
62
+
63
+ ```html
64
+ <!-- Ini bermaksud: -->
65
+ <!-- - Mudah alih: small padding -->
66
+ <!-- - Tablet dan ke atas: medium padding -->
67
+ <!-- - Laptop dan ke atas: big padding -->
68
+ <div space="p:small tab:p:medium lap:p:big">
69
+ Kandungan
70
+ </div>
71
+ ```
72
+
73
+ ## Penyesuaian
74
+
75
+ Tambah atau ubah breakpoint dalam `senangstart.config.js`:
76
+
77
+ ```javascript
78
+ export default {
79
+ theme: {
80
+ screens: {
81
+ 'mob': '480px',
82
+ 'tab': '768px',
83
+ 'lap': '1024px',
84
+ 'desk': '1280px',
85
+ 'wide': '1536px', // Tambah lebih lebar
86
+ 'ultra': '1920px' // Tambah ultra-wide
87
+ }
88
+ }
89
+ }
90
+ ```
91
+
92
+ Guna breakpoint tersuai:
93
+
94
+ ```html
95
+ <div space="desk:p:big wide:p:giant ultra:p:vast">
96
+ Padding skrin besar
97
+ </div>
98
+ ```
99
+
100
+ ## Corak Biasa
101
+
102
+ ### Tunjuk/Sembunyi Elemen
103
+
104
+ ```html
105
+ <!-- Mudah alih sahaja -->
106
+ <div layout="block tab:hidden">Menu mudah alih</div>
107
+
108
+ <!-- Desktop sahaja -->
109
+ <div layout="hidden lap:block">Sidebar desktop</div>
110
+ ```
111
+
112
+ ### Grid Responsif
113
+
114
+ ```html
115
+ <div
116
+ layout="grid"
117
+ space="g:small tab:g:medium"
118
+ style="grid-template-columns: 1fr;
119
+ @media (min-width: 768px) { grid-template-columns: repeat(2, 1fr); }"
120
+ >
121
+ Kad...
122
+ </div>
123
+ ```
124
+
125
+ ### Kontena Responsif
126
+
127
+ ```html
128
+ <div space="p:small tab:p:medium lap:p:big max-w:[1200px] m-x:auto">
129
+ Kontena di tengah dengan padding responsif
130
+ </div>
131
+ ```