siesa-ui-kit 1.0.3 → 1.0.5
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/README.md +28 -54
- package/claude/agents/siesa-ui-kit-specialist.md +2401 -0
- package/claude/prompts/component-template.md +121 -0
- package/claude/settings.local.json +61 -0
- package/docs/border-radius.md +1261 -0
- package/docs/colors.md +832 -0
- package/docs/dark-mode-guide.md +1426 -0
- package/docs/filters.md +1243 -0
- package/docs/icons.md +1283 -0
- package/docs/shadows.md +1377 -0
- package/docs/spacing.md +1684 -0
- package/docs/typography.md +1268 -0
- package/package.json +14 -34
- package/postcss.config.cjs +6 -0
- package/public/,Business Logo.png +0 -0
- package/public/.Siesa Logo.png +0 -0
- package/public/bg_siesa.png +0 -0
- package/public/siesa_logo_mobile.png +0 -0
- package/public/vite.svg +1 -0
- package/src/App.css +42 -0
- package/src/App.tsx +8 -0
- package/src/ButtonTest.tsx +147 -0
- package/src/assets/fonts/README.md +261 -0
- package/src/assets/fonts/SiesaBT/SiesaBT-Bold.otf +0 -0
- package/src/assets/fonts/SiesaBT/SiesaBT-Light.otf +0 -0
- package/src/assets/fonts/SiesaBT/SiesaBT-Regular.otf +0 -0
- package/src/assets/react.svg +1 -0
- package/src/components/Alert/Alert.stories.tsx +332 -0
- package/src/components/Alert/Alert.tsx +106 -0
- package/src/components/Alert/Alert.types.ts +54 -0
- package/src/components/Avatar/Avatar.stories.tsx +494 -0
- package/src/components/Avatar/Avatar.tsx +143 -0
- package/src/components/Avatar/Avatar.types.ts +53 -0
- package/src/components/Badge/Badge.stories.tsx +339 -0
- package/src/components/Badge/Badge.tsx +278 -0
- package/src/components/Badge/Badge.types.ts +58 -0
- package/src/components/Button/Button.stories.tsx +950 -0
- package/src/components/Button/Button.tsx +337 -0
- package/src/components/Button/Button.types.ts +180 -0
- package/src/components/Button/icons.tsx +87 -0
- package/{dist/components/Button/index.d.ts → src/components/Button/index.ts} +3 -4
- package/src/components/Checkbox/Checkbox.stories.tsx +453 -0
- package/src/components/Checkbox/Checkbox.tsx +208 -0
- package/src/components/Checkbox/Checkbox.types.ts +61 -0
- package/src/components/DescriptionList/DescriptionList.stories.tsx +250 -0
- package/src/components/DescriptionList/DescriptionList.tsx +96 -0
- package/src/components/DescriptionList/DescriptionList.types.ts +29 -0
- package/src/components/Divider/Divider.stories.tsx +263 -0
- package/src/components/Divider/Divider.tsx +80 -0
- package/src/components/Divider/Divider.types.ts +24 -0
- package/src/components/Dropdown/Dropdown.stories.tsx +552 -0
- package/src/components/Dropdown/Dropdown.tsx +422 -0
- package/src/components/Dropdown/Dropdown.types.ts +146 -0
- package/src/components/Dropdown/README.md +266 -0
- package/src/components/Dropdown/icons.tsx +72 -0
- package/{dist/components/Dropdown/index.d.ts → src/components/Dropdown/index.ts} +8 -4
- package/src/components/Input/Input.stories.tsx +583 -0
- package/src/components/Input/Input.tsx +204 -0
- package/src/components/Input/Input.types.ts +80 -0
- package/src/components/Input/icons.tsx +145 -0
- package/{dist/components/Input/index.d.ts → src/components/Input/index.ts} +2 -3
- package/src/components/LoginView/LoginView.stories.tsx +148 -0
- package/src/components/LoginView/LoginView.tsx +426 -0
- package/src/components/LoginView/LoginView.types.ts +52 -0
- package/src/components/LoginView/README.md +396 -0
- package/src/components/LoginView/icons.tsx +85 -0
- package/{dist/components/LoginView/index.d.ts → src/components/LoginView/index.ts} +3 -4
- package/src/components/Navbar/Navbar.stories.tsx +810 -0
- package/src/components/Navbar/Navbar.tsx +755 -0
- package/src/components/Navbar/Navbar.types.ts +219 -0
- package/src/components/Navbar/README.md +279 -0
- package/src/components/Navbar/icons.tsx +102 -0
- package/src/components/Navbar/index.ts +8 -0
- package/src/components/NavigationBar/NavigationBar.stories.tsx +406 -0
- package/src/components/NavigationBar/NavigationBar.tsx +246 -0
- package/src/components/NavigationBar/NavigationBar.types.ts +74 -0
- package/src/components/NavigationBar/README.md +469 -0
- package/{dist/components/NavigationBar/index.d.ts → src/components/NavigationBar/index.ts} +2 -3
- package/src/components/NavigationRail/NavigationRail.stories.tsx +417 -0
- package/src/components/NavigationRail/NavigationRail.tsx +418 -0
- package/src/components/NavigationRail/NavigationRail.types.ts +109 -0
- package/src/components/NavigationRail/README.md +224 -0
- package/{dist/components/NavigationRail/index.d.ts → src/components/NavigationRail/index.ts} +2 -3
- package/src/components/Notification/Notification.stories.tsx +513 -0
- package/src/components/Notification/Notification.tsx +145 -0
- package/src/components/Notification/Notification.types.ts +142 -0
- package/src/components/Notification/README.md +409 -0
- package/{dist/components/Notification/index.d.ts → src/components/Notification/index.ts} +3 -3
- package/src/components/POSConvention/POSConvention.stories.tsx +235 -0
- package/src/components/POSConvention/POSConvention.tsx +129 -0
- package/{dist/components/POSConvention/POSConvention.types.d.ts → src/components/POSConvention/POSConvention.types.ts} +38 -37
- package/src/components/POSConvention/README.md +123 -0
- package/src/components/POSConvention/icons.tsx +45 -0
- package/{dist/components/POSConvention/index.d.ts → src/components/POSConvention/index.ts} +3 -4
- package/src/components/POSLocationButton/POSLocationButton.stories.tsx +531 -0
- package/src/components/POSLocationButton/POSLocationButton.tsx +247 -0
- package/src/components/POSLocationButton/POSLocationButton.types.ts +87 -0
- package/src/components/POSLocationButton/README.md +253 -0
- package/src/components/POSLocationButton/icons.tsx +120 -0
- package/src/components/POSLocationButton/index.ts +14 -0
- package/src/components/POSNumberButton/POSNumberButton.stories.tsx +415 -0
- package/src/components/POSNumberButton/POSNumberButton.tsx +179 -0
- package/src/components/POSNumberButton/POSNumberButton.types.ts +51 -0
- package/src/components/POSNumberButton/README.md +321 -0
- package/{dist/components/POSNumberButton/index.d.ts → src/components/POSNumberButton/index.ts} +3 -3
- package/src/components/POSProductButton/POSProductButton.stories.tsx +318 -0
- package/src/components/POSProductButton/POSProductButton.tsx +152 -0
- package/src/components/POSProductButton/POSProductButton.types.ts +46 -0
- package/src/components/POSProductButton/README.md +269 -0
- package/{dist/components/POSProductButton/index.d.ts → src/components/POSProductButton/index.ts} +2 -3
- package/src/components/POSProductCard/POSProductCard.stories.tsx +642 -0
- package/src/components/POSProductCard/POSProductCard.tsx +208 -0
- package/src/components/POSProductCard/POSProductCard.types.ts +76 -0
- package/src/components/POSProductCard/README.md +179 -0
- package/src/components/POSProductCard/icons.tsx +26 -0
- package/{dist/components/POSProductCard/index.d.ts → src/components/POSProductCard/index.ts} +2 -3
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +753 -0
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +332 -0
- package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +119 -0
- package/src/components/POSProductSidebarItems/README.md +198 -0
- package/src/components/POSProductSidebarItems/icons.tsx +21 -0
- package/{dist/components/POSProductSidebarItems/index.d.ts → src/components/POSProductSidebarItems/index.ts} +3 -4
- package/src/components/POSTable/POSTable.stories.tsx +737 -0
- package/src/components/POSTable/POSTable.tsx +401 -0
- package/src/components/POSTable/POSTable.types.ts +83 -0
- package/src/components/POSTable/README.md +286 -0
- package/src/components/POSTable/index.ts +7 -0
- package/src/components/Pagination/Pagination.stories.tsx +555 -0
- package/src/components/Pagination/Pagination.tsx +286 -0
- package/src/components/Pagination/Pagination.types.ts +93 -0
- package/src/components/Pagination/README.md +298 -0
- package/src/components/Pagination/icons.tsx +47 -0
- package/{dist/components/Pagination/index.d.ts → src/components/Pagination/index.ts} +3 -4
- package/src/components/Quantity/Quantity.stories.tsx +457 -0
- package/src/components/Quantity/Quantity.tsx +289 -0
- package/src/components/Quantity/Quantity.types.ts +70 -0
- package/src/components/Radio/Radio.stories.tsx +523 -0
- package/src/components/Radio/Radio.tsx +170 -0
- package/src/components/Radio/Radio.types.ts +122 -0
- package/src/components/Select/README.md +299 -0
- package/src/components/Select/Select.stories.tsx +673 -0
- package/src/components/Select/Select.tsx +454 -0
- package/src/components/Select/Select.types.ts +148 -0
- package/src/components/Select/icons.tsx +50 -0
- package/{dist/components/Select/index.d.ts → src/components/Select/index.ts} +3 -4
- package/src/components/SignUpView/SignUpView.stories.tsx +129 -0
- package/src/components/SignUpView/SignUpView.tsx +503 -0
- package/src/components/SignUpView/SignUpView.types.ts +58 -0
- package/src/components/SignUpView/icons.tsx +71 -0
- package/{dist/components/SignUpView/index.d.ts → src/components/SignUpView/index.ts} +3 -4
- package/src/components/Switch/README.md +112 -0
- package/src/components/Switch/Switch.stories.tsx +550 -0
- package/src/components/Switch/Switch.tsx +246 -0
- package/src/components/Switch/Switch.types.ts +67 -0
- package/src/components/Table/README.md +369 -0
- package/src/components/Table/Table.stories.tsx +805 -0
- package/src/components/Table/Table.tsx +688 -0
- package/src/components/Table/Table.types.ts +204 -0
- package/src/components/Table/index.ts +9 -0
- package/src/components/Tabs/README.md +201 -0
- package/src/components/Tabs/Tabs.stories.tsx +580 -0
- package/src/components/Tabs/Tabs.tsx +356 -0
- package/src/components/Tabs/Tabs.types.ts +127 -0
- package/src/components/Tabs/icons.tsx +129 -0
- package/src/components/Tabs/index.ts +11 -0
- package/src/components/Textarea/Textarea.stories.tsx +535 -0
- package/src/components/Textarea/Textarea.tsx +188 -0
- package/src/components/Textarea/Textarea.types.ts +54 -0
- package/src/context/ThemeContext.tsx +99 -0
- package/{dist/context/index.d.ts → src/context/index.ts} +1 -2
- package/src/index.css +29 -0
- package/src/index.ts +39 -0
- package/src/main.tsx +10 -0
- package/src/views/ProductsView/ProductsView.stories.tsx +344 -0
- package/src/views/ProductsView/ProductsView.tsx +480 -0
- package/src/views/ProductsView/ProductsView.types.ts +238 -0
- package/src/views/ProductsView/README.md +312 -0
- package/src/views/ProductsView/icons.tsx +38 -0
- package/src/views/ProductsView/index.ts +8 -0
- package/src/views/RecoverPasswordView/README.md +269 -0
- package/src/views/RecoverPasswordView/RecoverPasswordView.stories.tsx +131 -0
- package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +376 -0
- package/src/views/RecoverPasswordView/RecoverPasswordView.types.ts +56 -0
- package/src/views/RecoverPasswordView/icons.tsx +17 -0
- package/{dist/views/RecoverPasswordView/index.d.ts → src/views/RecoverPasswordView/index.ts} +2 -3
- package/src/views/TableLayoutView/README.md +268 -0
- package/src/views/TableLayoutView/TableLayoutView.stories.tsx +235 -0
- package/src/views/TableLayoutView/TableLayoutView.tsx +461 -0
- package/src/views/TableLayoutView/TableLayoutView.types.ts +209 -0
- package/src/views/TableLayoutView/icons.tsx +113 -0
- package/src/views/TableLayoutView/index.ts +6 -0
- package/storybook/main.ts +20 -0
- package/storybook/preview.tsx +84 -0
- package/storybook/vitest.setup.ts +7 -0
- package/tailwind.config.js +128 -0
- package/dist/ButtonTest.d.ts +0 -6
- package/dist/ButtonTest.d.ts.map +0 -1
- package/dist/components/Alert/Alert.d.ts +0 -23
- package/dist/components/Alert/Alert.d.ts.map +0 -1
- package/dist/components/Alert/Alert.types.d.ts +0 -46
- package/dist/components/Alert/Alert.types.d.ts.map +0 -1
- package/dist/components/Avatar/Avatar.d.ts +0 -41
- package/dist/components/Avatar/Avatar.d.ts.map +0 -1
- package/dist/components/Avatar/Avatar.types.d.ts +0 -46
- package/dist/components/Avatar/Avatar.types.d.ts.map +0 -1
- package/dist/components/Badge/Badge.d.ts +0 -42
- package/dist/components/Badge/Badge.d.ts.map +0 -1
- package/dist/components/Badge/Badge.types.d.ts +0 -32
- package/dist/components/Badge/Badge.types.d.ts.map +0 -1
- package/dist/components/Button/Button.d.ts +0 -84
- package/dist/components/Button/Button.d.ts.map +0 -1
- package/dist/components/Button/Button.types.d.ts +0 -162
- package/dist/components/Button/Button.types.d.ts.map +0 -1
- package/dist/components/Button/icons.d.ts +0 -26
- package/dist/components/Button/icons.d.ts.map +0 -1
- package/dist/components/Button/index.d.ts.map +0 -1
- package/dist/components/Checkbox/Checkbox.d.ts +0 -31
- package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
- package/dist/components/Checkbox/Checkbox.types.d.ts +0 -53
- package/dist/components/Checkbox/Checkbox.types.d.ts.map +0 -1
- package/dist/components/DescriptionList/DescriptionList.d.ts +0 -38
- package/dist/components/DescriptionList/DescriptionList.d.ts.map +0 -1
- package/dist/components/DescriptionList/DescriptionList.types.d.ts +0 -27
- package/dist/components/DescriptionList/DescriptionList.types.d.ts.map +0 -1
- package/dist/components/Divider/Divider.d.ts +0 -33
- package/dist/components/Divider/Divider.d.ts.map +0 -1
- package/dist/components/Divider/Divider.types.d.ts +0 -22
- package/dist/components/Divider/Divider.types.d.ts.map +0 -1
- package/dist/components/Dropdown/Dropdown.d.ts +0 -66
- package/dist/components/Dropdown/Dropdown.d.ts.map +0 -1
- package/dist/components/Dropdown/Dropdown.types.d.ts +0 -124
- package/dist/components/Dropdown/Dropdown.types.d.ts.map +0 -1
- package/dist/components/Dropdown/icons.d.ts +0 -10
- package/dist/components/Dropdown/icons.d.ts.map +0 -1
- package/dist/components/Dropdown/index.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts +0 -101
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +0 -95
- package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/icons.d.ts +0 -19
- package/dist/components/DropdownItemCollapsible/icons.d.ts.map +0 -1
- package/dist/components/DropdownItemCollapsible/index.d.ts +0 -9
- package/dist/components/DropdownItemCollapsible/index.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts +0 -75
- package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts +0 -85
- package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/icons.d.ts +0 -48
- package/dist/components/DropdownItemHeading/icons.d.ts.map +0 -1
- package/dist/components/DropdownItemHeading/index.d.ts +0 -4
- package/dist/components/DropdownItemHeading/index.d.ts.map +0 -1
- package/dist/components/Input/Input.d.ts +0 -40
- package/dist/components/Input/Input.d.ts.map +0 -1
- package/dist/components/Input/Input.types.d.ts +0 -71
- package/dist/components/Input/Input.types.d.ts.map +0 -1
- package/dist/components/Input/icons.d.ts +0 -15
- package/dist/components/Input/icons.d.ts.map +0 -1
- package/dist/components/Input/index.d.ts.map +0 -1
- package/dist/components/LoginView/LoginView.d.ts +0 -36
- package/dist/components/LoginView/LoginView.d.ts.map +0 -1
- package/dist/components/LoginView/LoginView.types.d.ts +0 -46
- package/dist/components/LoginView/LoginView.types.d.ts.map +0 -1
- package/dist/components/LoginView/icons.d.ts +0 -18
- package/dist/components/LoginView/icons.d.ts.map +0 -1
- package/dist/components/LoginView/index.d.ts.map +0 -1
- package/dist/components/Navbar/Navbar.d.ts +0 -63
- package/dist/components/Navbar/Navbar.d.ts.map +0 -1
- package/dist/components/Navbar/Navbar.types.d.ts +0 -194
- package/dist/components/Navbar/Navbar.types.d.ts.map +0 -1
- package/dist/components/Navbar/icons.d.ts +0 -12
- package/dist/components/Navbar/icons.d.ts.map +0 -1
- package/dist/components/Navbar/index.d.ts +0 -4
- package/dist/components/Navbar/index.d.ts.map +0 -1
- package/dist/components/NavigationBar/NavigationBar.d.ts +0 -75
- package/dist/components/NavigationBar/NavigationBar.d.ts.map +0 -1
- package/dist/components/NavigationBar/NavigationBar.types.d.ts +0 -63
- package/dist/components/NavigationBar/NavigationBar.types.d.ts.map +0 -1
- package/dist/components/NavigationBar/index.d.ts.map +0 -1
- package/dist/components/NavigationRail/NavigationRail.d.ts +0 -7
- package/dist/components/NavigationRail/NavigationRail.d.ts.map +0 -1
- package/dist/components/NavigationRail/NavigationRail.types.d.ts +0 -92
- package/dist/components/NavigationRail/NavigationRail.types.d.ts.map +0 -1
- package/dist/components/NavigationRail/index.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts +0 -90
- package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +0 -155
- package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +0 -1
- package/dist/components/NavigationRailItem/index.d.ts +0 -3
- package/dist/components/NavigationRailItem/index.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts +0 -124
- package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts +0 -154
- package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts.map +0 -1
- package/dist/components/NavigationRailPanel/index.d.ts +0 -3
- package/dist/components/NavigationRailPanel/index.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts +0 -99
- package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +0 -111
- package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/icons.d.ts +0 -58
- package/dist/components/NavigationRailTypes/icons.d.ts.map +0 -1
- package/dist/components/NavigationRailTypes/index.d.ts +0 -4
- package/dist/components/NavigationRailTypes/index.d.ts.map +0 -1
- package/dist/components/Notification/Notification.d.ts +0 -52
- package/dist/components/Notification/Notification.d.ts.map +0 -1
- package/dist/components/Notification/Notification.types.d.ts +0 -138
- package/dist/components/Notification/Notification.types.d.ts.map +0 -1
- package/dist/components/Notification/index.d.ts.map +0 -1
- package/dist/components/POSConvention/POSConvention.d.ts +0 -55
- package/dist/components/POSConvention/POSConvention.d.ts.map +0 -1
- package/dist/components/POSConvention/POSConvention.types.d.ts.map +0 -1
- package/dist/components/POSConvention/icons.d.ts +0 -21
- package/dist/components/POSConvention/icons.d.ts.map +0 -1
- package/dist/components/POSConvention/index.d.ts.map +0 -1
- package/dist/components/POSLocationButton/POSLocationButton.d.ts +0 -73
- package/dist/components/POSLocationButton/POSLocationButton.d.ts.map +0 -1
- package/dist/components/POSLocationButton/POSLocationButton.types.d.ts +0 -75
- package/dist/components/POSLocationButton/POSLocationButton.types.d.ts.map +0 -1
- package/dist/components/POSLocationButton/icons.d.ts +0 -37
- package/dist/components/POSLocationButton/icons.d.ts.map +0 -1
- package/dist/components/POSLocationButton/index.d.ts +0 -4
- package/dist/components/POSLocationButton/index.d.ts.map +0 -1
- package/dist/components/POSNumberButton/POSNumberButton.d.ts +0 -61
- package/dist/components/POSNumberButton/POSNumberButton.d.ts.map +0 -1
- package/dist/components/POSNumberButton/POSNumberButton.types.d.ts +0 -43
- package/dist/components/POSNumberButton/POSNumberButton.types.d.ts.map +0 -1
- package/dist/components/POSNumberButton/index.d.ts.map +0 -1
- package/dist/components/POSProductButton/POSProductButton.d.ts +0 -59
- package/dist/components/POSProductButton/POSProductButton.d.ts.map +0 -1
- package/dist/components/POSProductButton/POSProductButton.types.d.ts +0 -40
- package/dist/components/POSProductButton/POSProductButton.types.d.ts.map +0 -1
- package/dist/components/POSProductButton/index.d.ts.map +0 -1
- package/dist/components/POSProductCard/POSProductCard.d.ts +0 -68
- package/dist/components/POSProductCard/POSProductCard.d.ts.map +0 -1
- package/dist/components/POSProductCard/POSProductCard.types.d.ts +0 -67
- package/dist/components/POSProductCard/POSProductCard.types.d.ts.map +0 -1
- package/dist/components/POSProductCard/icons.d.ts +0 -10
- package/dist/components/POSProductCard/icons.d.ts.map +0 -1
- package/dist/components/POSProductCard/index.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts +0 -57
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts +0 -85
- package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/icons.d.ts +0 -9
- package/dist/components/POSProductSidebarItems/icons.d.ts.map +0 -1
- package/dist/components/POSProductSidebarItems/index.d.ts.map +0 -1
- package/dist/components/POSTable/POSTable.d.ts +0 -75
- package/dist/components/POSTable/POSTable.d.ts.map +0 -1
- package/dist/components/POSTable/POSTable.types.d.ts +0 -71
- package/dist/components/POSTable/POSTable.types.d.ts.map +0 -1
- package/dist/components/POSTable/index.d.ts +0 -3
- package/dist/components/POSTable/index.d.ts.map +0 -1
- package/dist/components/Pagination/Pagination.d.ts +0 -29
- package/dist/components/Pagination/Pagination.d.ts.map +0 -1
- package/dist/components/Pagination/Pagination.types.d.ts +0 -79
- package/dist/components/Pagination/Pagination.types.d.ts.map +0 -1
- package/dist/components/Pagination/icons.d.ts +0 -18
- package/dist/components/Pagination/icons.d.ts.map +0 -1
- package/dist/components/Pagination/index.d.ts.map +0 -1
- package/dist/components/Quantity/Quantity.d.ts +0 -38
- package/dist/components/Quantity/Quantity.d.ts.map +0 -1
- package/dist/components/Quantity/Quantity.types.d.ts +0 -59
- package/dist/components/Quantity/Quantity.types.d.ts.map +0 -1
- package/dist/components/Radio/Radio.d.ts +0 -45
- package/dist/components/Radio/Radio.d.ts.map +0 -1
- package/dist/components/Radio/Radio.types.d.ts +0 -115
- package/dist/components/Radio/Radio.types.d.ts.map +0 -1
- package/dist/components/Select/Select.d.ts +0 -37
- package/dist/components/Select/Select.d.ts.map +0 -1
- package/dist/components/Select/Select.types.d.ts +0 -124
- package/dist/components/Select/Select.types.d.ts.map +0 -1
- package/dist/components/Select/icons.d.ts +0 -16
- package/dist/components/Select/icons.d.ts.map +0 -1
- package/dist/components/Select/index.d.ts.map +0 -1
- package/dist/components/SignUpView/SignUpView.d.ts +0 -38
- package/dist/components/SignUpView/SignUpView.d.ts.map +0 -1
- package/dist/components/SignUpView/SignUpView.types.d.ts +0 -51
- package/dist/components/SignUpView/SignUpView.types.d.ts.map +0 -1
- package/dist/components/SignUpView/icons.d.ts +0 -18
- package/dist/components/SignUpView/icons.d.ts.map +0 -1
- package/dist/components/SignUpView/index.d.ts.map +0 -1
- package/dist/components/Switch/Switch.d.ts +0 -46
- package/dist/components/Switch/Switch.d.ts.map +0 -1
- package/dist/components/Switch/Switch.types.d.ts +0 -58
- package/dist/components/Switch/Switch.types.d.ts.map +0 -1
- package/dist/components/Table/Table.d.ts +0 -64
- package/dist/components/Table/Table.d.ts.map +0 -1
- package/dist/components/Table/Table.types.d.ts +0 -173
- package/dist/components/Table/Table.types.d.ts.map +0 -1
- package/dist/components/Table/index.d.ts +0 -3
- package/dist/components/Table/index.d.ts.map +0 -1
- package/dist/components/Tabs/Tabs.d.ts +0 -76
- package/dist/components/Tabs/Tabs.d.ts.map +0 -1
- package/dist/components/Tabs/Tabs.types.d.ts +0 -107
- package/dist/components/Tabs/Tabs.types.d.ts.map +0 -1
- package/dist/components/Tabs/icons.d.ts +0 -45
- package/dist/components/Tabs/icons.d.ts.map +0 -1
- package/dist/components/Tabs/index.d.ts +0 -4
- package/dist/components/Tabs/index.d.ts.map +0 -1
- package/dist/components/Textarea/Textarea.d.ts +0 -38
- package/dist/components/Textarea/Textarea.d.ts.map +0 -1
- package/dist/components/Textarea/Textarea.types.d.ts +0 -46
- package/dist/components/Textarea/Textarea.types.d.ts.map +0 -1
- package/dist/context/ThemeContext.d.ts +0 -46
- package/dist/context/ThemeContext.d.ts.map +0 -1
- package/dist/context/index.d.ts.map +0 -1
- package/dist/index.d.ts +0 -56
- package/dist/index.d.ts.map +0 -1
- package/dist/siesa-ui-kit.cjs +0 -1260
- package/dist/siesa-ui-kit.cjs.map +0 -1
- package/dist/siesa-ui-kit.mjs +0 -4496
- package/dist/siesa-ui-kit.mjs.map +0 -1
- package/dist/views/ListView/ListView.d.ts +0 -47
- package/dist/views/ListView/ListView.d.ts.map +0 -1
- package/dist/views/ListView/ListView.types.d.ts +0 -177
- package/dist/views/ListView/ListView.types.d.ts.map +0 -1
- package/dist/views/ListView/icons.d.ts +0 -60
- package/dist/views/ListView/icons.d.ts.map +0 -1
- package/dist/views/ListView/index.d.ts +0 -3
- package/dist/views/ListView/index.d.ts.map +0 -1
- package/dist/views/LoginView/LoginView.d.ts +0 -36
- package/dist/views/LoginView/LoginView.d.ts.map +0 -1
- package/dist/views/LoginView/LoginView.types.d.ts +0 -46
- package/dist/views/LoginView/LoginView.types.d.ts.map +0 -1
- package/dist/views/LoginView/icons.d.ts +0 -18
- package/dist/views/LoginView/icons.d.ts.map +0 -1
- package/dist/views/LoginView/index.d.ts +0 -4
- package/dist/views/LoginView/index.d.ts.map +0 -1
- package/dist/views/ProductsView/ProductsView.d.ts +0 -56
- package/dist/views/ProductsView/ProductsView.d.ts.map +0 -1
- package/dist/views/ProductsView/ProductsView.types.d.ts +0 -184
- package/dist/views/ProductsView/ProductsView.types.d.ts.map +0 -1
- package/dist/views/ProductsView/icons.d.ts +0 -12
- package/dist/views/ProductsView/icons.d.ts.map +0 -1
- package/dist/views/ProductsView/index.d.ts +0 -3
- package/dist/views/ProductsView/index.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts +0 -34
- package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts +0 -50
- package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/icons.d.ts +0 -9
- package/dist/views/RecoverPasswordView/icons.d.ts.map +0 -1
- package/dist/views/RecoverPasswordView/index.d.ts.map +0 -1
- package/dist/views/SignUpView/SignUpView.d.ts +0 -38
- package/dist/views/SignUpView/SignUpView.d.ts.map +0 -1
- package/dist/views/SignUpView/SignUpView.types.d.ts +0 -51
- package/dist/views/SignUpView/SignUpView.types.d.ts.map +0 -1
- package/dist/views/SignUpView/icons.d.ts +0 -18
- package/dist/views/SignUpView/icons.d.ts.map +0 -1
- package/dist/views/SignUpView/index.d.ts +0 -4
- package/dist/views/SignUpView/index.d.ts.map +0 -1
- package/dist/views/TableLayoutView/TableLayoutView.d.ts +0 -46
- package/dist/views/TableLayoutView/TableLayoutView.d.ts.map +0 -1
- package/dist/views/TableLayoutView/TableLayoutView.types.d.ts +0 -170
- package/dist/views/TableLayoutView/TableLayoutView.types.d.ts.map +0 -1
- package/dist/views/TableLayoutView/icons.d.ts +0 -27
- package/dist/views/TableLayoutView/icons.d.ts.map +0 -1
- package/dist/views/TableLayoutView/index.d.ts +0 -3
- package/dist/views/TableLayoutView/index.d.ts.map +0 -1
package/docs/colors.md
ADDED
|
@@ -0,0 +1,832 @@
|
|
|
1
|
+
# 🎨 Sistema de Colores - Siesa UI Kit
|
|
2
|
+
|
|
3
|
+
## 📋 Tabla de Contenidos
|
|
4
|
+
|
|
5
|
+
1. [Introducción](#introducción)
|
|
6
|
+
2. [Arquitectura de Colores](#arquitectura-de-colores)
|
|
7
|
+
3. [Colores Primitivos](#colores-primitivos)
|
|
8
|
+
4. [Tokens Semánticos](#tokens-semánticos)
|
|
9
|
+
5. [Modos de Color (Light/Dark)](#modos-de-color-lightdark)
|
|
10
|
+
6. [Guía de Uso en Componentes](#guía-de-uso-en-componentes)
|
|
11
|
+
7. [Ejemplos de Código](#ejemplos-de-código)
|
|
12
|
+
8. [Mejores Prácticas](#mejores-prácticas)
|
|
13
|
+
9. [Referencia Rápida](#referencia-rápida)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Introducción
|
|
18
|
+
|
|
19
|
+
Este documento describe el sistema de colores del **Siesa UI Kit**, diseñado para garantizar consistencia visual, accesibilidad y mantenibilidad en todos los componentes de la interfaz.
|
|
20
|
+
|
|
21
|
+
### 🎯 Objetivos del Sistema
|
|
22
|
+
|
|
23
|
+
- **Consistencia**: Colores unificados en toda la aplicación
|
|
24
|
+
- **Accesibilidad**: Ratios de contraste WCAG AA/AAA
|
|
25
|
+
- **Mantenibilidad**: Tokens semánticos fáciles de actualizar
|
|
26
|
+
- **Escalabilidad**: Sistema extensible para nuevos componentes
|
|
27
|
+
- **Dark Mode**: Soporte completo para modo oscuro
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Arquitectura de Colores
|
|
32
|
+
|
|
33
|
+
El sistema de colores está estructurado en 3 capas:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
┌─────────────────────────────────────┐
|
|
37
|
+
│ CAPA 3: Componentes │
|
|
38
|
+
│ (Button, Alert, Badge, etc.) │
|
|
39
|
+
└─────────────────────────────────────┘
|
|
40
|
+
▲
|
|
41
|
+
│ usa tokens
|
|
42
|
+
│
|
|
43
|
+
┌─────────────────────────────────────┐
|
|
44
|
+
│ CAPA 2: Tokens Semánticos │
|
|
45
|
+
│ (content-primary, bg-primary, etc) │
|
|
46
|
+
└─────────────────────────────────────┘
|
|
47
|
+
▲
|
|
48
|
+
│ mapea a
|
|
49
|
+
│
|
|
50
|
+
┌─────────────────────────────────────┐
|
|
51
|
+
│ CAPA 1: Colores Primitivos │
|
|
52
|
+
│ (primary-custom-600, gray-100, etc)│
|
|
53
|
+
└─────────────────────────────────────┘
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Principios de Diseño
|
|
57
|
+
|
|
58
|
+
1. **Primitivos = Valores Hex**: Colores base inmutables
|
|
59
|
+
2. **Tokens = Intención de Uso**: Nombres semánticos que describen propósito
|
|
60
|
+
3. **Componentes = Aplicación**: Uso consistente de tokens
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Colores Primitivos
|
|
65
|
+
|
|
66
|
+
Los colores primitivos son la base del sistema. Están organizados en escalas de 100-700 (actualmente) con planes de expandir a 50-950.
|
|
67
|
+
|
|
68
|
+
### 📘 Primary Custom (Azul Principal)
|
|
69
|
+
|
|
70
|
+
Color primario de marca Siesa. Usado en botones, enlaces y elementos interactivos principales.
|
|
71
|
+
|
|
72
|
+
| Escala | Valor Hex | CSS Class | Uso Principal |
|
|
73
|
+
|--------|-----------|-----------|---------------|
|
|
74
|
+
| **100** | `#dbeefe` | `primary-custom-100` | Hover backgrounds (outline buttons) |
|
|
75
|
+
| **300** | `#93d1fd` | `primary-custom-300` | Bordes (outline buttons, inputs) |
|
|
76
|
+
| **400** | `#60b6fa` | `primary-custom-400` | Focus rings |
|
|
77
|
+
| **500** | `#3c9bf6` | `primary-custom-500` | Hover state (default buttons) |
|
|
78
|
+
| **600** | `#0e79fd` | `primary-custom-600` | **Color principal** (contenido, íconos) |
|
|
79
|
+
| **700** | `#0c6ade` | `primary-custom-700` | Active/Pressed states |
|
|
80
|
+
|
|
81
|
+
**Ejemplo de Aplicación**:
|
|
82
|
+
```tsx
|
|
83
|
+
// Botón primario
|
|
84
|
+
<button className="bg-primary-custom-600 hover:bg-primary-custom-500 focus:ring-primary-custom-400">
|
|
85
|
+
Click me
|
|
86
|
+
</button>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
### 🎨 Colores Inverse (Para fondos oscuros)
|
|
92
|
+
|
|
93
|
+
Colores optimizados para usar sobre fondos de color primario.
|
|
94
|
+
|
|
95
|
+
| Token | Valor Hex | Uso |
|
|
96
|
+
|-------|-----------|-----|
|
|
97
|
+
| `primary-inverse-content` | `#eff8ff` | Texto sobre fondo primario |
|
|
98
|
+
| `primary-inverse-background` | `#0e79fd` | Fondo de botones primarios |
|
|
99
|
+
| `primary-inverse-border` | `#3c9bf6` | Bordes sobre fondo primario |
|
|
100
|
+
|
|
101
|
+
**Ejemplo de Aplicación**:
|
|
102
|
+
```tsx
|
|
103
|
+
// Botón con fondo primario y texto claro
|
|
104
|
+
<button className="bg-primary-inverse-background text-primary-inverse-content border-primary-inverse-border">
|
|
105
|
+
Botón Primario
|
|
106
|
+
</button>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
### 🌈 Colores del Sistema (Light Mode)
|
|
112
|
+
|
|
113
|
+
Paleta neutral para textos, fondos y bordes en modo claro.
|
|
114
|
+
|
|
115
|
+
#### Contenido (Texto)
|
|
116
|
+
|
|
117
|
+
| Token | Valor Hex | Uso | Contraste |
|
|
118
|
+
|-------|-----------|-----|-----------|
|
|
119
|
+
| `content-primary` | `#18181b` | Texto principal | AAA (18:1) |
|
|
120
|
+
| `content-secondary` | `#a1a1aa` | Descripciones, labels | AA (4.5:1) |
|
|
121
|
+
| `content-tertiary` | `#71717a` | Placeholders, disabled text | AA (4.5:1) |
|
|
122
|
+
|
|
123
|
+
#### Fondos
|
|
124
|
+
|
|
125
|
+
| Token | Valor Hex | Uso |
|
|
126
|
+
|-------|-----------|-----|
|
|
127
|
+
| `bg-primary` | `#ffffff` | Fondo principal de la app |
|
|
128
|
+
| `background-secondary` | `#f4f4f5` | Cards, fondos disabled |
|
|
129
|
+
|
|
130
|
+
#### Bordes
|
|
131
|
+
|
|
132
|
+
| Token | Valor Hex | Uso |
|
|
133
|
+
|-------|-----------|-----|
|
|
134
|
+
| `border-primary` | `#e4e4e7` | Bordes normales (inputs, cards) |
|
|
135
|
+
| `border-secondary` | `#f4f4f5` | Dividers, bordes suaves |
|
|
136
|
+
|
|
137
|
+
**Ejemplo de Aplicación**:
|
|
138
|
+
```tsx
|
|
139
|
+
// Card con sistema de colores semánticos
|
|
140
|
+
<div className="bg-bg-primary border border-border-primary">
|
|
141
|
+
<h3 className="text-content-primary">Título Principal</h3>
|
|
142
|
+
<p className="text-content-secondary">Descripción secundaria</p>
|
|
143
|
+
</div>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### 🔴 Colores de Error
|
|
149
|
+
|
|
150
|
+
Paleta para estados de error y validación.
|
|
151
|
+
|
|
152
|
+
| Token | Valor Hex | Base Color | Uso |
|
|
153
|
+
|-------|-----------|------------|-----|
|
|
154
|
+
| `error-bg` | `#fef2f2` | Red 50 | Fondo de alertas de error |
|
|
155
|
+
| `error-border` | `#ef4444` | Red 500 | Bordes de inputs con error |
|
|
156
|
+
| `error-content` | `#dc2626` | Red 600 | Texto de mensajes de error |
|
|
157
|
+
|
|
158
|
+
**Ejemplo de Aplicación**:
|
|
159
|
+
```tsx
|
|
160
|
+
// Input con error
|
|
161
|
+
<div className="border-2 border-error-border bg-error-bg">
|
|
162
|
+
<input type="text" />
|
|
163
|
+
<span className="text-error-content">Email inválido</span>
|
|
164
|
+
</div>
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
> **⚠️ PENDIENTE**: Agregar colores para Success, Warning, Info con la misma estructura.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Tokens Semánticos
|
|
172
|
+
|
|
173
|
+
Los tokens semánticos describen **dónde y cómo** usar los colores, no **qué color** son.
|
|
174
|
+
|
|
175
|
+
### 📊 Estructura de Tokens
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
{categoria}-{proposito}-{variante}
|
|
179
|
+
|
|
180
|
+
Ejemplos:
|
|
181
|
+
- content-primary (Categoría: content, Propósito: primary)
|
|
182
|
+
- bg-secondary (Categoría: bg, Propósito: secondary)
|
|
183
|
+
- border-custom (Categoría: border, Propósito: custom)
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Categorías de Tokens
|
|
187
|
+
|
|
188
|
+
| Categoría | Prefijo | Uso | Ejemplos |
|
|
189
|
+
|-----------|---------|-----|----------|
|
|
190
|
+
| **Content** | `content-` | Texto, íconos | `content-primary`, `content-secondary` |
|
|
191
|
+
| **Background** | `bg-`, `background-` | Fondos | `bg-primary`, `background-secondary` |
|
|
192
|
+
| **Border** | `border-` | Bordes, divisores | `border-primary`, `border-secondary` |
|
|
193
|
+
| **Primary Custom** | `primary-custom-` | Color de marca | `primary-custom-600`, `primary-custom-300` |
|
|
194
|
+
| **Error** | `error-` | Estados de error | `error-bg`, `error-border`, `error-content` |
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Modos de Color (Light/Dark)
|
|
199
|
+
|
|
200
|
+
### Configuración de Tailwind CSS
|
|
201
|
+
|
|
202
|
+
Siesa UI Kit utiliza la estrategia **class-based** de Tailwind CSS para dark mode:
|
|
203
|
+
|
|
204
|
+
```javascript
|
|
205
|
+
// tailwind.config.js
|
|
206
|
+
module.exports = {
|
|
207
|
+
darkMode: 'class', // ✅ Estrategia basada en clases
|
|
208
|
+
// ... resto de la configuración
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Con `darkMode: 'class'`, el modificador `dark:` se activa cuando un elemento ancestro (típicamente `<html>`) tiene la clase `dark`:
|
|
213
|
+
|
|
214
|
+
### 🌞 Light Mode (Por Defecto)
|
|
215
|
+
|
|
216
|
+
```html
|
|
217
|
+
<html>
|
|
218
|
+
<!-- Sin clase 'dark' = Light Mode activo -->
|
|
219
|
+
<body>
|
|
220
|
+
<div class="bg-white text-content-primary">
|
|
221
|
+
Contenido en light mode
|
|
222
|
+
</div>
|
|
223
|
+
</body>
|
|
224
|
+
</html>
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### 🌙 Dark Mode
|
|
228
|
+
|
|
229
|
+
```html
|
|
230
|
+
<html class="dark">
|
|
231
|
+
<!-- Con clase 'dark' = Dark Mode activo -->
|
|
232
|
+
<body>
|
|
233
|
+
<div class="bg-white dark:bg-dark-bg-primary text-content-primary dark:text-dark-content-primary">
|
|
234
|
+
Contenido adaptado a dark mode
|
|
235
|
+
</div>
|
|
236
|
+
</body>
|
|
237
|
+
</html>
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Modificador dark: en Tailwind
|
|
241
|
+
|
|
242
|
+
El modificador `dark:` funciona como prefijo para cualquier utilidad de Tailwind:
|
|
243
|
+
|
|
244
|
+
```tsx
|
|
245
|
+
// Sintaxis básica
|
|
246
|
+
dark:{utility}
|
|
247
|
+
|
|
248
|
+
// Ejemplos
|
|
249
|
+
dark:bg-dark-bg-primary // Background en dark mode
|
|
250
|
+
dark:text-white // Texto en dark mode
|
|
251
|
+
dark:border-gray-700 // Borde en dark mode
|
|
252
|
+
dark:hover:bg-blue-600 // Hover en dark mode
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Colores para Dark Mode
|
|
256
|
+
|
|
257
|
+
| Token (Dark) | Valor Hex | Descripción |
|
|
258
|
+
|--------------|-----------|-------------|
|
|
259
|
+
| `dark-bg-primary` | `#000000` | Fondo principal oscuro |
|
|
260
|
+
| `dark-content-primary` | `#ffffff` | Texto principal claro (blanco) |
|
|
261
|
+
| `dark-border-primary` | `#71717a` | Bordes en dark mode |
|
|
262
|
+
| `dark-border-custom` | `#0f6ae3` | Bordes de componentes interactivos |
|
|
263
|
+
| `dark-bg-inverse` | `#bfe2fe` | Fondos inversos (botones) |
|
|
264
|
+
| `dark-content-inverse` | `#0e79fd` | Texto inverso |
|
|
265
|
+
|
|
266
|
+
### Combinación con Otros Modificadores
|
|
267
|
+
|
|
268
|
+
El modificador `dark:` se puede combinar con cualquier otro modificador de Tailwind:
|
|
269
|
+
|
|
270
|
+
```tsx
|
|
271
|
+
// dark: + hover:
|
|
272
|
+
<button className="
|
|
273
|
+
bg-primary-custom-600
|
|
274
|
+
hover:bg-primary-custom-500
|
|
275
|
+
dark:bg-dark-bg-inverse
|
|
276
|
+
dark:hover:bg-dark-bg-inverse/90
|
|
277
|
+
">
|
|
278
|
+
Button con hover en ambos modos
|
|
279
|
+
</button>
|
|
280
|
+
|
|
281
|
+
// dark: + focus:
|
|
282
|
+
<input className="
|
|
283
|
+
border-border-primary
|
|
284
|
+
focus:border-primary-custom-400
|
|
285
|
+
dark:border-dark-border-primary
|
|
286
|
+
dark:focus:border-dark-border-custom
|
|
287
|
+
" />
|
|
288
|
+
|
|
289
|
+
// dark: + responsive (orden correcto: responsive → dark → state)
|
|
290
|
+
<div className="
|
|
291
|
+
bg-white
|
|
292
|
+
md:bg-gray-50
|
|
293
|
+
dark:bg-dark-bg-primary
|
|
294
|
+
dark:md:bg-gray-900
|
|
295
|
+
">
|
|
296
|
+
Responsive + dark mode
|
|
297
|
+
</div>
|
|
298
|
+
|
|
299
|
+
// dark: + group-hover:
|
|
300
|
+
<div className="group">
|
|
301
|
+
<p className="
|
|
302
|
+
text-content-secondary
|
|
303
|
+
group-hover:text-content-primary
|
|
304
|
+
dark:text-gray-400
|
|
305
|
+
dark:group-hover:text-white
|
|
306
|
+
">
|
|
307
|
+
Text con group hover
|
|
308
|
+
</p>
|
|
309
|
+
</div>
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### Orden de Modificadores
|
|
313
|
+
|
|
314
|
+
Cuando combines múltiples modificadores, sigue este orden:
|
|
315
|
+
|
|
316
|
+
**Formato**: `{responsive}:{dark}:{state}:{utility}`
|
|
317
|
+
|
|
318
|
+
```tsx
|
|
319
|
+
// ✅ CORRECTO - Orden consistente
|
|
320
|
+
<button className="
|
|
321
|
+
md:bg-blue-500
|
|
322
|
+
md:dark:bg-blue-700
|
|
323
|
+
md:dark:hover:bg-blue-800
|
|
324
|
+
">
|
|
325
|
+
|
|
326
|
+
// ❌ INCORRECTO - Orden inconsistente
|
|
327
|
+
<button className="
|
|
328
|
+
dark:md:hover:bg-blue-800
|
|
329
|
+
">
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
Ejemplos correctos:
|
|
333
|
+
```tsx
|
|
334
|
+
sm:dark:hover:bg-blue-500 // responsive → dark → state
|
|
335
|
+
lg:dark:focus:text-white // responsive → dark → state
|
|
336
|
+
md:dark:group-hover:opacity-100 // responsive → dark → state
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Estados Hover con Dark Mode
|
|
340
|
+
|
|
341
|
+
| Token | Light Mode | Dark Mode | Uso |
|
|
342
|
+
|-------|------------|-----------|-----|
|
|
343
|
+
| Hover Overlay | `rgba(0, 0, 0, 0.1)` | `rgba(255, 255, 255, 0.2)` | Botones ghost |
|
|
344
|
+
| Hover Primary | `-primary-custom-500` | `dark-bg-inverse/90` | Botones primarios |
|
|
345
|
+
| Hover Border | `-primary-custom-300` | `dark-border-custom` | Cards interactivas |
|
|
346
|
+
|
|
347
|
+
```tsx
|
|
348
|
+
// Hover overlay para botones ghost
|
|
349
|
+
<button className="
|
|
350
|
+
bg-transparent
|
|
351
|
+
hover:bg-hover-overlay
|
|
352
|
+
dark:hover:bg-hover-overlay-dark
|
|
353
|
+
">
|
|
354
|
+
Ghost Button
|
|
355
|
+
</button>
|
|
356
|
+
|
|
357
|
+
// Hover para botones primarios
|
|
358
|
+
<button className="
|
|
359
|
+
bg-primary-custom-600
|
|
360
|
+
hover:bg-primary-custom-500
|
|
361
|
+
dark:bg-dark-bg-inverse
|
|
362
|
+
dark:hover:bg-dark-bg-inverse/90
|
|
363
|
+
">
|
|
364
|
+
Primary Button
|
|
365
|
+
</button>
|
|
366
|
+
|
|
367
|
+
// Hover para cards interactivas
|
|
368
|
+
<div className="
|
|
369
|
+
border-border-primary
|
|
370
|
+
hover:border-primary-custom-300
|
|
371
|
+
dark:border-dark-border-primary
|
|
372
|
+
dark:hover:border-dark-border-custom
|
|
373
|
+
">
|
|
374
|
+
Interactive Card
|
|
375
|
+
</div>
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### Implementación con JavaScript
|
|
379
|
+
|
|
380
|
+
Para alternar entre modos, agrega/quita la clase `dark` del elemento `<html>`:
|
|
381
|
+
|
|
382
|
+
```tsx
|
|
383
|
+
// Toggle básico
|
|
384
|
+
const toggleDarkMode = () => {
|
|
385
|
+
document.documentElement.classList.toggle('dark');
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
// Con persistencia en localStorage
|
|
389
|
+
const toggleDarkMode = () => {
|
|
390
|
+
const isDark = document.documentElement.classList.contains('dark');
|
|
391
|
+
|
|
392
|
+
if (isDark) {
|
|
393
|
+
document.documentElement.classList.remove('dark');
|
|
394
|
+
localStorage.setItem('theme', 'light');
|
|
395
|
+
} else {
|
|
396
|
+
document.documentElement.classList.add('dark');
|
|
397
|
+
localStorage.setItem('theme', 'dark');
|
|
398
|
+
}
|
|
399
|
+
};
|
|
400
|
+
|
|
401
|
+
// Aplicar tema guardado al cargar
|
|
402
|
+
const savedTheme = localStorage.getItem('theme');
|
|
403
|
+
if (savedTheme === 'dark') {
|
|
404
|
+
document.documentElement.classList.add('dark');
|
|
405
|
+
}
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
**Ver**: `docs/dark-mode-guide.md` para implementación completa con React hooks y Context API.
|
|
409
|
+
|
|
410
|
+
### Ejemplo Completo de Componente
|
|
411
|
+
|
|
412
|
+
```tsx
|
|
413
|
+
// Card que adapta todos sus colores a dark mode
|
|
414
|
+
export const AdaptiveCard = () => {
|
|
415
|
+
return (
|
|
416
|
+
<div className="
|
|
417
|
+
p-6
|
|
418
|
+
bg-white dark:bg-dark-bg-primary
|
|
419
|
+
border border-border-primary dark:border-dark-border-primary
|
|
420
|
+
rounded-2xl
|
|
421
|
+
shadow-base
|
|
422
|
+
hover:shadow-lg
|
|
423
|
+
transition-shadow
|
|
424
|
+
">
|
|
425
|
+
{/* Header */}
|
|
426
|
+
<div className="mb-4 flex items-center justify-between">
|
|
427
|
+
<h3 className="
|
|
428
|
+
text-content-primary dark:text-dark-content-primary
|
|
429
|
+
font-bold
|
|
430
|
+
text-lg
|
|
431
|
+
">
|
|
432
|
+
Card Title
|
|
433
|
+
</h3>
|
|
434
|
+
<span className="
|
|
435
|
+
text-content-secondary dark:text-content-secondary
|
|
436
|
+
text-sm
|
|
437
|
+
">
|
|
438
|
+
Just now
|
|
439
|
+
</span>
|
|
440
|
+
</div>
|
|
441
|
+
|
|
442
|
+
{/* Content */}
|
|
443
|
+
<p className="
|
|
444
|
+
mb-4
|
|
445
|
+
text-content-secondary dark:text-content-secondary
|
|
446
|
+
">
|
|
447
|
+
Card content que se adapta automáticamente según el modo activo.
|
|
448
|
+
Todos los colores usan el modificador dark: correctamente.
|
|
449
|
+
</p>
|
|
450
|
+
|
|
451
|
+
{/* Actions */}
|
|
452
|
+
<div className="flex gap-3">
|
|
453
|
+
<button className="
|
|
454
|
+
px-4 py-2
|
|
455
|
+
bg-primary-custom-600 dark:bg-dark-bg-inverse
|
|
456
|
+
text-primary-inverse-content dark:text-dark-content-inverse
|
|
457
|
+
hover:bg-primary-custom-500 dark:hover:bg-dark-bg-inverse/90
|
|
458
|
+
rounded-md
|
|
459
|
+
font-bold
|
|
460
|
+
transition-colors
|
|
461
|
+
">
|
|
462
|
+
Primary
|
|
463
|
+
</button>
|
|
464
|
+
|
|
465
|
+
<button className="
|
|
466
|
+
px-4 py-2
|
|
467
|
+
border border-border-primary dark:border-dark-border-custom
|
|
468
|
+
text-content-primary dark:text-dark-content-primary
|
|
469
|
+
hover:bg-background-secondary dark:hover:bg-dark-bg-primary
|
|
470
|
+
rounded-md
|
|
471
|
+
font-bold
|
|
472
|
+
transition-colors
|
|
473
|
+
">
|
|
474
|
+
Secondary
|
|
475
|
+
</button>
|
|
476
|
+
</div>
|
|
477
|
+
</div>
|
|
478
|
+
);
|
|
479
|
+
};
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
## Guía de Uso en Componentes
|
|
485
|
+
|
|
486
|
+
### ✅ Buenas Prácticas
|
|
487
|
+
|
|
488
|
+
#### 1. **Usar Tokens Semánticos, NO Primitivos**
|
|
489
|
+
|
|
490
|
+
```tsx
|
|
491
|
+
// ✅ CORRECTO - Usa tokens semánticos
|
|
492
|
+
<p className="text-content-primary">Texto principal</p>
|
|
493
|
+
|
|
494
|
+
// ❌ INCORRECTO - Usa primitivos directamente
|
|
495
|
+
<p className="text-primary-custom-600">Texto</p>
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
**Razón**: Los tokens permiten cambiar el sistema de colores sin tocar componentes.
|
|
499
|
+
|
|
500
|
+
---
|
|
501
|
+
|
|
502
|
+
#### 2. **Especificar Dark Mode Explícitamente**
|
|
503
|
+
|
|
504
|
+
```tsx
|
|
505
|
+
// ✅ CORRECTO - Dark mode explícito
|
|
506
|
+
<div className="bg-white dark:bg-dark-bg-primary">
|
|
507
|
+
Contenido
|
|
508
|
+
</div>
|
|
509
|
+
|
|
510
|
+
// ⚠️ EVITAR - Confiar en defaults
|
|
511
|
+
<div className="bg-white">
|
|
512
|
+
Contenido
|
|
513
|
+
</div>
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
518
|
+
#### 3. **Agrupar Colores Relacionados**
|
|
519
|
+
|
|
520
|
+
```tsx
|
|
521
|
+
// ✅ CORRECTO - Colores agrupados por propósito
|
|
522
|
+
<button className="
|
|
523
|
+
bg-primary-inverse-background
|
|
524
|
+
text-primary-inverse-content
|
|
525
|
+
border-primary-inverse-border
|
|
526
|
+
">
|
|
527
|
+
Botón
|
|
528
|
+
</button>
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
---
|
|
532
|
+
|
|
533
|
+
#### 4. **Usar Hover Overlay para Interacciones Sutiles**
|
|
534
|
+
|
|
535
|
+
```tsx
|
|
536
|
+
// ✅ CORRECTO - Hover overlay ligero
|
|
537
|
+
<button className="
|
|
538
|
+
bg-transparent
|
|
539
|
+
hover:bg-hover-overlay
|
|
540
|
+
dark:hover:bg-hover-overlay-dark
|
|
541
|
+
">
|
|
542
|
+
Plain Button
|
|
543
|
+
</button>
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
---
|
|
547
|
+
|
|
548
|
+
### ❌ Anti-Patrones a Evitar
|
|
549
|
+
|
|
550
|
+
#### 1. **NO mezclar capas**
|
|
551
|
+
|
|
552
|
+
```tsx
|
|
553
|
+
// ❌ INCORRECTO - Mezcla tokens y primitivos
|
|
554
|
+
<div className="text-content-primary bg-primary-custom-600">
|
|
555
|
+
Contenido
|
|
556
|
+
</div>
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
#### 2. **NO hardcodear valores hex**
|
|
560
|
+
|
|
561
|
+
```tsx
|
|
562
|
+
// ❌ INCORRECTO - Valor hex hardcodeado
|
|
563
|
+
<div style={{ backgroundColor: '#0e79fd' }}>
|
|
564
|
+
Contenido
|
|
565
|
+
</div>
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
#### 3. **NO usar colores Tailwind nativos en componentes core**
|
|
569
|
+
|
|
570
|
+
```tsx
|
|
571
|
+
// ❌ INCORRECTO - Tailwind nativo (inconsistente)
|
|
572
|
+
<div className="bg-blue-500 text-white">
|
|
573
|
+
Contenido
|
|
574
|
+
</div>
|
|
575
|
+
|
|
576
|
+
// ✅ CORRECTO - Tokens del sistema
|
|
577
|
+
<div className="bg-primary-inverse-background text-primary-inverse-content">
|
|
578
|
+
Contenido
|
|
579
|
+
</div>
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
---
|
|
583
|
+
|
|
584
|
+
## Ejemplos de Código
|
|
585
|
+
|
|
586
|
+
### Ejemplo 1: Botón Primario
|
|
587
|
+
|
|
588
|
+
```tsx
|
|
589
|
+
import React from 'react';
|
|
590
|
+
|
|
591
|
+
export const PrimaryButton = ({ children, onClick }) => {
|
|
592
|
+
return (
|
|
593
|
+
<button
|
|
594
|
+
onClick={onClick}
|
|
595
|
+
className="
|
|
596
|
+
bg-primary-inverse-background
|
|
597
|
+
text-primary-inverse-content
|
|
598
|
+
border border-primary-inverse-border
|
|
599
|
+
hover:bg-primary-custom-500
|
|
600
|
+
focus:ring-2 focus:ring-primary-custom-400 focus:ring-offset-2
|
|
601
|
+
active:scale-95
|
|
602
|
+
disabled:opacity-50 disabled:cursor-not-allowed
|
|
603
|
+
px-4 py-2 rounded-md font-bold
|
|
604
|
+
transition-all duration-150
|
|
605
|
+
dark:bg-primary-inverse-background
|
|
606
|
+
dark:text-primary-inverse-content
|
|
607
|
+
dark:hover:bg-primary-custom-500
|
|
608
|
+
"
|
|
609
|
+
>
|
|
610
|
+
{children}
|
|
611
|
+
</button>
|
|
612
|
+
);
|
|
613
|
+
};
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
---
|
|
617
|
+
|
|
618
|
+
### Ejemplo 2: Card con Dark Mode
|
|
619
|
+
|
|
620
|
+
```tsx
|
|
621
|
+
import React from 'react';
|
|
622
|
+
|
|
623
|
+
export const Card = ({ title, description }) => {
|
|
624
|
+
return (
|
|
625
|
+
<div className="
|
|
626
|
+
bg-white dark:bg-dark-bg-primary
|
|
627
|
+
border border-border-primary dark:border-dark-border-primary
|
|
628
|
+
rounded-lg p-6
|
|
629
|
+
shadow-sm
|
|
630
|
+
">
|
|
631
|
+
<h3 className="
|
|
632
|
+
text-content-primary dark:text-dark-content-primary
|
|
633
|
+
text-xl font-bold mb-2
|
|
634
|
+
">
|
|
635
|
+
{title}
|
|
636
|
+
</h3>
|
|
637
|
+
<p className="
|
|
638
|
+
text-content-secondary dark:text-dark-content-primary
|
|
639
|
+
opacity-80
|
|
640
|
+
">
|
|
641
|
+
{description}
|
|
642
|
+
</p>
|
|
643
|
+
</div>
|
|
644
|
+
);
|
|
645
|
+
};
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
---
|
|
649
|
+
|
|
650
|
+
### Ejemplo 3: Input con Validación
|
|
651
|
+
|
|
652
|
+
```tsx
|
|
653
|
+
import React from 'react';
|
|
654
|
+
|
|
655
|
+
export const Input = ({ label, error, ...props }) => {
|
|
656
|
+
return (
|
|
657
|
+
<div className="space-y-1">
|
|
658
|
+
<label className="text-content-primary dark:text-dark-content-primary text-sm font-medium">
|
|
659
|
+
{label}
|
|
660
|
+
</label>
|
|
661
|
+
<input
|
|
662
|
+
{...props}
|
|
663
|
+
className={`
|
|
664
|
+
w-full px-3 py-2 rounded-md
|
|
665
|
+
bg-white dark:bg-dark-bg-primary
|
|
666
|
+
text-content-primary dark:text-dark-content-primary
|
|
667
|
+
border-2
|
|
668
|
+
${error
|
|
669
|
+
? 'border-error-border bg-error-bg focus:ring-error-border'
|
|
670
|
+
: 'border-border-primary dark:border-dark-border-primary focus:ring-primary-custom-400'
|
|
671
|
+
}
|
|
672
|
+
focus:outline-none focus:ring-2 focus:ring-offset-1
|
|
673
|
+
disabled:opacity-50 disabled:cursor-not-allowed
|
|
674
|
+
`}
|
|
675
|
+
/>
|
|
676
|
+
{error && (
|
|
677
|
+
<p className="text-error-content text-sm">
|
|
678
|
+
{error}
|
|
679
|
+
</p>
|
|
680
|
+
)}
|
|
681
|
+
</div>
|
|
682
|
+
);
|
|
683
|
+
};
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
---
|
|
687
|
+
|
|
688
|
+
## Mejores Prácticas
|
|
689
|
+
|
|
690
|
+
### 🎯 Principios de Uso
|
|
691
|
+
|
|
692
|
+
1. **Jerarquía de Texto**
|
|
693
|
+
- `content-primary`: Títulos y contenido principal
|
|
694
|
+
- `content-secondary`: Descripciones y labels
|
|
695
|
+
- `content-tertiary`: Placeholders y texto deshabilitado
|
|
696
|
+
|
|
697
|
+
2. **Contraste y Accesibilidad**
|
|
698
|
+
- Verificar ratios de contraste (WCAG AA mínimo: 4.5:1)
|
|
699
|
+
- Usar herramientas como [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
|
|
700
|
+
- Contenido principal debe tener AAA (7:1)
|
|
701
|
+
|
|
702
|
+
3. **Estados Interactivos**
|
|
703
|
+
- **Default**: Color base del token
|
|
704
|
+
- **Hover**: Tono más claro/oscuro (+100 en escala)
|
|
705
|
+
- **Active**: Tono más oscuro (-100 en escala)
|
|
706
|
+
- **Focus**: Ring con `primary-custom-400`
|
|
707
|
+
- **Disabled**: Reducir opacity a 50%
|
|
708
|
+
|
|
709
|
+
4. **Consistencia en Componentes**
|
|
710
|
+
- Todos los botones primarios usan los mismos colores
|
|
711
|
+
- Todos los inputs usan los mismos bordes
|
|
712
|
+
- Todos los errores usan la misma paleta
|
|
713
|
+
|
|
714
|
+
---
|
|
715
|
+
|
|
716
|
+
### 🔧 Flujo de Trabajo Recomendado
|
|
717
|
+
|
|
718
|
+
```
|
|
719
|
+
1. Diseño en Figma
|
|
720
|
+
↓
|
|
721
|
+
2. Identificar colores usados
|
|
722
|
+
↓
|
|
723
|
+
3. Mapear a tokens existentes
|
|
724
|
+
↓
|
|
725
|
+
4. Si no existe token → Crear nuevo en tailwind.config.js
|
|
726
|
+
↓
|
|
727
|
+
5. Implementar en componente
|
|
728
|
+
↓
|
|
729
|
+
6. Probar en Light y Dark mode
|
|
730
|
+
↓
|
|
731
|
+
7. Verificar accesibilidad (contraste)
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
---
|
|
735
|
+
|
|
736
|
+
## Referencia Rápida
|
|
737
|
+
|
|
738
|
+
### Cheat Sheet: Colores por Caso de Uso
|
|
739
|
+
|
|
740
|
+
| Caso de Uso | Light Mode | Dark Mode |
|
|
741
|
+
|-------------|------------|-----------|
|
|
742
|
+
| **Fondo principal** | `bg-white` | `dark:bg-dark-bg-primary` |
|
|
743
|
+
| **Fondo secundario** | `background-secondary` | `dark:bg-dark-bg-primary` |
|
|
744
|
+
| **Texto principal** | `text-content-primary` | `dark:text-dark-content-primary` |
|
|
745
|
+
| **Texto secundario** | `text-content-secondary` | `dark:text-dark-content-primary opacity-80` |
|
|
746
|
+
| **Bordes normales** | `border-border-primary` | `dark:border-dark-border-primary` |
|
|
747
|
+
| **Botón primario BG** | `bg-primary-inverse-background` | `dark:bg-primary-inverse-background` |
|
|
748
|
+
| **Botón primario texto** | `text-primary-inverse-content` | `dark:text-primary-inverse-content` |
|
|
749
|
+
| **Focus ring** | `focus:ring-primary-custom-400` | `focus:ring-primary-custom-400` |
|
|
750
|
+
| **Error BG** | `bg-error-bg` | `bg-error-bg` |
|
|
751
|
+
| **Error texto** | `text-error-content` | `text-error-content` |
|
|
752
|
+
| **Hover overlay** | `hover:bg-hover-overlay` | `dark:hover:bg-hover-overlay-dark` |
|
|
753
|
+
|
|
754
|
+
---
|
|
755
|
+
|
|
756
|
+
### Configuración en `tailwind.config.js`
|
|
757
|
+
|
|
758
|
+
```javascript
|
|
759
|
+
// Archivo: tailwind.config.js
|
|
760
|
+
module.exports = {
|
|
761
|
+
darkMode: 'class',
|
|
762
|
+
theme: {
|
|
763
|
+
extend: {
|
|
764
|
+
colors: {
|
|
765
|
+
// Primary Custom Colors
|
|
766
|
+
'primary-custom': {
|
|
767
|
+
100: '#dbeefe',
|
|
768
|
+
300: '#93d1fd',
|
|
769
|
+
400: '#60b6fa',
|
|
770
|
+
500: '#3c9bf6',
|
|
771
|
+
600: '#0e79fd',
|
|
772
|
+
700: '#0c6ade',
|
|
773
|
+
},
|
|
774
|
+
|
|
775
|
+
// Primary Inverse
|
|
776
|
+
'primary-inverse-content': '#eff8ff',
|
|
777
|
+
'primary-inverse-background': '#0e79fd',
|
|
778
|
+
'primary-inverse-border': '#3c9bf6',
|
|
779
|
+
|
|
780
|
+
// System Colors (Light)
|
|
781
|
+
'content-primary': '#18181b',
|
|
782
|
+
'content-secondary': '#a1a1aa',
|
|
783
|
+
'content-tertiary': '#71717a',
|
|
784
|
+
'bg-primary': '#ffffff',
|
|
785
|
+
'background-secondary': '#f4f4f5',
|
|
786
|
+
'border-primary': '#e4e4e7',
|
|
787
|
+
'border-secondary': '#f4f4f5',
|
|
788
|
+
|
|
789
|
+
// Error Colors
|
|
790
|
+
'error-border': '#ef4444',
|
|
791
|
+
'error-content': '#dc2626',
|
|
792
|
+
'error-bg': '#fef2f2',
|
|
793
|
+
|
|
794
|
+
// Dark Mode Colors
|
|
795
|
+
'dark-bg-primary': '#18181b', // zinc-900 - gris muy oscuro
|
|
796
|
+
'dark-content-primary': '#ffffff',
|
|
797
|
+
'dark-border-primary': '#71717a',
|
|
798
|
+
'dark-border-custom': '#0f6ae3',
|
|
799
|
+
'dark-bg-inverse': '#bfe2fe',
|
|
800
|
+
'dark-content-inverse': '#0e79fd',
|
|
801
|
+
},
|
|
802
|
+
|
|
803
|
+
backgroundColor: {
|
|
804
|
+
'hover-overlay': 'rgba(0, 0, 0, 0.1)',
|
|
805
|
+
'hover-overlay-dark': 'rgba(255, 255, 255, 0.2)',
|
|
806
|
+
},
|
|
807
|
+
},
|
|
808
|
+
},
|
|
809
|
+
};
|
|
810
|
+
```
|
|
811
|
+
|
|
812
|
+
---
|
|
813
|
+
|
|
814
|
+
## 📚 Referencias
|
|
815
|
+
|
|
816
|
+
- **Figma**: [Color Primitives](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=16-4560&m=dev)
|
|
817
|
+
- **Figma**: [Color Tokens](https://www.figma.com/design/5XNqf2YTxvwemxwo1LMQ6j/Siesa-UI-Kit?node-id=4001-1314&m=dev)
|
|
818
|
+
- **Código**: `tailwind.config.js` (líneas 15-73)
|
|
819
|
+
- **WCAG**: [Web Content Accessibility Guidelines](https://www.w3.org/WAI/WCAG21/quickref/)
|
|
820
|
+
|
|
821
|
+
---
|
|
822
|
+
|
|
823
|
+
## 🔄 Historial de Cambios
|
|
824
|
+
|
|
825
|
+
| Versión | Fecha | Cambios |
|
|
826
|
+
|---------|-------|---------|
|
|
827
|
+
| 1.0.0 | 2025-11-11 | Documentación inicial del sistema de colores |
|
|
828
|
+
|
|
829
|
+
---
|
|
830
|
+
|
|
831
|
+
**Última actualización**: 2025-11-11
|
|
832
|
+
**Mantenido por**: Equipo de Siesa UI Kit
|