@central-design-system/skills 4.0.0-alpha.6

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 (321) hide show
  1. package/.claude-plugin/plugin.json +6 -0
  2. package/README.md +218 -0
  3. package/bin/cds-skills.mjs +124 -0
  4. package/package.json +33 -0
  5. package/skills/cds-builder/GENERATION.md +44 -0
  6. package/skills/cds-builder/SKILL.md +308 -0
  7. package/skills/cds-builder/references/component-decision-tree.md +310 -0
  8. package/skills/cds-builder/references/components/cds-app/api.md +19 -0
  9. package/skills/cds-builder/references/components/cds-app/tokens.md +12 -0
  10. package/skills/cds-builder/references/components/cds-autocomplete/api.md +155 -0
  11. package/skills/cds-builder/references/components/cds-autocomplete/examples.md +447 -0
  12. package/skills/cds-builder/references/components/cds-autocomplete/guidelines.md +10 -0
  13. package/skills/cds-builder/references/components/cds-autocomplete/tokens.md +19 -0
  14. package/skills/cds-builder/references/components/cds-avatar/api.md +35 -0
  15. package/skills/cds-builder/references/components/cds-avatar/examples.md +240 -0
  16. package/skills/cds-builder/references/components/cds-avatar/guidelines.md +10 -0
  17. package/skills/cds-builder/references/components/cds-avatar/tokens.md +32 -0
  18. package/skills/cds-builder/references/components/cds-badge/api.md +44 -0
  19. package/skills/cds-builder/references/components/cds-badge/examples.md +332 -0
  20. package/skills/cds-builder/references/components/cds-badge/guidelines.md +10 -0
  21. package/skills/cds-builder/references/components/cds-badge/tokens.md +32 -0
  22. package/skills/cds-builder/references/components/cds-breadcrumbs/api.md +83 -0
  23. package/skills/cds-builder/references/components/cds-breadcrumbs/examples.md +219 -0
  24. package/skills/cds-builder/references/components/cds-breadcrumbs/guidelines.md +10 -0
  25. package/skills/cds-builder/references/components/cds-breadcrumbs/tokens.md +24 -0
  26. package/skills/cds-builder/references/components/cds-button/api.md +66 -0
  27. package/skills/cds-builder/references/components/cds-button/examples.md +324 -0
  28. package/skills/cds-builder/references/components/cds-button/guidelines.md +10 -0
  29. package/skills/cds-builder/references/components/cds-button/tokens.md +190 -0
  30. package/skills/cds-builder/references/components/cds-button-group/api.md +27 -0
  31. package/skills/cds-builder/references/components/cds-button-group/examples.md +33 -0
  32. package/skills/cds-builder/references/components/cds-button-group/tokens.md +17 -0
  33. package/skills/cds-builder/references/components/cds-button-toggle/api.md +51 -0
  34. package/skills/cds-builder/references/components/cds-button-toggle/examples.md +278 -0
  35. package/skills/cds-builder/references/components/cds-button-toggle/guidelines.md +10 -0
  36. package/skills/cds-builder/references/components/cds-button-toggle/tokens.md +13 -0
  37. package/skills/cds-builder/references/components/cds-card/api.md +221 -0
  38. package/skills/cds-builder/references/components/cds-card/examples.md +652 -0
  39. package/skills/cds-builder/references/components/cds-card/guidelines.md +10 -0
  40. package/skills/cds-builder/references/components/cds-card/tokens.md +46 -0
  41. package/skills/cds-builder/references/components/cds-carousel/api.md +107 -0
  42. package/skills/cds-builder/references/components/cds-carousel/examples.md +444 -0
  43. package/skills/cds-builder/references/components/cds-carousel/guidelines.md +10 -0
  44. package/skills/cds-builder/references/components/cds-carousel/tokens.md +17 -0
  45. package/skills/cds-builder/references/components/cds-checkbox/api.md +93 -0
  46. package/skills/cds-builder/references/components/cds-checkbox/examples.md +319 -0
  47. package/skills/cds-builder/references/components/cds-checkbox/guidelines.md +10 -0
  48. package/skills/cds-builder/references/components/cds-checkbox/tokens.md +18 -0
  49. package/skills/cds-builder/references/components/cds-checkbox-button/api.md +56 -0
  50. package/skills/cds-builder/references/components/cds-checkbox-button/examples.md +29 -0
  51. package/skills/cds-builder/references/components/cds-checkbox-button/tokens.md +56 -0
  52. package/skills/cds-builder/references/components/cds-combobox/api.md +158 -0
  53. package/skills/cds-builder/references/components/cds-combobox/examples.md +264 -0
  54. package/skills/cds-builder/references/components/cds-combobox/guidelines.md +10 -0
  55. package/skills/cds-builder/references/components/cds-combobox/tokens.md +19 -0
  56. package/skills/cds-builder/references/components/cds-counter/api.md +24 -0
  57. package/skills/cds-builder/references/components/cds-counter/examples.md +93 -0
  58. package/skills/cds-builder/references/components/cds-counter/tokens.md +11 -0
  59. package/skills/cds-builder/references/components/cds-date-input/api.md +151 -0
  60. package/skills/cds-builder/references/components/cds-date-input/examples.md +479 -0
  61. package/skills/cds-builder/references/components/cds-date-input/guidelines.md +10 -0
  62. package/skills/cds-builder/references/components/cds-date-input/tokens.md +16 -0
  63. package/skills/cds-builder/references/components/cds-date-picker/api.md +63 -0
  64. package/skills/cds-builder/references/components/cds-date-picker/examples.md +394 -0
  65. package/skills/cds-builder/references/components/cds-date-picker/guidelines.md +10 -0
  66. package/skills/cds-builder/references/components/cds-date-picker/tokens.md +66 -0
  67. package/skills/cds-builder/references/components/cds-defaults-provider/api.md +21 -0
  68. package/skills/cds-builder/references/components/cds-description/api.md +22 -0
  69. package/skills/cds-builder/references/components/cds-description/examples.md +69 -0
  70. package/skills/cds-builder/references/components/cds-description/tokens.md +11 -0
  71. package/skills/cds-builder/references/components/cds-divider/api.md +29 -0
  72. package/skills/cds-builder/references/components/cds-divider/examples.md +374 -0
  73. package/skills/cds-builder/references/components/cds-divider/guidelines.md +10 -0
  74. package/skills/cds-builder/references/components/cds-divider/tokens.md +38 -0
  75. package/skills/cds-builder/references/components/cds-drawer/api.md +53 -0
  76. package/skills/cds-builder/references/components/cds-drawer/examples.md +432 -0
  77. package/skills/cds-builder/references/components/cds-drawer/guidelines.md +9 -0
  78. package/skills/cds-builder/references/components/cds-drawer/tokens.md +27 -0
  79. package/skills/cds-builder/references/components/cds-empty-state/api.md +55 -0
  80. package/skills/cds-builder/references/components/cds-empty-state/examples.md +330 -0
  81. package/skills/cds-builder/references/components/cds-empty-state/guidelines.md +9 -0
  82. package/skills/cds-builder/references/components/cds-empty-state/tokens.md +25 -0
  83. package/skills/cds-builder/references/components/cds-expandable-panel/api.md +157 -0
  84. package/skills/cds-builder/references/components/cds-expandable-panel/examples.md +569 -0
  85. package/skills/cds-builder/references/components/cds-expandable-panel/guidelines.md +10 -0
  86. package/skills/cds-builder/references/components/cds-expandable-panel/tokens.md +34 -0
  87. package/skills/cds-builder/references/components/cds-field/api.md +62 -0
  88. package/skills/cds-builder/references/components/cds-field/examples.md +202 -0
  89. package/skills/cds-builder/references/components/cds-field/tokens.md +94 -0
  90. package/skills/cds-builder/references/components/cds-file-input/api.md +109 -0
  91. package/skills/cds-builder/references/components/cds-file-input/examples.md +368 -0
  92. package/skills/cds-builder/references/components/cds-file-input/guidelines.md +10 -0
  93. package/skills/cds-builder/references/components/cds-file-input/tokens.md +15 -0
  94. package/skills/cds-builder/references/components/cds-file-upload/api.md +296 -0
  95. package/skills/cds-builder/references/components/cds-file-upload/examples.md +411 -0
  96. package/skills/cds-builder/references/components/cds-file-upload/guidelines.md +10 -0
  97. package/skills/cds-builder/references/components/cds-file-upload/tokens.md +50 -0
  98. package/skills/cds-builder/references/components/cds-footer/api.md +35 -0
  99. package/skills/cds-builder/references/components/cds-footer/examples.md +219 -0
  100. package/skills/cds-builder/references/components/cds-footer/guidelines.md +9 -0
  101. package/skills/cds-builder/references/components/cds-footer/tokens.md +14 -0
  102. package/skills/cds-builder/references/components/cds-form/api.md +48 -0
  103. package/skills/cds-builder/references/components/cds-form/examples.md +552 -0
  104. package/skills/cds-builder/references/components/cds-form/guidelines.md +10 -0
  105. package/skills/cds-builder/references/components/cds-form/tokens.md +15 -0
  106. package/skills/cds-builder/references/components/cds-functional-button/api.md +34 -0
  107. package/skills/cds-builder/references/components/cds-functional-button/examples.md +254 -0
  108. package/skills/cds-builder/references/components/cds-functional-button/guidelines.md +10 -0
  109. package/skills/cds-builder/references/components/cds-functional-button/tokens.md +35 -0
  110. package/skills/cds-builder/references/components/cds-grid/api.md +66 -0
  111. package/skills/cds-builder/references/components/cds-grid/examples.md +687 -0
  112. package/skills/cds-builder/references/components/cds-grid/guidelines.md +9 -0
  113. package/skills/cds-builder/references/components/cds-header/api.md +35 -0
  114. package/skills/cds-builder/references/components/cds-header/examples.md +345 -0
  115. package/skills/cds-builder/references/components/cds-header/guidelines.md +9 -0
  116. package/skills/cds-builder/references/components/cds-header/tokens.md +13 -0
  117. package/skills/cds-builder/references/components/cds-highlight/api.md +22 -0
  118. package/skills/cds-builder/references/components/cds-highlight/examples.md +313 -0
  119. package/skills/cds-builder/references/components/cds-highlight/guidelines.md +10 -0
  120. package/skills/cds-builder/references/components/cds-highlight/tokens.md +18 -0
  121. package/skills/cds-builder/references/components/cds-icon/api.md +33 -0
  122. package/skills/cds-builder/references/components/cds-icon/examples.md +272 -0
  123. package/skills/cds-builder/references/components/cds-icon/guidelines.md +10 -0
  124. package/skills/cds-builder/references/components/cds-icon/tokens.md +30 -0
  125. package/skills/cds-builder/references/components/cds-image/api.md +67 -0
  126. package/skills/cds-builder/references/components/cds-image/examples.md +437 -0
  127. package/skills/cds-builder/references/components/cds-image/guidelines.md +10 -0
  128. package/skills/cds-builder/references/components/cds-image/tokens.md +14 -0
  129. package/skills/cds-builder/references/components/cds-input/api.md +80 -0
  130. package/skills/cds-builder/references/components/cds-input/examples.md +205 -0
  131. package/skills/cds-builder/references/components/cds-input/tokens.md +108 -0
  132. package/skills/cds-builder/references/components/cds-label/api.md +25 -0
  133. package/skills/cds-builder/references/components/cds-label/examples.md +72 -0
  134. package/skills/cds-builder/references/components/cds-label/tokens.md +12 -0
  135. package/skills/cds-builder/references/components/cds-layout/api.md +50 -0
  136. package/skills/cds-builder/references/components/cds-layout/examples.md +431 -0
  137. package/skills/cds-builder/references/components/cds-layout/guidelines.md +9 -0
  138. package/skills/cds-builder/references/components/cds-layout/tokens.md +12 -0
  139. package/skills/cds-builder/references/components/cds-link/api.md +33 -0
  140. package/skills/cds-builder/references/components/cds-link/examples.md +195 -0
  141. package/skills/cds-builder/references/components/cds-link/guidelines.md +10 -0
  142. package/skills/cds-builder/references/components/cds-link/tokens.md +16 -0
  143. package/skills/cds-builder/references/components/cds-list/api.md +329 -0
  144. package/skills/cds-builder/references/components/cds-list/examples.md +653 -0
  145. package/skills/cds-builder/references/components/cds-list/guidelines.md +10 -0
  146. package/skills/cds-builder/references/components/cds-list/tokens.md +125 -0
  147. package/skills/cds-builder/references/components/cds-loader/api.md +18 -0
  148. package/skills/cds-builder/references/components/cds-loader/examples.md +59 -0
  149. package/skills/cds-builder/references/components/cds-loader/tokens.md +50 -0
  150. package/skills/cds-builder/references/components/cds-main/api.md +14 -0
  151. package/skills/cds-builder/references/components/cds-main/examples.md +60 -0
  152. package/skills/cds-builder/references/components/cds-menu/api.md +84 -0
  153. package/skills/cds-builder/references/components/cds-menu/examples.md +595 -0
  154. package/skills/cds-builder/references/components/cds-menu/guidelines.md +10 -0
  155. package/skills/cds-builder/references/components/cds-menu/tokens.md +19 -0
  156. package/skills/cds-builder/references/components/cds-messages/api.md +29 -0
  157. package/skills/cds-builder/references/components/cds-messages/examples.md +119 -0
  158. package/skills/cds-builder/references/components/cds-messages/tokens.md +15 -0
  159. package/skills/cds-builder/references/components/cds-modal/api.md +86 -0
  160. package/skills/cds-builder/references/components/cds-modal/examples.md +516 -0
  161. package/skills/cds-builder/references/components/cds-modal/guidelines.md +10 -0
  162. package/skills/cds-builder/references/components/cds-modal/tokens.md +22 -0
  163. package/skills/cds-builder/references/components/cds-notification/api.md +46 -0
  164. package/skills/cds-builder/references/components/cds-notification/examples.md +314 -0
  165. package/skills/cds-builder/references/components/cds-notification/guidelines.md +10 -0
  166. package/skills/cds-builder/references/components/cds-notification/tokens.md +23 -0
  167. package/skills/cds-builder/references/components/cds-notification-alert/api.md +93 -0
  168. package/skills/cds-builder/references/components/cds-notification-alert/examples.md +202 -0
  169. package/skills/cds-builder/references/components/cds-notification-alert/tokens.md +15 -0
  170. package/skills/cds-builder/references/components/cds-otp-input/api.md +106 -0
  171. package/skills/cds-builder/references/components/cds-otp-input/examples.md +329 -0
  172. package/skills/cds-builder/references/components/cds-otp-input/guidelines.md +10 -0
  173. package/skills/cds-builder/references/components/cds-otp-input/tokens.md +41 -0
  174. package/skills/cds-builder/references/components/cds-overlay/api.md +85 -0
  175. package/skills/cds-builder/references/components/cds-overlay/examples.md +409 -0
  176. package/skills/cds-builder/references/components/cds-overlay/guidelines.md +9 -0
  177. package/skills/cds-builder/references/components/cds-overlay/tokens.md +12 -0
  178. package/skills/cds-builder/references/components/cds-page/api.md +21 -0
  179. package/skills/cds-builder/references/components/cds-page/examples.md +123 -0
  180. package/skills/cds-builder/references/components/cds-pagination/api.md +67 -0
  181. package/skills/cds-builder/references/components/cds-pagination/examples.md +320 -0
  182. package/skills/cds-builder/references/components/cds-pagination/guidelines.md +10 -0
  183. package/skills/cds-builder/references/components/cds-pagination/tokens.md +20 -0
  184. package/skills/cds-builder/references/components/cds-progress-bar/api.md +53 -0
  185. package/skills/cds-builder/references/components/cds-progress-bar/examples.md +393 -0
  186. package/skills/cds-builder/references/components/cds-progress-bar/guidelines.md +10 -0
  187. package/skills/cds-builder/references/components/cds-progress-bar/tokens.md +33 -0
  188. package/skills/cds-builder/references/components/cds-progress-circle/api.md +30 -0
  189. package/skills/cds-builder/references/components/cds-progress-circle/examples.md +326 -0
  190. package/skills/cds-builder/references/components/cds-progress-circle/guidelines.md +10 -0
  191. package/skills/cds-builder/references/components/cds-progress-circle/tokens.md +31 -0
  192. package/skills/cds-builder/references/components/cds-radio/api.md +47 -0
  193. package/skills/cds-builder/references/components/cds-radio/tokens.md +36 -0
  194. package/skills/cds-builder/references/components/cds-radio-group/api.md +87 -0
  195. package/skills/cds-builder/references/components/cds-radio-group/examples.md +320 -0
  196. package/skills/cds-builder/references/components/cds-radio-group/guidelines.md +10 -0
  197. package/skills/cds-builder/references/components/cds-radio-group/tokens.md +14 -0
  198. package/skills/cds-builder/references/components/cds-responsive/api.md +29 -0
  199. package/skills/cds-builder/references/components/cds-responsive/examples.md +271 -0
  200. package/skills/cds-builder/references/components/cds-responsive/guidelines.md +10 -0
  201. package/skills/cds-builder/references/components/cds-responsive/tokens.md +13 -0
  202. package/skills/cds-builder/references/components/cds-select/api.md +155 -0
  203. package/skills/cds-builder/references/components/cds-select/examples.md +794 -0
  204. package/skills/cds-builder/references/components/cds-select/guidelines.md +10 -0
  205. package/skills/cds-builder/references/components/cds-select/tokens.md +17 -0
  206. package/skills/cds-builder/references/components/cds-selection-control/api.md +60 -0
  207. package/skills/cds-builder/references/components/cds-selection-control/examples.md +468 -0
  208. package/skills/cds-builder/references/components/cds-selection-control-group/api.md +45 -0
  209. package/skills/cds-builder/references/components/cds-selection-control-group/examples.md +349 -0
  210. package/skills/cds-builder/references/components/cds-skeleton-loader/api.md +30 -0
  211. package/skills/cds-builder/references/components/cds-skeleton-loader/examples.md +297 -0
  212. package/skills/cds-builder/references/components/cds-skeleton-loader/guidelines.md +10 -0
  213. package/skills/cds-builder/references/components/cds-skeleton-loader/tokens.md +62 -0
  214. package/skills/cds-builder/references/components/cds-slide-group/api.md +76 -0
  215. package/skills/cds-builder/references/components/cds-slide-group/examples.md +304 -0
  216. package/skills/cds-builder/references/components/cds-slide-group/guidelines.md +9 -0
  217. package/skills/cds-builder/references/components/cds-slide-group/tokens.md +11 -0
  218. package/skills/cds-builder/references/components/cds-slide-view/api.md +88 -0
  219. package/skills/cds-builder/references/components/cds-slide-view/examples.md +311 -0
  220. package/skills/cds-builder/references/components/cds-slide-view/guidelines.md +9 -0
  221. package/skills/cds-builder/references/components/cds-slide-view/tokens.md +14 -0
  222. package/skills/cds-builder/references/components/cds-stages/api.md +31 -0
  223. package/skills/cds-builder/references/components/cds-stages/examples.md +230 -0
  224. package/skills/cds-builder/references/components/cds-stages/guidelines.md +10 -0
  225. package/skills/cds-builder/references/components/cds-stages/tokens.md +27 -0
  226. package/skills/cds-builder/references/components/cds-status/api.md +24 -0
  227. package/skills/cds-builder/references/components/cds-status/examples.md +170 -0
  228. package/skills/cds-builder/references/components/cds-status/guidelines.md +10 -0
  229. package/skills/cds-builder/references/components/cds-status/tokens.md +17 -0
  230. package/skills/cds-builder/references/components/cds-steps/api.md +176 -0
  231. package/skills/cds-builder/references/components/cds-steps/examples.md +320 -0
  232. package/skills/cds-builder/references/components/cds-steps/guidelines.md +10 -0
  233. package/skills/cds-builder/references/components/cds-steps/tokens.md +52 -0
  234. package/skills/cds-builder/references/components/cds-surface/api.md +30 -0
  235. package/skills/cds-builder/references/components/cds-surface/examples.md +106 -0
  236. package/skills/cds-builder/references/components/cds-table/api.md +120 -0
  237. package/skills/cds-builder/references/components/cds-table/examples.md +3049 -0
  238. package/skills/cds-builder/references/components/cds-table/guidelines.md +10 -0
  239. package/skills/cds-builder/references/components/cds-table/tokens.md +92 -0
  240. package/skills/cds-builder/references/components/cds-tabs/api.md +179 -0
  241. package/skills/cds-builder/references/components/cds-tabs/examples.md +610 -0
  242. package/skills/cds-builder/references/components/cds-tabs/guidelines.md +10 -0
  243. package/skills/cds-builder/references/components/cds-tabs/tokens.md +40 -0
  244. package/skills/cds-builder/references/components/cds-tag/api.md +64 -0
  245. package/skills/cds-builder/references/components/cds-tag/examples.md +278 -0
  246. package/skills/cds-builder/references/components/cds-tag/guidelines.md +10 -0
  247. package/skills/cds-builder/references/components/cds-tag/tokens.md +67 -0
  248. package/skills/cds-builder/references/components/cds-tag-group/api.md +58 -0
  249. package/skills/cds-builder/references/components/cds-tag-group/examples.md +346 -0
  250. package/skills/cds-builder/references/components/cds-tag-group/guidelines.md +10 -0
  251. package/skills/cds-builder/references/components/cds-tag-group/tokens.md +18 -0
  252. package/skills/cds-builder/references/components/cds-text-area/api.md +113 -0
  253. package/skills/cds-builder/references/components/cds-text-area/examples.md +327 -0
  254. package/skills/cds-builder/references/components/cds-text-area/guidelines.md +10 -0
  255. package/skills/cds-builder/references/components/cds-text-area/tokens.md +16 -0
  256. package/skills/cds-builder/references/components/cds-text-input/api.md +115 -0
  257. package/skills/cds-builder/references/components/cds-text-input/examples.md +546 -0
  258. package/skills/cds-builder/references/components/cds-text-input/guidelines.md +10 -0
  259. package/skills/cds-builder/references/components/cds-text-input/tokens.md +17 -0
  260. package/skills/cds-builder/references/components/cds-time-picker/api.md +44 -0
  261. package/skills/cds-builder/references/components/cds-time-picker/examples.md +407 -0
  262. package/skills/cds-builder/references/components/cds-time-picker/guidelines.md +10 -0
  263. package/skills/cds-builder/references/components/cds-time-picker/tokens.md +23 -0
  264. package/skills/cds-builder/references/components/cds-toast/api.md +97 -0
  265. package/skills/cds-builder/references/components/cds-toast/examples.md +296 -0
  266. package/skills/cds-builder/references/components/cds-toast/guidelines.md +10 -0
  267. package/skills/cds-builder/references/components/cds-toast/tokens.md +26 -0
  268. package/skills/cds-builder/references/components/cds-toast-queue/api.md +86 -0
  269. package/skills/cds-builder/references/components/cds-toast-queue/examples.md +227 -0
  270. package/skills/cds-builder/references/components/cds-toggle/api.md +97 -0
  271. package/skills/cds-builder/references/components/cds-toggle/examples.md +335 -0
  272. package/skills/cds-builder/references/components/cds-toggle/guidelines.md +10 -0
  273. package/skills/cds-builder/references/components/cds-toggle/tokens.md +91 -0
  274. package/skills/cds-builder/references/components/cds-toolbar/api.md +44 -0
  275. package/skills/cds-builder/references/components/cds-toolbar/examples.md +186 -0
  276. package/skills/cds-builder/references/components/cds-toolbar/guidelines.md +9 -0
  277. package/skills/cds-builder/references/components/cds-toolbar/tokens.md +13 -0
  278. package/skills/cds-builder/references/components/cds-tooltip/api.md +83 -0
  279. package/skills/cds-builder/references/components/cds-tooltip/examples.md +321 -0
  280. package/skills/cds-builder/references/components/cds-tooltip/guidelines.md +10 -0
  281. package/skills/cds-builder/references/components/cds-tooltip/tokens.md +25 -0
  282. package/skills/cds-builder/references/components/cds-tree/api.md +169 -0
  283. package/skills/cds-builder/references/components/cds-tree/examples.md +785 -0
  284. package/skills/cds-builder/references/components/cds-tree/guidelines.md +10 -0
  285. package/skills/cds-builder/references/components/cds-tree/tokens.md +39 -0
  286. package/skills/cds-builder/references/components/cds-uploader/api.md +105 -0
  287. package/skills/cds-builder/references/components/cds-uploader/examples.md +553 -0
  288. package/skills/cds-builder/references/components/cds-uploader/guidelines.md +10 -0
  289. package/skills/cds-builder/references/components/cds-uploader/tokens.md +26 -0
  290. package/skills/cds-builder/references/components/cds-virtual-scroll/api.md +60 -0
  291. package/skills/cds-builder/references/components/cds-virtual-scroll/examples.md +272 -0
  292. package/skills/cds-builder/references/components/cds-virtual-scroll/guidelines.md +9 -0
  293. package/skills/cds-builder/references/components/cds-virtual-scroll/tokens.md +13 -0
  294. package/skills/cds-builder/references/guides/conventions.md +48 -0
  295. package/skills/cds-builder/references/guides/date-utils.md +301 -0
  296. package/skills/cds-builder/references/guides/display-and-platform.md +263 -0
  297. package/skills/cds-builder/references/guides/forms.md +77 -0
  298. package/skills/cds-builder/references/guides/global-configuration.md +354 -0
  299. package/skills/cds-builder/references/guides/icons.md +172 -0
  300. package/skills/cds-builder/references/guides/internationalization.md +470 -0
  301. package/skills/cds-builder/references/guides/migration-cds3-to-cds4.md +49 -0
  302. package/skills/cds-builder/references/guides/sass-variables.md +238 -0
  303. package/skills/cds-builder/references/guides/setup.md +81 -0
  304. package/skills/cds-builder/references/guides/tailwindcss.md +93 -0
  305. package/skills/cds-builder/references/guides/theme.md +343 -0
  306. package/skills/cds-builder/references/guides/treeshaking.md +237 -0
  307. package/skills/cds-builder/references/patterns/dialogs.md +89 -0
  308. package/skills/cds-builder/references/patterns/forms.md +101 -0
  309. package/skills/cds-builder/references/patterns/page-layout.md +78 -0
  310. package/skills/cds-builder/references/patterns/tables.md +87 -0
  311. package/skills/cds-builder/references/tokens/colors.md +507 -0
  312. package/skills/cds-builder/references/tokens/themes.md +981 -0
  313. package/skills/cds-builder/scripts/check-contracts.mjs +264 -0
  314. package/skills/cds-migrate/GENERATION.md +44 -0
  315. package/skills/cds-migrate/SKILL.md +160 -0
  316. package/skills/cds-migrate/references/migration-full.md +2225 -0
  317. package/skills/cds-refactor/GENERATION.md +44 -0
  318. package/skills/cds-refactor/SKILL.md +187 -0
  319. package/skills/cds-refactor/references/html-to-cds.md +80 -0
  320. package/skills/cds-refactor/references/review-checklist.md +73 -0
  321. package/skills/cds-refactor/references/tailwind-to-cds.md +65 -0
@@ -0,0 +1,687 @@
1
+ # CdsGrid — usage examples
2
+
3
+ > Extracted from Storybook stories (`docs/*.stories.ts`) by `bun run generate:skill`. Do not edit manually.
4
+ > The full component contract is in [api.md](api.md). `v-bind="args"` in templates refers to the props from the **Args** block of the corresponding example.
5
+
6
+ A responsive modular grid: `CdsGrid`, `CdsRow` and `CdsCol` lay the content out in columns — from 4 on a phone to 16 on wide screens. The grid works in two modes — Flexbox (the default) and CSS Grid — and the whole markup is also available as ready-made CSS classes, without a single component.
7
+
8
+ ## Columns and breakpoints
9
+
10
+ The width of a column is set by the `xs`–`xl` breakpoint props: the number says how many grid columns `CdsCol` takes starting from that breakpoint. The values work "bottom-up": `md="4"` applies to `md` and wider.
11
+
12
+ **Example (SFC):**
13
+
14
+ ```vue
15
+ <script setup lang="ts">
16
+ import { CdsCol, CdsGrid, CdsRow } from '@central-design-system/components';
17
+ </script>
18
+
19
+ <template>
20
+ <CdsGrid class="grid-demo">
21
+ <CdsRow>
22
+ <CdsCol :md="4"><div class="cell">md: 4</div></CdsCol>
23
+ <CdsCol :md="4"><div class="cell">md: 4</div></CdsCol>
24
+ <CdsCol :md="4"><div class="cell">md: 4</div></CdsCol>
25
+ <CdsCol :md="4"><div class="cell">md: 4</div></CdsCol>
26
+ </CdsRow>
27
+ </CdsGrid>
28
+ </template>
29
+
30
+ <style scoped>
31
+ .grid-demo {
32
+ background-color: rgb(var(--cds-color-status-progress-fill));
33
+ }
34
+
35
+ .cell {
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ min-height: 48px;
40
+ font-size: 12px;
41
+ color: rgb(var(--cds-color-content-secondary));
42
+ background-color: rgb(var(--cds-color-surface-primary));
43
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-status-progress-line));
44
+ }
45
+ </style>
46
+ ```
47
+
48
+ ## Columns and breakpoints
49
+
50
+ Combine the breakpoints to describe the behavior of the layout on every screen: here each column takes half of the row on a phone and a quarter starting from a tablet. The value `0` hides the column on a breakpoint.
51
+
52
+ **Example (SFC):**
53
+
54
+ ```vue
55
+ <script setup lang="ts">
56
+ import { CdsCol, CdsGrid, CdsRow } from '@central-design-system/components';
57
+ </script>
58
+
59
+ <template>
60
+ <CdsGrid class="grid-demo">
61
+ <CdsRow>
62
+ <CdsCol :xs="2" :sm="2" :md="4"><div class="cell">xs: 2 · sm: 2 · md: 4</div></CdsCol>
63
+ <CdsCol :xs="2" :sm="2" :md="4"><div class="cell">xs: 2 · sm: 2 · md: 4</div></CdsCol>
64
+ <CdsCol :xs="2" :sm="2" :md="4"><div class="cell">xs: 2 · sm: 2 · md: 4</div></CdsCol>
65
+ <CdsCol :xs="2" :sm="2" :md="4"><div class="cell">xs: 2 · sm: 2 · md: 4</div></CdsCol>
66
+ </CdsRow>
67
+ </CdsGrid>
68
+ </template>
69
+
70
+ <style scoped>
71
+ .grid-demo {
72
+ background-color: rgb(var(--cds-color-status-progress-fill));
73
+ }
74
+
75
+ .cell {
76
+ display: flex;
77
+ align-items: center;
78
+ justify-content: center;
79
+ min-height: 48px;
80
+ font-size: 12px;
81
+ color: rgb(var(--cds-color-content-secondary));
82
+ background-color: rgb(var(--cds-color-surface-primary));
83
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-status-progress-line));
84
+ }
85
+ </style>
86
+ ```
87
+
88
+ ## Automatic columns
89
+
90
+ A `CdsCol` without breakpoint props splits the row evenly with its neighbors: one column takes the whole width, four take a quarter each. Handy when the shares are equal and there is no point in recalculating them per breakpoint. Works in Flexbox mode only.
91
+
92
+ **Example (SFC):**
93
+
94
+ ```vue
95
+ <script setup lang="ts">
96
+ import { CdsCol, CdsGrid, CdsRow } from '@central-design-system/components';
97
+ </script>
98
+
99
+ <template>
100
+ <CdsGrid class="grid-demo">
101
+ <CdsRow class="cds-row-padding">
102
+ <CdsCol><div class="cell">1 из 1</div></CdsCol>
103
+ </CdsRow>
104
+ <CdsRow class="cds-row-padding">
105
+ <CdsCol><div class="cell">1 из 2</div></CdsCol>
106
+ <CdsCol><div class="cell">2 из 2</div></CdsCol>
107
+ </CdsRow>
108
+ <CdsRow class="cds-row-padding">
109
+ <CdsCol><div class="cell">1 из 4</div></CdsCol>
110
+ <CdsCol><div class="cell">2 из 4</div></CdsCol>
111
+ <CdsCol><div class="cell">3 из 4</div></CdsCol>
112
+ <CdsCol><div class="cell">4 из 4</div></CdsCol>
113
+ </CdsRow>
114
+ </CdsGrid>
115
+ </template>
116
+
117
+ <style scoped>
118
+ .grid-demo {
119
+ background-color: rgb(var(--cds-color-status-progress-fill));
120
+ }
121
+
122
+ .cell {
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: center;
126
+ min-height: 48px;
127
+ font-size: 12px;
128
+ color: rgb(var(--cds-color-content-secondary));
129
+ background-color: rgb(var(--cds-color-surface-primary));
130
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-status-progress-line));
131
+ }
132
+ </style>
133
+ ```
134
+
135
+ ## Grid modes
136
+
137
+ The `narrow` and `condensed` props shrink the gap between the columns from 32px to 16px and 1px respectively. `CdsRow` has the same props — that is how the modes are mixed inside one grid. The `wide` prop removes the maximum width limit (1584px) and stretches the grid across the whole container.
138
+
139
+ **Example (SFC):**
140
+
141
+ ```vue
142
+ <script setup lang="ts">
143
+ import { CdsCol, CdsGrid, CdsRow } from '@central-design-system/components';
144
+ </script>
145
+
146
+ <template>
147
+ <div class="flex flex-col gap-3">
148
+ <div>
149
+ <p class="caption">По умолчанию — отступ между колонками 32px</p>
150
+ <CdsGrid class="grid-wide">
151
+ <CdsRow>
152
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
153
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
154
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
155
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
156
+ </CdsRow>
157
+ </CdsGrid>
158
+ </div>
159
+ <div>
160
+ <p class="caption">narrow — отступ 16px</p>
161
+ <CdsGrid narrow class="grid-narrow">
162
+ <CdsRow>
163
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
164
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
165
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
166
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
167
+ </CdsRow>
168
+ </CdsGrid>
169
+ </div>
170
+ <div>
171
+ <p class="caption">condensed — отступ 1px</p>
172
+ <CdsGrid condensed class="grid-condensed">
173
+ <CdsRow>
174
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
175
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
176
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
177
+ <CdsCol :md="4"><div class="cell" /></CdsCol>
178
+ </CdsRow>
179
+ </CdsGrid>
180
+ </div>
181
+ </div>
182
+ </template>
183
+
184
+ <style scoped>
185
+ .caption {
186
+ margin-bottom: 8px;
187
+ font-size: 12px;
188
+ color: rgb(var(--cds-color-content-secondary));
189
+ }
190
+
191
+ /* Фон сетки подсвечивает отступы; у каждого вида — свой цвет, как в гайдах CDS 3 */
192
+ .grid-wide {
193
+ background-color: rgb(var(--cds-color-status-progress-fill));
194
+ }
195
+
196
+ .grid-narrow {
197
+ background-color: rgb(var(--cds-color-other-teal-fill));
198
+ }
199
+
200
+ .grid-condensed {
201
+ background-color: rgb(var(--cds-color-other-purple-fill));
202
+ }
203
+
204
+ .cell {
205
+ min-height: 48px;
206
+ background-color: rgb(var(--cds-color-surface-primary));
207
+ }
208
+
209
+ .grid-wide .cell {
210
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-status-progress-line));
211
+ }
212
+
213
+ .grid-narrow .cell {
214
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-other-teal-line));
215
+ }
216
+
217
+ .grid-condensed .cell {
218
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-other-purple-line));
219
+ }
220
+ </style>
221
+ ```
222
+
223
+ ## Offset and order
224
+
225
+ Instead of a number, a breakpoint prop can take an object. The `span` key sets the width, `offset` shifts the column to the right by the given number of columns.
226
+
227
+ **Example (SFC):**
228
+
229
+ ```vue
230
+ <script setup lang="ts">
231
+ import { CdsCol, CdsGrid, CdsRow } from '@central-design-system/components';
232
+ </script>
233
+
234
+ <template>
235
+ <CdsGrid class="grid-demo">
236
+ <CdsRow class="cds-row-padding">
237
+ <CdsCol :md="{ span: 4, offset: 12 }"><div class="cell">offset: 12</div></CdsCol>
238
+ </CdsRow>
239
+ <CdsRow class="cds-row-padding">
240
+ <CdsCol :md="{ span: 8, offset: 8 }"><div class="cell">offset: 8</div></CdsCol>
241
+ </CdsRow>
242
+ <CdsRow class="cds-row-padding">
243
+ <CdsCol :md="{ span: 12, offset: 4 }"><div class="cell">offset: 4</div></CdsCol>
244
+ </CdsRow>
245
+ <CdsRow class="cds-row-padding">
246
+ <CdsCol :md="16"><div class="cell">offset: 0</div></CdsCol>
247
+ </CdsRow>
248
+ </CdsGrid>
249
+ </template>
250
+
251
+ <style scoped>
252
+ .grid-demo {
253
+ background-color: rgb(var(--cds-color-status-progress-fill));
254
+ }
255
+
256
+ .cell {
257
+ display: flex;
258
+ align-items: center;
259
+ justify-content: center;
260
+ min-height: 48px;
261
+ font-size: 12px;
262
+ color: rgb(var(--cds-color-content-secondary));
263
+ background-color: rgb(var(--cds-color-surface-primary));
264
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-status-progress-line));
265
+ }
266
+ </style>
267
+ ```
268
+
269
+ ## Offset and order
270
+
271
+ The `order` key changes the visual order of the columns without touching the markup — to show the columns on a desktop in a different sequence than in the DOM, for example. Works in Flexbox mode only.
272
+
273
+ **Example (SFC):**
274
+
275
+ ```vue
276
+ <script setup lang="ts">
277
+ import { CdsCol, CdsGrid, CdsRow } from '@central-design-system/components';
278
+ </script>
279
+
280
+ <template>
281
+ <CdsGrid class="grid-demo">
282
+ <CdsRow>
283
+ <CdsCol :md="{ span: 8, order: 3 }"><div class="cell">1-я в разметке · order: 3</div></CdsCol>
284
+ <CdsCol :md="{ span: 4, order: 1 }"><div class="cell">2-я · order: 1</div></CdsCol>
285
+ <CdsCol :md="{ span: 4, order: 2 }"><div class="cell">3-я · order: 2</div></CdsCol>
286
+ </CdsRow>
287
+ </CdsGrid>
288
+ </template>
289
+
290
+ <style scoped>
291
+ .grid-demo {
292
+ background-color: rgb(var(--cds-color-status-progress-fill));
293
+ }
294
+
295
+ .cell {
296
+ display: flex;
297
+ align-items: center;
298
+ justify-content: center;
299
+ min-height: 48px;
300
+ font-size: 12px;
301
+ color: rgb(var(--cds-color-content-secondary));
302
+ background-color: rgb(var(--cds-color-surface-primary));
303
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-status-progress-line));
304
+ }
305
+ </style>
306
+ ```
307
+
308
+ ## CSS Grid mode
309
+
310
+ In CSS Grid mode the columns go straight into `CdsGrid` — without `CdsRow`: the grid wraps them onto a new line itself when the row is full.
311
+
312
+ **Example (SFC):**
313
+
314
+ ```vue
315
+ <script setup lang="ts">
316
+ import { CdsCol, CdsGrid, CssGridSymbol } from '@central-design-system/components';
317
+ import { provide } from 'vue';
318
+
319
+ // В приложении режим включается один раз: createCds({ cssGrid: true })
320
+ provide(CssGridSymbol, true);
321
+ </script>
322
+
323
+ <template>
324
+ <CdsGrid class="grid-demo">
325
+ <CdsCol :xs="2" :md="4"><div class="cell">xs: 2 · md: 4</div></CdsCol>
326
+ <CdsCol :xs="2" :md="4"><div class="cell">xs: 2 · md: 4</div></CdsCol>
327
+ <CdsCol :xs="2" :md="4"><div class="cell">xs: 2 · md: 4</div></CdsCol>
328
+ <CdsCol :xs="2" :md="4"><div class="cell">xs: 2 · md: 4</div></CdsCol>
329
+ </CdsGrid>
330
+ </template>
331
+
332
+ <style scoped>
333
+ .grid-demo {
334
+ background-color: rgb(var(--cds-color-status-progress-fill));
335
+ }
336
+
337
+ .cell {
338
+ display: flex;
339
+ align-items: center;
340
+ justify-content: center;
341
+ min-height: 48px;
342
+ font-size: 12px;
343
+ color: rgb(var(--cds-color-content-secondary));
344
+ background-color: rgb(var(--cds-color-surface-primary));
345
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-status-progress-line));
346
+ }
347
+ </style>
348
+ ```
349
+
350
+ ## CSS Grid mode
351
+
352
+ A nested grid with the `subgrid` prop inherits the columns of its parent: put it inside a `CdsCol` and its columns line up exactly with the lines of the outer grid. The `narrow` and `condensed` modes of a nested grid work independently from the root one.
353
+
354
+ **Example (SFC):**
355
+
356
+ ```vue
357
+ <script setup lang="ts">
358
+ import { CdsCol, CdsGrid, CssGridSymbol } from '@central-design-system/components';
359
+ import { provide } from 'vue';
360
+
361
+ // В приложении режим включается один раз: createCds({ cssGrid: true })
362
+ provide(CssGridSymbol, true);
363
+ </script>
364
+
365
+ <template>
366
+ <CdsGrid class="grid-demo">
367
+ <CdsCol :md="4"><div class="cell">md: 4</div></CdsCol>
368
+ <CdsCol :md="12">
369
+ <CdsGrid subgrid class="subgrid-demo">
370
+ <CdsCol :md="4"><div class="cell cell--nested">md: 4</div></CdsCol>
371
+ <CdsCol :md="4"><div class="cell cell--nested">md: 4</div></CdsCol>
372
+ <CdsCol :md="4"><div class="cell cell--nested">md: 4</div></CdsCol>
373
+ </CdsGrid>
374
+ </CdsCol>
375
+ </CdsGrid>
376
+ </template>
377
+
378
+ <style scoped>
379
+ /* Фон подсвечивает отступы; у вложенной сетки — свой цвет, чтобы видеть её границы */
380
+ .grid-demo {
381
+ background-color: rgb(var(--cds-color-status-progress-fill));
382
+ }
383
+
384
+ .subgrid-demo {
385
+ background-color: rgb(var(--cds-color-other-purple-fill));
386
+ }
387
+
388
+ .cell {
389
+ display: flex;
390
+ align-items: center;
391
+ justify-content: center;
392
+ min-height: 48px;
393
+ font-size: 12px;
394
+ color: rgb(var(--cds-color-content-secondary));
395
+ background-color: rgb(var(--cds-color-surface-primary));
396
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-status-progress-line));
397
+ }
398
+
399
+ .cell--nested {
400
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-other-purple-line));
401
+ }
402
+ </style>
403
+ ```
404
+
405
+ ## CSS Grid mode
406
+
407
+ A column can be positioned explicitly: in a breakpoint object `start` and `end` set the starting and the ending grid line, and the `span` prop fixes the range for all breakpoints at once — as a number or as a share: `'25%'`, `'50%'`, `'75%'`, `'100%'`.
408
+
409
+ **Example (SFC):**
410
+
411
+ ```vue
412
+ <script setup lang="ts">
413
+ import { CdsCol, CdsGrid, CssGridSymbol } from '@central-design-system/components';
414
+ import { provide } from 'vue';
415
+
416
+ // В приложении режим включается один раз: createCds({ cssGrid: true })
417
+ provide(CssGridSymbol, true);
418
+ </script>
419
+
420
+ <template>
421
+ <CdsGrid class="grid-demo">
422
+ <CdsCol :span="8"><div class="cell">span: 8 — на любом брейкпоинте</div></CdsCol>
423
+ <CdsCol :md="{ start: 5, span: 8 }"><div class="cell">start: 5 · span: 8</div></CdsCol>
424
+ <CdsCol :md="{ start: 9, end: 17 }"><div class="cell">start: 9 · end: 17</div></CdsCol>
425
+ <CdsCol md="50%"><div class="cell">md: 50%</div></CdsCol>
426
+ </CdsGrid>
427
+ </template>
428
+
429
+ <style scoped>
430
+ .grid-demo {
431
+ background-color: rgb(var(--cds-color-status-progress-fill));
432
+ }
433
+
434
+ .cell {
435
+ display: flex;
436
+ align-items: center;
437
+ justify-content: center;
438
+ min-height: 48px;
439
+ font-size: 12px;
440
+ color: rgb(var(--cds-color-content-secondary));
441
+ background-color: rgb(var(--cds-color-surface-primary));
442
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-status-progress-line));
443
+ }
444
+ </style>
445
+ ```
446
+
447
+ ## CSS classes
448
+
449
+ The whole grid is duplicated with utility classes — lay a layout out without Vue components: in emails, on static pages or inside somebody else's code. The components generate the same classes, so both ways mix freely.
450
+
451
+ **Example (SFC):**
452
+
453
+ ```vue
454
+ <template>
455
+ <div class="cds-grid grid-demo">
456
+ <div class="cds-row">
457
+ <div class="cds-col-xs-2 cds-col-md-4"><div class="cell">cds-col-md-4</div></div>
458
+ <div class="cds-col-xs-2 cds-col-md-4"><div class="cell">cds-col-md-4</div></div>
459
+ <div class="cds-col-xs-2 cds-col-md-8"><div class="cell">cds-col-md-8</div></div>
460
+ </div>
461
+ </div>
462
+ </template>
463
+
464
+ <style scoped>
465
+ .grid-demo {
466
+ background-color: rgb(var(--cds-color-status-progress-fill));
467
+ }
468
+
469
+ .cell {
470
+ display: flex;
471
+ align-items: center;
472
+ justify-content: center;
473
+ min-height: 48px;
474
+ font-size: 12px;
475
+ color: rgb(var(--cds-color-content-secondary));
476
+ background-color: rgb(var(--cds-color-surface-primary));
477
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-status-progress-line));
478
+ }
479
+ </style>
480
+ ```
481
+
482
+ ## CSS classes
483
+
484
+ The `cds-no-gutter` and `cds-no-gutter--start` / `cds-no-gutter--end` classes remove the paddings of the columns — for the whole row or on one side. Their counterparts `cds-hang--start` / `cds-hang--end` give the padding back to the content when it has to be aligned to the modular grid.
485
+
486
+ **Example (SFC):**
487
+
488
+ ```vue
489
+ <script setup lang="ts">
490
+ import { CdsCol, CdsGrid, CdsRow } from '@central-design-system/components';
491
+ </script>
492
+
493
+ <template>
494
+ <CdsGrid class="grid-demo">
495
+ <CdsRow class="cds-row-padding">
496
+ <CdsCol :md="8"><div class="cell">с отступами</div></CdsCol>
497
+ <CdsCol :md="8"><div class="cell">с отступами</div></CdsCol>
498
+ </CdsRow>
499
+ <CdsRow class="cds-no-gutter cds-row-padding">
500
+ <CdsCol :md="8"><div class="cell">cds-no-gutter</div></CdsCol>
501
+ <CdsCol :md="8"><div class="cell">cds-no-gutter</div></CdsCol>
502
+ </CdsRow>
503
+ <CdsRow class="cds-no-gutter--start cds-row-padding">
504
+ <CdsCol :md="8"><div class="cell">cds-no-gutter--start</div></CdsCol>
505
+ <CdsCol :md="8"><div class="cell">cds-no-gutter--start</div></CdsCol>
506
+ </CdsRow>
507
+ </CdsGrid>
508
+ </template>
509
+
510
+ <style scoped>
511
+ .grid-demo {
512
+ background-color: rgb(var(--cds-color-status-progress-fill));
513
+ }
514
+
515
+ .cell {
516
+ display: flex;
517
+ align-items: center;
518
+ justify-content: center;
519
+ min-height: 48px;
520
+ font-size: 12px;
521
+ color: rgb(var(--cds-color-content-secondary));
522
+ background-color: rgb(var(--cds-color-surface-primary));
523
+ box-shadow: 0 0 0 1px rgb(var(--cds-color-status-progress-line));
524
+ }
525
+ </style>
526
+ ```
527
+
528
+ ## Card tiles
529
+
530
+ A showcase of reports: on a phone the cards go in a column, on a tablet two per row, on a wide screen four in a row. The `cds-row-padding` class gives the vertical gap between the rows of the tiles.
531
+
532
+ **Example (SFC):**
533
+
534
+ ```vue
535
+ <script setup lang="ts">
536
+ import { CdsCard, CdsCol, CdsGrid, CdsRow } from '@central-design-system/components';
537
+
538
+ const reports = [
539
+ { title: 'Продажи', text: 'Выручка и динамика по месяцам' },
540
+ { title: 'Склад', text: 'Остатки и оборачиваемость' },
541
+ { title: 'Клиенты', text: 'Новые и повторные заказы' },
542
+ { title: 'Финансы', text: 'Платежи и задолженность' }
543
+ ];
544
+ </script>
545
+
546
+ <template>
547
+ <CdsGrid>
548
+ <CdsRow class="cds-row-padding">
549
+ <CdsCol v-for="report in reports" :key="report.title" :xs="4" :sm="4" :md="8" :lg="4">
550
+ <CdsCard :title="report.title" :text="report.text" height="100%" />
551
+ </CdsCol>
552
+ </CdsRow>
553
+ </CdsGrid>
554
+ </template>
555
+ ```
556
+
557
+ ## Two-column form
558
+
559
+ The grid lays out the fields of a form: the paired fields (`sm="4" md="8"`) split the row in half starting from a tablet, while the comment and the buttons take the whole row. On a phone everything folds into a single column with no extra conditions. The vertical rhythm comes from the `py-1` utility classes on the columns — tighter than `cds-row-padding` — and `hide-details` on the controls removes the reserved area for messages.
560
+
561
+ **Example (SFC):**
562
+
563
+ ```vue
564
+ <script setup lang="ts">
565
+ import {
566
+ CdsButton,
567
+ CdsCol,
568
+ CdsForm,
569
+ CdsGrid,
570
+ CdsRow,
571
+ CdsSelect,
572
+ CdsTextArea,
573
+ CdsTextInput
574
+ } from '@central-design-system/components';
575
+ import { ref } from 'vue';
576
+
577
+ const name = ref('');
578
+ const surname = ref('');
579
+ const email = ref('');
580
+ const phone = ref('');
581
+ const company = ref('');
582
+ const city = ref<string>();
583
+ const comment = ref('');
584
+ </script>
585
+
586
+ <template>
587
+ <CdsForm>
588
+ <CdsGrid>
589
+ <CdsRow>
590
+ <CdsCol class="py-1" :sm="4" :md="8">
591
+ <CdsTextInput v-model="name" label="Имя" placeholder="Иван" />
592
+ </CdsCol>
593
+ <CdsCol class="py-1" :sm="4" :md="8">
594
+ <CdsTextInput v-model="surname" label="Фамилия" placeholder="Петров" />
595
+ </CdsCol>
596
+ <CdsCol class="py-1" :sm="4" :md="8">
597
+ <CdsTextInput v-model="email" label="Рабочая почта" placeholder="ivan@company.ru" type="email" />
598
+ </CdsCol>
599
+ <CdsCol class="py-1" :sm="4" :md="8">
600
+ <CdsTextInput v-model="phone" label="Телефон" placeholder="+7 912 345-67-89" type="tel" />
601
+ </CdsCol>
602
+ <CdsCol class="py-1" :sm="4" :md="8">
603
+ <CdsTextInput v-model="company" label="Компания" placeholder="«Северный ветер»" />
604
+ </CdsCol>
605
+ <CdsCol class="py-1" :sm="4" :md="8">
606
+ <CdsSelect
607
+ v-model="city"
608
+ label="Город"
609
+ placeholder="Выберите город"
610
+ :items="['Москва', 'Санкт-Петербург', 'Екатеринбург', 'Новосибирск']"
611
+ />
612
+ </CdsCol>
613
+ <CdsCol class="py-1" :sm="8" :md="16">
614
+ <CdsTextArea v-model="comment" label="Комментарий" placeholder="Чем мы можем помочь?" :rows="3" />
615
+ </CdsCol>
616
+ <CdsCol class="py-1" :sm="8" :md="16">
617
+ <div class="flex gap-3">
618
+ <CdsButton type="submit" text="Отправить заявку" />
619
+ <CdsButton appearance="tertiary" text="Очистить" />
620
+ </div>
621
+ </CdsCol>
622
+ </CdsRow>
623
+ </CdsGrid>
624
+ </CdsForm>
625
+ </template>
626
+ ```
627
+
628
+ ## List with filters
629
+
630
+ The classic "filters on the left, results on the right" proportion: the panel takes 4 columns, the list takes 12. On a phone and a tablet the filters stand above the list — that is what the full-width `xs` and `sm` values are for.
631
+
632
+ **Example (SFC):**
633
+
634
+ ```vue
635
+ <script setup lang="ts">
636
+ import {
637
+ CdsCard,
638
+ CdsCheckbox,
639
+ CdsCol,
640
+ CdsGrid,
641
+ CdsRow,
642
+ CdsSelect,
643
+ CdsTextInput
644
+ } from '@central-design-system/components';
645
+ import { computed, ref } from 'vue';
646
+
647
+ const documents = [
648
+ { title: 'Договор поставки № 114', subtitle: 'Подписан · 12 июля', signed: true },
649
+ { title: 'Акт сверки за июнь', subtitle: 'Черновик · 3 июля', signed: false },
650
+ { title: 'Счёт № 2087', subtitle: 'Подписан · 28 июня', signed: true }
651
+ ];
652
+
653
+ const query = ref('');
654
+ const onlySigned = ref(false);
655
+
656
+ const filtered = computed(() =>
657
+ documents.filter(
658
+ (document) =>
659
+ document.title.toLowerCase().includes(query.value.toLowerCase()) && (!onlySigned.value || document.signed)
660
+ )
661
+ );
662
+ </script>
663
+
664
+ <template>
665
+ <CdsGrid>
666
+ <CdsRow>
667
+ <CdsCol :xs="4" :sm="8" :md="4">
668
+ <div class="flex flex-col gap-2">
669
+ <CdsTextInput v-model="query" label="Название" placeholder="Поиск по документам" />
670
+ <CdsSelect label="Период" :items="['За месяц', 'За квартал', 'За год']" model-value="За месяц" />
671
+ <CdsCheckbox v-model="onlySigned" label="Только подписанные" />
672
+ </div>
673
+ </CdsCol>
674
+ <CdsCol :xs="4" :sm="8" :md="12">
675
+ <div class="flex flex-col gap-2">
676
+ <CdsCard
677
+ v-for="document in filtered"
678
+ :key="document.title"
679
+ :title="document.title"
680
+ :subtitle="document.subtitle"
681
+ />
682
+ </div>
683
+ </CdsCol>
684
+ </CdsRow>
685
+ </CdsGrid>
686
+ </template>
687
+ ```
@@ -0,0 +1,9 @@
1
+ # CdsGrid — guidelines
2
+
3
+ > Extracted from `docs/demos/Guidelines.vue` by `bun run generate:skill`. Do not edit manually.
4
+ > The full component contract is in [api.md](api.md).
5
+
6
+ | ✅ Do | ❌ Don't |
7
+ | --- | --- |
8
+ | The spans of a row add up to the full width of the grid — 16 columns. | Spans adding up to more than 16 wrap a column onto a new line and break the row. |
9
+ | The content stretches together with the column and survives a change of breakpoint. | A fixed width argues with the grid and overflows the column on narrow screens. |