@graupl/graupl 1.0.0-beta.0 → 1.0.0-beta.10

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 (613) hide show
  1. package/.devcontainer/devcontainer.json +221 -0
  2. package/.env +3 -0
  3. package/.github/workflows/docs.yml +13 -6
  4. package/.github/workflows/prerelease.yml +125 -0
  5. package/.github/workflows/release.yml +111 -0
  6. package/.github/workflows/test.yml +54 -3
  7. package/.versionrc.cjs +12 -0
  8. package/.vscode/settings.json +10 -0
  9. package/CHANGELOG.md +203 -1
  10. package/build.js +4 -2
  11. package/combine-at-rules.cjs +61 -0
  12. package/container/.env +26 -0
  13. package/container/build/app.dockerfile +41 -0
  14. package/container/docker-compose.yml +27 -0
  15. package/dist/css/base/button.css +1 -1
  16. package/dist/css/base/button.css.map +1 -1
  17. package/dist/css/base/form.css +1 -1
  18. package/dist/css/base/form.css.map +1 -1
  19. package/dist/css/base/link.css +1 -1
  20. package/dist/css/base/link.css.map +1 -1
  21. package/dist/css/base/table.css +1 -1
  22. package/dist/css/base/table.css.map +1 -1
  23. package/dist/css/base.css +1 -1
  24. package/dist/css/base.css.map +1 -1
  25. package/dist/css/component/accordion.css +4 -1
  26. package/dist/css/component/accordion.css.map +1 -1
  27. package/dist/css/component/alert.css +1 -1
  28. package/dist/css/component/alert.css.map +1 -1
  29. package/dist/css/component/card.css +1 -1
  30. package/dist/css/component/card.css.map +1 -1
  31. package/dist/css/component/carousel.css +1 -1
  32. package/dist/css/component/carousel.css.map +1 -1
  33. package/dist/css/component/input-group.css +1 -1
  34. package/dist/css/component/input-group.css.map +1 -1
  35. package/dist/css/component/list.css +2 -0
  36. package/dist/css/component/list.css.map +1 -0
  37. package/dist/css/component/menu.css +1 -1
  38. package/dist/css/component/menu.css.map +1 -1
  39. package/dist/css/component/navigation.css +1 -1
  40. package/dist/css/component/navigation.css.map +1 -1
  41. package/dist/css/component.css +4 -1
  42. package/dist/css/component.css.map +1 -1
  43. package/dist/css/graupl.css +4 -1
  44. package/dist/css/graupl.css.map +1 -1
  45. package/dist/css/init.css.map +1 -1
  46. package/dist/css/layout/columns.css +1 -1
  47. package/dist/css/layout/columns.css.map +1 -1
  48. package/dist/css/layout/container.css +1 -1
  49. package/dist/css/layout/container.css.map +1 -1
  50. package/dist/css/layout/flex-columns.css +1 -1
  51. package/dist/css/layout/flex-columns.css.map +1 -1
  52. package/dist/css/layout.css +4 -1
  53. package/dist/css/layout.css.map +1 -1
  54. package/dist/css/normalize.css.map +1 -1
  55. package/dist/css/state/focus.css +1 -1
  56. package/dist/css/state/focus.css.map +1 -1
  57. package/dist/css/state.css +1 -1
  58. package/dist/css/state.css.map +1 -1
  59. package/dist/css/theme/color.css.map +1 -1
  60. package/dist/css/theme/typography.css +1 -1
  61. package/dist/css/theme/typography.css.map +1 -1
  62. package/dist/css/theme.css +1 -1
  63. package/dist/css/theme.css.map +1 -1
  64. package/dist/css/utilities/alignment.css.map +1 -1
  65. package/dist/css/utilities/background.css +2 -0
  66. package/dist/css/utilities/background.css.map +1 -0
  67. package/dist/css/utilities/border.css +2 -0
  68. package/dist/css/utilities/border.css.map +1 -0
  69. package/dist/css/utilities/color.css +1 -1
  70. package/dist/css/utilities/color.css.map +1 -1
  71. package/dist/css/utilities/container.css +2 -0
  72. package/dist/css/utilities/container.css.map +1 -0
  73. package/dist/css/utilities/display.css +1 -1
  74. package/dist/css/utilities/display.css.map +1 -1
  75. package/dist/css/utilities/flex.css +1 -1
  76. package/dist/css/utilities/flex.css.map +1 -1
  77. package/dist/css/utilities/gradient.css +2 -0
  78. package/dist/css/utilities/gradient.css.map +1 -0
  79. package/dist/css/utilities/height.css +1 -1
  80. package/dist/css/utilities/height.css.map +1 -1
  81. package/dist/css/utilities/inset.css +1 -1
  82. package/dist/css/utilities/inset.css.map +1 -1
  83. package/dist/css/utilities/justification.css.map +1 -1
  84. package/dist/css/utilities/list.css.map +1 -1
  85. package/dist/css/utilities/order.css.map +1 -1
  86. package/dist/css/utilities/position.css +2 -0
  87. package/dist/css/utilities/position.css.map +1 -0
  88. package/dist/css/utilities/ratio.css +1 -1
  89. package/dist/css/utilities/ratio.css.map +1 -1
  90. package/dist/css/utilities/spacing.css +1 -1
  91. package/dist/css/utilities/spacing.css.map +1 -1
  92. package/dist/css/utilities/typography.css +1 -1
  93. package/dist/css/utilities/typography.css.map +1 -1
  94. package/dist/css/utilities/visibility.css +1 -1
  95. package/dist/css/utilities/visibility.css.map +1 -1
  96. package/dist/css/utilities/visually-hidden.css +2 -0
  97. package/dist/css/utilities/visually-hidden.css.map +1 -0
  98. package/dist/css/utilities/width.css +1 -1
  99. package/dist/css/utilities/width.css.map +1 -1
  100. package/dist/css/utilities/z-index.css +2 -0
  101. package/dist/css/utilities/z-index.css.map +1 -0
  102. package/dist/css/utilities.css +1 -1
  103. package/dist/css/utilities.css.map +1 -1
  104. package/dist/js/graupl.cjs.js +5 -3
  105. package/dist/js/graupl.esm.js +1305 -206
  106. package/dist/js/graupl.iife.js +5 -3
  107. package/docs/.vitepress/config.js +31 -1
  108. package/docs/.vitepress/theme/custom.scss +16 -16
  109. package/docs/compiling-graupl.md +6 -5
  110. package/docs/components/alert.md +28 -28
  111. package/docs/components/button.md +36 -36
  112. package/docs/components/card.md +39 -39
  113. package/docs/components/inputgroup.md +12 -12
  114. package/docs/components/menu.md +112 -112
  115. package/docs/components/navigation.md +52 -52
  116. package/docs/content.md +86 -86
  117. package/docs/defaults.md +10 -10
  118. package/docs/forms.md +34 -34
  119. package/docs/layout.md +21 -21
  120. package/docs/state.md +8 -8
  121. package/docs/theme.md +58 -58
  122. package/docs/utilities/alignment.md +411 -0
  123. package/docs/utilities/background.md +192 -0
  124. package/docs/utilities/border.md +268 -0
  125. package/docs/utilities/color.md +348 -0
  126. package/docs/utilities/container.md +3 -0
  127. package/docs/utilities/display.md +3 -0
  128. package/docs/utilities/flex.md +3 -0
  129. package/docs/utilities/gradient.md +3 -0
  130. package/docs/utilities/height.md +3 -0
  131. package/docs/utilities/inset.md +3 -0
  132. package/docs/utilities/justification.md +3 -0
  133. package/docs/utilities/list.md +3 -0
  134. package/docs/utilities/order.md +3 -0
  135. package/docs/utilities/position.md +3 -0
  136. package/docs/utilities/ratio.md +3 -0
  137. package/docs/utilities/responsive-classes.md +3 -0
  138. package/docs/utilities/spacing.md +3 -0
  139. package/docs/utilities/typography.md +3 -0
  140. package/docs/utilities/visibility.md +3 -0
  141. package/docs/utilities/visually-hidden.md +3 -0
  142. package/docs/utilities/width.md +3 -0
  143. package/docs/utilities/z-index.md +3 -0
  144. package/docs/utilities.md +1 -1
  145. package/favicon.ico +0 -0
  146. package/index.html +418 -55
  147. package/logo.svg +296 -0
  148. package/package.json +33 -37
  149. package/packages/core/build.js +9 -0
  150. package/packages/core/dist/css/base/button.css +2 -0
  151. package/packages/core/dist/css/base/button.css.map +1 -0
  152. package/packages/core/dist/css/base/form.css +2 -0
  153. package/packages/core/dist/css/base/form.css.map +1 -0
  154. package/packages/core/dist/css/base/link.css +2 -0
  155. package/packages/core/dist/css/base/link.css.map +1 -0
  156. package/packages/core/dist/css/base/table.css +2 -0
  157. package/packages/core/dist/css/base/table.css.map +1 -0
  158. package/packages/core/dist/css/base.css +2 -0
  159. package/packages/core/dist/css/base.css.map +1 -0
  160. package/packages/core/dist/css/component/accordion.css +5 -0
  161. package/packages/core/dist/css/component/accordion.css.map +1 -0
  162. package/packages/core/dist/css/component/alert.css +2 -0
  163. package/packages/core/dist/css/component/alert.css.map +1 -0
  164. package/packages/core/dist/css/component/card.css +2 -0
  165. package/packages/core/dist/css/component/card.css.map +1 -0
  166. package/packages/core/dist/css/component/carousel.css +2 -0
  167. package/packages/core/dist/css/component/carousel.css.map +1 -0
  168. package/packages/core/dist/css/component/input-group.css +2 -0
  169. package/packages/core/dist/css/component/input-group.css.map +1 -0
  170. package/packages/core/dist/css/component/list.css +2 -0
  171. package/packages/core/dist/css/component/list.css.map +1 -0
  172. package/packages/core/dist/css/component/menu.css +2 -0
  173. package/packages/core/dist/css/component/menu.css.map +1 -0
  174. package/packages/core/dist/css/component/navigation.css +2 -0
  175. package/packages/core/dist/css/component/navigation.css.map +1 -0
  176. package/packages/core/dist/css/component.css +5 -0
  177. package/packages/core/dist/css/component.css.map +1 -0
  178. package/packages/core/dist/css/graupl.css +5 -0
  179. package/packages/core/dist/css/graupl.css.map +1 -0
  180. package/{src/scss/_init.scss → packages/core/dist/css/init.css} +1 -2
  181. package/packages/core/dist/css/init.css.map +1 -0
  182. package/packages/core/dist/css/layout/columns.css +2 -0
  183. package/packages/core/dist/css/layout/columns.css.map +1 -0
  184. package/packages/core/dist/css/layout/container.css +2 -0
  185. package/packages/core/dist/css/layout/container.css.map +1 -0
  186. package/packages/core/dist/css/layout/flex-columns.css +2 -0
  187. package/packages/core/dist/css/layout/flex-columns.css.map +1 -0
  188. package/packages/core/dist/css/layout.css +5 -0
  189. package/packages/core/dist/css/layout.css.map +1 -0
  190. package/packages/core/dist/css/normalize.css +2 -0
  191. package/packages/core/dist/css/normalize.css.map +1 -0
  192. package/packages/core/dist/css/state/focus.css +2 -0
  193. package/packages/core/dist/css/state/focus.css.map +1 -0
  194. package/packages/core/dist/css/state.css +2 -0
  195. package/packages/core/dist/css/state.css.map +1 -0
  196. package/packages/core/dist/css/theme/color.css +2 -0
  197. package/packages/core/dist/css/theme/color.css.map +1 -0
  198. package/packages/core/dist/css/theme/typography.css +2 -0
  199. package/packages/core/dist/css/theme/typography.css.map +1 -0
  200. package/packages/core/dist/css/theme.css +2 -0
  201. package/packages/core/dist/css/theme.css.map +1 -0
  202. package/packages/core/dist/css/utilities/alignment.css +2 -0
  203. package/packages/core/dist/css/utilities/alignment.css.map +1 -0
  204. package/packages/core/dist/css/utilities/background.css +2 -0
  205. package/packages/core/dist/css/utilities/background.css.map +1 -0
  206. package/packages/core/dist/css/utilities/border.css +2 -0
  207. package/packages/core/dist/css/utilities/border.css.map +1 -0
  208. package/packages/core/dist/css/utilities/color.css +2 -0
  209. package/packages/core/dist/css/utilities/color.css.map +1 -0
  210. package/packages/core/dist/css/utilities/container.css +2 -0
  211. package/packages/core/dist/css/utilities/container.css.map +1 -0
  212. package/packages/core/dist/css/utilities/display.css +2 -0
  213. package/packages/core/dist/css/utilities/display.css.map +1 -0
  214. package/packages/core/dist/css/utilities/flex.css +2 -0
  215. package/packages/core/dist/css/utilities/flex.css.map +1 -0
  216. package/packages/core/dist/css/utilities/gradient.css +2 -0
  217. package/packages/core/dist/css/utilities/gradient.css.map +1 -0
  218. package/packages/core/dist/css/utilities/height.css +2 -0
  219. package/packages/core/dist/css/utilities/height.css.map +1 -0
  220. package/packages/core/dist/css/utilities/inset.css +2 -0
  221. package/packages/core/dist/css/utilities/inset.css.map +1 -0
  222. package/packages/core/dist/css/utilities/justification.css +2 -0
  223. package/packages/core/dist/css/utilities/justification.css.map +1 -0
  224. package/packages/core/dist/css/utilities/list.css +2 -0
  225. package/packages/core/dist/css/utilities/list.css.map +1 -0
  226. package/packages/core/dist/css/utilities/order.css +2 -0
  227. package/packages/core/dist/css/utilities/order.css.map +1 -0
  228. package/packages/core/dist/css/utilities/position.css +2 -0
  229. package/packages/core/dist/css/utilities/position.css.map +1 -0
  230. package/packages/core/dist/css/utilities/ratio.css +2 -0
  231. package/packages/core/dist/css/utilities/ratio.css.map +1 -0
  232. package/packages/core/dist/css/utilities/spacing.css +2 -0
  233. package/packages/core/dist/css/utilities/spacing.css.map +1 -0
  234. package/packages/core/dist/css/utilities/typography.css +2 -0
  235. package/packages/core/dist/css/utilities/typography.css.map +1 -0
  236. package/packages/core/dist/css/utilities/visibility.css +2 -0
  237. package/packages/core/dist/css/utilities/visibility.css.map +1 -0
  238. package/packages/core/dist/css/utilities/visually-hidden.css +2 -0
  239. package/packages/core/dist/css/utilities/visually-hidden.css.map +1 -0
  240. package/packages/core/dist/css/utilities/width.css +2 -0
  241. package/packages/core/dist/css/utilities/width.css.map +1 -0
  242. package/packages/core/dist/css/utilities/z-index.css +2 -0
  243. package/packages/core/dist/css/utilities/z-index.css.map +1 -0
  244. package/packages/core/dist/css/utilities.css +2 -0
  245. package/packages/core/dist/css/utilities.css.map +1 -0
  246. package/packages/core/package.json +58 -0
  247. package/packages/core/scss/base/button.scss +3 -0
  248. package/packages/core/scss/base/form.scss +3 -0
  249. package/packages/core/scss/base/link.scss +3 -0
  250. package/packages/core/scss/base/table.scss +3 -0
  251. package/packages/core/scss/base.scss +3 -0
  252. package/packages/core/scss/component/accordion.scss +3 -0
  253. package/packages/core/scss/component/alert.scss +3 -0
  254. package/packages/core/scss/component/card.scss +3 -0
  255. package/packages/core/scss/component/carousel.scss +3 -0
  256. package/packages/core/scss/component/input-group.scss +3 -0
  257. package/packages/core/scss/component/list.scss +3 -0
  258. package/packages/core/scss/component/menu.scss +3 -0
  259. package/packages/core/scss/component/navigation.scss +3 -0
  260. package/packages/core/scss/component.scss +3 -0
  261. package/packages/core/scss/graupl.scss +3 -0
  262. package/packages/core/scss/init.scss +3 -0
  263. package/packages/core/scss/layout/columns.scss +3 -0
  264. package/packages/core/scss/layout/container.scss +3 -0
  265. package/packages/core/scss/layout/flex-columns.scss +3 -0
  266. package/packages/core/scss/layout.scss +3 -0
  267. package/packages/core/scss/normalize.scss +3 -0
  268. package/packages/core/scss/state/focus.scss +3 -0
  269. package/packages/core/scss/state.scss +3 -0
  270. package/packages/core/scss/theme/color.scss +3 -0
  271. package/packages/core/scss/theme/typography.scss +3 -0
  272. package/packages/core/scss/theme.scss +3 -0
  273. package/packages/core/scss/utilities/alignment.scss +3 -0
  274. package/packages/core/scss/utilities/background.scss +3 -0
  275. package/packages/core/scss/utilities/border.scss +3 -0
  276. package/packages/core/scss/utilities/color.scss +3 -0
  277. package/packages/core/scss/utilities/container.scss +3 -0
  278. package/packages/core/scss/utilities/display.scss +3 -0
  279. package/packages/core/scss/utilities/flex.scss +3 -0
  280. package/packages/core/scss/utilities/gradient.scss +3 -0
  281. package/packages/core/scss/utilities/height.scss +3 -0
  282. package/packages/core/scss/utilities/inset.scss +3 -0
  283. package/packages/core/scss/utilities/justification.scss +3 -0
  284. package/packages/core/scss/utilities/list.scss +3 -0
  285. package/packages/core/scss/utilities/order.scss +3 -0
  286. package/{scss/utilities/postion.scss → packages/core/scss/utilities/position.scss} +1 -1
  287. package/packages/core/scss/utilities/ratio.scss +3 -0
  288. package/packages/core/scss/utilities/spacing.scss +3 -0
  289. package/packages/core/scss/utilities/typography.scss +3 -0
  290. package/packages/core/scss/utilities/visibility.scss +3 -0
  291. package/packages/core/scss/utilities/visually-hidden.scss +3 -0
  292. package/packages/core/scss/utilities/width.scss +3 -0
  293. package/packages/core/scss/utilities/z-index.scss +3 -0
  294. package/packages/core/scss/utilities.scss +3 -0
  295. package/{src → packages/core/src}/scss/_defaults.scss +59 -11
  296. package/{src → packages/core/src}/scss/_index.scss +1 -1
  297. package/packages/core/src/scss/_init.scss +6 -0
  298. package/{src → packages/core/src}/scss/_normalize.scss +1 -1
  299. package/packages/core/src/scss/_variables.scss +95 -0
  300. package/{src → packages/core/src}/scss/base/_index.scss +1 -1
  301. package/{src → packages/core/src}/scss/base/button/_defaults.scss +13 -24
  302. package/packages/core/src/scss/base/button/_index.scss +206 -0
  303. package/packages/core/src/scss/base/button/_mixins.scss +104 -0
  304. package/packages/core/src/scss/base/button/_variables.scss +252 -0
  305. package/{src → packages/core/src}/scss/base/form/_defaults.scss +8 -1
  306. package/packages/core/src/scss/base/form/_index.scss +227 -0
  307. package/packages/core/src/scss/base/form/_variables.scss +245 -0
  308. package/packages/core/src/scss/base/link/_defaults.scss +35 -0
  309. package/packages/core/src/scss/base/link/_index.scss +245 -0
  310. package/packages/core/src/scss/base/link/_variables.scss +370 -0
  311. package/packages/core/src/scss/base/table/_defaults.scss +68 -0
  312. package/packages/core/src/scss/base/table/_index.scss +314 -0
  313. package/packages/core/src/scss/base/table/_variables.scss +309 -0
  314. package/{src → packages/core/src}/scss/component/_index.scss +2 -1
  315. package/{src → packages/core/src}/scss/component/accordion/_defaults.scss +1 -1
  316. package/{src → packages/core/src}/scss/component/accordion/_index.scss +78 -60
  317. package/{src → packages/core/src}/scss/component/accordion/_variables.scss +127 -87
  318. package/{src → packages/core/src}/scss/component/alert/_defaults.scss +1 -1
  319. package/{src → packages/core/src}/scss/component/alert/_index.scss +51 -50
  320. package/packages/core/src/scss/component/alert/_variables.scss +200 -0
  321. package/{src → packages/core/src}/scss/component/card/_defaults.scss +1 -1
  322. package/{src → packages/core/src}/scss/component/card/_index.scss +53 -19
  323. package/packages/core/src/scss/component/card/_variables.scss +216 -0
  324. package/{src → packages/core/src}/scss/component/carousel/_defaults.scss +1 -1
  325. package/{src → packages/core/src}/scss/component/carousel/_index.scss +32 -28
  326. package/{src → packages/core/src}/scss/component/carousel/_variables.scss +22 -22
  327. package/{src → packages/core/src}/scss/component/input-group/_defaults.scss +1 -1
  328. package/{src → packages/core/src}/scss/component/input-group/_index.scss +2 -2
  329. package/{src → packages/core/src}/scss/component/input-group/_variables.scss +13 -13
  330. package/{src/scss/utilities/order → packages/core/src/scss/component/list}/_defaults.scss +7 -14
  331. package/packages/core/src/scss/component/list/_index.scss +52 -0
  332. package/packages/core/src/scss/component/list/_variables.scss +236 -0
  333. package/{src → packages/core/src}/scss/component/menu/_defaults.scss +11 -20
  334. package/packages/core/src/scss/component/menu/_index.scss +308 -0
  335. package/packages/core/src/scss/component/menu/_variables.scss +642 -0
  336. package/packages/core/src/scss/component/navigation/_defaults.scss +23 -0
  337. package/packages/core/src/scss/component/navigation/_index.scss +190 -0
  338. package/packages/core/src/scss/component/navigation/_variables.scss +290 -0
  339. package/packages/core/src/scss/functions/_container.scss +38 -0
  340. package/packages/core/src/scss/functions/_important.scss +36 -0
  341. package/{src → packages/core/src}/scss/functions/_screen.scss +9 -1
  342. package/{src → packages/core/src}/scss/functions/_theme.scss +2 -2
  343. package/packages/core/src/scss/functions/_utility.scss +28 -0
  344. package/{src → packages/core/src}/scss/layout/_index.scss +1 -1
  345. package/{src → packages/core/src}/scss/layout/columns/_defaults.scss +9 -4
  346. package/packages/core/src/scss/layout/columns/_index.scss +137 -0
  347. package/{src → packages/core/src}/scss/layout/columns/_variables.scss +13 -9
  348. package/packages/core/src/scss/layout/container/_defaults.scss +35 -0
  349. package/packages/core/src/scss/layout/container/_index.scss +628 -0
  350. package/packages/core/src/scss/layout/container/_variables.scss +114 -0
  351. package/packages/core/src/scss/layout/flex-columns/_defaults.scss +28 -0
  352. package/packages/core/src/scss/layout/flex-columns/_index.scss +184 -0
  353. package/{src → packages/core/src}/scss/layout/flex-columns/_variables.scss +9 -5
  354. package/{src → packages/core/src}/scss/mixins/_animation.scss +1 -1
  355. package/packages/core/src/scss/mixins/_container.scss +80 -0
  356. package/{src → packages/core/src}/scss/mixins/_layer.scss +6 -2
  357. package/{src → packages/core/src}/scss/mixins/_screen.scss +25 -4
  358. package/packages/core/src/scss/mixins/_state.scss +18 -0
  359. package/packages/core/src/scss/mixins/_theme.scss +15 -0
  360. package/packages/core/src/scss/mixins/_utility.scss +185 -0
  361. package/packages/core/src/scss/mixins/_visually-hidden.scss +30 -0
  362. package/packages/core/src/scss/state/_index.scss +3 -0
  363. package/{src → packages/core/src}/scss/state/focus/_defaults.scss +1 -2
  364. package/packages/core/src/scss/state/focus/_index.scss +42 -0
  365. package/packages/core/src/scss/state/focus/_mixins.scss +13 -0
  366. package/packages/core/src/scss/state/focus/_variables.scss +50 -0
  367. package/{src → packages/core/src}/scss/theme/_index.scss +1 -1
  368. package/{src → packages/core/src}/scss/theme/color/_defaults.scss +1 -1
  369. package/{src → packages/core/src}/scss/theme/color/_index.scss +8 -8
  370. package/{src → packages/core/src}/scss/theme/color/_variables.scss +12 -8
  371. package/{src → packages/core/src}/scss/theme/typography/_defaults.scss +1 -1
  372. package/{src → packages/core/src}/scss/theme/typography/_index.scss +10 -1
  373. package/packages/core/src/scss/theme/typography/_variables.scss +248 -0
  374. package/{src → packages/core/src}/scss/utilities/_index.scss +7 -1
  375. package/packages/core/src/scss/utilities/_template/_defaults.scss +41 -0
  376. package/packages/core/src/scss/utilities/_template/_index.scss +171 -0
  377. package/{src/scss/utilities/alignment → packages/core/src/scss/utilities/_template}/_variables.scss +1 -1
  378. package/{src → packages/core/src}/scss/utilities/alignment/_defaults.scss +21 -7
  379. package/packages/core/src/scss/utilities/alignment/_index.scss +336 -0
  380. package/{src/scss/utilities/display → packages/core/src/scss/utilities/alignment}/_variables.scss +1 -1
  381. package/packages/core/src/scss/utilities/background/_defaults.scss +122 -0
  382. package/packages/core/src/scss/utilities/background/_index.scss +634 -0
  383. package/packages/core/src/scss/utilities/background/_variables.scss +6 -0
  384. package/packages/core/src/scss/utilities/border/_defaults.scss +73 -0
  385. package/packages/core/src/scss/utilities/border/_index.scss +558 -0
  386. package/{src/scss/utilities/list → packages/core/src/scss/utilities/border}/_variables.scss +1 -1
  387. package/packages/core/src/scss/utilities/color/_defaults.scss +49 -0
  388. package/packages/core/src/scss/utilities/color/_index.scss +469 -0
  389. package/{src/scss/utilities/flex → packages/core/src/scss/utilities/color}/_variables.scss +1 -1
  390. package/packages/core/src/scss/utilities/container/_defaults.scss +40 -0
  391. package/packages/core/src/scss/utilities/container/_index.scss +174 -0
  392. package/packages/core/src/scss/utilities/container/_variables.scss +6 -0
  393. package/packages/core/src/scss/utilities/display/_defaults.scss +47 -0
  394. package/packages/core/src/scss/utilities/display/_index.scss +184 -0
  395. package/{src/scss/utilities/inset → packages/core/src/scss/utilities/display}/_variables.scss +1 -1
  396. package/packages/core/src/scss/utilities/flex/_defaults.scss +99 -0
  397. package/packages/core/src/scss/utilities/flex/_index.scss +486 -0
  398. package/{src/scss/utilities/color → packages/core/src/scss/utilities/flex}/_variables.scss +1 -1
  399. package/packages/core/src/scss/utilities/gradient/_defaults.scss +70 -0
  400. package/packages/core/src/scss/utilities/gradient/_index.scss +696 -0
  401. package/packages/core/src/scss/utilities/gradient/_variables.scss +29 -0
  402. package/packages/core/src/scss/utilities/height/_defaults.scss +54 -0
  403. package/packages/core/src/scss/utilities/height/_index.scss +525 -0
  404. package/packages/core/src/scss/utilities/height/_variables.scss +6 -0
  405. package/packages/core/src/scss/utilities/inset/_defaults.scss +55 -0
  406. package/packages/core/src/scss/utilities/inset/_index.scss +258 -0
  407. package/packages/core/src/scss/utilities/inset/_variables.scss +6 -0
  408. package/{src → packages/core/src}/scss/utilities/justification/_defaults.scss +21 -7
  409. package/packages/core/src/scss/utilities/justification/_index.scss +333 -0
  410. package/packages/core/src/scss/utilities/justification/_variables.scss +6 -0
  411. package/packages/core/src/scss/utilities/list/_defaults.scss +53 -0
  412. package/packages/core/src/scss/utilities/list/_index.scss +253 -0
  413. package/packages/core/src/scss/utilities/list/_variables.scss +6 -0
  414. package/packages/core/src/scss/utilities/order/_defaults.scss +36 -0
  415. package/packages/core/src/scss/utilities/order/_index.scss +246 -0
  416. package/packages/core/src/scss/utilities/order/_variables.scss +6 -0
  417. package/packages/core/src/scss/utilities/position/_defaults.scss +41 -0
  418. package/packages/core/src/scss/utilities/position/_index.scss +178 -0
  419. package/{src/scss/utilities/height → packages/core/src/scss/utilities/position}/_variables.scss +1 -1
  420. package/packages/core/src/scss/utilities/ratio/_defaults.scss +42 -0
  421. package/packages/core/src/scss/utilities/ratio/_index.scss +188 -0
  422. package/{src → packages/core/src}/scss/utilities/ratio/_variables.scss +2 -2
  423. package/{src → packages/core/src}/scss/utilities/spacing/_defaults.scss +19 -4
  424. package/packages/core/src/scss/utilities/spacing/_index.scss +970 -0
  425. package/packages/core/src/scss/utilities/spacing/_variables.scss +6 -0
  426. package/packages/core/src/scss/utilities/typography/_defaults.scss +58 -0
  427. package/packages/core/src/scss/utilities/typography/_index.scss +1089 -0
  428. package/packages/core/src/scss/utilities/typography/_variables.scss +6 -0
  429. package/packages/core/src/scss/utilities/visibility/_defaults.scss +39 -0
  430. package/packages/core/src/scss/utilities/visibility/_index.scss +173 -0
  431. package/packages/core/src/scss/utilities/visibility/_variables.scss +6 -0
  432. package/packages/core/src/scss/utilities/visually-hidden/_defaults.scss +29 -0
  433. package/packages/core/src/scss/utilities/visually-hidden/_index.scss +189 -0
  434. package/packages/core/src/scss/utilities/visually-hidden/_variables.scss +6 -0
  435. package/packages/core/src/scss/utilities/width/_defaults.scss +54 -0
  436. package/packages/core/src/scss/utilities/width/_index.scss +525 -0
  437. package/packages/core/src/scss/utilities/width/_variables.scss +6 -0
  438. package/packages/core/src/scss/utilities/z-index/_defaults.scss +40 -0
  439. package/packages/core/src/scss/utilities/z-index/_index.scss +173 -0
  440. package/packages/core/src/scss/utilities/z-index/_variables.scss +6 -0
  441. package/packages/core/vite.config.js +28 -0
  442. package/packages/icons/dist/css/base/button.css +2 -0
  443. package/packages/icons/dist/css/base/button.css.map +1 -0
  444. package/packages/icons/dist/css/base/link.css +2 -0
  445. package/packages/icons/dist/css/base/link.css.map +1 -0
  446. package/packages/icons/dist/css/base.css +2 -0
  447. package/packages/icons/dist/css/base.css.map +1 -0
  448. package/packages/icons/dist/css/component/icon.css +2 -0
  449. package/packages/icons/dist/css/component/icon.css.map +1 -0
  450. package/packages/icons/dist/css/component.css +2 -0
  451. package/packages/icons/dist/css/component.css.map +1 -0
  452. package/packages/icons/dist/css/icon.css +2 -0
  453. package/packages/icons/dist/css/icon.css.map +1 -0
  454. package/packages/icons/package.json +48 -0
  455. package/packages/icons/scss/base/button.scss +3 -0
  456. package/packages/icons/scss/base/link.scss +3 -0
  457. package/packages/icons/scss/base.scss +3 -0
  458. package/packages/icons/scss/component/icon.scss +3 -0
  459. package/packages/icons/scss/component.scss +3 -0
  460. package/packages/icons/scss/icon.scss +3 -0
  461. package/packages/icons/src/scss/_index.scss +4 -0
  462. package/packages/icons/src/scss/base/_index.scss +4 -0
  463. package/packages/icons/src/scss/base/button/_defaults.scss +7 -0
  464. package/packages/icons/src/scss/base/button/_index.scss +58 -0
  465. package/packages/icons/src/scss/base/button/_variables.scss +7 -0
  466. package/packages/icons/src/scss/base/link/_defaults.scss +7 -0
  467. package/packages/icons/src/scss/base/link/_index.scss +58 -0
  468. package/packages/icons/src/scss/base/link/_variables.scss +7 -0
  469. package/packages/icons/src/scss/component/_index.scss +3 -0
  470. package/packages/icons/src/scss/component/icon/_defaults.scss +30 -0
  471. package/packages/icons/src/scss/component/icon/_index.scss +60 -0
  472. package/packages/icons/src/scss/component/icon/_mixins.scss +62 -0
  473. package/packages/icons/src/scss/component/icon/_variables.scss +24 -0
  474. package/postcss.config.cjs +2 -3
  475. package/scss/base/button.scss +1 -1
  476. package/scss/base/form.scss +1 -1
  477. package/scss/base/link.scss +1 -1
  478. package/scss/base/table.scss +1 -1
  479. package/scss/base.scss +1 -1
  480. package/scss/component/accordion.scss +1 -1
  481. package/scss/component/alert.scss +1 -1
  482. package/scss/component/card.scss +1 -1
  483. package/scss/component/carousel.scss +1 -1
  484. package/scss/component/input-group.scss +1 -1
  485. package/scss/component/list.scss +3 -0
  486. package/scss/component/menu.scss +1 -1
  487. package/scss/component/navigation.scss +1 -1
  488. package/scss/component.scss +1 -1
  489. package/scss/graupl.scss +1 -1
  490. package/scss/init.scss +1 -1
  491. package/scss/layout/columns.scss +1 -1
  492. package/scss/layout/container.scss +1 -1
  493. package/scss/layout/flex-columns.scss +1 -1
  494. package/scss/layout.scss +1 -1
  495. package/scss/normalize.scss +1 -1
  496. package/scss/state/focus.scss +1 -1
  497. package/scss/state.scss +1 -1
  498. package/scss/theme/color.scss +1 -1
  499. package/scss/theme/typography.scss +1 -1
  500. package/scss/theme.scss +1 -1
  501. package/scss/utilities/alignment.scss +1 -1
  502. package/scss/utilities/background.scss +3 -0
  503. package/scss/utilities/border.scss +3 -0
  504. package/scss/utilities/color.scss +1 -1
  505. package/scss/utilities/container.scss +3 -0
  506. package/scss/utilities/display.scss +1 -1
  507. package/scss/utilities/flex.scss +1 -1
  508. package/scss/utilities/gradient.scss +3 -0
  509. package/scss/utilities/height.scss +1 -1
  510. package/scss/utilities/inset.scss +1 -1
  511. package/scss/utilities/justification.scss +1 -1
  512. package/scss/utilities/list.scss +1 -1
  513. package/scss/utilities/order.scss +1 -1
  514. package/scss/utilities/position.scss +3 -0
  515. package/scss/utilities/ratio.scss +1 -1
  516. package/scss/utilities/spacing.scss +1 -1
  517. package/scss/utilities/typography.scss +1 -1
  518. package/scss/utilities/visibility.scss +1 -1
  519. package/scss/utilities/visually-hidden.scss +3 -0
  520. package/scss/utilities/width.scss +1 -1
  521. package/scss/utilities/z-index.scss +3 -0
  522. package/scss/utilities.scss +1 -1
  523. package/stylelint.config.js +1 -0
  524. package/vite.config.js +6 -35
  525. package/dist/css/utilities/postion.css +0 -2
  526. package/dist/css/utilities/postion.css.map +0 -1
  527. package/dist/js/component/accordion.cjs.js +0 -3
  528. package/dist/js/component/accordion.esm.js +0 -1289
  529. package/dist/js/component/accordion.iife.js +0 -3
  530. package/dist/js/component/alert.cjs.js +0 -3
  531. package/dist/js/component/alert.esm.js +0 -529
  532. package/dist/js/component/alert.iife.js +0 -3
  533. package/dist/js/component/carousel.cjs.js +0 -3
  534. package/dist/js/component/carousel.esm.js +0 -1110
  535. package/dist/js/component/carousel.iife.js +0 -3
  536. package/src/scss/_variables.scss +0 -53
  537. package/src/scss/base/button/_index.scss +0 -107
  538. package/src/scss/base/button/_mixins.scss +0 -166
  539. package/src/scss/base/button/_variables.scss +0 -176
  540. package/src/scss/base/form/_index.scss +0 -93
  541. package/src/scss/base/form/_variables.scss +0 -156
  542. package/src/scss/base/link/_defaults.scss +0 -50
  543. package/src/scss/base/link/_index.scss +0 -134
  544. package/src/scss/base/link/_variables.scss +0 -262
  545. package/src/scss/base/table/_defaults.scss +0 -53
  546. package/src/scss/base/table/_index.scss +0 -121
  547. package/src/scss/base/table/_variables.scss +0 -135
  548. package/src/scss/component/alert/_variables.scss +0 -173
  549. package/src/scss/component/card/_variables.scss +0 -186
  550. package/src/scss/component/menu/_index.scss +0 -305
  551. package/src/scss/component/menu/_variables.scss +0 -500
  552. package/src/scss/component/navigation/_defaults.scss +0 -29
  553. package/src/scss/component/navigation/_index.scss +0 -189
  554. package/src/scss/component/navigation/_variables.scss +0 -237
  555. package/src/scss/functions/_important.scss +0 -13
  556. package/src/scss/layout/columns/_index.scss +0 -58
  557. package/src/scss/layout/container/_defaults.scss +0 -17
  558. package/src/scss/layout/container/_index.scss +0 -41
  559. package/src/scss/layout/container/_variables.scss +0 -50
  560. package/src/scss/layout/flex-columns/_defaults.scss +0 -18
  561. package/src/scss/layout/flex-columns/_index.scss +0 -80
  562. package/src/scss/mixins/_utility.scss +0 -30
  563. package/src/scss/mixins/_visually-hidden.scss +0 -20
  564. package/src/scss/state/_index.scss +0 -3
  565. package/src/scss/state/focus/_index.scss +0 -13
  566. package/src/scss/state/focus/_mixins.scss +0 -15
  567. package/src/scss/state/focus/_variables.scss +0 -44
  568. package/src/scss/theme/typography/_variables.scss +0 -231
  569. package/src/scss/utilities/alignment/_index.scss +0 -75
  570. package/src/scss/utilities/color/_defaults.scss +0 -35
  571. package/src/scss/utilities/color/_index.scss +0 -91
  572. package/src/scss/utilities/display/_defaults.scss +0 -32
  573. package/src/scss/utilities/display/_index.scss +0 -61
  574. package/src/scss/utilities/flex/_defaults.scss +0 -63
  575. package/src/scss/utilities/flex/_index.scss +0 -71
  576. package/src/scss/utilities/height/_defaults.scss +0 -41
  577. package/src/scss/utilities/height/_index.scss +0 -98
  578. package/src/scss/utilities/inset/_defaults.scss +0 -41
  579. package/src/scss/utilities/inset/_index.scss +0 -37
  580. package/src/scss/utilities/justification/_index.scss +0 -75
  581. package/src/scss/utilities/justification/_variables.scss +0 -6
  582. package/src/scss/utilities/list/_defaults.scss +0 -39
  583. package/src/scss/utilities/list/_index.scss +0 -56
  584. package/src/scss/utilities/order/_index.scss +0 -63
  585. package/src/scss/utilities/order/_variables.scss +0 -6
  586. package/src/scss/utilities/position/_defaults.scss +0 -26
  587. package/src/scss/utilities/position/_index.scss +0 -37
  588. package/src/scss/utilities/position/_variables.scss +0 -6
  589. package/src/scss/utilities/ratio/_defaults.scss +0 -28
  590. package/src/scss/utilities/ratio/_index.scss +0 -52
  591. package/src/scss/utilities/spacing/_index.scss +0 -169
  592. package/src/scss/utilities/spacing/_variables.scss +0 -6
  593. package/src/scss/utilities/typography/_defaults.scss +0 -30
  594. package/src/scss/utilities/typography/_index.scss +0 -224
  595. package/src/scss/utilities/typography/_variables.scss +0 -6
  596. package/src/scss/utilities/visibility/_defaults.scss +0 -25
  597. package/src/scss/utilities/visibility/_index.scss +0 -36
  598. package/src/scss/utilities/visibility/_variables.scss +0 -6
  599. package/src/scss/utilities/width/_defaults.scss +0 -41
  600. package/src/scss/utilities/width/_index.scss +0 -98
  601. package/src/scss/utilities/width/_variables.scss +0 -6
  602. /package/{src → packages/core/src}/js/accordion/Accordion.js +0 -0
  603. /package/{src → packages/core/src}/js/accordion/AccordionItem.js +0 -0
  604. /package/{src → packages/core/src}/js/accordion/index.js +0 -0
  605. /package/{src → packages/core/src}/js/alert/Alert.js +0 -0
  606. /package/{src → packages/core/src}/js/alert/index.js +0 -0
  607. /package/{src → packages/core/src}/js/carousel/Carousel.js +0 -0
  608. /package/{src → packages/core/src}/js/carousel/index.js +0 -0
  609. /package/{src → packages/core/src}/js/domHelpers.js +0 -0
  610. /package/{src → packages/core/src}/js/eventHandlers.js +0 -0
  611. /package/{src → packages/core/src}/js/navigation/index.js +0 -0
  612. /package/{src → packages/core/src}/js/storage.js +0 -0
  613. /package/{src → packages/core/src}/js/validate.js +0 -0
@@ -1,4 +1,4 @@
1
- // @graupl/graupl default values.
1
+ // @graupl/core default values.
2
2
  //
3
3
  // Generally, these should not be used directly when styling components unless a static value is needed.
4
4
  // They are mainly used to provide class selectors, fallbacks for custom properties, or loop values.
@@ -9,11 +9,16 @@
9
9
  @use "sass:map";
10
10
 
11
11
  // Prefix for custom properties and other naming conventions.
12
- $prefix: "graupl" !default;
12
+ $id: "graupl" !default;
13
+ $prefix: "#{$id}-" !default;
13
14
 
14
15
  // Settings.
15
16
  $use-important: true !default;
16
- $responsive-utilities: true !default;
17
+ $screen-aware-utilities: true !default;
18
+ $theme-aware-utilities: true !default;
19
+ $state-aware-utilities: true !default;
20
+ $container-aware-utilities: false !default;
21
+ $use-layers: true !default;
17
22
 
18
23
  // Layout properties.
19
24
  $content-max-width: 96ch !default;
@@ -53,6 +58,12 @@ $base-screen-size-triggers: (
53
58
  "xs",
54
59
  ),
55
60
  ),
61
+ allow-sidebars: (
62
+ mixin: "up",
63
+ args: (
64
+ "lg",
65
+ ),
66
+ ),
56
67
  );
57
68
  $custom-screen-size-triggers: () !default;
58
69
  $screen-size-triggers: map.merge(
@@ -60,6 +71,17 @@ $screen-size-triggers: map.merge(
60
71
  $custom-screen-size-triggers
61
72
  );
62
73
 
74
+ // Container sizes.
75
+ $base-container-sizes: $screen-sizes;
76
+ $custom-container-sizes: () !default;
77
+ $container-sizes: map.merge($base-container-sizes, $custom-container-sizes);
78
+ $base-container-size-triggers: $screen-size-triggers;
79
+ $custom-container-size-triggers: () !default;
80
+ $container-size-triggers: map.merge(
81
+ $base-container-size-triggers,
82
+ $custom-container-size-triggers
83
+ );
84
+
63
85
  // Spacing properties.
64
86
  $spacer: 1rem !default;
65
87
  $base-spacer-multipliers: (
@@ -87,7 +109,7 @@ $interactive-min-height: 44px !default;
87
109
 
88
110
  // Border properties.
89
111
  $border-radius: 0.125rem !default;
90
- $border-width: 2px !default;
112
+ $border-width: 0.125rem !default;
91
113
  $border-style: solid !default;
92
114
 
93
115
  // Transition properties.
@@ -104,26 +126,42 @@ $transition-durations: map.merge(
104
126
  $custom-transition-durations
105
127
  );
106
128
 
129
+ // Selector properties.
130
+ $element-selector-base: "" !default;
131
+ $component-selector-base: "." !default;
132
+ $modifier-selector-base: "." !default;
133
+ $screen-aware-selector-separator: "\\:" !default;
134
+ $theme-aware-selector-separator: "\\:" !default;
135
+ $state-aware-selector-separator: "\\:" !default;
136
+ $container-aware-selector-separator: "\\:" !default;
137
+
138
+ // Selector prefixes.
139
+ $screen-aware-selector-prefix: "" !default;
140
+ $theme-aware-selector-prefix: "" !default;
141
+ $state-aware-selector-prefix: "" !default;
142
+ $container-aware-selector-prefix: "cq\\:" !default;
143
+
107
144
  // State selectors.
145
+ $state-selector-base: $modifier-selector-base !default;
108
146
  $base-state-selectors: (
109
147
  visited: (
110
- ".visited",
148
+ "#{$state-selector-base}visited",
111
149
  ":visited",
112
150
  ),
113
151
  focus: (
114
- ".focus",
152
+ "#{$state-selector-base}focus",
115
153
  ":focus-visible",
116
154
  ),
117
155
  hover: (
118
- ".hover",
156
+ "#{$state-selector-base}hover",
119
157
  ":hover",
120
158
  ),
121
159
  active: (
122
- ".active",
160
+ "#{$state-selector-base}active",
123
161
  ":active",
124
162
  ),
125
163
  disabled: (
126
- ".disabled",
164
+ "#{$state-selector-base}disabled",
127
165
  ":disabled",
128
166
  "[disabled]",
129
167
  "[aria-disabled=true]",
@@ -132,5 +170,15 @@ $base-state-selectors: (
132
170
  $custom-state-selectors: () !default;
133
171
  $state-selectors: map.merge($base-state-selectors, $custom-state-selectors);
134
172
 
135
- // Responsive utility separator.
136
- $responsive-separator: "\\:" !default;
173
+ // Utility properties.
174
+ $utility-selector-base: $modifier-selector-base !default;
175
+
176
+ // Utility modifier separators.
177
+ $utility-screen-aware-separator: $screen-aware-selector-separator !default;
178
+ $utility-theme-aware-separator: $theme-aware-selector-separator !default;
179
+ $utility-state-aware-separator: $state-aware-selector-separator !default;
180
+ $utility-container-aware-separator: $container-aware-selector-separator !default;
181
+ $utility-screen-aware-selector-prefix: $screen-aware-selector-prefix !default;
182
+ $utility-theme-aware-selector-prefix: $theme-aware-selector-prefix !default;
183
+ $utility-state-aware-selector-prefix: $state-aware-selector-prefix !default;
184
+ $utility-container-aware-selector-prefix: $container-aware-selector-prefix !default;
@@ -1,4 +1,4 @@
1
- // @graupl/graupl styles.
1
+ // @graupl/core styles.
2
2
 
3
3
  // Forward the layer initialization.
4
4
  @forward "init";
@@ -0,0 +1,6 @@
1
+ // @graupl/core layer initialization styles.
2
+
3
+ @use "defaults" as root-defaults;
4
+
5
+ // Layer initialization.
6
+ @layer #{root-defaults.$id}.normalize, #{root-defaults.$id}.base, #{root-defaults.$id}.layout, #{root-defaults.$id}.component, #{root-defaults.$id}.theme, #{root-defaults.$id}.utilities, #{root-defaults.$id}.state;
@@ -1,4 +1,4 @@
1
- // @graupl/graupl normalize.
1
+ // @graupl/core normalize.
2
2
  //
3
3
  // This file is manually forked from normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css
4
4
  //
@@ -0,0 +1,95 @@
1
+ // @graupl/core variables.
2
+ //
3
+ // These values are to be used to directly style components and provide a
4
+ // cleaner way to reference custom properties.
5
+
6
+ @use "defaults";
7
+ @use "sass:map";
8
+
9
+ // Layout properties.
10
+ $content-max-width: var(
11
+ --#{defaults.$prefix}content-max-width,
12
+ defaults.$content-max-width
13
+ );
14
+
15
+ // Spacing properties.
16
+ $spacer: var(--#{defaults.$prefix}spacer, defaults.$spacer);
17
+ $spacers: ();
18
+
19
+ @each $key, $value in defaults.$spacer-multipliers {
20
+ $space: var(
21
+ --#{defaults.$prefix}spacer-#{$key},
22
+ calc(#{$value} * #{$spacer})
23
+ );
24
+ $spacers: map.set($spacers, $key, $space);
25
+ }
26
+
27
+ // Border properties.
28
+ $border-radius: var(
29
+ --#{defaults.$prefix}border-radius,
30
+ defaults.$border-radius
31
+ );
32
+ $border-top-left-radius: var(
33
+ --#{defaults.$prefix}border-top-left-radius,
34
+ #{$border-radius}
35
+ );
36
+ $border-top-right-radius: var(
37
+ --#{defaults.$prefix}border-top-right-radius,
38
+ #{$border-radius}
39
+ );
40
+ $border-bottom-right-radius: var(
41
+ --#{defaults.$prefix}border-bottom-right-radius,
42
+ #{$border-radius}
43
+ );
44
+ $border-bottom-left-radius: var(
45
+ --#{defaults.$prefix}border-bottom-left-radius,
46
+ #{$border-radius}
47
+ );
48
+ $border-width: var(--#{defaults.$prefix}border-width, defaults.$border-width);
49
+ $border-top-width: var(--#{defaults.$prefix}border-top-width, #{$border-width});
50
+ $border-right-width: var(
51
+ --#{defaults.$prefix}border-right-width,
52
+ #{$border-width}
53
+ );
54
+ $border-bottom-width: var(
55
+ --#{defaults.$prefix}border-bottom-width,
56
+ #{$border-width}
57
+ );
58
+ $border-left-width: var(
59
+ --#{defaults.$prefix}border-left-width,
60
+ #{$border-width}
61
+ );
62
+ $border-style: var(--#{defaults.$prefix}border-style, defaults.$border-style);
63
+ $border-top-style: var(--#{defaults.$prefix}border-top-style, #{$border-style});
64
+ $border-right-style: var(
65
+ --#{defaults.$prefix}border-right-style,
66
+ #{$border-style}
67
+ );
68
+ $border-bottom-style: var(
69
+ --#{defaults.$prefix}border-bottom-style,
70
+ #{$border-style}
71
+ );
72
+ $border-left-style: var(
73
+ --#{defaults.$prefix}border-left-style,
74
+ #{$border-style}
75
+ );
76
+
77
+ // Transition properties.
78
+ $transition-durations: (
79
+ fast: var(
80
+ --#{defaults.$prefix}transition-duration-fast,
81
+ map.get(defaults.$transition-durations, fast)
82
+ ),
83
+ default: var(
84
+ --#{defaults.$prefix}transition-duration-default,
85
+ map.get(defaults.$transition-durations, default)
86
+ ),
87
+ slow: var(
88
+ --#{defaults.$prefix}transition-duration-slow,
89
+ map.get(defaults.$transition-durations, slow)
90
+ ),
91
+ );
92
+ $transition-timing-function: var(
93
+ --#{defaults.$prefix}transition-timing-function,
94
+ defaults.$transition-timing-function
95
+ );
@@ -1,4 +1,4 @@
1
- // @graupl/graupl base styles.
1
+ // @graupl/core base styles.
2
2
 
3
3
  @forward "button";
4
4
  @forward "form";
@@ -1,4 +1,4 @@
1
- // @graupl/graupl button base default values.
1
+ // @graupl/core button base default values.
2
2
  //
3
3
  // Generally, these should not be used directly when styling bases unless a static value is needed.
4
4
  // They are mainly used to provide class selectors, fallbacks for custom properties, or loop values.
@@ -6,27 +6,23 @@
6
6
  // They should not be used to define direct property values (i.e. font-size, color, etc.).
7
7
  // Those should be defined as custom properties in the `_variables.scss` file.
8
8
 
9
+ @use "../../defaults" as root-defaults;
9
10
  @use "sass:map";
10
11
 
11
12
  // Button selectors.
12
- $button-selector: ".button" !default;
13
- $button-link-selector: ".link" !default;
14
- $button-theme-selector-prefix: "." !default;
15
-
16
- // State selectors.
17
- $button-active-selector: ".active" !default;
18
- $button-disabled-selector: ".disabled" !default;
19
- $button-focus-selector: ".focus" !default;
20
- $button-hover-selector: ".hover" !default;
21
- $button-visited-selector: ".visited" !default;
13
+ $selector-base: root-defaults.$component-selector-base !default;
14
+ $modifier-selector-base: root-defaults.$modifier-selector-base !default;
15
+ $button-selector-base: $selector-base !default;
16
+ $button-selector: "button" !default;
17
+ $button-link-selector-base: $modifier-selector-base !default;
18
+ $button-link-selector: "link" !default;
19
+ $button-theme-selector-base: $modifier-selector-base !default;
20
+ $button-theme-selector-prefix: "" !default;
22
21
 
23
22
  // Button properties.
24
- $button-transform: none !default;
25
- $button-visited-transform: $button-transform !default;
26
- $button-focus-transform: $button-transform !default;
27
- $button-hover-transform: $button-transform !default;
28
- $button-active-transform: scale(0.95) !default;
29
- $button-disabled-transform: $button-transform !default;
23
+ $button-initial-transform: none !default;
24
+ $button-final-transform: scale(0.95) !default;
25
+ $button-disabled-transform: $button-initial-transform !default;
30
26
 
31
27
  // Button state theme defaults.
32
28
  // This map is used to define the default colour shades for the
@@ -40,16 +36,9 @@ $button-disabled-transform: $button-transform !default;
40
36
  $base-button-state-theme-map: (
41
37
  color: 900,
42
38
  border-color: 700,
43
- visited-color: 900,
44
- visited-border-color: 700,
45
- focus-color: 900,
46
- focus-border-color: 700,
47
39
  hover-color: 100,
48
40
  hover-background: 700,
49
41
  hover-border-color: 700,
50
- active-color: 100,
51
- active-background: 700,
52
- active-border-color: 700,
53
42
  disabled-color: 200,
54
43
  disabled-border-color: 200,
55
44
  );
@@ -0,0 +1,206 @@
1
+ // @graupl/core button base styles.
2
+ //
3
+ // This module provides the base styles for the button component.
4
+ //
5
+ // The button component is meant to be used on <button> or <a> elements, but can be applied to anything.
6
+ //
7
+ // The following selectors are generated by default:
8
+ // - `.button`: The button component.
9
+ // - `.primary`: A component modifier to use the primary colour for the button component.
10
+ // - `.secondary`: A component modifier to use the secondary colour for the button component.
11
+ // - `.tertiary`: A component modifier to use the tertiary colour for the button component.
12
+ // - `.link`: A component modifier to make the button component look like a link component.
13
+ //
14
+ // The following custom properties control the generated selectors:
15
+ // - `--graupl-button-min-width`: The minimum width of the button component.
16
+ // - `--graupl-button-min-height`: The minimum height of the button component.
17
+ // - `--graupl-button-padding-x`: The horizontal padding of the button component.
18
+ // - `--graupl-button-padding-y`: The vertical padding of the button component.
19
+ // - `--graupl-button-padding`: The padding of the button component (combines x and y padding).
20
+ // - `--graupl-button-font-size`: The font size of the button component.
21
+ // - `--graupl-button-transition`: The transition of the button component.
22
+ // - `--graupl-button-transition-reduced-motion`: The transition of the button component when reduced motion is enabled.
23
+ // - `--graupl-button-transform`: The transform of the button component.
24
+ // - `--graupl-button-visited-transform`: The transform of a visited button component.
25
+ // - `--graupl-button-focus-transform`: The transform of a focused button component.
26
+ // - `--graupl-button-hover-transform`: The transform of a hovered button component.
27
+ // - `--graupl-button-active-transform`: The transform of an active button component.
28
+ // - `--graupl-button-disabled-transform`: The transform of a disabled button component.
29
+ // - `--graupl-button-background`: The background colour of the button component.
30
+ // - `--graupl-button-visited-background`: The background colour of a visited button component.
31
+ // - `--graupl-button-focus-background`: The background colour of a focused button component.
32
+ // - `--graupl-button-hover-background`: The background colour of a hovered button component.
33
+ // - `--graupl-button-active-background`: The background colour of an active button component.
34
+ // - `--graupl-button-disabled-background`: The background colour of a disabled button component.
35
+ // - `--graupl-button-color`: The text colour of the button component.
36
+ // - `--graupl-button-visited-color`: The text colour of a visited button component.
37
+ // - `--graupl-button-focus-color`: The text colour of a focused button component.
38
+ // - `--graupl-button-hover-color`: The text colour of a hovered button component.
39
+ // - `--graupl-button-active-color`: The text colour of an active button component.
40
+ // - `--graupl-button-disabled-color`: The text colour of a disabled button component.
41
+ // - `--graupl-button-border-top-width`: The top border width of the button component.
42
+ // - `--graupl-button-border-right-width`: The right border width of the button component.
43
+ // - `--graupl-button-border-bottom-width`: The bottom border width of the button component.
44
+ // - `--graupl-button-border-left-width`: The left border width of the button component.
45
+ // - `--graupl-button-border-width`: The border width of the button component (combines top, right, bottom, and left widths).
46
+ // - `--graupl-button-border-top-style`: The top border style of the button component.
47
+ // - `--graupl-button-border-right-style`: The right border style of the button component.
48
+ // - `--graupl-button-border-bottom-style`: The bottom border style of the button component.
49
+ // - `--graupl-button-border-left-style`: The left border style of the button component.
50
+ // - `--graupl-button-border-style`: The border style of the button component (combines top, right, bottom, and left styles).
51
+ // - `--graupl-button-border-top-left-radius`: The top left border radius of the button component.
52
+ // - `--graupl-button-border-top-right-radius`: The top right border radius of the button component.
53
+ // - `--graupl-button-border-bottom-right-radius`: The bottom right border radius of the button component.
54
+ // - `--graupl-button-border-bottom-left-radius`: The bottom left border radius of the button component.
55
+ // - `--graupl-button-border-radius`: The border radius of the button component (combines top-left, top-right, bottom-right, and bottom-left radii).
56
+ // - `--graupl-button-border-color`: The border colour of the button component.
57
+ // - `--graupl-button-visited-border-color`: The border colour of a visited button component.
58
+ // - `--graupl-button-focus-border-color`: The border colour of a focused button component.
59
+ // - `--graupl-button-hover-border-color`: The border colour of a hovered button component.
60
+ // - `--graupl-button-active-border-color`: The border colour of an active button component.
61
+ // - `--graupl-button-disabled-border-color`: The border colour of a disabled button component.
62
+ //
63
+ // The following variables control the generated selectors:
64
+ // - `$selector-base`: The selector base for the component.
65
+ // - `$modifier-selector-base`: The selector base for component modifiers.
66
+ // - `$button-selector-base`: The selector base for the button component.
67
+ // - `$button-selector`: The button component selector.
68
+ // - `$button-link-selector-base`: The selector base for the button link component modifier.
69
+ // - `$button-link-selector`: The button link component modifier selector.
70
+ // - `$button-theme-selector-base`: The selector base for the button theme component modifiers.
71
+ // - `$button-theme-selector-prefix`: The button theme component modifier selector prefix.
72
+ // - `$button-initial-transform`: The initial transform of the button.
73
+ // - `$button-final-transform`: The final transform of the button.
74
+ // - `$button-disabled-transform`: The disabled transform of the button.
75
+ // - `$custom-button-state-theme-map`: A map of custom button state theme values.
76
+ //
77
+ // @example
78
+ // <button class="button primary">Primary Button</button>
79
+ //
80
+ // @example
81
+ // <a class="button secondary" href="#">Secondary Button</a>
82
+ //
83
+ // @example
84
+ // <button class="button link">Link Button</button>
85
+
86
+ @use "../../base/link/variables" as link;
87
+ @use "../../defaults" as root-defaults;
88
+ @use "../../mixins/layer" as *;
89
+ @use "../link/defaults" as link-defaults;
90
+ @use "defaults";
91
+ @use "mixins" as *;
92
+ @use "variables" as *;
93
+
94
+ @include layer(base) {
95
+ // .button
96
+ #{defaults.$button-selector-base}#{defaults.$button-selector} {
97
+ @include apply-base;
98
+
99
+ // &.link
100
+ &#{defaults.$button-link-selector-base}#{defaults.$button-link-selector} {
101
+ --#{root-defaults.$prefix}button-padding: #{link.$link-padding};
102
+ --#{root-defaults.$prefix}button-transition: #{link.$link-transition};
103
+ --#{root-defaults.$prefix}button-transition-reduced-motion: #{link.$link-transition-reduced-motion};
104
+ --#{root-defaults.$prefix}button-transform: #{link.$link-transform};
105
+ --#{root-defaults.$prefix}button-visited-transform: #{link.$link-visited-transform};
106
+ --#{root-defaults.$prefix}button-focus-transform: #{link.$link-transform};
107
+ --#{root-defaults.$prefix}button-hover-transform: #{link.$link-hover-transform};
108
+ --#{root-defaults.$prefix}button-active-transform: #{link.$link-active-transform};
109
+ --#{root-defaults.$prefix}button-border-width: #{link.$link-border-width};
110
+ --#{root-defaults.$prefix}button-border-style: #{link.$link-border-style};
111
+ --#{root-defaults.$prefix}button-border-radius: #{link.$link-border-radius};
112
+ --#{root-defaults.$prefix}button-min-width: #{link.$link-min-width};
113
+ --#{root-defaults.$prefix}button-min-height: #{link.$link-min-height};
114
+ --#{root-defaults.$prefix}button-font-size: inherit;
115
+
116
+ text-decoration: link.$link-text-decoration;
117
+ text-decoration-thickness: link.$link-text-decoration-thickness;
118
+ text-decoration-style: link.$link-text-decoration-style;
119
+ }
120
+ }
121
+
122
+ // a
123
+ #{link-defaults.$link-selector-base}#{link-defaults.$link-selector} {
124
+ // &.button:not(.link)
125
+ &#{defaults.$button-selector-base}#{defaults.$button-selector}:not(
126
+ #{defaults.$button-link-selector-base}#{defaults.$button-link-selector}
127
+ ) {
128
+ --#{root-defaults.$prefix}link-padding: #{$button-padding};
129
+ --#{root-defaults.$prefix}link-transition: #{$button-transition};
130
+ --#{root-defaults.$prefix}link-transition-reduced-motion: #{$button-transition-reduced-motion};
131
+ --#{root-defaults.$prefix}link-transform: #{$button-transform};
132
+ --#{root-defaults.$prefix}link-visited-transform: #{$button-visited-transform};
133
+ --#{root-defaults.$prefix}link-focus-transform: #{$button-focus-transform};
134
+ --#{root-defaults.$prefix}link-hover-transform: #{$button-hover-transform};
135
+ --#{root-defaults.$prefix}link-active-transform: #{$button-active-transform};
136
+ --#{root-defaults.$prefix}link-disabled-transform: #{$button-disabled-transform};
137
+ --#{root-defaults.$prefix}link-border-width: #{$button-border-width};
138
+ --#{root-defaults.$prefix}link-border-style: #{$button-border-style};
139
+ --#{root-defaults.$prefix}link-border-radius: #{$button-border-radius};
140
+ --#{root-defaults.$prefix}link-min-width: #{$button-min-width};
141
+ --#{root-defaults.$prefix}link-min-height: #{$button-min-height};
142
+ --#{root-defaults.$prefix}link-text-decoration: none;
143
+ --#{root-defaults.$prefix}link-visited-text-decoration: none;
144
+ --#{root-defaults.$prefix}link-focus-text-decoration: none;
145
+ --#{root-defaults.$prefix}link-hover-text-decoration: none;
146
+ --#{root-defaults.$prefix}link-active-text-decoration: none;
147
+ --#{root-defaults.$prefix}link-disabled-text-decoration: none;
148
+ }
149
+ }
150
+ }
151
+
152
+ @include layer(theme) {
153
+ // .button
154
+ #{defaults.$button-selector-base}#{defaults.$button-selector} {
155
+ @include apply-theme;
156
+
157
+ // &.link
158
+ &#{defaults.$button-link-selector-base}#{defaults.$button-link-selector} {
159
+ --#{root-defaults.$prefix}button-color: #{link.$link-color};
160
+ --#{root-defaults.$prefix}button-visited-color: #{link.$link-visited-color};
161
+ --#{root-defaults.$prefix}button-focus-color: #{link.$link-focus-color};
162
+ --#{root-defaults.$prefix}button-hover-color: #{link.$link-hover-color};
163
+ --#{root-defaults.$prefix}button-active-color: #{link.$link-active-color};
164
+ --#{root-defaults.$prefix}button-disabled-color: #{link.$link-disabled-color};
165
+ --#{root-defaults.$prefix}button-background: #{link.$link-background};
166
+ --#{root-defaults.$prefix}button-visited-background: #{link.$link-visited-background};
167
+ --#{root-defaults.$prefix}button-focus-background: #{link.$link-focus-background};
168
+ --#{root-defaults.$prefix}button-hover-background: #{link.$link-hover-background};
169
+ --#{root-defaults.$prefix}button-active-background: #{link.$link-active-background};
170
+ --#{root-defaults.$prefix}button-disabled-background: #{link.$link-disabled-background};
171
+ --#{root-defaults.$prefix}button-border-color: #{link.$link-border-color};
172
+ --#{root-defaults.$prefix}button-visited-border-color: #{link.$link-visited-border-color};
173
+ --#{root-defaults.$prefix}button-focus-border-color: #{link.$link-focus-border-color};
174
+ --#{root-defaults.$prefix}button-hover-border-color: #{link.$link-hover-border-color};
175
+ --#{root-defaults.$prefix}button-active-border-color: #{link.$link-active-border-color};
176
+ --#{root-defaults.$prefix}button-disabled-border-color: #{link.$link-disabled-border-color};
177
+ }
178
+ }
179
+
180
+ // a
181
+ #{link-defaults.$link-selector-base}#{link-defaults.$link-selector} {
182
+ // &.button:not(.link)
183
+ &#{defaults.$button-selector-base}#{defaults.$button-selector}:not(
184
+ #{defaults.$button-link-selector-base}#{defaults.$button-link-selector}
185
+ ) {
186
+ --#{root-defaults.$prefix}link-color: #{$button-color};
187
+ --#{root-defaults.$prefix}link-visited-color: #{$button-visited-color};
188
+ --#{root-defaults.$prefix}link-focus-color: #{$button-focus-color};
189
+ --#{root-defaults.$prefix}link-hover-color: #{$button-hover-color};
190
+ --#{root-defaults.$prefix}link-active-color: #{$button-active-color};
191
+ --#{root-defaults.$prefix}link-disabled-color: #{$button-disabled-color};
192
+ --#{root-defaults.$prefix}link-background: #{$button-background};
193
+ --#{root-defaults.$prefix}link-visited-background: #{$button-visited-background};
194
+ --#{root-defaults.$prefix}link-focus-background: #{$button-focus-background};
195
+ --#{root-defaults.$prefix}link-hover-background: #{$button-hover-background};
196
+ --#{root-defaults.$prefix}link-active-background: #{$button-active-background};
197
+ --#{root-defaults.$prefix}link-disabled-background: #{$button-disabled-background};
198
+ --#{root-defaults.$prefix}link-border-color: #{$button-border-color};
199
+ --#{root-defaults.$prefix}link-visited-border-color: #{$button-visited-border-color};
200
+ --#{root-defaults.$prefix}link-focus-border-color: #{$button-focus-border-color};
201
+ --#{root-defaults.$prefix}link-hover-border-color: #{$button-hover-border-color};
202
+ --#{root-defaults.$prefix}link-active-border-color: #{$button-active-border-color};
203
+ --#{root-defaults.$prefix}link-disabled-border-color: #{$button-disabled-border-color};
204
+ }
205
+ }
206
+ }
@@ -0,0 +1,104 @@
1
+ // @graupl/core button base styles.
2
+
3
+ @use "defaults";
4
+ @use "../../defaults" as root-defaults;
5
+ @use "../../theme/color/variables" as color;
6
+ @use "variables" as *;
7
+ @use "../../mixins/layer" as *;
8
+ @use "../../mixins/animation";
9
+ @use "../../functions/theme";
10
+ @use "sass:map";
11
+
12
+ /// Mixin to apply base styles for buttons.
13
+ @mixin apply-base() {
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+ min-width: $button-min-width;
18
+ min-height: $button-min-height;
19
+ padding: $button-padding;
20
+ transform: $button-transform;
21
+ transition: $button-transition;
22
+ border-width: $button-border-width;
23
+ border-style: $button-border-style;
24
+ border-radius: $button-border-radius;
25
+ font-size: $button-font-size;
26
+ cursor: pointer;
27
+
28
+ @each $state, $selectors in root-defaults.$state-selectors {
29
+ @each $selector in $selectors {
30
+ // e.g &:visited, &:focus-visible, &:hover, &:active, &:disabled
31
+ &#{$selector} {
32
+ transform: map.get($button-transform-states, $state);
33
+
34
+ // If the state is disabled, we want that to supersede all other states.
35
+ @if $state == "disabled" {
36
+ cursor: not-allowed;
37
+
38
+ @each $sub-state, $sub-selectors in root-defaults.$state-selectors {
39
+ @if $sub-state != $state {
40
+ @each $sub-selector in $sub-selectors {
41
+ // e.g &:visited, &:focus-visible, &:hover, &:active
42
+ &#{$sub-selector} {
43
+ transform: map.get($button-transform-states, $state);
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+
53
+ @include animation.off {
54
+ --#{root-defaults.$prefix}button-transition: #{$button-transition-reduced-motion};
55
+ }
56
+ }
57
+
58
+ /// Mixin to apply theme styles for buttons.
59
+ @mixin apply-theme() {
60
+ border-color: $button-border-color;
61
+ background: $button-background;
62
+ color: $button-color;
63
+
64
+ @each $color, $map in map.get(color.$themes, active) {
65
+ // e.g. &.primary, &.secondary, &.tertiary
66
+ &#{defaults.$button-theme-selector-base}#{defaults.$button-theme-selector-prefix}#{$color} {
67
+ @each $prop, $shade in defaults.$button-state-theme-map {
68
+ --#{root-defaults.$prefix}button-#{$prop}: #{theme.get($color, $shade)};
69
+ }
70
+ }
71
+ }
72
+
73
+ @each $state, $selectors in root-defaults.$state-selectors {
74
+ @each $selector in $selectors {
75
+ // e.g &:visited, &:focus-visible, &:hover, &:active, &:disabled
76
+ &#{$selector} {
77
+ border-color: map.get($button-border-color-states, $state);
78
+ background: map.get($button-background-states, $state);
79
+ color: map.get($button-color-states, $state);
80
+
81
+ // If the state is disabled, we want that to supersede all other states.
82
+ @if $state == "disabled" {
83
+ @each $sub-state, $sub-selectors in root-defaults.$state-selectors {
84
+ @if $sub-state != $state {
85
+ @each $sub-selector in $sub-selectors {
86
+ // e.g &:visited, &:focus-visible, &:hover, &:active
87
+ &#{$sub-selector} {
88
+ border-color: map.get($button-border-color-states, $state);
89
+ background: map.get($button-background-states, $state);
90
+ color: map.get($button-color-states, $state);
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+
101
+ @mixin apply() {
102
+ @include apply-base;
103
+ @include apply-theme;
104
+ }