@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.
- package/.claude-plugin/plugin.json +6 -0
- package/README.md +218 -0
- package/bin/cds-skills.mjs +124 -0
- package/package.json +33 -0
- package/skills/cds-builder/GENERATION.md +44 -0
- package/skills/cds-builder/SKILL.md +308 -0
- package/skills/cds-builder/references/component-decision-tree.md +310 -0
- package/skills/cds-builder/references/components/cds-app/api.md +19 -0
- package/skills/cds-builder/references/components/cds-app/tokens.md +12 -0
- package/skills/cds-builder/references/components/cds-autocomplete/api.md +155 -0
- package/skills/cds-builder/references/components/cds-autocomplete/examples.md +447 -0
- package/skills/cds-builder/references/components/cds-autocomplete/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-autocomplete/tokens.md +19 -0
- package/skills/cds-builder/references/components/cds-avatar/api.md +35 -0
- package/skills/cds-builder/references/components/cds-avatar/examples.md +240 -0
- package/skills/cds-builder/references/components/cds-avatar/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-avatar/tokens.md +32 -0
- package/skills/cds-builder/references/components/cds-badge/api.md +44 -0
- package/skills/cds-builder/references/components/cds-badge/examples.md +332 -0
- package/skills/cds-builder/references/components/cds-badge/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-badge/tokens.md +32 -0
- package/skills/cds-builder/references/components/cds-breadcrumbs/api.md +83 -0
- package/skills/cds-builder/references/components/cds-breadcrumbs/examples.md +219 -0
- package/skills/cds-builder/references/components/cds-breadcrumbs/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-breadcrumbs/tokens.md +24 -0
- package/skills/cds-builder/references/components/cds-button/api.md +66 -0
- package/skills/cds-builder/references/components/cds-button/examples.md +324 -0
- package/skills/cds-builder/references/components/cds-button/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-button/tokens.md +190 -0
- package/skills/cds-builder/references/components/cds-button-group/api.md +27 -0
- package/skills/cds-builder/references/components/cds-button-group/examples.md +33 -0
- package/skills/cds-builder/references/components/cds-button-group/tokens.md +17 -0
- package/skills/cds-builder/references/components/cds-button-toggle/api.md +51 -0
- package/skills/cds-builder/references/components/cds-button-toggle/examples.md +278 -0
- package/skills/cds-builder/references/components/cds-button-toggle/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-button-toggle/tokens.md +13 -0
- package/skills/cds-builder/references/components/cds-card/api.md +221 -0
- package/skills/cds-builder/references/components/cds-card/examples.md +652 -0
- package/skills/cds-builder/references/components/cds-card/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-card/tokens.md +46 -0
- package/skills/cds-builder/references/components/cds-carousel/api.md +107 -0
- package/skills/cds-builder/references/components/cds-carousel/examples.md +444 -0
- package/skills/cds-builder/references/components/cds-carousel/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-carousel/tokens.md +17 -0
- package/skills/cds-builder/references/components/cds-checkbox/api.md +93 -0
- package/skills/cds-builder/references/components/cds-checkbox/examples.md +319 -0
- package/skills/cds-builder/references/components/cds-checkbox/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-checkbox/tokens.md +18 -0
- package/skills/cds-builder/references/components/cds-checkbox-button/api.md +56 -0
- package/skills/cds-builder/references/components/cds-checkbox-button/examples.md +29 -0
- package/skills/cds-builder/references/components/cds-checkbox-button/tokens.md +56 -0
- package/skills/cds-builder/references/components/cds-combobox/api.md +158 -0
- package/skills/cds-builder/references/components/cds-combobox/examples.md +264 -0
- package/skills/cds-builder/references/components/cds-combobox/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-combobox/tokens.md +19 -0
- package/skills/cds-builder/references/components/cds-counter/api.md +24 -0
- package/skills/cds-builder/references/components/cds-counter/examples.md +93 -0
- package/skills/cds-builder/references/components/cds-counter/tokens.md +11 -0
- package/skills/cds-builder/references/components/cds-date-input/api.md +151 -0
- package/skills/cds-builder/references/components/cds-date-input/examples.md +479 -0
- package/skills/cds-builder/references/components/cds-date-input/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-date-input/tokens.md +16 -0
- package/skills/cds-builder/references/components/cds-date-picker/api.md +63 -0
- package/skills/cds-builder/references/components/cds-date-picker/examples.md +394 -0
- package/skills/cds-builder/references/components/cds-date-picker/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-date-picker/tokens.md +66 -0
- package/skills/cds-builder/references/components/cds-defaults-provider/api.md +21 -0
- package/skills/cds-builder/references/components/cds-description/api.md +22 -0
- package/skills/cds-builder/references/components/cds-description/examples.md +69 -0
- package/skills/cds-builder/references/components/cds-description/tokens.md +11 -0
- package/skills/cds-builder/references/components/cds-divider/api.md +29 -0
- package/skills/cds-builder/references/components/cds-divider/examples.md +374 -0
- package/skills/cds-builder/references/components/cds-divider/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-divider/tokens.md +38 -0
- package/skills/cds-builder/references/components/cds-drawer/api.md +53 -0
- package/skills/cds-builder/references/components/cds-drawer/examples.md +432 -0
- package/skills/cds-builder/references/components/cds-drawer/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-drawer/tokens.md +27 -0
- package/skills/cds-builder/references/components/cds-empty-state/api.md +55 -0
- package/skills/cds-builder/references/components/cds-empty-state/examples.md +330 -0
- package/skills/cds-builder/references/components/cds-empty-state/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-empty-state/tokens.md +25 -0
- package/skills/cds-builder/references/components/cds-expandable-panel/api.md +157 -0
- package/skills/cds-builder/references/components/cds-expandable-panel/examples.md +569 -0
- package/skills/cds-builder/references/components/cds-expandable-panel/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-expandable-panel/tokens.md +34 -0
- package/skills/cds-builder/references/components/cds-field/api.md +62 -0
- package/skills/cds-builder/references/components/cds-field/examples.md +202 -0
- package/skills/cds-builder/references/components/cds-field/tokens.md +94 -0
- package/skills/cds-builder/references/components/cds-file-input/api.md +109 -0
- package/skills/cds-builder/references/components/cds-file-input/examples.md +368 -0
- package/skills/cds-builder/references/components/cds-file-input/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-file-input/tokens.md +15 -0
- package/skills/cds-builder/references/components/cds-file-upload/api.md +296 -0
- package/skills/cds-builder/references/components/cds-file-upload/examples.md +411 -0
- package/skills/cds-builder/references/components/cds-file-upload/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-file-upload/tokens.md +50 -0
- package/skills/cds-builder/references/components/cds-footer/api.md +35 -0
- package/skills/cds-builder/references/components/cds-footer/examples.md +219 -0
- package/skills/cds-builder/references/components/cds-footer/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-footer/tokens.md +14 -0
- package/skills/cds-builder/references/components/cds-form/api.md +48 -0
- package/skills/cds-builder/references/components/cds-form/examples.md +552 -0
- package/skills/cds-builder/references/components/cds-form/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-form/tokens.md +15 -0
- package/skills/cds-builder/references/components/cds-functional-button/api.md +34 -0
- package/skills/cds-builder/references/components/cds-functional-button/examples.md +254 -0
- package/skills/cds-builder/references/components/cds-functional-button/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-functional-button/tokens.md +35 -0
- package/skills/cds-builder/references/components/cds-grid/api.md +66 -0
- package/skills/cds-builder/references/components/cds-grid/examples.md +687 -0
- package/skills/cds-builder/references/components/cds-grid/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-header/api.md +35 -0
- package/skills/cds-builder/references/components/cds-header/examples.md +345 -0
- package/skills/cds-builder/references/components/cds-header/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-header/tokens.md +13 -0
- package/skills/cds-builder/references/components/cds-highlight/api.md +22 -0
- package/skills/cds-builder/references/components/cds-highlight/examples.md +313 -0
- package/skills/cds-builder/references/components/cds-highlight/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-highlight/tokens.md +18 -0
- package/skills/cds-builder/references/components/cds-icon/api.md +33 -0
- package/skills/cds-builder/references/components/cds-icon/examples.md +272 -0
- package/skills/cds-builder/references/components/cds-icon/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-icon/tokens.md +30 -0
- package/skills/cds-builder/references/components/cds-image/api.md +67 -0
- package/skills/cds-builder/references/components/cds-image/examples.md +437 -0
- package/skills/cds-builder/references/components/cds-image/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-image/tokens.md +14 -0
- package/skills/cds-builder/references/components/cds-input/api.md +80 -0
- package/skills/cds-builder/references/components/cds-input/examples.md +205 -0
- package/skills/cds-builder/references/components/cds-input/tokens.md +108 -0
- package/skills/cds-builder/references/components/cds-label/api.md +25 -0
- package/skills/cds-builder/references/components/cds-label/examples.md +72 -0
- package/skills/cds-builder/references/components/cds-label/tokens.md +12 -0
- package/skills/cds-builder/references/components/cds-layout/api.md +50 -0
- package/skills/cds-builder/references/components/cds-layout/examples.md +431 -0
- package/skills/cds-builder/references/components/cds-layout/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-layout/tokens.md +12 -0
- package/skills/cds-builder/references/components/cds-link/api.md +33 -0
- package/skills/cds-builder/references/components/cds-link/examples.md +195 -0
- package/skills/cds-builder/references/components/cds-link/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-link/tokens.md +16 -0
- package/skills/cds-builder/references/components/cds-list/api.md +329 -0
- package/skills/cds-builder/references/components/cds-list/examples.md +653 -0
- package/skills/cds-builder/references/components/cds-list/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-list/tokens.md +125 -0
- package/skills/cds-builder/references/components/cds-loader/api.md +18 -0
- package/skills/cds-builder/references/components/cds-loader/examples.md +59 -0
- package/skills/cds-builder/references/components/cds-loader/tokens.md +50 -0
- package/skills/cds-builder/references/components/cds-main/api.md +14 -0
- package/skills/cds-builder/references/components/cds-main/examples.md +60 -0
- package/skills/cds-builder/references/components/cds-menu/api.md +84 -0
- package/skills/cds-builder/references/components/cds-menu/examples.md +595 -0
- package/skills/cds-builder/references/components/cds-menu/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-menu/tokens.md +19 -0
- package/skills/cds-builder/references/components/cds-messages/api.md +29 -0
- package/skills/cds-builder/references/components/cds-messages/examples.md +119 -0
- package/skills/cds-builder/references/components/cds-messages/tokens.md +15 -0
- package/skills/cds-builder/references/components/cds-modal/api.md +86 -0
- package/skills/cds-builder/references/components/cds-modal/examples.md +516 -0
- package/skills/cds-builder/references/components/cds-modal/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-modal/tokens.md +22 -0
- package/skills/cds-builder/references/components/cds-notification/api.md +46 -0
- package/skills/cds-builder/references/components/cds-notification/examples.md +314 -0
- package/skills/cds-builder/references/components/cds-notification/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-notification/tokens.md +23 -0
- package/skills/cds-builder/references/components/cds-notification-alert/api.md +93 -0
- package/skills/cds-builder/references/components/cds-notification-alert/examples.md +202 -0
- package/skills/cds-builder/references/components/cds-notification-alert/tokens.md +15 -0
- package/skills/cds-builder/references/components/cds-otp-input/api.md +106 -0
- package/skills/cds-builder/references/components/cds-otp-input/examples.md +329 -0
- package/skills/cds-builder/references/components/cds-otp-input/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-otp-input/tokens.md +41 -0
- package/skills/cds-builder/references/components/cds-overlay/api.md +85 -0
- package/skills/cds-builder/references/components/cds-overlay/examples.md +409 -0
- package/skills/cds-builder/references/components/cds-overlay/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-overlay/tokens.md +12 -0
- package/skills/cds-builder/references/components/cds-page/api.md +21 -0
- package/skills/cds-builder/references/components/cds-page/examples.md +123 -0
- package/skills/cds-builder/references/components/cds-pagination/api.md +67 -0
- package/skills/cds-builder/references/components/cds-pagination/examples.md +320 -0
- package/skills/cds-builder/references/components/cds-pagination/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-pagination/tokens.md +20 -0
- package/skills/cds-builder/references/components/cds-progress-bar/api.md +53 -0
- package/skills/cds-builder/references/components/cds-progress-bar/examples.md +393 -0
- package/skills/cds-builder/references/components/cds-progress-bar/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-progress-bar/tokens.md +33 -0
- package/skills/cds-builder/references/components/cds-progress-circle/api.md +30 -0
- package/skills/cds-builder/references/components/cds-progress-circle/examples.md +326 -0
- package/skills/cds-builder/references/components/cds-progress-circle/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-progress-circle/tokens.md +31 -0
- package/skills/cds-builder/references/components/cds-radio/api.md +47 -0
- package/skills/cds-builder/references/components/cds-radio/tokens.md +36 -0
- package/skills/cds-builder/references/components/cds-radio-group/api.md +87 -0
- package/skills/cds-builder/references/components/cds-radio-group/examples.md +320 -0
- package/skills/cds-builder/references/components/cds-radio-group/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-radio-group/tokens.md +14 -0
- package/skills/cds-builder/references/components/cds-responsive/api.md +29 -0
- package/skills/cds-builder/references/components/cds-responsive/examples.md +271 -0
- package/skills/cds-builder/references/components/cds-responsive/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-responsive/tokens.md +13 -0
- package/skills/cds-builder/references/components/cds-select/api.md +155 -0
- package/skills/cds-builder/references/components/cds-select/examples.md +794 -0
- package/skills/cds-builder/references/components/cds-select/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-select/tokens.md +17 -0
- package/skills/cds-builder/references/components/cds-selection-control/api.md +60 -0
- package/skills/cds-builder/references/components/cds-selection-control/examples.md +468 -0
- package/skills/cds-builder/references/components/cds-selection-control-group/api.md +45 -0
- package/skills/cds-builder/references/components/cds-selection-control-group/examples.md +349 -0
- package/skills/cds-builder/references/components/cds-skeleton-loader/api.md +30 -0
- package/skills/cds-builder/references/components/cds-skeleton-loader/examples.md +297 -0
- package/skills/cds-builder/references/components/cds-skeleton-loader/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-skeleton-loader/tokens.md +62 -0
- package/skills/cds-builder/references/components/cds-slide-group/api.md +76 -0
- package/skills/cds-builder/references/components/cds-slide-group/examples.md +304 -0
- package/skills/cds-builder/references/components/cds-slide-group/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-slide-group/tokens.md +11 -0
- package/skills/cds-builder/references/components/cds-slide-view/api.md +88 -0
- package/skills/cds-builder/references/components/cds-slide-view/examples.md +311 -0
- package/skills/cds-builder/references/components/cds-slide-view/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-slide-view/tokens.md +14 -0
- package/skills/cds-builder/references/components/cds-stages/api.md +31 -0
- package/skills/cds-builder/references/components/cds-stages/examples.md +230 -0
- package/skills/cds-builder/references/components/cds-stages/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-stages/tokens.md +27 -0
- package/skills/cds-builder/references/components/cds-status/api.md +24 -0
- package/skills/cds-builder/references/components/cds-status/examples.md +170 -0
- package/skills/cds-builder/references/components/cds-status/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-status/tokens.md +17 -0
- package/skills/cds-builder/references/components/cds-steps/api.md +176 -0
- package/skills/cds-builder/references/components/cds-steps/examples.md +320 -0
- package/skills/cds-builder/references/components/cds-steps/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-steps/tokens.md +52 -0
- package/skills/cds-builder/references/components/cds-surface/api.md +30 -0
- package/skills/cds-builder/references/components/cds-surface/examples.md +106 -0
- package/skills/cds-builder/references/components/cds-table/api.md +120 -0
- package/skills/cds-builder/references/components/cds-table/examples.md +3049 -0
- package/skills/cds-builder/references/components/cds-table/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-table/tokens.md +92 -0
- package/skills/cds-builder/references/components/cds-tabs/api.md +179 -0
- package/skills/cds-builder/references/components/cds-tabs/examples.md +610 -0
- package/skills/cds-builder/references/components/cds-tabs/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-tabs/tokens.md +40 -0
- package/skills/cds-builder/references/components/cds-tag/api.md +64 -0
- package/skills/cds-builder/references/components/cds-tag/examples.md +278 -0
- package/skills/cds-builder/references/components/cds-tag/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-tag/tokens.md +67 -0
- package/skills/cds-builder/references/components/cds-tag-group/api.md +58 -0
- package/skills/cds-builder/references/components/cds-tag-group/examples.md +346 -0
- package/skills/cds-builder/references/components/cds-tag-group/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-tag-group/tokens.md +18 -0
- package/skills/cds-builder/references/components/cds-text-area/api.md +113 -0
- package/skills/cds-builder/references/components/cds-text-area/examples.md +327 -0
- package/skills/cds-builder/references/components/cds-text-area/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-text-area/tokens.md +16 -0
- package/skills/cds-builder/references/components/cds-text-input/api.md +115 -0
- package/skills/cds-builder/references/components/cds-text-input/examples.md +546 -0
- package/skills/cds-builder/references/components/cds-text-input/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-text-input/tokens.md +17 -0
- package/skills/cds-builder/references/components/cds-time-picker/api.md +44 -0
- package/skills/cds-builder/references/components/cds-time-picker/examples.md +407 -0
- package/skills/cds-builder/references/components/cds-time-picker/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-time-picker/tokens.md +23 -0
- package/skills/cds-builder/references/components/cds-toast/api.md +97 -0
- package/skills/cds-builder/references/components/cds-toast/examples.md +296 -0
- package/skills/cds-builder/references/components/cds-toast/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-toast/tokens.md +26 -0
- package/skills/cds-builder/references/components/cds-toast-queue/api.md +86 -0
- package/skills/cds-builder/references/components/cds-toast-queue/examples.md +227 -0
- package/skills/cds-builder/references/components/cds-toggle/api.md +97 -0
- package/skills/cds-builder/references/components/cds-toggle/examples.md +335 -0
- package/skills/cds-builder/references/components/cds-toggle/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-toggle/tokens.md +91 -0
- package/skills/cds-builder/references/components/cds-toolbar/api.md +44 -0
- package/skills/cds-builder/references/components/cds-toolbar/examples.md +186 -0
- package/skills/cds-builder/references/components/cds-toolbar/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-toolbar/tokens.md +13 -0
- package/skills/cds-builder/references/components/cds-tooltip/api.md +83 -0
- package/skills/cds-builder/references/components/cds-tooltip/examples.md +321 -0
- package/skills/cds-builder/references/components/cds-tooltip/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-tooltip/tokens.md +25 -0
- package/skills/cds-builder/references/components/cds-tree/api.md +169 -0
- package/skills/cds-builder/references/components/cds-tree/examples.md +785 -0
- package/skills/cds-builder/references/components/cds-tree/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-tree/tokens.md +39 -0
- package/skills/cds-builder/references/components/cds-uploader/api.md +105 -0
- package/skills/cds-builder/references/components/cds-uploader/examples.md +553 -0
- package/skills/cds-builder/references/components/cds-uploader/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-uploader/tokens.md +26 -0
- package/skills/cds-builder/references/components/cds-virtual-scroll/api.md +60 -0
- package/skills/cds-builder/references/components/cds-virtual-scroll/examples.md +272 -0
- package/skills/cds-builder/references/components/cds-virtual-scroll/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-virtual-scroll/tokens.md +13 -0
- package/skills/cds-builder/references/guides/conventions.md +48 -0
- package/skills/cds-builder/references/guides/date-utils.md +301 -0
- package/skills/cds-builder/references/guides/display-and-platform.md +263 -0
- package/skills/cds-builder/references/guides/forms.md +77 -0
- package/skills/cds-builder/references/guides/global-configuration.md +354 -0
- package/skills/cds-builder/references/guides/icons.md +172 -0
- package/skills/cds-builder/references/guides/internationalization.md +470 -0
- package/skills/cds-builder/references/guides/migration-cds3-to-cds4.md +49 -0
- package/skills/cds-builder/references/guides/sass-variables.md +238 -0
- package/skills/cds-builder/references/guides/setup.md +81 -0
- package/skills/cds-builder/references/guides/tailwindcss.md +93 -0
- package/skills/cds-builder/references/guides/theme.md +343 -0
- package/skills/cds-builder/references/guides/treeshaking.md +237 -0
- package/skills/cds-builder/references/patterns/dialogs.md +89 -0
- package/skills/cds-builder/references/patterns/forms.md +101 -0
- package/skills/cds-builder/references/patterns/page-layout.md +78 -0
- package/skills/cds-builder/references/patterns/tables.md +87 -0
- package/skills/cds-builder/references/tokens/colors.md +507 -0
- package/skills/cds-builder/references/tokens/themes.md +981 -0
- package/skills/cds-builder/scripts/check-contracts.mjs +264 -0
- package/skills/cds-migrate/GENERATION.md +44 -0
- package/skills/cds-migrate/SKILL.md +160 -0
- package/skills/cds-migrate/references/migration-full.md +2225 -0
- package/skills/cds-refactor/GENERATION.md +44 -0
- package/skills/cds-refactor/SKILL.md +187 -0
- package/skills/cds-refactor/references/html-to-cds.md +80 -0
- package/skills/cds-refactor/references/review-checklist.md +73 -0
- package/skills/cds-refactor/references/tailwind-to-cds.md +65 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Генерация скиллов CDS
|
|
2
|
+
|
|
3
|
+
- Версия `@central-design-system/components`: 4.0.0-alpha.6
|
|
4
|
+
- Скиллы в пакете: cds-builder, cds-migrate, cds-refactor
|
|
5
|
+
|
|
6
|
+
## Статистика
|
|
7
|
+
|
|
8
|
+
- Семейств компонентов: 79
|
|
9
|
+
- Контрактов meta.json: 125
|
|
10
|
+
- Извлечено примеров: 710
|
|
11
|
+
- Пропущено историй (неожиданная форма):
|
|
12
|
+
- нет
|
|
13
|
+
|
|
14
|
+
## Полнота документации
|
|
15
|
+
|
|
16
|
+
Счётчики ниже — долг документации, а не ошибка генерации: справочники
|
|
17
|
+
собираются из того, что заполнено, и растут по мере переработки страниц
|
|
18
|
+
компонентов.
|
|
19
|
+
|
|
20
|
+
- Описание («что это и когда брать»): 77 из 79
|
|
21
|
+
- Подсказка «Смотрите также»: 77 из 79
|
|
22
|
+
- Рекомендации Do/Don't: 60 из 79 (пар правил: 169)
|
|
23
|
+
- Props/events/slots/exposed без описания: 0
|
|
24
|
+
- Без описания: CdsApp, CdsDefaultsProvider
|
|
25
|
+
- Без рекомендаций: CdsApp, CdsButtonGroup, CdsCheckboxButton, CdsCounter, CdsDefaultsProvider, CdsDescription, CdsField, CdsInput, CdsLabel, CdsLoader, CdsMain, CdsMessages, CdsNotificationAlert, CdsPage, CdsRadio, CdsSelectionControl, CdsSelectionControlGroup, CdsSurface, CdsToastQueue
|
|
26
|
+
- Без примеров: CdsApp, CdsDefaultsProvider, CdsRadio
|
|
27
|
+
|
|
28
|
+
## Перевод (en)
|
|
29
|
+
|
|
30
|
+
Генераторы читают английские страницы (`docs/en/`) и `@en` из JSDoc; там, где
|
|
31
|
+
перевода ещё нет, подставляется русский текст — это долг перевода.
|
|
32
|
+
|
|
33
|
+
- Страниц компонентов переведено: 77 из 79
|
|
34
|
+
- Страниц: 107 — ok 101, outdated 0, drift 0, missing 6
|
|
35
|
+
- Props/events/slots/exposed без `@en`: 0
|
|
36
|
+
- Подписи DoDont/AnatomyDemo без `-en`/`labelEn`: 9
|
|
37
|
+
|
|
38
|
+
## Регенерация
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
cd packages/components
|
|
42
|
+
bun run generate:meta # если менялись компоненты
|
|
43
|
+
bun run generate:skill
|
|
44
|
+
```
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cds-refactor
|
|
3
|
+
description: >-
|
|
4
|
+
Reviewing code and converting it to the CDS 4 design system
|
|
5
|
+
(`@central-design-system/components`, Central Design System, B2B-Center):
|
|
6
|
+
checking existing CDS code for mistakes and deprecated props, converting
|
|
7
|
+
plain HTML/CSS and Tailwind markup to CDS components, replacing hardcoded
|
|
8
|
+
colors with tokens, fixing form composition and accessibility. Use this
|
|
9
|
+
skill when asked to look at, assess, clean up or rewrite markup — «отревьюй
|
|
10
|
+
мой компонент», «что здесь не так», «правильно ли я использую CdsSelect»,
|
|
11
|
+
«переведи это на CDS», «перепиши на дизайн-систему», «замени свои кнопки на
|
|
12
|
+
CdsButton», «убери хардкод цветов» — even if the words "review" or
|
|
13
|
+
"refactoring" were never said. RU triggers: «проверь код на CDS», «сделай
|
|
14
|
+
code review вёрстки», «перепиши эту вёрстку на CDS», «замени div на
|
|
15
|
+
компоненты CDS», «почисти компонент», «правильно ли собрана форма».
|
|
16
|
+
EN triggers: «review my CDS component», «convert this HTML to CDS»,
|
|
17
|
+
«refactor to design system», «is this correct CDS usage». Do not use it for
|
|
18
|
+
migrating from CDS 3 to CDS 4 — that is what the `cds-migrate` skill is for.
|
|
19
|
+
metadata:
|
|
20
|
+
author: cds-team
|
|
21
|
+
version: "4.0.0-alpha.6"
|
|
22
|
+
source: https://gitlab.b2b-center.ru/cds/central-design-system
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# CDS Refactor & Review
|
|
26
|
+
|
|
27
|
+
You review and improve markup built with the CDS 4 design system (version
|
|
28
|
+
4.0.0-alpha.6). Depending on the request, the result is an analysis, rewritten
|
|
29
|
+
code, or both. Read the code and the project context in full before producing
|
|
30
|
+
any output.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Step 1 — Determine the intent and the source
|
|
35
|
+
|
|
36
|
+
Before answering, establish:
|
|
37
|
+
|
|
38
|
+
- **Source type** — existing CDS code, plain HTML/CSS, Tailwind markup,
|
|
39
|
+
mixed.
|
|
40
|
+
- **What is expected of you:**
|
|
41
|
+
- **review only** — "check", "what's wrong", "is this correct" → an
|
|
42
|
+
analysis with targeted fixes, no full rewrite;
|
|
43
|
+
- **refactoring** — "rewrite", "convert to CDS", "clean up" → rewritten
|
|
44
|
+
code;
|
|
45
|
+
- **both** — "look at it and fix it" → analysis first, then code.
|
|
46
|
+
|
|
47
|
+
State your reading in the first line of the answer: "Reading this as existing
|
|
48
|
+
CDS 4 code, mode — review".
|
|
49
|
+
|
|
50
|
+
No code yet — ask for the code. Do not review a description of code.
|
|
51
|
+
|
|
52
|
+
If the code contains CDS 3 patterns (`dist/cds.css`, `CdsDropdown`,
|
|
53
|
+
`CdsTabsV2`, `@central-design-system/icons`) — this is not refactoring but
|
|
54
|
+
migration: say so and hand the task over to the `cds-migrate` skill.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Step 2 — Analyze the code along the axes
|
|
59
|
+
|
|
60
|
+
Walk every axis regardless of the output mode: for a review these are
|
|
61
|
+
findings, for refactoring — a checklist of edits. The detailed list of checks
|
|
62
|
+
is `references/review-checklist.md`.
|
|
63
|
+
|
|
64
|
+
**API existence.** Does every prop, event and slot used exist in the
|
|
65
|
+
component's contract? An invented prop does not throw — it is silently
|
|
66
|
+
ignored, and that is the most common cause of "why doesn't it work". The
|
|
67
|
+
contracts live in the `cds-builder` skill
|
|
68
|
+
(`../cds-builder/references/components/<slug>/api.md`); if it is not
|
|
69
|
+
installed —
|
|
70
|
+
`node_modules/@central-design-system/components/llms/llms-components.txt`.
|
|
71
|
+
When `cds-builder` is installed next to this skill, check this axis
|
|
72
|
+
mechanically — both the incoming code and your rewritten result:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
node ../cds-builder/scripts/check-contracts.mjs <file.vue>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Component choice.** Was something hand-built that the library already has:
|
|
79
|
+
a dropdown assembled from `CdsSurface` and `CdsList` instead of `CdsSelect`,
|
|
80
|
+
a table made of `div`s instead of `CdsTable`, a custom field from `CdsField`
|
|
81
|
+
+ `CdsInput` instead of `CdsTextInput`.
|
|
82
|
+
|
|
83
|
+
**Tokens instead of raw values.** Are there `#fff`, `16px`, `rgb(...)` in the
|
|
84
|
+
styles; is color set via the `color` / `bgColor` / `appearance` props.
|
|
85
|
+
Hardcoding breaks theming and the dark theme.
|
|
86
|
+
|
|
87
|
+
**Form composition.** Are the label, field, hint and error linked — through a
|
|
88
|
+
ready-made control or `CdsField`. A standalone `<label>` next to `CdsInput`
|
|
89
|
+
does not link them for a screen reader.
|
|
90
|
+
|
|
91
|
+
**Accessibility.** `aria-label` on icon buttons, `alt` on images, heading
|
|
92
|
+
hierarchy, state conveyed by more than color, keyboard accessibility.
|
|
93
|
+
|
|
94
|
+
**Responsiveness.** Is behavior defined for at least two sizes; are there
|
|
95
|
+
fixed widths that break mobile.
|
|
96
|
+
|
|
97
|
+
**Structure.** Extra nesting, margins on every sibling instead of the
|
|
98
|
+
container's `gap`, a repeated block that begs to become a component.
|
|
99
|
+
|
|
100
|
+
**Deprecated.** Props marked deprecated in the contract, and `[CDS UPGRADE]`
|
|
101
|
+
warnings.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Step 3a — Output in review mode
|
|
106
|
+
|
|
107
|
+
Split the findings by significance:
|
|
108
|
+
|
|
109
|
+
**Critical** — broken or excludes users:
|
|
110
|
+
|
|
111
|
+
- a prop, event or slot the component does not have;
|
|
112
|
+
- a field without a linked label;
|
|
113
|
+
- an icon button without `aria-label`;
|
|
114
|
+
- an interactive element not reachable from the keyboard.
|
|
115
|
+
|
|
116
|
+
**Improvements** — works, but incorrectly:
|
|
117
|
+
|
|
118
|
+
- hardcoded colors and sizes instead of tokens;
|
|
119
|
+
- hand-building what exists ready-made;
|
|
120
|
+
- no responsive behavior;
|
|
121
|
+
- deprecated props.
|
|
122
|
+
|
|
123
|
+
**Optional** — taste and future work: extract a repeated block into a
|
|
124
|
+
component, flatten nesting, complete the types.
|
|
125
|
+
|
|
126
|
+
For every critical finding and significant improvement, show the minimal
|
|
127
|
+
edit:
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
**Icon button without an accessible name** (Critical)
|
|
131
|
+
The delete button has no text; a screen reader will announce it as "button".
|
|
132
|
+
|
|
133
|
+
<!-- Before -->
|
|
134
|
+
<CdsButton icon="delete" @click="remove" />
|
|
135
|
+
<!-- After -->
|
|
136
|
+
<CdsButton icon="delete" aria-label="Delete" @click="remove" />
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Skip empty sections. Scale the volume to the size of the code: a 20-line
|
|
140
|
+
component needs a short analysis, not an exhaustive one.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Step 3b — Output in refactoring mode
|
|
145
|
+
|
|
146
|
+
Mapping tables:
|
|
147
|
+
|
|
148
|
+
- plain HTML and CSS → `references/html-to-cds.md`;
|
|
149
|
+
- Tailwind markup → `references/tailwind-to-cds.md`.
|
|
150
|
+
|
|
151
|
+
### Preserving behavior is non-negotiable
|
|
152
|
+
|
|
153
|
+
- Event handlers, state and conditional rendering are carried over **as is**.
|
|
154
|
+
- Existing `aria-*` attributes are kept; missing ones are added.
|
|
155
|
+
- Tag semantics are preserved: a `<nav>` does not turn into a nameless
|
|
156
|
+
container.
|
|
157
|
+
- A working partially converted component beats a fully converted broken one.
|
|
158
|
+
Not sure about a replacement — leave it as it was and say so.
|
|
159
|
+
- Do not change logic "while you're at it". A markup refactor is not the
|
|
160
|
+
place to fix business rules.
|
|
161
|
+
|
|
162
|
+
### Output format
|
|
163
|
+
|
|
164
|
+
1. **Rewritten code** — in full, with imports, no stubs.
|
|
165
|
+
2. **What changed** — a list, only the non-obvious:
|
|
166
|
+
```
|
|
167
|
+
- <button class="btn-primary"> → CdsButton appearance="primary"
|
|
168
|
+
- background: #f5f5f5 → token --cds-color-surface-secondary
|
|
169
|
+
- Custom field from label + input → CdsTextInput (links label and error)
|
|
170
|
+
- Submit handler and validation left unchanged
|
|
171
|
+
```
|
|
172
|
+
3. **Suggestions** (if any) — what is worth doing beyond this edit.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## When to ask, when to act
|
|
177
|
+
|
|
178
|
+
Act right away if the code and the intent are clear. Ask if:
|
|
179
|
+
|
|
180
|
+
- there is no code;
|
|
181
|
+
- the component is large and the scope is unclear ("rewrite everything or
|
|
182
|
+
just the form?");
|
|
183
|
+
- the behavior is ambiguous and can be read two ways;
|
|
184
|
+
- there is external state or styles you cannot see, and they change the
|
|
185
|
+
output.
|
|
186
|
+
|
|
187
|
+
When acting without asking — state your assumptions in the first line.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Plain HTML and CSS → CDS 4
|
|
2
|
+
|
|
3
|
+
The mappings below are a starting point, not a find-and-replace. Before
|
|
4
|
+
substituting a component, open its `api.md`: take the prop set from there.
|
|
5
|
+
|
|
6
|
+
## Elements
|
|
7
|
+
|
|
8
|
+
| HTML | CDS |
|
|
9
|
+
| --- | --- |
|
|
10
|
+
| `<button>` | `CdsButton` |
|
|
11
|
+
| `<a>` inside text | `CdsLink` |
|
|
12
|
+
| `<a>` styled as a button | `CdsButton` with `to` / `href` |
|
|
13
|
+
| `<input type="text">` with a label | `CdsTextInput` |
|
|
14
|
+
| `<input type="password">` | `CdsTextInput` with `type="password"` |
|
|
15
|
+
| `<textarea>` | `CdsTextArea` |
|
|
16
|
+
| `<select>` | `CdsSelect` |
|
|
17
|
+
| `<input type="checkbox">` | `CdsCheckbox` |
|
|
18
|
+
| `<input type="radio">` in a group | `CdsRadioGroup` |
|
|
19
|
+
| `<input type="file">` | `CdsFileInput` |
|
|
20
|
+
| `<input type="date">` | `CdsDateInput` |
|
|
21
|
+
| `<img>` | `CdsImage` (keep the `alt`) |
|
|
22
|
+
| `<table>` | `CdsTable` (`columns` + `data`) |
|
|
23
|
+
| `<ul>` / `<ol>` of uniform items | `CdsList` |
|
|
24
|
+
| Block with a border, a heading and actions | `CdsCard` |
|
|
25
|
+
| Styled container without card semantics | `CdsSurface` |
|
|
26
|
+
| Custom modal `<div>` with an overlay | `CdsModal` |
|
|
27
|
+
| Tooltip via `title` | `CdsTooltip` |
|
|
28
|
+
| Counter badge | `CdsBadge` |
|
|
29
|
+
| Status label | `CdsStatus` or `CdsTag` |
|
|
30
|
+
|
|
31
|
+
Leave markup with no visual role (`<div class="wrapper">`) as a plain
|
|
32
|
+
element — do not replace it with `CdsSurface` just for the sake of "a CDS
|
|
33
|
+
component".
|
|
34
|
+
|
|
35
|
+
## Styles
|
|
36
|
+
|
|
37
|
+
| CSS | CDS way |
|
|
38
|
+
| --- | --- |
|
|
39
|
+
| `color: #333` | `color` prop or `rgb(var(--cds-color-text-primary))` |
|
|
40
|
+
| `background: #f5f5f5` | `bgColor` prop or a `--cds-color-surface-*` token |
|
|
41
|
+
| `border: 1px solid #e0e0e0` | `--cds-color-border-*` token |
|
|
42
|
+
| `padding: 16px` | `p-4` utility (Tailwind) or a spacing token |
|
|
43
|
+
| `border-radius: 8px` | `rounded-200` or a radius token |
|
|
44
|
+
| `font-size: 14px` | the component's `size` prop or a typography utility |
|
|
45
|
+
| `display: flex; gap: 16px` | `flex gap-4` |
|
|
46
|
+
| `width: 100%` on a button | `block` prop on `CdsButton` |
|
|
47
|
+
|
|
48
|
+
Exact token names — in `../cds-builder/references/tokens/themes.md`
|
|
49
|
+
(or in `node_modules/@central-design-system/components/llms/llms-tokens.txt`
|
|
50
|
+
if the `cds-builder` skill is not installed).
|
|
51
|
+
|
|
52
|
+
## Forms
|
|
53
|
+
|
|
54
|
+
The most common finding is a hand-assembled field:
|
|
55
|
+
|
|
56
|
+
```html
|
|
57
|
+
<!-- Before -->
|
|
58
|
+
<label for="email">Email</label>
|
|
59
|
+
<input id="email" type="email" v-model="email" />
|
|
60
|
+
<span class="error">{{ error }}</span>
|
|
61
|
+
|
|
62
|
+
<!-- After -->
|
|
63
|
+
<CdsTextInput v-model="email" label="Email" type="email" :rules="rules.email" />
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
`CdsTextInput` links the label, the field and the error message itself — done
|
|
67
|
+
by hand this takes `for`/`id` and `aria-describedby`, which people usually
|
|
68
|
+
forget.
|
|
69
|
+
|
|
70
|
+
If a ready-made control truly does not exist, a field is assembled from the
|
|
71
|
+
atoms `CdsField` / `CdsLabel` / `CdsDescription` / `CdsMessages` /
|
|
72
|
+
`CdsInput` — but first make sure it truly does not exist.
|
|
73
|
+
|
|
74
|
+
## What to carry over unchanged
|
|
75
|
+
|
|
76
|
+
- Handlers (`@click`, `@submit`), state, conditional rendering.
|
|
77
|
+
- Existing `aria-*` and `role` attributes.
|
|
78
|
+
- Semantic tags: `<nav>`, `<main>`, `<section>` stay where they are.
|
|
79
|
+
- Animations and complex selectors that cannot be expressed with props —
|
|
80
|
+
leave them in CSS and say so.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# CDS 4 code review checklist
|
|
2
|
+
|
|
3
|
+
The checks are grouped by the axes from step 2 of the skill. For a review
|
|
4
|
+
this is a list of findings, for refactoring — a list of edits. Do not show
|
|
5
|
+
empty sections in the answer.
|
|
6
|
+
|
|
7
|
+
## API existence
|
|
8
|
+
|
|
9
|
+
- [ ] Every prop in the code exists in the component's `api.md`.
|
|
10
|
+
- [ ] Every `@event` exists in the contract (a common mistake — `@change`
|
|
11
|
+
where the component emits `@update:modelValue`).
|
|
12
|
+
- [ ] Every `#slot` exists in the contract.
|
|
13
|
+
- [ ] Props marked deprecated are replaced.
|
|
14
|
+
- [ ] No `[CDS UPGRADE]` warnings in the dev-mode console.
|
|
15
|
+
|
|
16
|
+
An invented prop does not raise an error — Vue silently puts it into the
|
|
17
|
+
attributes. This is a critical finding, not a nitpick.
|
|
18
|
+
|
|
19
|
+
## Component choice
|
|
20
|
+
|
|
21
|
+
- [ ] Nothing is hand-built that exists ready-made (dropdown, table, modal,
|
|
22
|
+
input field).
|
|
23
|
+
- [ ] The narrowest suitable component is used, not a generic surface with
|
|
24
|
+
hand-rolled markup.
|
|
25
|
+
- [ ] Atoms (`CdsField`, `CdsInput`, `CdsSurface`) are used only where a
|
|
26
|
+
ready-made component truly does not exist.
|
|
27
|
+
|
|
28
|
+
## Tokens
|
|
29
|
+
|
|
30
|
+
- [ ] No hardcoded colors in the styles (`#fff`, `rgb(...)`, `hsl(...)`).
|
|
31
|
+
- [ ] No fixed sizes where a `size` prop exists.
|
|
32
|
+
- [ ] Color is set via the `color` / `bgColor` / `appearance` props.
|
|
33
|
+
- [ ] Custom CSS is written on `--cds-*` tokens.
|
|
34
|
+
- [ ] The dark theme is not broken by hardcoding.
|
|
35
|
+
|
|
36
|
+
## Forms
|
|
37
|
+
|
|
38
|
+
- [ ] The label is linked to the field — through a ready-made control or
|
|
39
|
+
`CdsField`, not a standalone `<label>` next to it.
|
|
40
|
+
- [ ] Errors are shown by the component's mechanism, not duplicated by hand.
|
|
41
|
+
- [ ] Validation rules live on the fields, aggregation — on `CdsForm`.
|
|
42
|
+
- [ ] The submit button is not disabled on "form is invalid": the user must
|
|
43
|
+
be able to click and see the errors.
|
|
44
|
+
- [ ] During a request the button is in `loading`, resubmitting is
|
|
45
|
+
impossible.
|
|
46
|
+
|
|
47
|
+
## Accessibility
|
|
48
|
+
|
|
49
|
+
- [ ] Icon buttons have an `aria-label`.
|
|
50
|
+
- [ ] Images have a meaningful `alt` (or `alt=""` for decorative ones).
|
|
51
|
+
- [ ] Headings follow their levels without gaps.
|
|
52
|
+
- [ ] State is conveyed by more than color.
|
|
53
|
+
- [ ] Interactive elements are keyboard-accessible; focus is not removed via
|
|
54
|
+
`outline: none` without a replacement.
|
|
55
|
+
- [ ] The click handler sits on a button or a link, not on a `div`.
|
|
56
|
+
|
|
57
|
+
## Responsiveness
|
|
58
|
+
|
|
59
|
+
- [ ] Behavior is defined for at least two screen sizes.
|
|
60
|
+
- [ ] No fixed widths that break mobile.
|
|
61
|
+
- [ ] Long tables and text do not overflow the screen.
|
|
62
|
+
|
|
63
|
+
## Structure
|
|
64
|
+
|
|
65
|
+
- [ ] No nesting without a semantic reason.
|
|
66
|
+
- [ ] Spacing between siblings is set with `gap`, not each sibling's margin.
|
|
67
|
+
- [ ] A block repeated three times or more is extracted into a component.
|
|
68
|
+
- [ ] Imports are grouped: Vue, CDS, local.
|
|
69
|
+
|
|
70
|
+
## Types
|
|
71
|
+
|
|
72
|
+
- [ ] The component's props are typed.
|
|
73
|
+
- [ ] No `any` where the type is known from the CDS contract.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Tailwind markup → CDS 4
|
|
2
|
+
|
|
3
|
+
**Tailwind does not get removed from the project.** CDS 4 is officially
|
|
4
|
+
integrated with Tailwind CSS v4, and utility-based layout is the recommended
|
|
5
|
+
way to build markup. The refactoring task here is different: replace
|
|
6
|
+
**hand-made controls** assembled from `div`s and utilities with ready-made
|
|
7
|
+
CDS components.
|
|
8
|
+
|
|
9
|
+
## What to replace
|
|
10
|
+
|
|
11
|
+
| Hand-made with Tailwind | CDS component |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| `<button class="px-4 py-2 bg-blue-600 rounded text-white">` | `CdsButton` |
|
|
14
|
+
| `<div class="border rounded-lg p-4 shadow">` with a heading and actions | `CdsCard` |
|
|
15
|
+
| `<input class="border rounded px-3 py-2">` with a standalone `<label>` | `CdsTextInput` |
|
|
16
|
+
| Dropdown built on `absolute` + `hidden` | `CdsSelect` / `CdsMenu` |
|
|
17
|
+
| Modal built on `fixed inset-0 bg-black/50` | `CdsModal` |
|
|
18
|
+
| Table made of `grid` rows | `CdsTable` |
|
|
19
|
+
| `<span class="px-2 py-1 rounded-full text-xs bg-green-100">` | `CdsTag` or `CdsStatus` |
|
|
20
|
+
| Spinner made of `animate-spin border-t-transparent` | `CdsProgressCircle` |
|
|
21
|
+
| Gray placeholder rectangles on `animate-pulse` | `CdsSkeletonLoader` |
|
|
22
|
+
|
|
23
|
+
The tell of a hand-made control: a set of utilities reproduces behavior that
|
|
24
|
+
has states (hover, focus, disabled, loading). CDS already has these things
|
|
25
|
+
built and keyboard-accessible.
|
|
26
|
+
|
|
27
|
+
## What to keep
|
|
28
|
+
|
|
29
|
+
Layout, spacing and typography utilities stay:
|
|
30
|
+
|
|
31
|
+
```html
|
|
32
|
+
<div class="flex flex-col gap-4 md:flex-row md:items-center">
|
|
33
|
+
<CdsTextInput v-model="query" label="Search" />
|
|
34
|
+
<CdsButton text="Find" />
|
|
35
|
+
</div>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Colors: from the Tailwind palette to CDS tokens
|
|
39
|
+
|
|
40
|
+
This is the main replacement in the styles. Classes like `bg-gray-100`,
|
|
41
|
+
`text-gray-500`, `border-gray-200` know nothing about CDS themes and do not
|
|
42
|
+
switch in the dark theme.
|
|
43
|
+
|
|
44
|
+
| Before | After |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| `bg-white`, `bg-gray-50` | `bg-surface-primary`, `bg-surface-secondary` |
|
|
47
|
+
| `text-gray-900`, `text-gray-500` | `text-primary`, `text-secondary` |
|
|
48
|
+
| `border-gray-200` | `--cds-color-border-*` token |
|
|
49
|
+
| `bg-blue-600` on a button | `appearance="primary"` on `CdsButton` |
|
|
50
|
+
| `rounded-lg` | `rounded-200` (CDS radius token) |
|
|
51
|
+
| `p-4`, `gap-2`, `mt-2` | keep as is — CDS uses the standard Tailwind spacing scale |
|
|
52
|
+
|
|
53
|
+
Exact names of the available utilities and tokens — in the guide
|
|
54
|
+
`../cds-builder/references/guides/tailwindcss.md` and in
|
|
55
|
+
`../cds-builder/references/tokens/themes.md`. Do not guess a token name by
|
|
56
|
+
analogy: if the one you need does not exist, say so and keep the current
|
|
57
|
+
value.
|
|
58
|
+
|
|
59
|
+
## Order of work
|
|
60
|
+
|
|
61
|
+
1. Find the hand-made controls and replace them with CDS components.
|
|
62
|
+
2. Replace Tailwind palette classes with CDS classes and tokens.
|
|
63
|
+
3. Keep the layout utilities; align the spacing scale with the CDS scale.
|
|
64
|
+
4. Check that the states (hover, focus, disabled) are no longer described by
|
|
65
|
+
hand — the component provides them.
|