siesa-ui-kit 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. package/README.md +115 -89
  2. package/dist/ButtonTest.d.ts +6 -0
  3. package/dist/ButtonTest.d.ts.map +1 -0
  4. package/dist/components/Alert/Alert.d.ts +23 -0
  5. package/dist/components/Alert/Alert.d.ts.map +1 -0
  6. package/dist/components/Alert/Alert.types.d.ts +46 -0
  7. package/dist/components/Alert/Alert.types.d.ts.map +1 -0
  8. package/dist/components/Avatar/Avatar.d.ts +41 -0
  9. package/dist/components/Avatar/Avatar.d.ts.map +1 -0
  10. package/dist/components/Avatar/Avatar.types.d.ts +46 -0
  11. package/dist/components/Avatar/Avatar.types.d.ts.map +1 -0
  12. package/dist/components/Badge/Badge.d.ts +42 -0
  13. package/dist/components/Badge/Badge.d.ts.map +1 -0
  14. package/dist/components/Badge/Badge.types.d.ts +32 -0
  15. package/dist/components/Badge/Badge.types.d.ts.map +1 -0
  16. package/dist/components/Button/Button.d.ts +84 -0
  17. package/dist/components/Button/Button.d.ts.map +1 -0
  18. package/dist/components/Button/Button.types.d.ts +162 -0
  19. package/dist/components/Button/Button.types.d.ts.map +1 -0
  20. package/dist/components/Button/icons.d.ts +26 -0
  21. package/dist/components/Button/icons.d.ts.map +1 -0
  22. package/{src/components/Button/index.ts → dist/components/Button/index.d.ts} +4 -3
  23. package/dist/components/Button/index.d.ts.map +1 -0
  24. package/dist/components/Checkbox/Checkbox.d.ts +31 -0
  25. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  26. package/dist/components/Checkbox/Checkbox.types.d.ts +53 -0
  27. package/dist/components/Checkbox/Checkbox.types.d.ts.map +1 -0
  28. package/dist/components/DescriptionList/DescriptionList.d.ts +38 -0
  29. package/dist/components/DescriptionList/DescriptionList.d.ts.map +1 -0
  30. package/dist/components/DescriptionList/DescriptionList.types.d.ts +27 -0
  31. package/dist/components/DescriptionList/DescriptionList.types.d.ts.map +1 -0
  32. package/dist/components/Divider/Divider.d.ts +33 -0
  33. package/dist/components/Divider/Divider.d.ts.map +1 -0
  34. package/dist/components/Divider/Divider.types.d.ts +22 -0
  35. package/dist/components/Divider/Divider.types.d.ts.map +1 -0
  36. package/dist/components/Dropdown/Dropdown.d.ts +66 -0
  37. package/dist/components/Dropdown/Dropdown.d.ts.map +1 -0
  38. package/dist/components/Dropdown/Dropdown.types.d.ts +124 -0
  39. package/dist/components/Dropdown/Dropdown.types.d.ts.map +1 -0
  40. package/dist/components/Dropdown/icons.d.ts +10 -0
  41. package/dist/components/Dropdown/icons.d.ts.map +1 -0
  42. package/{src/components/Dropdown/index.ts → dist/components/Dropdown/index.d.ts} +4 -8
  43. package/dist/components/Dropdown/index.d.ts.map +1 -0
  44. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts +101 -0
  45. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.d.ts.map +1 -0
  46. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts +95 -0
  47. package/dist/components/DropdownItemCollapsible/DropdownItemCollapsible.types.d.ts.map +1 -0
  48. package/dist/components/DropdownItemCollapsible/icons.d.ts +19 -0
  49. package/dist/components/DropdownItemCollapsible/icons.d.ts.map +1 -0
  50. package/dist/components/DropdownItemCollapsible/index.d.ts +9 -0
  51. package/dist/components/DropdownItemCollapsible/index.d.ts.map +1 -0
  52. package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts +75 -0
  53. package/dist/components/DropdownItemHeading/DropdownItemHeading.d.ts.map +1 -0
  54. package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts +85 -0
  55. package/dist/components/DropdownItemHeading/DropdownItemHeading.types.d.ts.map +1 -0
  56. package/dist/components/DropdownItemHeading/icons.d.ts +48 -0
  57. package/dist/components/DropdownItemHeading/icons.d.ts.map +1 -0
  58. package/dist/components/DropdownItemHeading/index.d.ts +4 -0
  59. package/dist/components/DropdownItemHeading/index.d.ts.map +1 -0
  60. package/dist/components/Input/Input.d.ts +40 -0
  61. package/dist/components/Input/Input.d.ts.map +1 -0
  62. package/dist/components/Input/Input.types.d.ts +71 -0
  63. package/dist/components/Input/Input.types.d.ts.map +1 -0
  64. package/dist/components/Input/icons.d.ts +15 -0
  65. package/dist/components/Input/icons.d.ts.map +1 -0
  66. package/{src/components/Input/index.ts → dist/components/Input/index.d.ts} +3 -2
  67. package/dist/components/Input/index.d.ts.map +1 -0
  68. package/dist/components/LoginView/LoginView.d.ts +36 -0
  69. package/dist/components/LoginView/LoginView.d.ts.map +1 -0
  70. package/dist/components/LoginView/LoginView.types.d.ts +46 -0
  71. package/dist/components/LoginView/LoginView.types.d.ts.map +1 -0
  72. package/dist/components/LoginView/icons.d.ts +18 -0
  73. package/dist/components/LoginView/icons.d.ts.map +1 -0
  74. package/{src/components/LoginView/index.ts → dist/components/LoginView/index.d.ts} +4 -3
  75. package/dist/components/LoginView/index.d.ts.map +1 -0
  76. package/dist/components/Navbar/Navbar.d.ts +63 -0
  77. package/dist/components/Navbar/Navbar.d.ts.map +1 -0
  78. package/dist/components/Navbar/Navbar.types.d.ts +194 -0
  79. package/dist/components/Navbar/Navbar.types.d.ts.map +1 -0
  80. package/dist/components/Navbar/icons.d.ts +12 -0
  81. package/dist/components/Navbar/icons.d.ts.map +1 -0
  82. package/dist/components/Navbar/index.d.ts +4 -0
  83. package/dist/components/Navbar/index.d.ts.map +1 -0
  84. package/dist/components/NavigationBar/NavigationBar.d.ts +75 -0
  85. package/dist/components/NavigationBar/NavigationBar.d.ts.map +1 -0
  86. package/dist/components/NavigationBar/NavigationBar.types.d.ts +63 -0
  87. package/dist/components/NavigationBar/NavigationBar.types.d.ts.map +1 -0
  88. package/{src/components/NavigationBar/index.ts → dist/components/NavigationBar/index.d.ts} +3 -2
  89. package/dist/components/NavigationBar/index.d.ts.map +1 -0
  90. package/dist/components/NavigationRail/NavigationRail.d.ts +7 -0
  91. package/dist/components/NavigationRail/NavigationRail.d.ts.map +1 -0
  92. package/dist/components/NavigationRail/NavigationRail.types.d.ts +92 -0
  93. package/dist/components/NavigationRail/NavigationRail.types.d.ts.map +1 -0
  94. package/{src/components/NavigationRail/index.ts → dist/components/NavigationRail/index.d.ts} +3 -2
  95. package/dist/components/NavigationRail/index.d.ts.map +1 -0
  96. package/dist/components/NavigationRailItem/NavigationRailItem.d.ts +90 -0
  97. package/dist/components/NavigationRailItem/NavigationRailItem.d.ts.map +1 -0
  98. package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts +155 -0
  99. package/dist/components/NavigationRailItem/NavigationRailItem.types.d.ts.map +1 -0
  100. package/dist/components/NavigationRailItem/index.d.ts +3 -0
  101. package/dist/components/NavigationRailItem/index.d.ts.map +1 -0
  102. package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts +124 -0
  103. package/dist/components/NavigationRailPanel/NavigationRailPanel.d.ts.map +1 -0
  104. package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts +154 -0
  105. package/dist/components/NavigationRailPanel/NavigationRailPanel.types.d.ts.map +1 -0
  106. package/dist/components/NavigationRailPanel/index.d.ts +3 -0
  107. package/dist/components/NavigationRailPanel/index.d.ts.map +1 -0
  108. package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts +99 -0
  109. package/dist/components/NavigationRailTypes/NavigationRailTypes.d.ts.map +1 -0
  110. package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts +111 -0
  111. package/dist/components/NavigationRailTypes/NavigationRailTypes.types.d.ts.map +1 -0
  112. package/dist/components/NavigationRailTypes/icons.d.ts +58 -0
  113. package/dist/components/NavigationRailTypes/icons.d.ts.map +1 -0
  114. package/dist/components/NavigationRailTypes/index.d.ts +4 -0
  115. package/dist/components/NavigationRailTypes/index.d.ts.map +1 -0
  116. package/dist/components/Notification/Notification.d.ts +52 -0
  117. package/dist/components/Notification/Notification.d.ts.map +1 -0
  118. package/dist/components/Notification/Notification.types.d.ts +138 -0
  119. package/dist/components/Notification/Notification.types.d.ts.map +1 -0
  120. package/{src/components/Notification/index.ts → dist/components/Notification/index.d.ts} +3 -3
  121. package/dist/components/Notification/index.d.ts.map +1 -0
  122. package/dist/components/POSConvention/POSConvention.d.ts +55 -0
  123. package/dist/components/POSConvention/POSConvention.d.ts.map +1 -0
  124. package/{src/components/POSConvention/POSConvention.types.ts → dist/components/POSConvention/POSConvention.types.d.ts} +37 -38
  125. package/dist/components/POSConvention/POSConvention.types.d.ts.map +1 -0
  126. package/dist/components/POSConvention/icons.d.ts +21 -0
  127. package/dist/components/POSConvention/icons.d.ts.map +1 -0
  128. package/{src/components/POSConvention/index.ts → dist/components/POSConvention/index.d.ts} +4 -3
  129. package/dist/components/POSConvention/index.d.ts.map +1 -0
  130. package/dist/components/POSLocationButton/POSLocationButton.d.ts +73 -0
  131. package/dist/components/POSLocationButton/POSLocationButton.d.ts.map +1 -0
  132. package/dist/components/POSLocationButton/POSLocationButton.types.d.ts +75 -0
  133. package/dist/components/POSLocationButton/POSLocationButton.types.d.ts.map +1 -0
  134. package/dist/components/POSLocationButton/icons.d.ts +37 -0
  135. package/dist/components/POSLocationButton/icons.d.ts.map +1 -0
  136. package/dist/components/POSLocationButton/index.d.ts +4 -0
  137. package/dist/components/POSLocationButton/index.d.ts.map +1 -0
  138. package/dist/components/POSNumberButton/POSNumberButton.d.ts +61 -0
  139. package/dist/components/POSNumberButton/POSNumberButton.d.ts.map +1 -0
  140. package/dist/components/POSNumberButton/POSNumberButton.types.d.ts +43 -0
  141. package/dist/components/POSNumberButton/POSNumberButton.types.d.ts.map +1 -0
  142. package/{src/components/POSNumberButton/index.ts → dist/components/POSNumberButton/index.d.ts} +3 -3
  143. package/dist/components/POSNumberButton/index.d.ts.map +1 -0
  144. package/dist/components/POSProductButton/POSProductButton.d.ts +59 -0
  145. package/dist/components/POSProductButton/POSProductButton.d.ts.map +1 -0
  146. package/dist/components/POSProductButton/POSProductButton.types.d.ts +40 -0
  147. package/dist/components/POSProductButton/POSProductButton.types.d.ts.map +1 -0
  148. package/{src/components/POSProductButton/index.ts → dist/components/POSProductButton/index.d.ts} +3 -2
  149. package/dist/components/POSProductButton/index.d.ts.map +1 -0
  150. package/dist/components/POSProductCard/POSProductCard.d.ts +68 -0
  151. package/dist/components/POSProductCard/POSProductCard.d.ts.map +1 -0
  152. package/dist/components/POSProductCard/POSProductCard.types.d.ts +67 -0
  153. package/dist/components/POSProductCard/POSProductCard.types.d.ts.map +1 -0
  154. package/dist/components/POSProductCard/icons.d.ts +10 -0
  155. package/dist/components/POSProductCard/icons.d.ts.map +1 -0
  156. package/{src/components/POSProductCard/index.ts → dist/components/POSProductCard/index.d.ts} +3 -2
  157. package/dist/components/POSProductCard/index.d.ts.map +1 -0
  158. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts +57 -0
  159. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.d.ts.map +1 -0
  160. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts +85 -0
  161. package/dist/components/POSProductSidebarItems/POSProductSidebarItems.types.d.ts.map +1 -0
  162. package/dist/components/POSProductSidebarItems/icons.d.ts +9 -0
  163. package/dist/components/POSProductSidebarItems/icons.d.ts.map +1 -0
  164. package/{src/components/POSProductSidebarItems/index.ts → dist/components/POSProductSidebarItems/index.d.ts} +4 -3
  165. package/dist/components/POSProductSidebarItems/index.d.ts.map +1 -0
  166. package/dist/components/POSTable/POSTable.d.ts +75 -0
  167. package/dist/components/POSTable/POSTable.d.ts.map +1 -0
  168. package/dist/components/POSTable/POSTable.types.d.ts +71 -0
  169. package/dist/components/POSTable/POSTable.types.d.ts.map +1 -0
  170. package/dist/components/POSTable/index.d.ts +3 -0
  171. package/dist/components/POSTable/index.d.ts.map +1 -0
  172. package/dist/components/Pagination/Pagination.d.ts +29 -0
  173. package/dist/components/Pagination/Pagination.d.ts.map +1 -0
  174. package/dist/components/Pagination/Pagination.types.d.ts +79 -0
  175. package/dist/components/Pagination/Pagination.types.d.ts.map +1 -0
  176. package/dist/components/Pagination/icons.d.ts +18 -0
  177. package/dist/components/Pagination/icons.d.ts.map +1 -0
  178. package/{src/components/Pagination/index.ts → dist/components/Pagination/index.d.ts} +4 -3
  179. package/dist/components/Pagination/index.d.ts.map +1 -0
  180. package/dist/components/Quantity/Quantity.d.ts +38 -0
  181. package/dist/components/Quantity/Quantity.d.ts.map +1 -0
  182. package/dist/components/Quantity/Quantity.types.d.ts +59 -0
  183. package/dist/components/Quantity/Quantity.types.d.ts.map +1 -0
  184. package/dist/components/Radio/Radio.d.ts +45 -0
  185. package/dist/components/Radio/Radio.d.ts.map +1 -0
  186. package/dist/components/Radio/Radio.types.d.ts +115 -0
  187. package/dist/components/Radio/Radio.types.d.ts.map +1 -0
  188. package/dist/components/Select/Select.d.ts +37 -0
  189. package/dist/components/Select/Select.d.ts.map +1 -0
  190. package/dist/components/Select/Select.types.d.ts +124 -0
  191. package/dist/components/Select/Select.types.d.ts.map +1 -0
  192. package/dist/components/Select/icons.d.ts +16 -0
  193. package/dist/components/Select/icons.d.ts.map +1 -0
  194. package/{src/components/Select/index.ts → dist/components/Select/index.d.ts} +4 -3
  195. package/dist/components/Select/index.d.ts.map +1 -0
  196. package/dist/components/SignUpView/SignUpView.d.ts +38 -0
  197. package/dist/components/SignUpView/SignUpView.d.ts.map +1 -0
  198. package/dist/components/SignUpView/SignUpView.types.d.ts +51 -0
  199. package/dist/components/SignUpView/SignUpView.types.d.ts.map +1 -0
  200. package/dist/components/SignUpView/icons.d.ts +18 -0
  201. package/dist/components/SignUpView/icons.d.ts.map +1 -0
  202. package/{src/components/SignUpView/index.ts → dist/components/SignUpView/index.d.ts} +4 -3
  203. package/dist/components/SignUpView/index.d.ts.map +1 -0
  204. package/dist/components/Switch/Switch.d.ts +46 -0
  205. package/dist/components/Switch/Switch.d.ts.map +1 -0
  206. package/dist/components/Switch/Switch.types.d.ts +58 -0
  207. package/dist/components/Switch/Switch.types.d.ts.map +1 -0
  208. package/dist/components/Table/Table.d.ts +64 -0
  209. package/dist/components/Table/Table.d.ts.map +1 -0
  210. package/dist/components/Table/Table.types.d.ts +173 -0
  211. package/dist/components/Table/Table.types.d.ts.map +1 -0
  212. package/dist/components/Table/index.d.ts +3 -0
  213. package/dist/components/Table/index.d.ts.map +1 -0
  214. package/dist/components/Tabs/Tabs.d.ts +76 -0
  215. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  216. package/dist/components/Tabs/Tabs.types.d.ts +107 -0
  217. package/dist/components/Tabs/Tabs.types.d.ts.map +1 -0
  218. package/dist/components/Tabs/icons.d.ts +45 -0
  219. package/dist/components/Tabs/icons.d.ts.map +1 -0
  220. package/dist/components/Tabs/index.d.ts +4 -0
  221. package/dist/components/Tabs/index.d.ts.map +1 -0
  222. package/dist/components/Textarea/Textarea.d.ts +38 -0
  223. package/dist/components/Textarea/Textarea.d.ts.map +1 -0
  224. package/dist/components/Textarea/Textarea.types.d.ts +46 -0
  225. package/dist/components/Textarea/Textarea.types.d.ts.map +1 -0
  226. package/dist/context/ThemeContext.d.ts +46 -0
  227. package/dist/context/ThemeContext.d.ts.map +1 -0
  228. package/{src/context/index.ts → dist/context/index.d.ts} +2 -1
  229. package/dist/context/index.d.ts.map +1 -0
  230. package/dist/index.d.ts +56 -0
  231. package/dist/index.d.ts.map +1 -0
  232. package/dist/siesa-ui-kit.cjs +1273 -0
  233. package/dist/siesa-ui-kit.cjs.map +1 -0
  234. package/dist/siesa-ui-kit.mjs +4510 -0
  235. package/dist/siesa-ui-kit.mjs.map +1 -0
  236. package/dist/views/ListView/ListView.d.ts +47 -0
  237. package/dist/views/ListView/ListView.d.ts.map +1 -0
  238. package/dist/views/ListView/ListView.types.d.ts +177 -0
  239. package/dist/views/ListView/ListView.types.d.ts.map +1 -0
  240. package/dist/views/ListView/icons.d.ts +60 -0
  241. package/dist/views/ListView/icons.d.ts.map +1 -0
  242. package/dist/views/ListView/index.d.ts +3 -0
  243. package/dist/views/ListView/index.d.ts.map +1 -0
  244. package/dist/views/LoginView/LoginView.d.ts +36 -0
  245. package/dist/views/LoginView/LoginView.d.ts.map +1 -0
  246. package/dist/views/LoginView/LoginView.types.d.ts +46 -0
  247. package/dist/views/LoginView/LoginView.types.d.ts.map +1 -0
  248. package/dist/views/LoginView/icons.d.ts +18 -0
  249. package/dist/views/LoginView/icons.d.ts.map +1 -0
  250. package/dist/views/LoginView/index.d.ts +4 -0
  251. package/dist/views/LoginView/index.d.ts.map +1 -0
  252. package/dist/views/ProductsView/ProductsView.d.ts +56 -0
  253. package/dist/views/ProductsView/ProductsView.d.ts.map +1 -0
  254. package/dist/views/ProductsView/ProductsView.types.d.ts +184 -0
  255. package/dist/views/ProductsView/ProductsView.types.d.ts.map +1 -0
  256. package/dist/views/ProductsView/icons.d.ts +12 -0
  257. package/dist/views/ProductsView/icons.d.ts.map +1 -0
  258. package/dist/views/ProductsView/index.d.ts +3 -0
  259. package/dist/views/ProductsView/index.d.ts.map +1 -0
  260. package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts +34 -0
  261. package/dist/views/RecoverPasswordView/RecoverPasswordView.d.ts.map +1 -0
  262. package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts +50 -0
  263. package/dist/views/RecoverPasswordView/RecoverPasswordView.types.d.ts.map +1 -0
  264. package/dist/views/RecoverPasswordView/icons.d.ts +9 -0
  265. package/dist/views/RecoverPasswordView/icons.d.ts.map +1 -0
  266. package/{src/views/RecoverPasswordView/index.ts → dist/views/RecoverPasswordView/index.d.ts} +3 -2
  267. package/dist/views/RecoverPasswordView/index.d.ts.map +1 -0
  268. package/dist/views/SignUpView/SignUpView.d.ts +38 -0
  269. package/dist/views/SignUpView/SignUpView.d.ts.map +1 -0
  270. package/dist/views/SignUpView/SignUpView.types.d.ts +51 -0
  271. package/dist/views/SignUpView/SignUpView.types.d.ts.map +1 -0
  272. package/dist/views/SignUpView/icons.d.ts +18 -0
  273. package/dist/views/SignUpView/icons.d.ts.map +1 -0
  274. package/dist/views/SignUpView/index.d.ts +4 -0
  275. package/dist/views/SignUpView/index.d.ts.map +1 -0
  276. package/dist/views/TableLayoutView/TableLayoutView.d.ts +46 -0
  277. package/dist/views/TableLayoutView/TableLayoutView.d.ts.map +1 -0
  278. package/dist/views/TableLayoutView/TableLayoutView.types.d.ts +170 -0
  279. package/dist/views/TableLayoutView/TableLayoutView.types.d.ts.map +1 -0
  280. package/dist/views/TableLayoutView/icons.d.ts +27 -0
  281. package/dist/views/TableLayoutView/icons.d.ts.map +1 -0
  282. package/dist/views/TableLayoutView/index.d.ts +3 -0
  283. package/dist/views/TableLayoutView/index.d.ts.map +1 -0
  284. package/package.json +93 -83
  285. package/bin/install.cjs +0 -502
  286. package/bin/prepare-publish.cjs +0 -28
  287. package/bin/restore-folders.cjs +0 -28
  288. package/claude/agents/siesa-ui-kit-specialist.md +0 -2401
  289. package/claude/prompts/component-template.md +0 -121
  290. package/claude/settings.local.json +0 -61
  291. package/docs/border-radius.md +0 -1261
  292. package/docs/colors.md +0 -832
  293. package/docs/dark-mode-guide.md +0 -1426
  294. package/docs/filters.md +0 -1243
  295. package/docs/icons.md +0 -1283
  296. package/docs/shadows.md +0 -1377
  297. package/docs/spacing.md +0 -1684
  298. package/docs/typography.md +0 -1268
  299. package/postcss.config.cjs +0 -6
  300. package/public/,Business Logo.png +0 -0
  301. package/public/.Siesa Logo.png +0 -0
  302. package/public/bg_siesa.png +0 -0
  303. package/public/siesa_logo_mobile.png +0 -0
  304. package/public/vite.svg +0 -1
  305. package/src/App.css +0 -42
  306. package/src/App.tsx +0 -8
  307. package/src/ButtonTest.tsx +0 -147
  308. package/src/assets/fonts/README.md +0 -261
  309. package/src/assets/fonts/SiesaBT/SiesaBT-Bold.otf +0 -0
  310. package/src/assets/fonts/SiesaBT/SiesaBT-Light.otf +0 -0
  311. package/src/assets/fonts/SiesaBT/SiesaBT-Regular.otf +0 -0
  312. package/src/assets/react.svg +0 -1
  313. package/src/components/Alert/Alert.stories.tsx +0 -332
  314. package/src/components/Alert/Alert.tsx +0 -106
  315. package/src/components/Alert/Alert.types.ts +0 -54
  316. package/src/components/Avatar/Avatar.stories.tsx +0 -494
  317. package/src/components/Avatar/Avatar.tsx +0 -143
  318. package/src/components/Avatar/Avatar.types.ts +0 -53
  319. package/src/components/Badge/Badge.stories.tsx +0 -339
  320. package/src/components/Badge/Badge.tsx +0 -278
  321. package/src/components/Badge/Badge.types.ts +0 -58
  322. package/src/components/Button/Button.stories.tsx +0 -950
  323. package/src/components/Button/Button.tsx +0 -337
  324. package/src/components/Button/Button.types.ts +0 -180
  325. package/src/components/Button/icons.tsx +0 -87
  326. package/src/components/Checkbox/Checkbox.stories.tsx +0 -453
  327. package/src/components/Checkbox/Checkbox.tsx +0 -208
  328. package/src/components/Checkbox/Checkbox.types.ts +0 -61
  329. package/src/components/DescriptionList/DescriptionList.stories.tsx +0 -250
  330. package/src/components/DescriptionList/DescriptionList.tsx +0 -96
  331. package/src/components/DescriptionList/DescriptionList.types.ts +0 -29
  332. package/src/components/Divider/Divider.stories.tsx +0 -263
  333. package/src/components/Divider/Divider.tsx +0 -80
  334. package/src/components/Divider/Divider.types.ts +0 -24
  335. package/src/components/Dropdown/Dropdown.stories.tsx +0 -552
  336. package/src/components/Dropdown/Dropdown.tsx +0 -422
  337. package/src/components/Dropdown/Dropdown.types.ts +0 -146
  338. package/src/components/Dropdown/README.md +0 -266
  339. package/src/components/Dropdown/icons.tsx +0 -72
  340. package/src/components/Input/Input.stories.tsx +0 -583
  341. package/src/components/Input/Input.tsx +0 -204
  342. package/src/components/Input/Input.types.ts +0 -80
  343. package/src/components/Input/icons.tsx +0 -145
  344. package/src/components/LoginView/LoginView.stories.tsx +0 -148
  345. package/src/components/LoginView/LoginView.tsx +0 -426
  346. package/src/components/LoginView/LoginView.types.ts +0 -52
  347. package/src/components/LoginView/README.md +0 -396
  348. package/src/components/LoginView/icons.tsx +0 -85
  349. package/src/components/Navbar/Navbar.stories.tsx +0 -810
  350. package/src/components/Navbar/Navbar.tsx +0 -755
  351. package/src/components/Navbar/Navbar.types.ts +0 -219
  352. package/src/components/Navbar/README.md +0 -279
  353. package/src/components/Navbar/icons.tsx +0 -102
  354. package/src/components/Navbar/index.ts +0 -8
  355. package/src/components/NavigationBar/NavigationBar.stories.tsx +0 -406
  356. package/src/components/NavigationBar/NavigationBar.tsx +0 -246
  357. package/src/components/NavigationBar/NavigationBar.types.ts +0 -74
  358. package/src/components/NavigationBar/README.md +0 -469
  359. package/src/components/NavigationRail/NavigationRail.stories.tsx +0 -417
  360. package/src/components/NavigationRail/NavigationRail.tsx +0 -418
  361. package/src/components/NavigationRail/NavigationRail.types.ts +0 -109
  362. package/src/components/NavigationRail/README.md +0 -224
  363. package/src/components/Notification/Notification.stories.tsx +0 -513
  364. package/src/components/Notification/Notification.tsx +0 -145
  365. package/src/components/Notification/Notification.types.ts +0 -142
  366. package/src/components/Notification/README.md +0 -409
  367. package/src/components/POSConvention/POSConvention.stories.tsx +0 -235
  368. package/src/components/POSConvention/POSConvention.tsx +0 -129
  369. package/src/components/POSConvention/README.md +0 -123
  370. package/src/components/POSConvention/icons.tsx +0 -45
  371. package/src/components/POSLocationButton/POSLocationButton.stories.tsx +0 -531
  372. package/src/components/POSLocationButton/POSLocationButton.tsx +0 -247
  373. package/src/components/POSLocationButton/POSLocationButton.types.ts +0 -87
  374. package/src/components/POSLocationButton/README.md +0 -253
  375. package/src/components/POSLocationButton/icons.tsx +0 -120
  376. package/src/components/POSLocationButton/index.ts +0 -14
  377. package/src/components/POSNumberButton/POSNumberButton.stories.tsx +0 -415
  378. package/src/components/POSNumberButton/POSNumberButton.tsx +0 -179
  379. package/src/components/POSNumberButton/POSNumberButton.types.ts +0 -51
  380. package/src/components/POSNumberButton/README.md +0 -321
  381. package/src/components/POSProductButton/POSProductButton.stories.tsx +0 -318
  382. package/src/components/POSProductButton/POSProductButton.tsx +0 -152
  383. package/src/components/POSProductButton/POSProductButton.types.ts +0 -46
  384. package/src/components/POSProductButton/README.md +0 -269
  385. package/src/components/POSProductCard/POSProductCard.stories.tsx +0 -642
  386. package/src/components/POSProductCard/POSProductCard.tsx +0 -208
  387. package/src/components/POSProductCard/POSProductCard.types.ts +0 -76
  388. package/src/components/POSProductCard/README.md +0 -179
  389. package/src/components/POSProductCard/icons.tsx +0 -26
  390. package/src/components/POSProductSidebarItems/POSProductSidebarItems.stories.tsx +0 -753
  391. package/src/components/POSProductSidebarItems/POSProductSidebarItems.tsx +0 -332
  392. package/src/components/POSProductSidebarItems/POSProductSidebarItems.types.ts +0 -119
  393. package/src/components/POSProductSidebarItems/README.md +0 -198
  394. package/src/components/POSProductSidebarItems/icons.tsx +0 -21
  395. package/src/components/POSTable/POSTable.stories.tsx +0 -737
  396. package/src/components/POSTable/POSTable.tsx +0 -401
  397. package/src/components/POSTable/POSTable.types.ts +0 -83
  398. package/src/components/POSTable/README.md +0 -286
  399. package/src/components/POSTable/index.ts +0 -7
  400. package/src/components/Pagination/Pagination.stories.tsx +0 -555
  401. package/src/components/Pagination/Pagination.tsx +0 -286
  402. package/src/components/Pagination/Pagination.types.ts +0 -93
  403. package/src/components/Pagination/README.md +0 -298
  404. package/src/components/Pagination/icons.tsx +0 -47
  405. package/src/components/Quantity/Quantity.stories.tsx +0 -457
  406. package/src/components/Quantity/Quantity.tsx +0 -289
  407. package/src/components/Quantity/Quantity.types.ts +0 -70
  408. package/src/components/Radio/Radio.stories.tsx +0 -523
  409. package/src/components/Radio/Radio.tsx +0 -170
  410. package/src/components/Radio/Radio.types.ts +0 -122
  411. package/src/components/Select/README.md +0 -299
  412. package/src/components/Select/Select.stories.tsx +0 -673
  413. package/src/components/Select/Select.tsx +0 -454
  414. package/src/components/Select/Select.types.ts +0 -148
  415. package/src/components/Select/icons.tsx +0 -50
  416. package/src/components/SignUpView/SignUpView.stories.tsx +0 -129
  417. package/src/components/SignUpView/SignUpView.tsx +0 -503
  418. package/src/components/SignUpView/SignUpView.types.ts +0 -58
  419. package/src/components/SignUpView/icons.tsx +0 -71
  420. package/src/components/Switch/README.md +0 -112
  421. package/src/components/Switch/Switch.stories.tsx +0 -550
  422. package/src/components/Switch/Switch.tsx +0 -246
  423. package/src/components/Switch/Switch.types.ts +0 -67
  424. package/src/components/Table/README.md +0 -369
  425. package/src/components/Table/Table.stories.tsx +0 -805
  426. package/src/components/Table/Table.tsx +0 -688
  427. package/src/components/Table/Table.types.ts +0 -204
  428. package/src/components/Table/index.ts +0 -9
  429. package/src/components/Tabs/README.md +0 -201
  430. package/src/components/Tabs/Tabs.stories.tsx +0 -580
  431. package/src/components/Tabs/Tabs.tsx +0 -356
  432. package/src/components/Tabs/Tabs.types.ts +0 -127
  433. package/src/components/Tabs/icons.tsx +0 -129
  434. package/src/components/Tabs/index.ts +0 -11
  435. package/src/components/Textarea/Textarea.stories.tsx +0 -535
  436. package/src/components/Textarea/Textarea.tsx +0 -188
  437. package/src/components/Textarea/Textarea.types.ts +0 -54
  438. package/src/context/ThemeContext.tsx +0 -99
  439. package/src/index.css +0 -29
  440. package/src/index.ts +0 -39
  441. package/src/main.tsx +0 -10
  442. package/src/views/ProductsView/ProductsView.stories.tsx +0 -344
  443. package/src/views/ProductsView/ProductsView.tsx +0 -480
  444. package/src/views/ProductsView/ProductsView.types.ts +0 -238
  445. package/src/views/ProductsView/README.md +0 -312
  446. package/src/views/ProductsView/icons.tsx +0 -38
  447. package/src/views/ProductsView/index.ts +0 -8
  448. package/src/views/RecoverPasswordView/README.md +0 -269
  449. package/src/views/RecoverPasswordView/RecoverPasswordView.stories.tsx +0 -131
  450. package/src/views/RecoverPasswordView/RecoverPasswordView.tsx +0 -376
  451. package/src/views/RecoverPasswordView/RecoverPasswordView.types.ts +0 -56
  452. package/src/views/RecoverPasswordView/icons.tsx +0 -17
  453. package/src/views/TableLayoutView/README.md +0 -268
  454. package/src/views/TableLayoutView/TableLayoutView.stories.tsx +0 -235
  455. package/src/views/TableLayoutView/TableLayoutView.tsx +0 -461
  456. package/src/views/TableLayoutView/TableLayoutView.types.ts +0 -209
  457. package/src/views/TableLayoutView/icons.tsx +0 -113
  458. package/src/views/TableLayoutView/index.ts +0 -6
  459. package/storybook/main.ts +0 -20
  460. package/storybook/preview.tsx +0 -84
  461. package/storybook/vitest.setup.ts +0 -7
  462. package/tailwind.config.js +0 -128
package/docs/shadows.md DELETED
@@ -1,1377 +0,0 @@
1
- # Sistema de Sombras (Shadows) - Siesa UI Kit
2
-
3
- ## 📋 Tabla de Contenidos
4
-
5
- 1. [Introducción](#introducción)
6
- 2. [Drop Shadows](#drop-shadows)
7
- 3. [Inner Shadows](#inner-shadows)
8
- 4. [Sombras Personalizadas](#sombras-personalizadas)
9
- 5. [Guía de Uso](#guía-de-uso)
10
- 6. [Componentes del Sistema](#componentes-del-sistema)
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
- El sistema de sombras de Siesa UI Kit proporciona profundidad y jerarquía visual a los componentes de la interfaz. Las sombras ayudan a establecer la elevación de elementos y mejorar la experiencia del usuario al crear una interfaz más intuitiva y dimensional.
20
-
21
- ### Objetivos del Sistema
22
-
23
- - **Jerarquía Visual**: Establecer niveles de elevación claros entre componentes
24
- - **Profundidad**: Crear sensación de tridimensionalidad en interfaces planas
25
- - **Consistencia**: Uso uniforme de sombras en todo el sistema
26
- - **Sutileza**: Sombras suaves que no distraigan del contenido
27
- - **Accesibilidad**: Sombras que mejoren la usabilidad sin depender solo de ellas
28
-
29
- ### Principios de Diseño
30
-
31
- 1. **Elevación Progresiva**: Las sombras más grandes indican mayor elevación
32
- 2. **Sutileza**: Sombras suaves con opacidad controlada (5% a 25%)
33
- 3. **Múltiples Capas**: Combinación de sombras para efectos más naturales
34
- 4. **Adaptabilidad**: Funciona en modo claro y oscuro
35
-
36
- ---
37
-
38
- ## Drop Shadows
39
-
40
- Las **drop shadows** (sombras externas) se usan para elevar elementos sobre el fondo, creando la ilusión de que flotan.
41
-
42
- ### Escala de Drop Shadows
43
-
44
- | Clase Tailwind | Valor CSS | Elevación | Uso Principal |
45
- |----------------|-----------|-----------|---------------|
46
- | `shadow-sm` | `0px 1px 2px 0px rgba(0,0,0,0.05)` | Muy baja | Bordes sutiles, separadores ligeros |
47
- | `shadow-base` | `0px 1px 2px -1px rgba(0,0,0,0.1), 0px 1px 3px 0px rgba(0,0,0,0.1)` | Baja | **Cards planos, inputs** |
48
- | `shadow-md` | `0px 2px 4px -2px rgba(0,0,0,0.1), 0px 4px 6px -1px rgba(0,0,0,0.1)` | Media-baja | Cards elevados, dropdowns |
49
- | `shadow-lg` | `0px 4px 6px -4px rgba(0,0,0,0.1), 0px 10px 15px -3px rgba(0,0,0,0.1)` | Media | **Modales, popovers** |
50
- | `shadow-xl` | `0px 8px 10px -6px rgba(0,0,0,0.1), 0px 20px 25px -5px rgba(0,0,0,0.1)` | Alta | Modales grandes, overlays |
51
- | `shadow-2xl` | `0px 25px 50px -12px rgba(0,0,0,0.25)` | Muy alta | Elementos flotantes principales |
52
-
53
- ### Características de las Sombras
54
-
55
- **Sombras de Capas Múltiples**: La mayoría incluyen 2 sombras para un efecto más natural:
56
- - **Sombra principal**: Mayor blur, más alejada, simula luz ambiental
57
- - **Sombra de contacto**: Menor blur, más cercana, define los bordes
58
-
59
- **Opacidades Controladas**:
60
- - `0.05` (5%) - Sombras muy sutiles
61
- - `0.1` (10%) - Sombras estándar (más común)
62
- - `0.25` (25%) - Sombras dramáticas
63
-
64
- ### Valores Más Comunes
65
-
66
- En el 80% de los casos, usarás estos 3 valores:
67
-
68
- 1. **`shadow-base`**: Cards y paneles estándar
69
- 2. **`shadow-lg`**: Modales y popovers
70
- 3. **`shadow-xl`**: Overlays importantes
71
-
72
- ---
73
-
74
- ## Inner Shadows
75
-
76
- Las **inner shadows** (sombras internas) crean la ilusión de profundidad hacia adentro, como si el elemento estuviera hundido.
77
-
78
- ### Escala de Inner Shadows
79
-
80
- | Clase Tailwind | Valor CSS | Uso Principal |
81
- |----------------|-----------|---------------|
82
- | `shadow-inner` | `inset 0 2px 4px 0 rgba(0,0,0,0.05)` | Inputs hundidos, áreas presionadas |
83
-
84
- ### Sombra Inner Personalizada
85
-
86
- El sistema incluye una sombra inner especial para botones:
87
-
88
- | Nombre | Valor CSS | Uso |
89
- |--------|-----------|-----|
90
- | `shadow-button-inset` | `0px 2px 0px 0px inset rgba(255,255,255,0.15)` | **Botones default** - Efecto de brillo superior |
91
-
92
- **Nota**: Esta sombra usa **blanco** con 15% de opacidad para crear un efecto de luz desde arriba, dando dimensión a los botones.
93
-
94
- ---
95
-
96
- ## Sombras Personalizadas
97
-
98
- Además de las sombras estándar de Tailwind, el sistema incluye sombras personalizadas para casos específicos.
99
-
100
- ### Tabla de Sombras Personalizadas
101
-
102
- | Nombre | Clase | Valor CSS | Uso |
103
- |--------|-------|-----------|-----|
104
- | **Button Inset** | `shadow-button-inset` | `0px 2px 0px 0px inset rgba(255,255,255,0.15)` | Botones default |
105
- | **Menu** | `shadow-menu` | `0px 4px 4px -1px rgba(12,12,13,0.05), 0px 4px 4px -1px rgba(12,12,13,0.1)` | Menús desplegables, dropdowns |
106
- | **Base** | `shadow-base` | `0px 1px 2px -1px rgba(0,0,0,0.1), 0px 1px 3px 0px rgba(0,0,0,0.1)` | Cards estándar |
107
-
108
- ### Configuración en Tailwind
109
-
110
- ```javascript
111
- // tailwind.config.js
112
- boxShadow: {
113
- // Personalizada para botones (inner shadow)
114
- 'button-inset': '0px 2px 0px 0px inset rgba(255,255,255,0.15)',
115
-
116
- // Personalizada para menús
117
- 'menu': '0px 4px 4px -1px rgba(12, 12, 13, 0.05), 0px 4px 4px -1px rgba(12, 12, 13, 0.1)',
118
- }
119
- ```
120
-
121
- ---
122
-
123
- ## Guía de Uso
124
-
125
- ### Por Tipo de Componente
126
-
127
- #### 1. Botones
128
-
129
- ```tsx
130
- // Botón default con sombra interna
131
- <button className="rounded-md bg-primary-custom-600 text-white px-4 py-2 shadow-button-inset">
132
- Guardar
133
- </button>
134
-
135
- // Botón elevado con sombra externa
136
- <button className="rounded-md bg-white border px-4 py-2 shadow-base hover:shadow-md transition-shadow">
137
- Cancelar
138
- </button>
139
- ```
140
-
141
- **Recomendación**:
142
- - Botones default (rellenos): `shadow-button-inset`
143
- - Botones outline (sin fondo): `shadow-base` en hover
144
-
145
- #### 2. Cards
146
-
147
- ```tsx
148
- // Card plano - shadow-base
149
- <div className="rounded-2xl border bg-white p-6 shadow-base">
150
- <h3>Card Estándar</h3>
151
- <p>Contenido...</p>
152
- </div>
153
-
154
- // Card elevado - shadow-md
155
- <div className="rounded-2xl bg-white p-6 shadow-md">
156
- <h3>Card Destacado</h3>
157
- <p>Contenido importante...</p>
158
- </div>
159
-
160
- // Card flotante - shadow-lg
161
- <div className="rounded-2xl bg-white p-6 shadow-lg">
162
- <h3>Card Flotante</h3>
163
- <p>Elemento prominente...</p>
164
- </div>
165
- ```
166
-
167
- **Recomendación**:
168
- - Cards de lista: `shadow-base`
169
- - Cards destacados: `shadow-md`
170
- - Cards sobre overlay: `shadow-lg` o `shadow-xl`
171
-
172
- #### 3. Modales y Overlays
173
-
174
- ```tsx
175
- // Modal pequeño - shadow-lg
176
- <div className="rounded-3xl bg-white p-6 shadow-lg max-w-md">
177
- <h2>Modal Pequeño</h2>
178
- <p>Contenido...</p>
179
- </div>
180
-
181
- // Modal grande - shadow-xl
182
- <div className="rounded-3xl bg-white p-8 shadow-xl max-w-2xl">
183
- <h2>Modal Grande</h2>
184
- <p>Contenido extenso...</p>
185
- </div>
186
-
187
- // Drawer/Panel lateral - shadow-2xl
188
- <div className="fixed right-0 top-0 h-full bg-white p-6 shadow-2xl w-96">
189
- <h2>Panel Lateral</h2>
190
- <p>Contenido...</p>
191
- </div>
192
- ```
193
-
194
- **Recomendación**:
195
- - Modales pequeños: `shadow-lg`
196
- - Modales grandes: `shadow-xl`
197
- - Drawers/Panels: `shadow-2xl`
198
-
199
- #### 4. Dropdowns y Menus
200
-
201
- ```tsx
202
- // Dropdown simple - shadow-menu
203
- <div className="rounded-lg bg-white border shadow-menu">
204
- <ul>
205
- <li className="px-4 py-2 hover:bg-gray-100">Opción 1</li>
206
- <li className="px-4 py-2 hover:bg-gray-100">Opción 2</li>
207
- </ul>
208
- </div>
209
-
210
- // Menú contextual - shadow-md
211
- <div className="rounded-xl bg-white shadow-md">
212
- <ul className="py-2">
213
- <li className="px-4 py-2 hover:bg-gray-100">Editar</li>
214
- <li className="px-4 py-2 hover:bg-gray-100">Eliminar</li>
215
- </ul>
216
- </div>
217
- ```
218
-
219
- **Recomendación**:
220
- - Dropdowns estándar: `shadow-menu`
221
- - Menús contextuales: `shadow-md`
222
- - Select expandido: `shadow-lg`
223
-
224
- #### 5. Inputs y Controles
225
-
226
- ```tsx
227
- // Input enfocado - shadow-base
228
- <input
229
- type="text"
230
- className="rounded-md border px-4 py-2 focus:shadow-base transition-shadow"
231
- placeholder="Email"
232
- />
233
-
234
- // Input con error - shadow-base + borde rojo
235
- <input
236
- type="text"
237
- className="rounded-md border border-error-border px-4 py-2 shadow-base"
238
- placeholder="Email"
239
- />
240
-
241
- // Input hundido (inner shadow)
242
- <input
243
- type="text"
244
- className="rounded-md border bg-gray-50 px-4 py-2 shadow-inner"
245
- placeholder="Búsqueda"
246
- readOnly
247
- />
248
- ```
249
-
250
- **Recomendación**:
251
- - Input normal: sin sombra
252
- - Input focus: `shadow-base`
253
- - Input disabled/readonly: `shadow-inner`
254
-
255
- #### 6. Tooltips y Popovers
256
-
257
- ```tsx
258
- // Tooltip - shadow-lg
259
- <div className="rounded-lg bg-gray-900 text-white px-3 py-2 text-sm shadow-lg">
260
- Este es un tooltip
261
- </div>
262
-
263
- // Popover - shadow-xl
264
- <div className="rounded-xl bg-white border p-4 shadow-xl max-w-xs">
265
- <h4 className="font-bold mb-2">Información</h4>
266
- <p className="text-sm">Contenido del popover...</p>
267
- </div>
268
- ```
269
-
270
- **Recomendación**:
271
- - Tooltips simples: `shadow-lg`
272
- - Popovers con contenido: `shadow-xl`
273
-
274
- ### Por Elevación
275
-
276
- | Elevación | Shadow | Cuándo Usar |
277
- |-----------|--------|-------------|
278
- | **Nivel 0** | Sin sombra | Elementos integrados, fondos |
279
- | **Nivel 1** | `shadow-sm` | Separadores sutiles, bordes suaves |
280
- | **Nivel 2** | `shadow-base` | **Cards estándar, inputs focus** |
281
- | **Nivel 3** | `shadow-md` | Cards elevados, dropdowns |
282
- | **Nivel 4** | `shadow-lg` | **Modales pequeños, popovers** |
283
- | **Nivel 5** | `shadow-xl` | Modales grandes, overlays |
284
- | **Nivel 6** | `shadow-2xl` | Drawers, panels laterales |
285
-
286
- ### Transiciones de Sombra
287
-
288
- Las sombras pueden animarse para crear interacciones fluidas:
289
-
290
- ```tsx
291
- // Hover que eleva el card
292
- <div className="rounded-2xl bg-white p-6 shadow-base hover:shadow-lg transition-shadow duration-200">
293
- Card Interactivo
294
- </div>
295
-
296
- // Botón que se hunde al hacer click
297
- <button className="rounded-md bg-primary-custom-600 px-4 py-2 shadow-md active:shadow-sm transition-shadow">
298
- Click me
299
- </button>
300
-
301
- // Card que se expande
302
- <div className="rounded-2xl bg-white p-6 shadow-base hover:scale-105 hover:shadow-xl transition-all duration-300">
303
- Card con efecto
304
- </div>
305
- ```
306
-
307
- ---
308
-
309
- ## Componentes del Sistema
310
-
311
- ### Uso Actual en Componentes
312
-
313
- | Componente | Shadow Usada | Ubicación |
314
- |------------|--------------|-----------|
315
- | **Button (default)** | `shadow-button-inset` | Button.tsx:67 |
316
- | **Card** | `shadow-base` o `shadow-md` | (a implementar) |
317
- | **Modal** | `shadow-lg` o `shadow-xl` | (a implementar) |
318
- | **Dropdown** | `shadow-menu` o `shadow-md` | (a implementar) |
319
- | **Tooltip** | `shadow-lg` | (a implementar) |
320
- | **Input (focus)** | `shadow-base` | (a implementar) |
321
-
322
- ### Configuración Completa
323
-
324
- ```javascript
325
- // tailwind.config.js
326
- module.exports = {
327
- theme: {
328
- extend: {
329
- boxShadow: {
330
- // Sombras personalizadas
331
- 'button-inset': '0px 2px 0px 0px inset rgba(255,255,255,0.15)',
332
- 'menu': '0px 4px 4px -1px rgba(12, 12, 13, 0.05), 0px 4px 4px -1px rgba(12, 12, 13, 0.1)',
333
-
334
- // Tailwind defaults (para referencia)
335
- 'sm': '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
336
- 'DEFAULT': '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)',
337
- 'md': '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)',
338
- 'lg': '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)',
339
- 'xl': '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)',
340
- '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
341
- 'inner': 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.05)',
342
- 'none': 'none',
343
- }
344
- }
345
- }
346
- }
347
- ```
348
-
349
- ---
350
-
351
- ## Ejemplos de Código
352
-
353
- ### Ejemplo 1: Sistema de Cards con Diferentes Elevaciones
354
-
355
- ```tsx
356
- export const CardShowcase = () => {
357
- return (
358
- <div className="grid grid-cols-3 gap-6 p-8">
359
- {/* Card Plano - Nivel 2 */}
360
- <div className="rounded-2xl border border-border-primary bg-white p-6 shadow-base">
361
- <h3 className="text-xl font-bold mb-2">Card Plano</h3>
362
- <p className="text-sm text-content-secondary">
363
- Sombra sutil para cards en lista o grids.
364
- </p>
365
- <span className="inline-block mt-4 text-xs font-bold text-content-tertiary">
366
- shadow-base
367
- </span>
368
- </div>
369
-
370
- {/* Card Elevado - Nivel 3 */}
371
- <div className="rounded-2xl bg-white p-6 shadow-md">
372
- <h3 className="text-xl font-bold mb-2">Card Elevado</h3>
373
- <p className="text-sm text-content-secondary">
374
- Mayor elevación para cards destacados.
375
- </p>
376
- <span className="inline-block mt-4 text-xs font-bold text-content-tertiary">
377
- shadow-md
378
- </span>
379
- </div>
380
-
381
- {/* Card Flotante - Nivel 4 */}
382
- <div className="rounded-2xl bg-white p-6 shadow-lg">
383
- <h3 className="text-xl font-bold mb-2">Card Flotante</h3>
384
- <p className="text-sm text-content-secondary">
385
- Máxima elevación para elementos importantes.
386
- </p>
387
- <span className="inline-block mt-4 text-xs font-bold text-content-tertiary">
388
- shadow-lg
389
- </span>
390
- </div>
391
- </div>
392
- );
393
- };
394
- ```
395
-
396
- ### Ejemplo 2: Modal con Overlay
397
-
398
- ```tsx
399
- export const Modal = ({ isOpen, onClose, children, size = 'small' }) => {
400
- if (!isOpen) return null;
401
-
402
- const sizeClasses = {
403
- small: 'max-w-md shadow-lg',
404
- medium: 'max-w-2xl shadow-xl',
405
- large: 'max-w-4xl shadow-2xl',
406
- };
407
-
408
- return (
409
- <div className="fixed inset-0 z-50 flex items-center justify-center p-4">
410
- {/* Overlay - Sin sombra */}
411
- <div
412
- className="absolute inset-0 bg-black/50 backdrop-blur-sm"
413
- onClick={onClose}
414
- />
415
-
416
- {/* Modal - Sombra según tamaño */}
417
- <div className={`rounded-3xl bg-white relative z-10 ${sizeClasses[size]}`}>
418
- {/* Header */}
419
- <div className="flex items-center justify-between p-6 border-b border-border-primary">
420
- <h2 className="text-2xl font-bold">Modal Title</h2>
421
- <button
422
- onClick={onClose}
423
- className="rounded-full hover:bg-gray-100 p-2 transition-colors"
424
- >
425
- <XIcon />
426
- </button>
427
- </div>
428
-
429
- {/* Body */}
430
- <div className="p-6">{children}</div>
431
-
432
- {/* Footer */}
433
- <div className="flex gap-3 justify-end p-6 border-t border-border-primary">
434
- <button
435
- onClick={onClose}
436
- className="rounded-md border border-border-primary bg-white px-4 py-2 font-bold hover:bg-gray-50 transition-colors"
437
- >
438
- Cancelar
439
- </button>
440
- <button className="rounded-md bg-primary-custom-600 text-white px-4 py-2 font-bold shadow-button-inset hover:bg-primary-custom-500 transition-colors">
441
- Confirmar
442
- </button>
443
- </div>
444
- </div>
445
- </div>
446
- );
447
- };
448
-
449
- // Uso
450
- <Modal isOpen={true} size="medium">
451
- <p>Contenido del modal...</p>
452
- </Modal>
453
- ```
454
-
455
- ### Ejemplo 3: Dropdown Menu
456
-
457
- ```tsx
458
- export const DropdownMenu = ({ trigger, items }) => {
459
- const [isOpen, setIsOpen] = useState(false);
460
-
461
- return (
462
- <div className="relative">
463
- {/* Trigger */}
464
- <button
465
- onClick={() => setIsOpen(!isOpen)}
466
- className="rounded-md border border-border-primary bg-white px-4 py-2 font-bold hover:bg-gray-50 transition-colors"
467
- >
468
- {trigger}
469
- </button>
470
-
471
- {/* Menu - shadow-menu personalizada */}
472
- {isOpen && (
473
- <div className="absolute top-full mt-2 right-0 rounded-lg bg-white border shadow-menu min-w-[200px] z-10">
474
- <ul className="py-2">
475
- {items.map((item, index) => (
476
- <li key={index}>
477
- <button
478
- onClick={() => {
479
- item.onClick();
480
- setIsOpen(false);
481
- }}
482
- className="w-full text-left px-4 py-2 text-sm hover:bg-gray-100 transition-colors"
483
- >
484
- {item.icon && (
485
- <span className="inline-flex mr-3">{item.icon}</span>
486
- )}
487
- {item.label}
488
- </button>
489
- </li>
490
- ))}
491
- </ul>
492
- </div>
493
- )}
494
- </div>
495
- );
496
- };
497
-
498
- // Uso
499
- <DropdownMenu
500
- trigger="Acciones"
501
- items={[
502
- { label: 'Editar', onClick: () => console.log('Editar'), icon: <EditIcon /> },
503
- { label: 'Duplicar', onClick: () => console.log('Duplicar'), icon: <CopyIcon /> },
504
- { label: 'Eliminar', onClick: () => console.log('Eliminar'), icon: <DeleteIcon /> },
505
- ]}
506
- />
507
- ```
508
-
509
- ### Ejemplo 4: Card Interactivo con Hover
510
-
511
- ```tsx
512
- export const ProductCard = ({ product }) => {
513
- return (
514
- <div className="rounded-2xl bg-white overflow-hidden shadow-base hover:shadow-lg transition-all duration-300 hover:-translate-y-1 cursor-pointer">
515
- {/* Imagen */}
516
- <div className="aspect-square bg-gray-100">
517
- <img
518
- src={product.image}
519
- alt={product.name}
520
- className="w-full h-full object-cover"
521
- />
522
- </div>
523
-
524
- {/* Contenido */}
525
- <div className="p-6">
526
- <div className="flex items-start justify-between mb-2">
527
- <h3 className="text-xl font-bold text-content-primary">
528
- {product.name}
529
- </h3>
530
- {product.badge && (
531
- <span className="rounded px-2 py-1 text-xs font-bold bg-primary-custom-100 text-primary-custom-600">
532
- {product.badge}
533
- </span>
534
- )}
535
- </div>
536
-
537
- <p className="text-sm text-content-secondary mb-4">
538
- {product.description}
539
- </p>
540
-
541
- <div className="flex items-center justify-between">
542
- <span className="text-2xl font-bold text-primary-custom-600">
543
- ${product.price}
544
- </span>
545
- <button className="rounded-md bg-primary-custom-600 text-white px-4 py-2 text-sm font-bold shadow-button-inset hover:bg-primary-custom-500 transition-colors">
546
- Añadir al carrito
547
- </button>
548
- </div>
549
- </div>
550
- </div>
551
- );
552
- };
553
- ```
554
-
555
- ### Ejemplo 5: Input States con Sombras
556
-
557
- ```tsx
558
- export const InputWithStates = () => {
559
- const [value, setValue] = useState('');
560
- const [isFocused, setIsFocused] = useState(false);
561
- const [hasError, setHasError] = useState(false);
562
-
563
- return (
564
- <div className="space-y-6 max-w-md">
565
- {/* Input Normal */}
566
- <div>
567
- <label className="text-sm font-bold mb-2 block">Input Normal</label>
568
- <input
569
- type="text"
570
- className="rounded-md border border-border-primary px-4 py-2 w-full transition-shadow"
571
- placeholder="Sin foco, sin sombra"
572
- />
573
- </div>
574
-
575
- {/* Input Focused */}
576
- <div>
577
- <label className="text-sm font-bold mb-2 block">Input con Focus</label>
578
- <input
579
- type="text"
580
- className="rounded-md border border-border-primary px-4 py-2 w-full focus:shadow-base focus:border-primary-custom-400 focus:ring-2 focus:ring-primary-custom-400 transition-all"
581
- placeholder="Click para ver shadow-base"
582
- />
583
- </div>
584
-
585
- {/* Input con Error */}
586
- <div>
587
- <label className="text-sm font-bold mb-2 block">Input con Error</label>
588
- <input
589
- type="text"
590
- className="rounded-md border-2 border-error-border px-4 py-2 w-full shadow-base"
591
- placeholder="Con error"
592
- />
593
- <p className="text-xs text-error-content mt-1">
594
- Este campo es requerido
595
- </p>
596
- </div>
597
-
598
- {/* Input Disabled */}
599
- <div>
600
- <label className="text-sm font-bold mb-2 block text-content-tertiary">
601
- Input Disabled
602
- </label>
603
- <input
604
- type="text"
605
- className="rounded-md border border-border-primary bg-gray-50 px-4 py-2 w-full shadow-inner cursor-not-allowed"
606
- placeholder="Deshabilitado"
607
- disabled
608
- />
609
- </div>
610
- </div>
611
- );
612
- };
613
- ```
614
-
615
- ---
616
-
617
- ## Mejores Prácticas
618
-
619
- ### ✅ Hacer
620
-
621
- 1. **Usar elevación apropiada según importancia**
622
- ```tsx
623
- // ✅ CORRECTO - Jerarquía clara
624
- <div className="shadow-base">Card normal</div>
625
- <div className="shadow-lg">Modal importante</div>
626
- ```
627
-
628
- 2. **Combinar con transiciones para interacciones suaves**
629
- ```tsx
630
- // ✅ CORRECTO - Transición fluida
631
- <div className="shadow-base hover:shadow-md transition-shadow duration-200">
632
- Card interactivo
633
- </div>
634
- ```
635
-
636
- 3. **Usar sombras en conjunto con border-radius**
637
- ```tsx
638
- // ✅ CORRECTO - Sombra + bordes redondeados
639
- <div className="rounded-2xl shadow-base">
640
- Card con bordes suaves
641
- </div>
642
- ```
643
-
644
- 4. **Aplicar sombras internas para elementos hundidos**
645
- ```tsx
646
- // ✅ CORRECTO - Input con apariencia hundida
647
- <input className="rounded-md border bg-gray-50 shadow-inner" readOnly />
648
- ```
649
-
650
- 5. **Usar sombras personalizadas para casos específicos**
651
- ```tsx
652
- // ✅ CORRECTO - Sombra personalizada de botón
653
- <button className="rounded-md bg-primary-custom-600 shadow-button-inset">
654
- Botón Default
655
- </button>
656
- ```
657
-
658
- ### ❌ Evitar
659
-
660
- 1. **No usar sombras muy oscuras o exageradas**
661
- ```tsx
662
- // ❌ INCORRECTO - Sombra demasiado dramática
663
- <div style={{ boxShadow: '0 10px 50px rgba(0,0,0,0.8)' }}>
664
- Sombra exagerada
665
- </div>
666
-
667
- // ✅ CORRECTO - Sombra sutil del sistema
668
- <div className="shadow-lg">Sombra apropiada</div>
669
- ```
670
-
671
- 2. **No apilar múltiples elementos con sombras grandes**
672
- ```tsx
673
- // ❌ INCORRECTO - Demasiadas sombras compiten
674
- <div className="shadow-2xl">
675
- <div className="shadow-2xl">
676
- <div className="shadow-2xl">Contenido</div>
677
- </div>
678
- </div>
679
-
680
- // ✅ CORRECTO - Solo el contenedor tiene sombra
681
- <div className="shadow-2xl">
682
- <div>
683
- <div>Contenido</div>
684
- </div>
685
- </div>
686
- ```
687
-
688
- 3. **No usar sombras en elementos muy pequeños**
689
- ```tsx
690
- // ❌ INCORRECTO - Badge pequeño con sombra grande
691
- <span className="text-xs px-2 py-0.5 shadow-xl">Badge</span>
692
-
693
- // ✅ CORRECTO - Sin sombra o sombra mínima
694
- <span className="text-xs px-2 py-0.5 rounded bg-blue-100">Badge</span>
695
- ```
696
-
697
- 4. **No omitir transiciones en cambios de sombra**
698
- ```tsx
699
- // ❌ INCORRECTO - Cambio abrupto
700
- <div className="shadow-base hover:shadow-xl">Card</div>
701
-
702
- // ✅ CORRECTO - Con transición
703
- <div className="shadow-base hover:shadow-xl transition-shadow">Card</div>
704
- ```
705
-
706
- 5. **No usar sombras como único indicador de interactividad**
707
- ```tsx
708
- // ❌ INCORRECTO - Solo sombra para hover
709
- <button className="hover:shadow-lg">Click</button>
710
-
711
- // ✅ CORRECTO - Múltiples indicadores
712
- <button className="rounded-md bg-primary-custom-600 hover:bg-primary-custom-500 hover:shadow-lg transition-all">
713
- Click
714
- </button>
715
- ```
716
-
717
- ### Accesibilidad
718
-
719
- 1. **No depender solo de sombras para comunicar estados**
720
- - Combinar con colores, bordes, iconos
721
- - Las sombras pueden no ser visibles en todos los contextos
722
-
723
- 2. **Asegurar contraste suficiente**
724
- - Las sombras no deben reducir el contraste del texto
725
- - Verificar WCAG 2.1 AA (4.5:1 para texto normal)
726
-
727
- 3. **Considerar usuarios con baja visión**
728
- - Sombras muy sutiles pueden no ser percibidas
729
- - Usar indicadores adicionales para estados importantes
730
-
731
- 4. **Dark Mode**
732
- - Las sombras negras funcionan bien en fondos claros y oscuros
733
- - No necesitas sombras diferentes para dark mode en la mayoría de casos
734
-
735
- ### Performance
736
-
737
- 1. **Las sombras CSS son eficientes**
738
- - ✅ No requieren imágenes adicionales
739
- - ✅ Son hardware-accelerated en la mayoría de navegadores
740
-
741
- 2. **Evitar blur excesivo**
742
- - Valores de blur muy altos pueden impactar performance
743
- - El sistema usa valores optimizados (1px a 50px)
744
-
745
- 3. **Animar solo transform y opacity cuando sea posible**
746
- ```tsx
747
- // ✅ MEJOR PERFORMANCE - Animar transform
748
- <div className="shadow-base hover:scale-105 transition-transform">
749
- Card
750
- </div>
751
-
752
- // ⚠️ ACEPTABLE - Animar shadow
753
- <div className="shadow-base hover:shadow-lg transition-shadow">
754
- Card
755
- </div>
756
- ```
757
-
758
- ---
759
-
760
- ## Dark Mode
761
-
762
- Las sombras en dark mode requieren consideraciones especiales para mantener la profundidad visual sin que las sombras negras se vuelvan invisibles sobre fondos oscuros.
763
-
764
- ### Configuración de Tailwind CSS
765
-
766
- El modo oscuro en Siesa UI Kit se basa en la estrategia de clases de Tailwind CSS:
767
-
768
- ```javascript
769
- // tailwind.config.js
770
- module.exports = {
771
- darkMode: 'class', // ✅ Estrategia basada en clases (NO 'media')
772
- // ...resto de la configuración
773
- }
774
- ```
775
-
776
- Con esta configuración, el modo oscuro se activa añadiendo la clase `.dark` al elemento `<html>`:
777
-
778
- ```html
779
- <!-- Modo claro -->
780
- <html>
781
- <body>
782
- <!-- Contenido en modo claro -->
783
- </body>
784
- </html>
785
-
786
- <!-- Modo oscuro -->
787
- <html class="dark">
788
- <body>
789
- <!-- Contenido en modo oscuro -->
790
- </body>
791
- </html>
792
- ```
793
-
794
- ### El Modificador `dark:`
795
-
796
- El modificador `dark:` de Tailwind funciona como un **prefijo condicional** que aplica estilos solo cuando la clase `.dark` está presente en un elemento padre.
797
-
798
- #### Principios para Sombras en Dark Mode
799
-
800
- ```tsx
801
- // Patrón básico - Sombras funcionan bien en ambos modos
802
- <div className="rounded-2xl bg-white dark:bg-dark-bg-primary shadow-base p-6">
803
- Card con sombra adaptable
804
- </div>
805
-
806
- // Las sombras negras (rgba(0,0,0,...)) funcionan bien en ambos modos
807
- // porque el contraste se mantiene sobre fondos oscuros
808
- ```
809
-
810
- **Nota Importante**: Las sombras negras con opacidad baja (5%-10%) funcionan bien tanto en fondos claros como oscuros, por lo que **generalmente NO necesitas cambiar las sombras en dark mode**.
811
-
812
- ### Cuándo Ajustar Sombras en Dark Mode
813
-
814
- Hay casos específicos donde puedes querer ajustar las sombras:
815
-
816
- #### 1. Aumentar Opacidad en Dark Mode
817
-
818
- Para elementos que necesitan destacarse más en dark mode:
819
-
820
- ```tsx
821
- // Aumentar intensidad de sombra en dark mode
822
- <div className="
823
- rounded-2xl
824
- bg-white dark:bg-dark-bg-primary
825
- shadow-base dark:shadow-lg
826
- p-6
827
- ">
828
- Card con sombra más intensa en dark mode
829
- </div>
830
-
831
- // Modal que necesita más prominencia en dark mode
832
- <div className="
833
- rounded-3xl
834
- bg-white dark:bg-dark-bg-primary
835
- shadow-xl dark:shadow-2xl
836
- p-8
837
- ">
838
- Modal destacado en dark mode
839
- </div>
840
- ```
841
-
842
- #### 2. Sombras de Color en Dark Mode
843
-
844
- Sombras de color (para efectos especiales) pueden necesitar ajuste:
845
-
846
- ```tsx
847
- // Sombra de color ajustada para dark mode
848
- <button className="
849
- rounded-md
850
- bg-primary-custom-600 dark:bg-dark-bg-inverse
851
- shadow-[0_4px_14px_0_rgba(14,121,253,0.4)]
852
- dark:shadow-[0_4px_14px_0_rgba(147,209,253,0.3)]
853
- px-4 py-2
854
- ">
855
- Botón con sombra de color
856
- </button>
857
- ```
858
-
859
- ### Combinando Sombras con Otros Estados
860
-
861
- El modificador `dark:` se puede combinar con hover, focus, y otros estados:
862
-
863
- ```tsx
864
- // Dark mode + Hover
865
- <div className="
866
- rounded-2xl
867
- bg-white dark:bg-dark-bg-primary
868
- shadow-base dark:shadow-md
869
- hover:shadow-lg dark:hover:shadow-xl
870
- transition-shadow
871
- p-6
872
- ">
873
- Card con hover effect en ambos modos
874
- </div>
875
-
876
- // Dark mode + Focus en inputs
877
- <input className="
878
- rounded-md
879
- border border-border-primary dark:border-dark-border-primary
880
- focus:shadow-lg dark:focus:shadow-xl
881
- focus:ring-2 focus:ring-primary-custom-400/20 dark:focus:ring-dark-border-custom/20
882
- " />
883
- ```
884
-
885
- ### Orden de Modificadores
886
-
887
- Tailwind CSS recomienda un orden específico:
888
-
889
- **Formato**: `{responsive}:{dark}:{state}:{utility}`
890
-
891
- ```tsx
892
- // ✅ CORRECTO - Orden: responsive → dark → state → utility
893
- <div className="
894
- shadow-base
895
- md:shadow-md
896
- md:dark:shadow-lg
897
- md:dark:hover:shadow-xl
898
- transition-shadow
899
- ">
900
- Card con orden correcto
901
- </div>
902
-
903
- // ❌ INCORRECTO - Orden equivocado
904
- <div className="
905
- dark:md:hover:shadow-xl
906
- shadow-base
907
- ">
908
- Orden confuso
909
- </div>
910
- ```
911
-
912
- ### Tabla de Sombras por Modo
913
-
914
- | Componente | Light Mode | Dark Mode | Razón |
915
- |------------|------------|-----------|-------|
916
- | **Card estándar** | `shadow-base` | `shadow-base` | Mismo valor - funciona bien |
917
- | **Card elevado** | `shadow-md` | `shadow-md` o `shadow-lg` | Opcional: aumentar en dark |
918
- | **Modal pequeño** | `shadow-lg` | `shadow-lg` o `shadow-xl` | Opcional: aumentar en dark |
919
- | **Modal grande** | `shadow-xl` | `shadow-xl` o `shadow-2xl` | Opcional: aumentar en dark |
920
- | **Dropdown** | `shadow-menu` | `shadow-menu` o `shadow-lg` | Opcional: aumentar en dark |
921
- | **Button inset** | `shadow-button-inset` | `shadow-button-inset` | Mismo valor |
922
-
923
- ### Ejemplos Completos
924
-
925
- #### Ejemplo 1: Cards con Sombras Adaptativas
926
-
927
- ```tsx
928
- export const CardWithShadow = () => {
929
- return (
930
- <div className="
931
- rounded-2xl
932
- bg-white dark:bg-dark-bg-primary
933
- border border-border-primary dark:border-dark-border-primary
934
- shadow-base dark:shadow-md
935
- p-6
936
- hover:shadow-lg dark:hover:shadow-xl
937
- transition-all
938
- ">
939
- <h3 className="
940
- text-content-primary dark:text-dark-content-primary
941
- font-bold text-xl mb-4
942
- ">
943
- Card Title
944
- </h3>
945
- <p className="
946
- text-content-secondary dark:text-content-secondary
947
- mb-4
948
- ">
949
- Card content con sombra que se adapta al modo oscuro
950
- </p>
951
- <button className="
952
- rounded-md
953
- bg-primary-custom-600 dark:bg-dark-bg-inverse
954
- text-primary-inverse-content dark:text-dark-content-inverse
955
- shadow-button-inset
956
- px-4 py-2
957
- font-bold
958
- ">
959
- Action
960
- </button>
961
- </div>
962
- );
963
- };
964
- ```
965
-
966
- #### Ejemplo 2: Modal con Sombras Intensas en Dark Mode
967
-
968
- ```tsx
969
- export const AdaptiveModal = ({ isOpen, onClose }) => {
970
- if (!isOpen) return null;
971
-
972
- return (
973
- <div className="fixed inset-0 z-50 flex items-center justify-center p-4">
974
- {/* Overlay */}
975
- <div
976
- className="absolute inset-0 bg-black/50 dark:bg-black/70 backdrop-blur-sm"
977
- onClick={onClose}
978
- />
979
-
980
- {/* Modal */}
981
- <div className="
982
- relative z-10
983
- rounded-3xl
984
- bg-white dark:bg-dark-bg-primary
985
- border border-border-primary dark:border-dark-border-primary
986
- shadow-xl dark:shadow-2xl
987
- max-w-md w-full
988
- ">
989
- {/* Header */}
990
- <div className="
991
- flex items-center justify-between
992
- p-6
993
- border-b border-border-primary dark:border-dark-border-primary
994
- ">
995
- <h2 className="
996
- text-content-primary dark:text-dark-content-primary
997
- font-bold text-2xl
998
- ">
999
- Modal Title
1000
- </h2>
1001
- <button
1002
- onClick={onClose}
1003
- className="
1004
- rounded-full p-2
1005
- hover:bg-background-secondary dark:hover:bg-dark-bg-primary
1006
- transition-colors
1007
- "
1008
- >
1009
- <XIcon className="w-5 h-5" />
1010
- </button>
1011
- </div>
1012
-
1013
- {/* Body */}
1014
- <div className="p-6">
1015
- <p className="
1016
- text-content-secondary dark:text-content-secondary
1017
- ">
1018
- Modal content adaptado para dark mode con sombras más intensas
1019
- </p>
1020
- </div>
1021
-
1022
- {/* Footer */}
1023
- <div className="
1024
- flex gap-3 justify-end
1025
- p-6
1026
- border-t border-border-primary dark:border-dark-border-primary
1027
- ">
1028
- <button
1029
- onClick={onClose}
1030
- className="
1031
- rounded-md
1032
- border border-border-primary dark:border-dark-border-custom
1033
- px-4 py-2
1034
- font-bold
1035
- text-content-primary dark:text-dark-content-primary
1036
- hover:bg-background-secondary dark:hover:bg-dark-bg-primary
1037
- "
1038
- >
1039
- Cancel
1040
- </button>
1041
- <button className="
1042
- rounded-md
1043
- bg-primary-custom-600 dark:bg-dark-bg-inverse
1044
- text-primary-inverse-content dark:text-dark-content-inverse
1045
- shadow-button-inset
1046
- px-4 py-2
1047
- font-bold
1048
- ">
1049
- Confirm
1050
- </button>
1051
- </div>
1052
- </div>
1053
- </div>
1054
- );
1055
- };
1056
- ```
1057
-
1058
- #### Ejemplo 3: Dropdown con Sombra Adaptativa
1059
-
1060
- ```tsx
1061
- export const DropdownMenu = ({ isOpen, items }) => {
1062
- if (!isOpen) return null;
1063
-
1064
- return (
1065
- <div className="
1066
- absolute top-full right-0 mt-2
1067
- rounded-xl
1068
- bg-white dark:bg-dark-bg-primary
1069
- border border-border-primary dark:border-dark-border-primary
1070
- shadow-menu dark:shadow-lg
1071
- min-w-[200px]
1072
- py-2
1073
- ">
1074
- {items.map((item, index) => (
1075
- <button
1076
- key={index}
1077
- className="
1078
- w-full px-4 py-2
1079
- text-left
1080
- text-content-primary dark:text-dark-content-primary
1081
- hover:bg-background-secondary dark:hover:bg-dark-bg-primary
1082
- transition-colors
1083
- "
1084
- >
1085
- {item.label}
1086
- </button>
1087
- ))}
1088
- </div>
1089
- );
1090
- };
1091
- ```
1092
-
1093
- #### Ejemplo 4: Grid de Cards con Hover
1094
-
1095
- ```tsx
1096
- export const CardGrid = ({ cards }) => {
1097
- return (
1098
- <div className="
1099
- min-h-screen
1100
- bg-bg-primary dark:bg-dark-bg-primary
1101
- p-8
1102
- ">
1103
- <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
1104
- {cards.map((card) => (
1105
- <div
1106
- key={card.id}
1107
- className="
1108
- rounded-2xl
1109
- bg-white dark:bg-dark-bg-primary
1110
- border border-border-primary dark:border-dark-border-primary
1111
- shadow-base dark:shadow-md
1112
- hover:shadow-lg dark:hover:shadow-xl
1113
- hover:scale-105
1114
- transition-all
1115
- p-6
1116
- cursor-pointer
1117
- "
1118
- >
1119
- <h3 className="
1120
- text-content-primary dark:text-dark-content-primary
1121
- font-bold text-lg mb-2
1122
- ">
1123
- {card.title}
1124
- </h3>
1125
- <p className="
1126
- text-content-secondary dark:text-content-secondary
1127
- text-sm
1128
- ">
1129
- {card.description}
1130
- </p>
1131
- </div>
1132
- ))}
1133
- </div>
1134
- </div>
1135
- );
1136
- };
1137
- ```
1138
-
1139
- ### Mejores Prácticas para Sombras en Dark Mode
1140
-
1141
- #### ✅ Hacer
1142
-
1143
- 1. **Usar las sombras estándar en ambos modos (cuando sea suficiente)**
1144
- ```tsx
1145
- // ✅ CORRECTO - Las sombras negras funcionan bien
1146
- <div className="shadow-base">Card</div>
1147
- ```
1148
-
1149
- 2. **Aumentar la sombra en dark mode solo si es necesario**
1150
- ```tsx
1151
- // ✅ CORRECTO - Más prominencia en dark mode
1152
- <div className="shadow-base dark:shadow-lg">Card destacado</div>
1153
- ```
1154
-
1155
- 3. **Combinar sombras con colores adaptativos**
1156
- ```tsx
1157
- // ✅ CORRECTO - Todo se adapta
1158
- <div className="
1159
- bg-white dark:bg-dark-bg-primary
1160
- border border-border-primary dark:border-dark-border-primary
1161
- shadow-base dark:shadow-md
1162
- ">
1163
- Card completo
1164
- </div>
1165
- ```
1166
-
1167
- 4. **Ajustar overlay opacities en dark mode**
1168
- ```tsx
1169
- // ✅ CORRECTO - Overlay más oscuro en dark mode
1170
- <div className="bg-black/50 dark:bg-black/70 backdrop-blur-sm">
1171
- Overlay
1172
- </div>
1173
- ```
1174
-
1175
- #### ❌ Evitar
1176
-
1177
- 1. **No remover sombras en dark mode**
1178
- ```tsx
1179
- // ❌ INCORRECTO - Perder profundidad en dark
1180
- <div className="shadow-base dark:shadow-none">Card</div>
1181
-
1182
- // ✅ CORRECTO - Mantener o aumentar
1183
- <div className="shadow-base dark:shadow-md">Card</div>
1184
- ```
1185
-
1186
- 2. **No usar sombras blancas en dark mode**
1187
- ```tsx
1188
- // ❌ INCORRECTO - Sombras blancas no funcionan bien
1189
- <div className="dark:shadow-[0_4px_6px_rgba(255,255,255,0.3)]">
1190
- Card
1191
- </div>
1192
-
1193
- // ✅ CORRECTO - Mantener sombras negras o aumentar intensidad
1194
- <div className="shadow-base dark:shadow-lg">Card</div>
1195
- ```
1196
-
1197
- 3. **No olvidar combinar con colores de fondo y borde**
1198
- ```tsx
1199
- // ❌ INCORRECTO - Solo cambiar sombra
1200
- <div className="bg-white shadow-base dark:shadow-lg">
1201
- Fondo no se adapta
1202
- </div>
1203
-
1204
- // ✅ CORRECTO - Adaptar todo
1205
- <div className="
1206
- bg-white dark:bg-dark-bg-primary
1207
- border border-border-primary dark:border-dark-border-primary
1208
- shadow-base dark:shadow-lg
1209
- ">
1210
- Todo adaptado
1211
- </div>
1212
- ```
1213
-
1214
- ### Guía Rápida: Decisiones sobre Sombras en Dark Mode
1215
-
1216
- | Situación | Recomendación |
1217
- |-----------|---------------|
1218
- | **Card de lista** | Mantener `shadow-base` en ambos modos |
1219
- | **Card destacado** | `shadow-base` → `dark:shadow-md` |
1220
- | **Modal** | Aumentar un nivel: `shadow-lg` → `dark:shadow-xl` |
1221
- | **Dropdown** | Aumentar: `shadow-menu` → `dark:shadow-lg` |
1222
- | **Overlay** | Aumentar opacidad: `bg-black/50` → `dark:bg-black/70` |
1223
- | **Button inset** | Mantener `shadow-button-inset` en ambos |
1224
-
1225
- ### Recursos Adicionales sobre Dark Mode
1226
-
1227
- Para más información sobre el modo oscuro:
1228
- - Ver `docs/dark-mode-guide.md` - Guía completa de Dark Mode en Tailwind CSS
1229
- - Ver `docs/colors.md` - Sistema de colores completo con tokens dark mode
1230
- - Ver `docs/border-radius.md` - Border radius con ejemplos de dark mode
1231
- - Ver `docs/typography.md` - Sistema tipográfico adaptado a dark mode
1232
- - [Documentación oficial de Tailwind Dark Mode](https://tailwindcss.com/docs/dark-mode)
1233
-
1234
- ---
1235
-
1236
- ## Referencia Rápida
1237
-
1238
- ### Cheat Sheet: Por Componente
1239
-
1240
- ```tsx
1241
- // ===== BOTONES =====
1242
- <button className="shadow-button-inset">Button default</button>
1243
- <button className="shadow-base hover:shadow-md">Button outline</button>
1244
-
1245
- // ===== CARDS =====
1246
- <div className="shadow-base">Card estándar</div>
1247
- <div className="shadow-md">Card elevado</div>
1248
- <div className="shadow-lg">Card flotante</div>
1249
-
1250
- // ===== MODALES =====
1251
- <div className="shadow-lg">Modal pequeño</div>
1252
- <div className="shadow-xl">Modal grande</div>
1253
- <div className="shadow-2xl">Drawer/Panel</div>
1254
-
1255
- // ===== DROPDOWNS =====
1256
- <div className="shadow-menu">Dropdown simple</div>
1257
- <div className="shadow-md">Menú contextual</div>
1258
-
1259
- // ===== INPUTS =====
1260
- <input className="focus:shadow-base" />
1261
- <input className="shadow-inner" disabled />
1262
-
1263
- // ===== TOOLTIPS =====
1264
- <div className="shadow-lg">Tooltip</div>
1265
- <div className="shadow-xl">Popover</div>
1266
- ```
1267
-
1268
- ### Cheat Sheet: Por Elevación
1269
-
1270
- | Nivel | Clase | Uso |
1271
- |-------|-------|-----|
1272
- | 0 | Sin sombra | Fondos, elementos integrados |
1273
- | 1 | `shadow-sm` | Separadores sutiles |
1274
- | 2 | `shadow-base` | **Cards, inputs focus** |
1275
- | 3 | `shadow-md` | Cards elevados, dropdowns |
1276
- | 4 | `shadow-lg` | **Modales, popovers** |
1277
- | 5 | `shadow-xl` | Modales grandes |
1278
- | 6 | `shadow-2xl` | Drawers, panels |
1279
-
1280
- ### Cheat Sheet: Valores CSS
1281
-
1282
- ```css
1283
- /* Drop Shadows */
1284
- shadow-sm: 0px 1px 2px 0px rgba(0,0,0,0.05)
1285
- shadow-base: 0px 1px 2px -1px rgba(0,0,0,0.1),
1286
- 0px 1px 3px 0px rgba(0,0,0,0.1)
1287
- shadow-md: 0px 2px 4px -2px rgba(0,0,0,0.1),
1288
- 0px 4px 6px -1px rgba(0,0,0,0.1)
1289
- shadow-lg: 0px 4px 6px -4px rgba(0,0,0,0.1),
1290
- 0px 10px 15px -3px rgba(0,0,0,0.1)
1291
- shadow-xl: 0px 8px 10px -6px rgba(0,0,0,0.1),
1292
- 0px 20px 25px -5px rgba(0,0,0,0.1)
1293
- shadow-2xl: 0px 25px 50px -12px rgba(0,0,0,0.25)
1294
-
1295
- /* Inner Shadow */
1296
- shadow-inner: inset 0 2px 4px 0 rgba(0,0,0,0.05)
1297
-
1298
- /* Custom */
1299
- shadow-button-inset: 0px 2px 0px 0px inset rgba(255,255,255,0.15)
1300
- shadow-menu: 0px 4px 4px -1px rgba(12,12,13,0.05),
1301
- 0px 4px 4px -1px rgba(12,12,13,0.1)
1302
- ```
1303
-
1304
- ### Cheat Sheet: Transiciones
1305
-
1306
- ```tsx
1307
- // Transición básica
1308
- <div className="shadow-base hover:shadow-md transition-shadow">...</div>
1309
-
1310
- // Transición con duración
1311
- <div className="shadow-base hover:shadow-lg transition-shadow duration-300">...</div>
1312
-
1313
- // Transición con múltiples propiedades
1314
- <div className="shadow-base hover:shadow-lg hover:scale-105 transition-all duration-200">...</div>
1315
-
1316
- // Transición solo en hover out
1317
- <div className="shadow-lg hover:shadow-base transition-shadow ease-out">...</div>
1318
- ```
1319
-
1320
- ---
1321
-
1322
- ## Recursos Adicionales
1323
-
1324
- ### Enlaces Útiles
1325
-
1326
- - **Tailwind Box Shadow**: https://tailwindcss.com/docs/box-shadow
1327
- - **CSS box-shadow**: https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow
1328
- - **Shadow Generator**: https://shadows.brumm.af
1329
- - **Material Design Elevation**: https://material.io/design/environment/elevation.html
1330
-
1331
- ### Archivos Relacionados
1332
-
1333
- - `tailwind.config.js` - Configuración de boxShadow (líneas 114-118)
1334
- - `src/components/Button/Button.tsx` - Uso de shadow-button-inset (línea 67)
1335
- - `docs/colors.md` - Sistema de colores
1336
- - `docs/border-radius.md` - Border radius (combina bien con sombras)
1337
- - `docs/typography.md` - Sistema tipográfico
1338
-
1339
- ### Herramientas de Testing
1340
-
1341
- ```tsx
1342
- // Componente para visualizar todas las sombras
1343
- export const ShadowsDemo = () => {
1344
- const shadows = [
1345
- { name: 'shadow-sm', label: 'Small' },
1346
- { name: 'shadow-base', label: 'Base' },
1347
- { name: 'shadow-md', label: 'Medium' },
1348
- { name: 'shadow-lg', label: 'Large' },
1349
- { name: 'shadow-xl', label: 'Extra Large' },
1350
- { name: 'shadow-2xl', label: '2X Large' },
1351
- { name: 'shadow-inner', label: 'Inner' },
1352
- { name: 'shadow-button-inset', label: 'Button Inset' },
1353
- { name: 'shadow-menu', label: 'Menu' },
1354
- ];
1355
-
1356
- return (
1357
- <div className="grid grid-cols-3 gap-8 p-8 bg-gray-50">
1358
- {shadows.map((shadow) => (
1359
- <div key={shadow.name} className="text-center">
1360
- <div
1361
- className={`${shadow.name} rounded-lg bg-white w-32 h-32 mx-auto mb-4 flex items-center justify-center`}
1362
- >
1363
- <span className="text-sm font-bold">{shadow.label}</span>
1364
- </div>
1365
- <p className="font-bold text-sm">{shadow.name}</p>
1366
- </div>
1367
- ))}
1368
- </div>
1369
- );
1370
- };
1371
- ```
1372
-
1373
- ---
1374
-
1375
- **Última actualización**: 2025-11-11
1376
- **Versión**: 1.0.0
1377
- **Mantenedor**: Siesa UI Kit Team