@graupl/core 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 (303) hide show
  1. package/dist/css/base/button.css +2 -0
  2. package/dist/css/base/button.css.map +1 -0
  3. package/dist/css/base/form.css +2 -0
  4. package/dist/css/base/form.css.map +1 -0
  5. package/dist/css/base/link.css +2 -0
  6. package/dist/css/base/link.css.map +1 -0
  7. package/dist/css/base/table.css +2 -0
  8. package/dist/css/base/table.css.map +1 -0
  9. package/dist/css/base.css +2 -0
  10. package/dist/css/base.css.map +1 -0
  11. package/dist/css/component/accordion.css +5 -0
  12. package/dist/css/component/accordion.css.map +1 -0
  13. package/dist/css/component/alert.css +2 -0
  14. package/dist/css/component/alert.css.map +1 -0
  15. package/dist/css/component/card.css +2 -0
  16. package/dist/css/component/card.css.map +1 -0
  17. package/dist/css/component/carousel.css +2 -0
  18. package/dist/css/component/carousel.css.map +1 -0
  19. package/dist/css/component/input-group.css +2 -0
  20. package/dist/css/component/input-group.css.map +1 -0
  21. package/dist/css/component/list.css +2 -0
  22. package/dist/css/component/list.css.map +1 -0
  23. package/dist/css/component/menu.css +2 -0
  24. package/dist/css/component/menu.css.map +1 -0
  25. package/dist/css/component/navigation.css +2 -0
  26. package/dist/css/component/navigation.css.map +1 -0
  27. package/dist/css/component.css +5 -0
  28. package/dist/css/component.css.map +1 -0
  29. package/dist/css/graupl.css +5 -0
  30. package/dist/css/graupl.css.map +1 -0
  31. package/dist/css/init.css +2 -0
  32. package/dist/css/init.css.map +1 -0
  33. package/dist/css/layout/columns.css +2 -0
  34. package/dist/css/layout/columns.css.map +1 -0
  35. package/dist/css/layout/container.css +2 -0
  36. package/dist/css/layout/container.css.map +1 -0
  37. package/dist/css/layout/flex-columns.css +2 -0
  38. package/dist/css/layout/flex-columns.css.map +1 -0
  39. package/dist/css/layout.css +5 -0
  40. package/dist/css/layout.css.map +1 -0
  41. package/dist/css/normalize.css +2 -0
  42. package/dist/css/normalize.css.map +1 -0
  43. package/dist/css/state/focus.css +2 -0
  44. package/dist/css/state/focus.css.map +1 -0
  45. package/dist/css/state.css +2 -0
  46. package/dist/css/state.css.map +1 -0
  47. package/dist/css/theme/color.css +2 -0
  48. package/dist/css/theme/color.css.map +1 -0
  49. package/dist/css/theme/typography.css +2 -0
  50. package/dist/css/theme/typography.css.map +1 -0
  51. package/dist/css/theme.css +2 -0
  52. package/dist/css/theme.css.map +1 -0
  53. package/dist/css/utilities/alignment.css +2 -0
  54. package/dist/css/utilities/alignment.css.map +1 -0
  55. package/dist/css/utilities/background.css +2 -0
  56. package/dist/css/utilities/background.css.map +1 -0
  57. package/dist/css/utilities/border.css +2 -0
  58. package/dist/css/utilities/border.css.map +1 -0
  59. package/dist/css/utilities/color.css +2 -0
  60. package/dist/css/utilities/color.css.map +1 -0
  61. package/dist/css/utilities/container.css +2 -0
  62. package/dist/css/utilities/container.css.map +1 -0
  63. package/dist/css/utilities/display.css +2 -0
  64. package/dist/css/utilities/display.css.map +1 -0
  65. package/dist/css/utilities/flex.css +2 -0
  66. package/dist/css/utilities/flex.css.map +1 -0
  67. package/dist/css/utilities/gradient.css +2 -0
  68. package/dist/css/utilities/gradient.css.map +1 -0
  69. package/dist/css/utilities/height.css +2 -0
  70. package/dist/css/utilities/height.css.map +1 -0
  71. package/dist/css/utilities/inset.css +2 -0
  72. package/dist/css/utilities/inset.css.map +1 -0
  73. package/dist/css/utilities/justification.css +2 -0
  74. package/dist/css/utilities/justification.css.map +1 -0
  75. package/dist/css/utilities/list.css +2 -0
  76. package/dist/css/utilities/list.css.map +1 -0
  77. package/dist/css/utilities/order.css +2 -0
  78. package/dist/css/utilities/order.css.map +1 -0
  79. package/dist/css/utilities/position.css +2 -0
  80. package/dist/css/utilities/position.css.map +1 -0
  81. package/dist/css/utilities/ratio.css +2 -0
  82. package/dist/css/utilities/ratio.css.map +1 -0
  83. package/dist/css/utilities/spacing.css +2 -0
  84. package/dist/css/utilities/spacing.css.map +1 -0
  85. package/dist/css/utilities/typography.css +2 -0
  86. package/dist/css/utilities/typography.css.map +1 -0
  87. package/dist/css/utilities/visibility.css +2 -0
  88. package/dist/css/utilities/visibility.css.map +1 -0
  89. package/dist/css/utilities/visually-hidden.css +2 -0
  90. package/dist/css/utilities/visually-hidden.css.map +1 -0
  91. package/dist/css/utilities/width.css +2 -0
  92. package/dist/css/utilities/width.css.map +1 -0
  93. package/dist/css/utilities/z-index.css +2 -0
  94. package/dist/css/utilities/z-index.css.map +1 -0
  95. package/dist/css/utilities.css +2 -0
  96. package/dist/css/utilities.css.map +1 -0
  97. package/package.json +58 -0
  98. package/scss/base/button.scss +3 -0
  99. package/scss/base/form.scss +3 -0
  100. package/scss/base/link.scss +3 -0
  101. package/scss/base/table.scss +3 -0
  102. package/scss/base.scss +3 -0
  103. package/scss/component/accordion.scss +3 -0
  104. package/scss/component/alert.scss +3 -0
  105. package/scss/component/card.scss +3 -0
  106. package/scss/component/carousel.scss +3 -0
  107. package/scss/component/input-group.scss +3 -0
  108. package/scss/component/list.scss +3 -0
  109. package/scss/component/menu.scss +3 -0
  110. package/scss/component/navigation.scss +3 -0
  111. package/scss/component.scss +3 -0
  112. package/scss/graupl.scss +3 -0
  113. package/scss/init.scss +3 -0
  114. package/scss/layout/columns.scss +3 -0
  115. package/scss/layout/container.scss +3 -0
  116. package/scss/layout/flex-columns.scss +3 -0
  117. package/scss/layout.scss +3 -0
  118. package/scss/normalize.scss +3 -0
  119. package/scss/state/focus.scss +3 -0
  120. package/scss/state.scss +3 -0
  121. package/scss/theme/color.scss +3 -0
  122. package/scss/theme/typography.scss +3 -0
  123. package/scss/theme.scss +3 -0
  124. package/scss/utilities/alignment.scss +3 -0
  125. package/scss/utilities/background.scss +3 -0
  126. package/scss/utilities/border.scss +3 -0
  127. package/scss/utilities/color.scss +3 -0
  128. package/scss/utilities/container.scss +3 -0
  129. package/scss/utilities/display.scss +3 -0
  130. package/scss/utilities/flex.scss +3 -0
  131. package/scss/utilities/gradient.scss +3 -0
  132. package/scss/utilities/height.scss +3 -0
  133. package/scss/utilities/inset.scss +3 -0
  134. package/scss/utilities/justification.scss +3 -0
  135. package/scss/utilities/list.scss +3 -0
  136. package/scss/utilities/order.scss +3 -0
  137. package/scss/utilities/position.scss +3 -0
  138. package/scss/utilities/ratio.scss +3 -0
  139. package/scss/utilities/spacing.scss +3 -0
  140. package/scss/utilities/typography.scss +3 -0
  141. package/scss/utilities/visibility.scss +3 -0
  142. package/scss/utilities/visually-hidden.scss +3 -0
  143. package/scss/utilities/width.scss +3 -0
  144. package/scss/utilities/z-index.scss +3 -0
  145. package/scss/utilities.scss +3 -0
  146. package/src/js/accordion/Accordion.js +1163 -0
  147. package/src/js/accordion/AccordionItem.js +496 -0
  148. package/src/js/accordion/index.js +10 -0
  149. package/src/js/alert/Alert.js +581 -0
  150. package/src/js/alert/index.js +11 -0
  151. package/src/js/carousel/Carousel.js +1427 -0
  152. package/src/js/carousel/index.js +10 -0
  153. package/src/js/domHelpers.js +37 -0
  154. package/src/js/eventHandlers.js +39 -0
  155. package/src/js/navigation/index.js +36 -0
  156. package/src/js/storage.js +106 -0
  157. package/src/js/validate.js +225 -0
  158. package/src/scss/_defaults.scss +184 -0
  159. package/src/scss/_index.scss +15 -0
  160. package/src/scss/_init.scss +6 -0
  161. package/src/scss/_normalize.scss +197 -0
  162. package/src/scss/_variables.scss +95 -0
  163. package/src/scss/base/_index.scss +6 -0
  164. package/src/scss/base/button/_defaults.scss +49 -0
  165. package/src/scss/base/button/_index.scss +206 -0
  166. package/src/scss/base/button/_mixins.scss +104 -0
  167. package/src/scss/base/button/_variables.scss +252 -0
  168. package/src/scss/base/form/_defaults.scss +24 -0
  169. package/src/scss/base/form/_index.scss +227 -0
  170. package/src/scss/base/form/_variables.scss +245 -0
  171. package/src/scss/base/link/_defaults.scss +35 -0
  172. package/src/scss/base/link/_index.scss +245 -0
  173. package/src/scss/base/link/_variables.scss +370 -0
  174. package/src/scss/base/table/_defaults.scss +68 -0
  175. package/src/scss/base/table/_index.scss +314 -0
  176. package/src/scss/base/table/_variables.scss +309 -0
  177. package/src/scss/component/_index.scss +10 -0
  178. package/src/scss/component/accordion/_defaults.scss +40 -0
  179. package/src/scss/component/accordion/_index.scss +198 -0
  180. package/src/scss/component/accordion/_variables.scss +356 -0
  181. package/src/scss/component/alert/_defaults.scss +49 -0
  182. package/src/scss/component/alert/_index.scss +119 -0
  183. package/src/scss/component/alert/_variables.scss +200 -0
  184. package/src/scss/component/card/_defaults.scss +32 -0
  185. package/src/scss/component/card/_index.scss +212 -0
  186. package/src/scss/component/card/_variables.scss +216 -0
  187. package/src/scss/component/carousel/_defaults.scss +43 -0
  188. package/src/scss/component/carousel/_index.scss +192 -0
  189. package/src/scss/component/carousel/_variables.scss +104 -0
  190. package/src/scss/component/input-group/_defaults.scss +30 -0
  191. package/src/scss/component/input-group/_index.scss +47 -0
  192. package/src/scss/component/input-group/_variables.scss +66 -0
  193. package/src/scss/component/list/_defaults.scss +15 -0
  194. package/src/scss/component/list/_index.scss +52 -0
  195. package/src/scss/component/list/_variables.scss +236 -0
  196. package/src/scss/component/menu/_defaults.scss +57 -0
  197. package/src/scss/component/menu/_index.scss +308 -0
  198. package/src/scss/component/menu/_variables.scss +642 -0
  199. package/src/scss/component/navigation/_defaults.scss +23 -0
  200. package/src/scss/component/navigation/_index.scss +190 -0
  201. package/src/scss/component/navigation/_variables.scss +290 -0
  202. package/src/scss/functions/_container.scss +38 -0
  203. package/src/scss/functions/_important.scss +36 -0
  204. package/src/scss/functions/_screen.scss +38 -0
  205. package/src/scss/functions/_theme.scss +39 -0
  206. package/src/scss/functions/_utility.scss +28 -0
  207. package/src/scss/layout/_index.scss +5 -0
  208. package/src/scss/layout/columns/_defaults.scss +24 -0
  209. package/src/scss/layout/columns/_index.scss +137 -0
  210. package/src/scss/layout/columns/_variables.scss +55 -0
  211. package/src/scss/layout/container/_defaults.scss +35 -0
  212. package/src/scss/layout/container/_index.scss +628 -0
  213. package/src/scss/layout/container/_variables.scss +114 -0
  214. package/src/scss/layout/flex-columns/_defaults.scss +28 -0
  215. package/src/scss/layout/flex-columns/_index.scss +184 -0
  216. package/src/scss/layout/flex-columns/_variables.scss +30 -0
  217. package/src/scss/mixins/_animation.scss +15 -0
  218. package/src/scss/mixins/_container.scss +80 -0
  219. package/src/scss/mixins/_layer.scss +16 -0
  220. package/src/scss/mixins/_screen.scss +77 -0
  221. package/src/scss/mixins/_state.scss +18 -0
  222. package/src/scss/mixins/_theme.scss +15 -0
  223. package/src/scss/mixins/_utility.scss +185 -0
  224. package/src/scss/mixins/_visually-hidden.scss +30 -0
  225. package/src/scss/state/_index.scss +3 -0
  226. package/src/scss/state/focus/_defaults.scss +9 -0
  227. package/src/scss/state/focus/_index.scss +42 -0
  228. package/src/scss/state/focus/_mixins.scss +13 -0
  229. package/src/scss/state/focus/_variables.scss +50 -0
  230. package/src/scss/theme/_index.scss +4 -0
  231. package/src/scss/theme/color/_defaults.scss +143 -0
  232. package/src/scss/theme/color/_index.scss +42 -0
  233. package/src/scss/theme/color/_variables.scss +133 -0
  234. package/src/scss/theme/typography/_defaults.scss +54 -0
  235. package/src/scss/theme/typography/_index.scss +120 -0
  236. package/src/scss/theme/typography/_variables.scss +248 -0
  237. package/src/scss/utilities/_index.scss +23 -0
  238. package/src/scss/utilities/_template/_defaults.scss +41 -0
  239. package/src/scss/utilities/_template/_index.scss +171 -0
  240. package/src/scss/utilities/_template/_variables.scss +6 -0
  241. package/src/scss/utilities/alignment/_defaults.scss +76 -0
  242. package/src/scss/utilities/alignment/_index.scss +336 -0
  243. package/src/scss/utilities/alignment/_variables.scss +6 -0
  244. package/src/scss/utilities/background/_defaults.scss +122 -0
  245. package/src/scss/utilities/background/_index.scss +634 -0
  246. package/src/scss/utilities/background/_variables.scss +6 -0
  247. package/src/scss/utilities/border/_defaults.scss +73 -0
  248. package/src/scss/utilities/border/_index.scss +558 -0
  249. package/src/scss/utilities/border/_variables.scss +6 -0
  250. package/src/scss/utilities/color/_defaults.scss +49 -0
  251. package/src/scss/utilities/color/_index.scss +469 -0
  252. package/src/scss/utilities/color/_variables.scss +6 -0
  253. package/src/scss/utilities/container/_defaults.scss +40 -0
  254. package/src/scss/utilities/container/_index.scss +174 -0
  255. package/src/scss/utilities/container/_variables.scss +6 -0
  256. package/src/scss/utilities/display/_defaults.scss +47 -0
  257. package/src/scss/utilities/display/_index.scss +184 -0
  258. package/src/scss/utilities/display/_variables.scss +6 -0
  259. package/src/scss/utilities/flex/_defaults.scss +99 -0
  260. package/src/scss/utilities/flex/_index.scss +486 -0
  261. package/src/scss/utilities/flex/_variables.scss +6 -0
  262. package/src/scss/utilities/gradient/_defaults.scss +70 -0
  263. package/src/scss/utilities/gradient/_index.scss +696 -0
  264. package/src/scss/utilities/gradient/_variables.scss +29 -0
  265. package/src/scss/utilities/height/_defaults.scss +54 -0
  266. package/src/scss/utilities/height/_index.scss +525 -0
  267. package/src/scss/utilities/height/_variables.scss +6 -0
  268. package/src/scss/utilities/inset/_defaults.scss +55 -0
  269. package/src/scss/utilities/inset/_index.scss +258 -0
  270. package/src/scss/utilities/inset/_variables.scss +6 -0
  271. package/src/scss/utilities/justification/_defaults.scss +73 -0
  272. package/src/scss/utilities/justification/_index.scss +333 -0
  273. package/src/scss/utilities/justification/_variables.scss +6 -0
  274. package/src/scss/utilities/list/_defaults.scss +53 -0
  275. package/src/scss/utilities/list/_index.scss +253 -0
  276. package/src/scss/utilities/list/_variables.scss +6 -0
  277. package/src/scss/utilities/order/_defaults.scss +36 -0
  278. package/src/scss/utilities/order/_index.scss +246 -0
  279. package/src/scss/utilities/order/_variables.scss +6 -0
  280. package/src/scss/utilities/position/_defaults.scss +41 -0
  281. package/src/scss/utilities/position/_index.scss +178 -0
  282. package/src/scss/utilities/position/_variables.scss +6 -0
  283. package/src/scss/utilities/ratio/_defaults.scss +42 -0
  284. package/src/scss/utilities/ratio/_index.scss +188 -0
  285. package/src/scss/utilities/ratio/_variables.scss +9 -0
  286. package/src/scss/utilities/spacing/_defaults.scss +64 -0
  287. package/src/scss/utilities/spacing/_index.scss +970 -0
  288. package/src/scss/utilities/spacing/_variables.scss +6 -0
  289. package/src/scss/utilities/typography/_defaults.scss +58 -0
  290. package/src/scss/utilities/typography/_index.scss +1089 -0
  291. package/src/scss/utilities/typography/_variables.scss +6 -0
  292. package/src/scss/utilities/visibility/_defaults.scss +39 -0
  293. package/src/scss/utilities/visibility/_index.scss +173 -0
  294. package/src/scss/utilities/visibility/_variables.scss +6 -0
  295. package/src/scss/utilities/visually-hidden/_defaults.scss +29 -0
  296. package/src/scss/utilities/visually-hidden/_index.scss +189 -0
  297. package/src/scss/utilities/visually-hidden/_variables.scss +6 -0
  298. package/src/scss/utilities/width/_defaults.scss +54 -0
  299. package/src/scss/utilities/width/_index.scss +525 -0
  300. package/src/scss/utilities/width/_variables.scss +6 -0
  301. package/src/scss/utilities/z-index/_defaults.scss +40 -0
  302. package/src/scss/utilities/z-index/_index.scss +173 -0
  303. package/src/scss/utilities/z-index/_variables.scss +6 -0
@@ -0,0 +1,245 @@
1
+ // @graupl/core form base variables.
2
+ //
3
+ // These values are to be used to directly style bases and provide a
4
+ // cleaner way to reference custom properties.
5
+
6
+ @use "defaults";
7
+ @use "../../variables" as root-variables;
8
+ @use "../../defaults" as root-defaults;
9
+ @use "../../theme/typography/variables" as typography;
10
+ @use "../../theme/color/variables" as color;
11
+ @use "../../functions/theme";
12
+ @use "sass:map";
13
+
14
+ $input-padding-x: var(
15
+ --#{root-defaults.$prefix}input-padding-x,
16
+ #{map.get(root-variables.$spacers, 5)}
17
+ );
18
+ $input-padding-y: var(
19
+ --#{root-defaults.$prefix}input-padding-y,
20
+ #{map.get(root-variables.$spacers, 3)}
21
+ );
22
+ $input-padding: var(
23
+ --#{root-defaults.$prefix}input-padding,
24
+ #{$input-padding-y} #{$input-padding-x}
25
+ );
26
+ $input-font-size: var(
27
+ --#{root-defaults.$prefix}input-font-size,
28
+ #{map.get(typography.$font-sizes, base)}
29
+ );
30
+ $label-font-size: var(
31
+ --#{root-defaults.$prefix}label-font-size,
32
+ #{$input-font-size}
33
+ );
34
+ $fieldset-direction: var(
35
+ --#{root-defaults.$prefix}fieldset-direction,
36
+ #{defaults.$fieldset-direction}
37
+ );
38
+ $fieldset-gap: var(
39
+ --#{root-defaults.$prefix}fieldset-gap,
40
+ map.get(root-variables.$spacers, 2)
41
+ );
42
+ $fieldset-padding-x: var(
43
+ --#{root-defaults.$prefix}fieldset-padding-x,
44
+ #{$input-padding-x}
45
+ );
46
+ $fieldset-padding-y: var(
47
+ --#{root-defaults.$prefix}fieldset-padding-y,
48
+ #{$input-padding-y}
49
+ );
50
+ $fieldset-padding: var(
51
+ --#{root-defaults.$prefix}fieldset-padding,
52
+ #{$fieldset-padding-y} #{$fieldset-padding-x}
53
+ );
54
+ $fieldset-font-size: var(
55
+ --#{root-defaults.$prefix}fieldset-font-size,
56
+ #{$input-font-size}
57
+ );
58
+
59
+ // Background properties.
60
+ $input-background: var(
61
+ --#{root-defaults.$prefix}input-background,
62
+ #{color.$background}
63
+ );
64
+ $fieldset-background: var(
65
+ --#{root-defaults.$prefix}fieldset-background,
66
+ #{$input-background}
67
+ );
68
+
69
+ // Text properties.
70
+ $input-color: var(--#{root-defaults.$prefix}input-color, #{color.$color});
71
+ $input-placeholder-color: var(
72
+ --#{root-defaults.$prefix}input-placeholder-color,
73
+ #{theme.get(secondary, 600)}
74
+ );
75
+ $label-color: var(--#{root-defaults.$prefix}label-color, #{$input-color});
76
+ $fieldset-color: var(--#{root-defaults.$prefix}fieldset-color, #{$input-color});
77
+ $input-disabled-color: var(
78
+ --#{root-defaults.$prefix}input-disabled-color,
79
+ #{theme.get(secondary, 400)}
80
+ );
81
+ $input-placeholder-disabled-color: var(
82
+ --#{root-defaults.$prefix}input-placeholder-disabled-color,
83
+ #{$input-disabled-color}
84
+ );
85
+ $label-disabled-color: var(
86
+ --#{root-defaults.$prefix}label-disabled-color,
87
+ #{$input-disabled-color}
88
+ );
89
+ $fieldset-disabled-color: var(
90
+ --#{root-defaults.$prefix}fieldset-disabled-color,
91
+ #{$input-disabled-color}
92
+ );
93
+
94
+ // Border properties.
95
+ $input-border-top-width: var(
96
+ --#{root-defaults.$prefix}input-border-top-width,
97
+ #{root-variables.$border-top-width}
98
+ );
99
+ $input-border-right-width: var(
100
+ --#{root-defaults.$prefix}input-border-right-width,
101
+ #{root-variables.$border-right-width}
102
+ );
103
+ $input-border-bottom-width: var(
104
+ --#{root-defaults.$prefix}input-border-bottom-width,
105
+ #{root-variables.$border-bottom-width}
106
+ );
107
+ $input-border-left-width: var(
108
+ --#{root-defaults.$prefix}input-border-left-width,
109
+ #{root-variables.$border-left-width}
110
+ );
111
+ $input-border-width: var(
112
+ --#{root-defaults.$prefix}input-border-width,
113
+ #{$input-border-top-width} #{$input-border-right-width}
114
+ #{$input-border-bottom-width} #{$input-border-left-width}
115
+ );
116
+ $input-border-top-style: var(
117
+ --#{root-defaults.$prefix}input-border-top-style,
118
+ #{root-variables.$border-top-style}
119
+ );
120
+ $input-border-right-style: var(
121
+ --#{root-defaults.$prefix}input-border-right-style,
122
+ #{root-variables.$border-right-style}
123
+ );
124
+ $input-border-bottom-style: var(
125
+ --#{root-defaults.$prefix}input-border-bottom-style,
126
+ #{root-variables.$border-bottom-style}
127
+ );
128
+ $input-border-left-style: var(
129
+ --#{root-defaults.$prefix}input-border-left-style,
130
+ #{root-variables.$border-left-style}
131
+ );
132
+ $input-border-style: var(
133
+ --#{root-defaults.$prefix}input-border-style,
134
+ #{$input-border-top-style} #{$input-border-right-style}
135
+ #{$input-border-bottom-style} #{$input-border-left-style}
136
+ );
137
+ $input-border-top-left-radius: var(
138
+ --#{root-defaults.$prefix}input-border-top-left-radius,
139
+ #{root-variables.$border-top-left-radius}
140
+ );
141
+ $input-border-top-right-radius: var(
142
+ --#{root-defaults.$prefix}input-border-top-right-radius,
143
+ #{root-variables.$border-top-right-radius}
144
+ );
145
+ $input-border-bottom-left-radius: var(
146
+ --#{root-defaults.$prefix}input-border-bottom-left-radius,
147
+ #{root-variables.$border-bottom-left-radius}
148
+ );
149
+ $input-border-bottom-right-radius: var(
150
+ --#{root-defaults.$prefix}input-border-bottom-right-radius,
151
+ #{root-variables.$border-bottom-right-radius}
152
+ );
153
+ $input-border-radius: var(
154
+ --#{root-defaults.$prefix}input-border-radius,
155
+ #{$input-border-top-left-radius} #{$input-border-top-right-radius}
156
+ #{$input-border-bottom-right-radius} #{$input-border-bottom-left-radius}
157
+ );
158
+ $fieldset-border-top-width: var(
159
+ --#{root-defaults.$prefix}fieldset-border-top-width,
160
+ #{$input-border-top-width}
161
+ );
162
+ $fieldset-border-right-width: var(
163
+ --#{root-defaults.$prefix}fieldset-border-right-width,
164
+ #{$input-border-right-width}
165
+ );
166
+ $fieldset-border-bottom-width: var(
167
+ --#{root-defaults.$prefix}fieldset-border-bottom-width,
168
+ #{$input-border-bottom-width}
169
+ );
170
+ $fieldset-border-left-width: var(
171
+ --#{root-defaults.$prefix}fieldset-border-left-width,
172
+ #{$input-border-left-width}
173
+ );
174
+ $fieldset-border-width: var(
175
+ --#{root-defaults.$prefix}fieldset-border-width,
176
+ #{$fieldset-border-top-width} #{$fieldset-border-right-width}
177
+ #{$fieldset-border-bottom-width} #{$fieldset-border-left-width}
178
+ );
179
+ $fieldset-border-top-style: var(
180
+ --#{root-defaults.$prefix}fieldset-border-top-style,
181
+ #{$input-border-top-style}
182
+ );
183
+ $fieldset-border-right-style: var(
184
+ --#{root-defaults.$prefix}fieldset-border-right-style,
185
+ #{$input-border-right-style}
186
+ );
187
+ $fieldset-border-bottom-style: var(
188
+ --#{root-defaults.$prefix}fieldset-border-bottom-style,
189
+ #{$input-border-bottom-style}
190
+ );
191
+ $fieldset-border-left-style: var(
192
+ --#{root-defaults.$prefix}fieldset-border-left-style,
193
+ #{$input-border-left-style}
194
+ );
195
+ $fieldset-border-style: var(
196
+ --#{root-defaults.$prefix}fieldset-border-style,
197
+ #{$fieldset-border-top-style} #{$fieldset-border-right-style}
198
+ #{$fieldset-border-bottom-style} #{$fieldset-border-left-style}
199
+ );
200
+ $fieldset-border-top-left-radius: var(
201
+ --#{root-defaults.$prefix}fieldset-border-top-left-radius,
202
+ #{$input-border-top-left-radius}
203
+ );
204
+ $fieldset-border-top-right-radius: var(
205
+ --#{root-defaults.$prefix}fieldset-border-top-right-radius,
206
+ #{$input-border-top-right-radius}
207
+ );
208
+ $fieldset-border-bottom-left-radius: var(
209
+ --#{root-defaults.$prefix}fieldset-border-bottom-left-radius,
210
+ #{$input-border-bottom-left-radius}
211
+ );
212
+ $fieldset-border-bottom-right-radius: var(
213
+ --#{root-defaults.$prefix}fieldset-border-bottom-right-radius,
214
+ #{$input-border-bottom-right-radius}
215
+ );
216
+ $fieldset-border-radius: var(
217
+ --#{root-defaults.$prefix}fieldset-border-radius,
218
+ #{$fieldset-border-top-left-radius} #{$fieldset-border-top-right-radius}
219
+ #{$fieldset-border-bottom-right-radius}
220
+ #{$fieldset-border-bottom-left-radius}
221
+ );
222
+
223
+ // Border colour properties.
224
+ $input-border-color: var(
225
+ --#{root-defaults.$prefix}input-border-color,
226
+ #{color.$border-color}
227
+ );
228
+ $input-disabled-border-color: var(
229
+ --#{root-defaults.$prefix}input-disabled-border-color,
230
+ #{theme.get(secondary, 200)}
231
+ );
232
+ $fieldset-border-color: var(
233
+ --#{root-defaults.$prefix}fieldset-border-color,
234
+ #{$input-border-color}
235
+ );
236
+ $fieldset-disabled-border-color: var(
237
+ --#{root-defaults.$prefix}fieldset-disabled-border-color,
238
+ #{$input-disabled-border-color}
239
+ );
240
+
241
+ // Accent color properties.
242
+ $input-accent-color: var(
243
+ --#{root-defaults.$prefix}input-accent-color,
244
+ #{$input-color}
245
+ );
@@ -0,0 +1,35 @@
1
+ // @graupl/core link base default values.
2
+ //
3
+ // Generally, these should not be used directly when styling bases unless a static value is needed.
4
+ // They are mainly used to provide class selectors, fallbacks for custom properties, or loop values.
5
+ //
6
+ // They should not be used to define direct property values (i.e. font-size, color, etc.).
7
+ // Those should be defined as custom properties in the `_variables.scss` file.
8
+
9
+ @use "../../defaults" as root-defaults;
10
+
11
+ // Link selectors.
12
+ $selector-base: root-defaults.$element-selector-base !default;
13
+ $modifier-selector-base: root-defaults.$modifier-selector-base !default;
14
+ $link-selector-base: $selector-base !default;
15
+ $link-selector: "a" !default;
16
+ $stretched-link-selector-base: $modifier-selector-base !default;
17
+ $stretched-link-selector: "stretched" !default;
18
+ $stretched-link-pseudo-selector: "before" !default;
19
+
20
+ // Link properties.
21
+ $link-initial-text-decoration: underline !default;
22
+ $link-final-text-decoration: $link-initial-text-decoration !default;
23
+ $link-disabled-text-decoration: $link-initial-text-decoration !default;
24
+ $link-initial-text-decoration-style: solid !default;
25
+ $link-final-text-decoration-style: $link-initial-text-decoration-style !default;
26
+ $link-disabled-text-decoration-style: $link-initial-text-decoration-style !default;
27
+ $link-initial-transform: none !default;
28
+ $link-final-transform: $link-initial-transform !default;
29
+ $link-disabled-transform: $link-initial-transform !default;
30
+ $link-border-width: 0 !default;
31
+ $link-min-width: auto;
32
+ $link-min-height: auto;
33
+
34
+ // Stretched link properties.
35
+ $stretched-link-z-index: 5 !default;
@@ -0,0 +1,245 @@
1
+ // @graupl/core link base styles.
2
+ //
3
+ // This module provides the base styles for the link component.
4
+ //
5
+ // The link component is a styled anchor element that provides a consistent look and feel for links.
6
+ //
7
+ // The following selectors are generated by default:
8
+ // - `a`: The link component.
9
+ // - `.stretched`: A component modifier that makes the link component stretch to fill nearest relative container.
10
+ //
11
+ // The following custom properties control the generated selectors:
12
+ // - `--graupl-link-text-decoration`: The text decoration for the link component.
13
+ // - `--graupl-link-visited-text-decoration`: The text decoration for a visited link component.
14
+ // - `--graupl-link-focus-text-decoration`: The text decoration for a focused link component.
15
+ // - `--graupl-link-hover-text-decoration`: The text decoration for a hovered link component.
16
+ // - `--graupl-link-active-text-decoration`: The text decoration for an active link component.
17
+ // - `--graupl-link-disabled-text-decoration`: The text decoration for a disabled link component.
18
+ // - `--graupl-link-text-decoration-thickness`: The text decoration thickness for the link component.
19
+ // - `--graupl-link-visited-text-decoration-thickness`: The text decoration thickness for a visited link component.
20
+ // - `--graupl-link-focus-text-decoration-thickness`: The text decoration thickness for a focused link component.
21
+ // - `--graupl-link-hover-text-decoration-thickness`: The text decoration thickness for a hovered link component.
22
+ // - `--graupl-link-active-text-decoration-thickness`: The text decoration thickness for an active link component.
23
+ // - `--graupl-link-disabled-text-decoration-thickness`: The text decoration thickness for a disabled link component.
24
+ // - `--graupl-link-text-decoration-style`: The text decoration style for the link component.
25
+ // - `--graupl-link-visited-text-decoration-style`: The text decoration style for a visited link component.
26
+ // - `--graupl-link-focus-text-decoration-style`: The text decoration style for a focused link component.
27
+ // - `--graupl-link-hover-text-decoration-style`: The text decoration style for a hovered link component.
28
+ // - `--graupl-link-active-text-decoration-style`: The text decoration style for an active link component.
29
+ // - `--graupl-link-disabled-text-decoration-style`: The text decoration style for a disabled link component.
30
+ // - `--graupl-link-color`: The color for the link component.
31
+ // - `--graupl-link-visited-color`: The color for a visited link component.
32
+ // - `--graupl-link-focus-color`: The color for a focused link component.
33
+ // - `--graupl-link-hover-color`: The color for a hovered link component.
34
+ // - `--graupl-link-active-color`: The color for an active link component.
35
+ // - `--graupl-link-disabled-color`: The color for a disabled link component.
36
+ // - `--graupl-link-text-decoration-color`: The text decoration color for the link component.
37
+ // - `--graupl-link-visited-text-decoration-color`: The text decoration color for a visited link component.
38
+ // - `--graupl-link-focus-text-decoration-color`: The text decoration color for a focused link component.
39
+ // - `--graupl-link-hover-text-decoration-color`: The text decoration color for a hovered link component.
40
+ // - `--graupl-link-active-text-decoration-color`: The text decoration color for an active link component.
41
+ // - `--graupl-link-disabled-text-decoration-color`: The text decoration color for a disabled link component.
42
+ // - `--graupl-link-background`: The background color for the link component.
43
+ // - `--graupl-link-visited-background`: The background color for a visited link component.
44
+ // - `--graupl-link-focus-background`: The background color for a focused link component.
45
+ // - `--graupl-link-hover-background`: The background color for a hovered link component.
46
+ // - `--graupl-link-active-background`: The background color for an active link component.
47
+ // - `--graupl-link-disabled-background`: The background color for a disabled link component.
48
+ // - `--graupl-link-padding-x`: The horizontal padding for the link component.
49
+ // - `--graupl-link-padding-y`: The vertical padding for the link component.
50
+ // - `--graupl-link-padding`: The padding for the link component (combines x and y padding).
51
+ // - `--graupl-link-transition`: The transition for the link component.
52
+ // - `--graupl-link-transition-reduced-motion`: The transition for the link component when reduced motion is enabled.
53
+ // - `--graupl-link-transform`: The transform for the link component.
54
+ // - `--graupl-link-transform-visited`: The transform for a visited link component.
55
+ // - `--graupl-link-transform-focus`: The transform for a focused link component.
56
+ // - `--graupl-link-transform-hover`: The transform for a hovered link component.
57
+ // - `--graupl-link-transform-active`: The transform for an active link component.
58
+ // - `--graupl-link-transform-disabled`: The transform for a disabled link component.
59
+ // - `--graupl-link-border-top-width`: The top border width for the link component.
60
+ // - `--graupl-link-border-right-width`: The right border width for the link component.
61
+ // - `--graupl-link-border-bottom-width`: The bottom border width for the link component.
62
+ // - `--graupl-link-border-left-width`: The left border width for the link component.
63
+ // - `--graupl-link-border-width`: The border width for the link component (combines top, right, bottom, and left widths).
64
+ // - `--graupl-link-border-top-style`: The top border style for the link component.
65
+ // - `--graupl-link-border-right-style`: The right border style for the link component.
66
+ // - `--graupl-link-border-bottom-style`: The bottom border style for the link component.
67
+ // - `--graupl-link-border-left-style`: The left border style for the link component.
68
+ // - `--graupl-link-border-style`: The border style for the link component (combines top, right, bottom, and left styles).
69
+ // - `--graupl-link-border-top-left-radius`: The top left border radius for the link component.
70
+ // - `--graupl-link-border-top-right-radius`: The top right border radius for the link component.
71
+ // - `--graupl-link-border-bottom-right-radius`: The bottom right border radius for the link component.
72
+ // - `--graupl-link-border-bottom-left-radius`: The bottom left border radius for the link component.
73
+ // - `--graupl-link-border-radius`: The border radius for the link component (combines top-left, top-right, bottom-right, and bottom-left radii).
74
+ // - `--graupl-link-border-color`: The border color for the link component.
75
+ // - `--graupl-link-visited-border-color`: The border color for a visited link component.
76
+ // - `--graupl-link-focus-border-color`: The border color for a focused link component.
77
+ // - `--graupl-link-hover-border-color`: The border color for a hovered link component.
78
+ // - `--graupl-link-active-border-color`: The border color for an active link component.
79
+ // - `--graupl-link-disabled-border-color`: The border color for a disabled link component.
80
+ // - `--graupl-link-min-width`: The minimum width for the link component.
81
+ // - `--graupl-link-min-height`: The minimum height for the link component.
82
+ // - `--graupl-link-stretched-link-z-index`: The z-index for the stretched link component modifier.
83
+ //
84
+ // The following variables control the generated selectors:
85
+ // - `$selector-base`: The selector base for the component.
86
+ // - `$modifier-selector-base`: The selector base for component modifiers.
87
+ // - `$link-selector-base`: The base selector for the link component.
88
+ // - `$link-selector`: The selector for the link component.
89
+ // - `$stretched-link-selector-base`: The base selector for the stretched link component modifier.
90
+ // - `$stretched-link-selector`: The selector for the stretched link component modifier.
91
+ // - `$stretched-link-pseudo-selector`: The pseudo selector for the stretched link component modifier.
92
+ // - `$link-initial-text-decoration`: The initial text decoration for the link component.
93
+ // - `$link-final-text-decoration`: The final text decoration for the link component.
94
+ // - `$link-disabled-text-decoration`: The disabled text decoration for the link component.
95
+ // - `$link-initial-text-decoration-style`: The initial text decoration style for the link component.
96
+ // - `$link-final-text-decoration-style`: The final text decoration style for the link component.
97
+ // - `$link-disabled-text-decoration-style`: The disabled text decoration style for the link component.
98
+ // - `$link-initial-transform`: The initial transform for the link component.
99
+ // - `$link-final-transform`: The final transform for the link component.
100
+ // - `$link-disabled-transform`: The disabled transform for the link component.
101
+ // - `$link-border-width`: The border width for the link component.
102
+ // - `$link-min-width`: The minimum width for the link component.
103
+ // - `$link-min-height`: The minimum height for the link component.
104
+ // - `$stretched-link-z-index`: The z-index for the stretched link component modifier.
105
+ //
106
+ // @example
107
+ // <a href="#">Link</a>
108
+ //
109
+ // @example
110
+ // <a href="#" class="stretched">Stretched Link</a>
111
+
112
+ @use "../../defaults" as root-defaults;
113
+ @use "../../mixins/animation";
114
+ @use "../../mixins/layer" as *;
115
+ @use "defaults";
116
+ @use "sass:map";
117
+ @use "variables" as *;
118
+
119
+ @include layer(base) {
120
+ // a
121
+ #{defaults.$link-selector-base}#{defaults.$link-selector} {
122
+ min-width: $link-min-width;
123
+ min-height: $link-min-height;
124
+ padding: $link-padding;
125
+ transform: $link-transform;
126
+ transition: $link-transition;
127
+ border-width: $link-border-width;
128
+ border-style: $link-border-style;
129
+ border-radius: $link-border-radius;
130
+ text-decoration: $link-text-decoration;
131
+ text-decoration-style: $link-text-decoration-style;
132
+ text-decoration-thickness: $link-text-decoration-thickness;
133
+
134
+ @each $state, $selectors in root-defaults.$state-selectors {
135
+ @each $selector in $selectors {
136
+ // e.g &:visited, &:focus-visible, &:hover, &:active, &:disabled
137
+ &#{$selector} {
138
+ transform: map.get($link-transform-states, $state);
139
+ text-decoration: map.get($link-text-decoration-states, $state);
140
+ text-decoration-style: map.get(
141
+ $link-text-decoration-style-states,
142
+ $state
143
+ );
144
+ text-decoration-thickness: map.get(
145
+ $link-text-decoration-thickness-states,
146
+ $state
147
+ );
148
+
149
+ // If the state is disabled, we want that to supersede all other states.
150
+ @if $state == "disabled" {
151
+ cursor: not-allowed;
152
+
153
+ @each $sub-state, $sub-selectors in root-defaults.$state-selectors {
154
+ @if $sub-state != $state {
155
+ @each $sub-selector in $sub-selectors {
156
+ // e.g &:visited, &:focus-visible, &:hover, &:active
157
+ &#{$sub-selector} {
158
+ transform: map.get($link-transform-states, $state);
159
+ text-decoration: map.get(
160
+ $link-text-decoration-states,
161
+ $state
162
+ );
163
+ text-decoration-style: map.get(
164
+ $link-text-decoration-style-states,
165
+ $state
166
+ );
167
+ text-decoration-thickness: map.get(
168
+ $link-text-decoration-thickness-states,
169
+ $state
170
+ );
171
+ }
172
+ }
173
+ }
174
+ }
175
+ }
176
+ }
177
+ }
178
+ }
179
+
180
+ // &.stretched
181
+ &#{defaults.$stretched-link-selector-base}#{defaults.$stretched-link-selector} {
182
+ isolation: isolate;
183
+
184
+ // &::after
185
+ &::#{defaults.$stretched-link-pseudo-selector} {
186
+ content: "";
187
+ position: absolute;
188
+ inset: 0;
189
+ z-index: $stretched-link-z-index;
190
+ }
191
+ }
192
+ }
193
+
194
+ @include animation.off {
195
+ // a
196
+ #{defaults.$link-selector-base}#{defaults.$link-selector} {
197
+ --#{root-defaults.$prefix}link-transition: #{$link-transition-reduced-motion};
198
+ }
199
+ }
200
+ }
201
+
202
+ @include layer(theme) {
203
+ // a
204
+ #{defaults.$link-selector-base}#{defaults.$link-selector} {
205
+ border-color: $link-border-color;
206
+ background: $link-background;
207
+ color: $link-color;
208
+ text-decoration-color: $link-text-decoration-color;
209
+
210
+ @each $state, $selectors in root-defaults.$state-selectors {
211
+ @each $selector in $selectors {
212
+ // e.g &:visited, &:focus-visible, &:hover, &:active, &:disabled
213
+ &#{$selector} {
214
+ border-color: map.get($link-border-color-states, $state);
215
+ background: map.get($link-background-states, $state);
216
+ color: map.get($link-color-states, $state);
217
+ text-decoration-color: map.get(
218
+ $link-text-decoration-color-states,
219
+ $state
220
+ );
221
+
222
+ // If the state is disabled, we want that to supersede all other states.
223
+ @if $state == "disabled" {
224
+ @each $sub-state, $sub-selectors in root-defaults.$state-selectors {
225
+ @if $sub-state != $state {
226
+ @each $sub-selector in $sub-selectors {
227
+ // e.g &:visited, &:focus-visible, &:hover, &:active
228
+ &#{$sub-selector} {
229
+ border-color: map.get($link-border-color-states, $state);
230
+ background: map.get($link-background-states, $state);
231
+ color: map.get($link-color-states, $state);
232
+ text-decoration-color: map.get(
233
+ $link-text-decoration-color-states,
234
+ $state
235
+ );
236
+ }
237
+ }
238
+ }
239
+ }
240
+ }
241
+ }
242
+ }
243
+ }
244
+ }
245
+ }