@graupl/core 1.0.0-beta.22 → 1.0.0-beta.24

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 (273) hide show
  1. package/dist/css/base/button.css +2 -2
  2. package/dist/css/base/button.css.map +1 -1
  3. package/dist/css/base/form.css +2 -2
  4. package/dist/css/base/form.css.map +1 -1
  5. package/dist/css/base/link.css +2 -2
  6. package/dist/css/base/link.css.map +1 -1
  7. package/dist/css/base/table.css +2 -2
  8. package/dist/css/base/table.css.map +1 -1
  9. package/dist/css/base.css +2 -2
  10. package/dist/css/base.css.map +1 -1
  11. package/dist/css/component/accordion.css +2 -5
  12. package/dist/css/component/accordion.css.map +1 -1
  13. package/dist/css/component/alert.css +2 -2
  14. package/dist/css/component/alert.css.map +1 -1
  15. package/dist/css/component/badge.css +2 -2
  16. package/dist/css/component/badge.css.map +1 -1
  17. package/dist/css/component/card.css +2 -2
  18. package/dist/css/component/card.css.map +1 -1
  19. package/dist/css/component/carousel.css +2 -2
  20. package/dist/css/component/carousel.css.map +1 -1
  21. package/dist/css/component/disclosure.css +2 -2
  22. package/dist/css/component/disclosure.css.map +1 -1
  23. package/dist/css/component/input-group.css +2 -2
  24. package/dist/css/component/input-group.css.map +1 -1
  25. package/dist/css/component/list.css +2 -2
  26. package/dist/css/component/list.css.map +1 -1
  27. package/dist/css/component/menu.css +2 -2
  28. package/dist/css/component/menu.css.map +1 -1
  29. package/dist/css/component/navigation.css +2 -2
  30. package/dist/css/component/navigation.css.map +1 -1
  31. package/dist/css/component.css +2 -5
  32. package/dist/css/component.css.map +1 -1
  33. package/dist/css/graupl.css +2 -5
  34. package/dist/css/graupl.css.map +1 -1
  35. package/dist/css/init.css +2 -2
  36. package/dist/css/init.css.map +1 -1
  37. package/dist/css/layout/columns.css +2 -2
  38. package/dist/css/layout/columns.css.map +1 -1
  39. package/dist/css/layout/container.css +2 -2
  40. package/dist/css/layout/container.css.map +1 -1
  41. package/dist/css/layout/flex-columns.css +2 -2
  42. package/dist/css/layout/flex-columns.css.map +1 -1
  43. package/dist/css/layout.css +2 -5
  44. package/dist/css/layout.css.map +1 -1
  45. package/dist/css/normalize.css +2 -2
  46. package/dist/css/normalize.css.map +1 -1
  47. package/dist/css/state/focus.css +2 -2
  48. package/dist/css/state/focus.css.map +1 -1
  49. package/dist/css/state.css +2 -2
  50. package/dist/css/state.css.map +1 -1
  51. package/dist/css/theme/color.css +2 -2
  52. package/dist/css/theme/color.css.map +1 -1
  53. package/dist/css/theme/typography.css +2 -2
  54. package/dist/css/theme/typography.css.map +1 -1
  55. package/dist/css/theme.css +2 -2
  56. package/dist/css/theme.css.map +1 -1
  57. package/dist/css/utilities/alignment.css +1 -1
  58. package/dist/css/utilities/alignment.css.map +1 -1
  59. package/dist/css/utilities/background.css +2 -2
  60. package/dist/css/utilities/background.css.map +1 -1
  61. package/dist/css/utilities/border.css +2 -2
  62. package/dist/css/utilities/border.css.map +1 -1
  63. package/dist/css/utilities/color.css +2 -2
  64. package/dist/css/utilities/color.css.map +1 -1
  65. package/dist/css/utilities/container.css +1 -1
  66. package/dist/css/utilities/container.css.map +1 -1
  67. package/dist/css/utilities/display.css +2 -2
  68. package/dist/css/utilities/display.css.map +1 -1
  69. package/dist/css/utilities/flex.css +2 -2
  70. package/dist/css/utilities/flex.css.map +1 -1
  71. package/dist/css/utilities/gradient.css +2 -2
  72. package/dist/css/utilities/gradient.css.map +1 -1
  73. package/dist/css/utilities/height.css +2 -2
  74. package/dist/css/utilities/height.css.map +1 -1
  75. package/dist/css/utilities/inset.css +2 -2
  76. package/dist/css/utilities/inset.css.map +1 -1
  77. package/dist/css/utilities/justification.css +1 -1
  78. package/dist/css/utilities/justification.css.map +1 -1
  79. package/dist/css/utilities/list.css +1 -1
  80. package/dist/css/utilities/list.css.map +1 -1
  81. package/dist/css/utilities/order.css +2 -2
  82. package/dist/css/utilities/order.css.map +1 -1
  83. package/dist/css/utilities/position.css +2 -2
  84. package/dist/css/utilities/position.css.map +1 -1
  85. package/dist/css/utilities/ratio.css +2 -2
  86. package/dist/css/utilities/ratio.css.map +1 -1
  87. package/dist/css/utilities/spacing.css +2 -2
  88. package/dist/css/utilities/spacing.css.map +1 -1
  89. package/dist/css/utilities/typography.css +2 -2
  90. package/dist/css/utilities/typography.css.map +1 -1
  91. package/dist/css/utilities/visibility.css +2 -2
  92. package/dist/css/utilities/visibility.css.map +1 -1
  93. package/dist/css/utilities/visually-hidden.css +2 -2
  94. package/dist/css/utilities/visually-hidden.css.map +1 -1
  95. package/dist/css/utilities/width.css +2 -2
  96. package/dist/css/utilities/width.css.map +1 -1
  97. package/dist/css/utilities/z-index.css +1 -1
  98. package/dist/css/utilities/z-index.css.map +1 -1
  99. package/dist/css/utilities.css +2 -2
  100. package/dist/css/utilities.css.map +1 -1
  101. package/dist/js/accordion.js.map +1 -1
  102. package/dist/js/alert.js.map +1 -1
  103. package/dist/js/carousel.js.map +1 -1
  104. package/dist/js/component/accordion.cjs.js.map +1 -1
  105. package/dist/js/component/accordion.es.js.map +1 -1
  106. package/dist/js/component/accordion.iife.js.map +1 -1
  107. package/dist/js/component/alert.cjs.js.map +1 -1
  108. package/dist/js/component/alert.es.js.map +1 -1
  109. package/dist/js/component/alert.iife.js.map +1 -1
  110. package/dist/js/component/carousel.cjs.js.map +1 -1
  111. package/dist/js/component/carousel.es.js.map +1 -1
  112. package/dist/js/component/carousel.iife.js.map +1 -1
  113. package/dist/js/component/disclosure.cjs.js +2 -2
  114. package/dist/js/component/disclosure.cjs.js.map +1 -1
  115. package/dist/js/component/disclosure.es.js +2 -2
  116. package/dist/js/component/disclosure.es.js.map +1 -1
  117. package/dist/js/component/disclosure.iife.js +2 -2
  118. package/dist/js/component/disclosure.iife.js.map +1 -1
  119. package/dist/js/component/tabs.cjs.js +5 -0
  120. package/dist/js/component/tabs.cjs.js.map +1 -0
  121. package/dist/js/component/tabs.es.js +5 -0
  122. package/dist/js/component/tabs.es.js.map +1 -0
  123. package/dist/js/component/tabs.iife.js +5 -0
  124. package/dist/js/component/tabs.iife.js.map +1 -0
  125. package/dist/js/disclosure.js +2 -2
  126. package/dist/js/disclosure.js.map +1 -1
  127. package/dist/js/generator/accordion.cjs.js.map +1 -1
  128. package/dist/js/generator/accordion.es.js.map +1 -1
  129. package/dist/js/generator/accordion.iife.js.map +1 -1
  130. package/dist/js/generator/alert.cjs.js.map +1 -1
  131. package/dist/js/generator/alert.es.js.map +1 -1
  132. package/dist/js/generator/alert.iife.js.map +1 -1
  133. package/dist/js/generator/carousel.cjs.js.map +1 -1
  134. package/dist/js/generator/carousel.es.js.map +1 -1
  135. package/dist/js/generator/carousel.iife.js.map +1 -1
  136. package/dist/js/generator/disclosure.cjs.js +2 -2
  137. package/dist/js/generator/disclosure.cjs.js.map +1 -1
  138. package/dist/js/generator/disclosure.es.js +2 -2
  139. package/dist/js/generator/disclosure.es.js.map +1 -1
  140. package/dist/js/generator/disclosure.iife.js +2 -2
  141. package/dist/js/generator/disclosure.iife.js.map +1 -1
  142. package/dist/js/generator/navigation.cjs.js.map +1 -1
  143. package/dist/js/generator/navigation.es.js.map +1 -1
  144. package/dist/js/generator/navigation.iife.js.map +1 -1
  145. package/dist/js/generator/tabs.cjs.js +5 -0
  146. package/dist/js/generator/tabs.cjs.js.map +1 -0
  147. package/dist/js/generator/tabs.es.js +5 -0
  148. package/dist/js/generator/tabs.es.js.map +1 -0
  149. package/dist/js/generator/tabs.iife.js +5 -0
  150. package/dist/js/generator/tabs.iife.js.map +1 -0
  151. package/dist/js/graupl.js +5 -5
  152. package/dist/js/graupl.js.map +1 -1
  153. package/dist/js/navigation.js.map +1 -1
  154. package/dist/js/tabs.js +5 -0
  155. package/dist/js/tabs.js.map +1 -0
  156. package/package.json +4 -3
  157. package/src/js/disclosure/Disclosure.js +25 -45
  158. package/src/js/domHelpers.js +39 -22
  159. package/src/js/tabs/TabToggle.js +378 -0
  160. package/src/js/tabs/Tabs.js +1091 -0
  161. package/src/js/tabs/generator.js +32 -0
  162. package/src/js/tabs/index.js +5 -0
  163. package/src/scss/_defaults.scss +21 -88
  164. package/src/scss/_variables.scss +70 -0
  165. package/src/scss/base/button/_defaults.scss +2 -24
  166. package/src/scss/base/button/_index.scss +53 -52
  167. package/src/scss/base/button/_mixins.scss +24 -58
  168. package/src/scss/base/button/_variables.scss +139 -0
  169. package/src/scss/base/form/_defaults.scss +72 -2
  170. package/src/scss/base/form/_index.scss +196 -70
  171. package/src/scss/base/form/_variables.scss +166 -0
  172. package/src/scss/base/link/_defaults.scss +31 -0
  173. package/src/scss/base/link/_index.scss +177 -172
  174. package/src/scss/base/link/_variables.scss +215 -0
  175. package/src/scss/base/table/_defaults.scss +1 -11
  176. package/src/scss/base/table/_index.scss +126 -117
  177. package/src/scss/base/table/_variables.scss +214 -3
  178. package/src/scss/component/_index.scss +1 -0
  179. package/src/scss/component/accordion/_defaults.scss +73 -22
  180. package/src/scss/component/accordion/_index.scss +437 -62
  181. package/src/scss/component/accordion/_variables.scss +527 -101
  182. package/src/scss/component/alert/_defaults.scss +23 -32
  183. package/src/scss/component/alert/_index.scss +236 -30
  184. package/src/scss/component/alert/_variables.scss +155 -6
  185. package/src/scss/component/badge/_defaults.scss +1 -0
  186. package/src/scss/component/badge/_index.scss +25 -28
  187. package/src/scss/component/badge/_variables.scss +66 -2
  188. package/src/scss/component/card/_defaults.scss +64 -13
  189. package/src/scss/component/card/_index.scss +276 -30
  190. package/src/scss/component/card/_variables.scss +132 -0
  191. package/src/scss/component/carousel/_defaults.scss +73 -15
  192. package/src/scss/component/carousel/_index.scss +357 -41
  193. package/src/scss/component/carousel/_variables.scss +391 -0
  194. package/src/scss/component/disclosure/_index.scss +4 -4
  195. package/src/scss/component/disclosure/_variables.scss +127 -2
  196. package/src/scss/component/input-group/_defaults.scss +10 -3
  197. package/src/scss/component/input-group/_index.scss +72 -4
  198. package/src/scss/component/input-group/_variables.scss +37 -0
  199. package/src/scss/component/list/_defaults.scss +35 -2
  200. package/src/scss/component/list/_index.scss +159 -5
  201. package/src/scss/component/list/_variables.scss +152 -0
  202. package/src/scss/component/menu/_defaults.scss +49 -7
  203. package/src/scss/component/menu/_index.scss +325 -99
  204. package/src/scss/component/menu/_variables.scss +484 -1
  205. package/src/scss/component/navigation/_defaults.scss +45 -3
  206. package/src/scss/component/navigation/_index.scss +249 -98
  207. package/src/scss/component/navigation/_variables.scss +334 -5
  208. package/src/scss/component/tabs/_defaults.scss +82 -0
  209. package/src/scss/component/tabs/_index.scss +497 -0
  210. package/src/scss/component/tabs/_variables.scss +974 -0
  211. package/src/scss/layout/columns/_defaults.scss +5 -3
  212. package/src/scss/layout/columns/_index.scss +27 -21
  213. package/src/scss/layout/columns/_variables.scss +13 -0
  214. package/src/scss/layout/container/_defaults.scss +28 -11
  215. package/src/scss/layout/container/_index.scss +305 -161
  216. package/src/scss/layout/container/_variables.scss +148 -15
  217. package/src/scss/layout/flex-columns/_defaults.scss +5 -3
  218. package/src/scss/layout/flex-columns/_index.scss +28 -20
  219. package/src/scss/layout/flex-columns/_variables.scss +9 -0
  220. package/src/scss/mixins/_state.scss +37 -0
  221. package/src/scss/mixins/_theme.scss +36 -1
  222. package/src/scss/state/focus/_index.scss +17 -12
  223. package/src/scss/state/focus/_variables.scss +30 -4
  224. package/src/scss/theme/color/_defaults.scss +6 -35
  225. package/src/scss/theme/color/_index.scss +167 -1
  226. package/src/scss/theme/color/_variables.scss +155 -0
  227. package/src/scss/theme/typography/_defaults.scss +26 -19
  228. package/src/scss/theme/typography/_index.scss +176 -20
  229. package/src/scss/theme/typography/_variables.scss +186 -0
  230. package/src/scss/utilities/_template/_index.scss +0 -1
  231. package/src/scss/utilities/alignment/_defaults.scss +0 -33
  232. package/src/scss/utilities/alignment/_index.scss +24 -25
  233. package/src/scss/utilities/background/_defaults.scss +0 -77
  234. package/src/scss/utilities/background/_index.scss +32 -37
  235. package/src/scss/utilities/border/_defaults.scss +0 -33
  236. package/src/scss/utilities/border/_index.scss +25 -26
  237. package/src/scss/utilities/color/_defaults.scss +0 -19
  238. package/src/scss/utilities/color/_index.scss +22 -22
  239. package/src/scss/utilities/container/_defaults.scss +0 -11
  240. package/src/scss/utilities/container/_index.scss +20 -19
  241. package/src/scss/utilities/display/_defaults.scss +0 -11
  242. package/src/scss/utilities/display/_index.scss +20 -19
  243. package/src/scss/utilities/flex/_defaults.scss +0 -55
  244. package/src/scss/utilities/flex/_index.scss +28 -31
  245. package/src/scss/utilities/gradient/_defaults.scss +0 -28
  246. package/src/scss/utilities/gradient/_index.scss +27 -28
  247. package/src/scss/utilities/gradient/_variables.scss +15 -0
  248. package/src/scss/utilities/height/_defaults.scss +0 -8
  249. package/src/scss/utilities/height/_index.scss +22 -21
  250. package/src/scss/utilities/inset/_defaults.scss +0 -16
  251. package/src/scss/utilities/inset/_index.scss +20 -20
  252. package/src/scss/utilities/justification/_defaults.scss +0 -33
  253. package/src/scss/utilities/justification/_index.scss +24 -25
  254. package/src/scss/utilities/list/_defaults.scss +0 -22
  255. package/src/scss/utilities/list/_index.scss +22 -22
  256. package/src/scss/utilities/order/_defaults.scss +0 -8
  257. package/src/scss/utilities/order/_index.scss +20 -19
  258. package/src/scss/utilities/position/_defaults.scss +0 -11
  259. package/src/scss/utilities/position/_index.scss +20 -19
  260. package/src/scss/utilities/ratio/_defaults.scss +0 -8
  261. package/src/scss/utilities/ratio/_index.scss +22 -21
  262. package/src/scss/utilities/ratio/_variables.scss +6 -0
  263. package/src/scss/utilities/spacing/_defaults.scss +0 -11
  264. package/src/scss/utilities/spacing/_index.scss +18 -17
  265. package/src/scss/utilities/typography/_defaults.scss +0 -22
  266. package/src/scss/utilities/typography/_index.scss +27 -26
  267. package/src/scss/utilities/visibility/_defaults.scss +0 -11
  268. package/src/scss/utilities/visibility/_index.scss +19 -18
  269. package/src/scss/utilities/visually-hidden/_index.scss +19 -17
  270. package/src/scss/utilities/width/_defaults.scss +0 -8
  271. package/src/scss/utilities/width/_index.scss +21 -20
  272. package/src/scss/utilities/z-index/_defaults.scss +0 -11
  273. package/src/scss/utilities/z-index/_index.scss +19 -18
@@ -8,51 +8,79 @@
8
8
  @use "../../defaults" as root-defaults;
9
9
  @use "sass:map";
10
10
 
11
- $container-gap: var(
12
- --#{root-defaults.$prefix}container-gap,
13
- #{map.get(root-variables.$spacers, 5)}
11
+ // --graupl-container-sidebar-width
12
+ $container-sidebar-width: var(
13
+ --#{root-defaults.$prefix}container-sidebar-width,
14
+ #{defaults.$container-sidebar-width}
14
15
  );
16
+
17
+ // --graupl-container-breakout-width
18
+ $container-breakout-width: var(
19
+ --#{root-defaults.$prefix}container-breakout-width,
20
+ #{defaults.$container-breakout-width}
21
+ );
22
+
23
+ // --graupl-container-feature-width
24
+ $container-feature-width: var(
25
+ --#{root-defaults.$prefix}container-feature-width,
26
+ #{defaults.$container-feature-width}
27
+ );
28
+
29
+ // --graupl-container-content-max-width
15
30
  $container-content-max-width: var(
16
31
  --#{root-defaults.$prefix}container-content-max-width,
17
32
  #{root-variables.$content-max-width}
18
33
  );
19
- $container-sidebar-width: var(
20
- --#{root-defaults.$prefix}container-sidebar-width,
21
- #{defaults.$container-sidebar-width}
22
- );
34
+
35
+ // --graupl-container-breakout-max-width
23
36
  $container-breakout-max-width: var(
24
37
  --#{root-defaults.$prefix}container-breakout-max-width,
25
- calc(#{$container-content-max-width} + #{defaults.$container-breakout-width})
38
+ calc(#{$container-content-max-width} + #{$container-breakout-width})
26
39
  );
40
+
41
+ // --graupl-container-feature-max-width
27
42
  $container-feature-max-width: var(
28
43
  --#{root-defaults.$prefix}container-feature-max-width,
29
- calc(#{$container-breakout-max-width} + #{defaults.$container-feature-width})
44
+ calc(#{$container-breakout-max-width} + #{$container-feature-width})
30
45
  );
46
+
47
+ // --graupl-container-full-width-section-min-width
31
48
  $container-full-width-section-min-width: var(
32
49
  --#{root-defaults.$prefix}container-full-width-section-min-width,
33
- #{$container-gap}
50
+ #{map.get(root-variables.$spacers, 5)}
34
51
  );
52
+
53
+ // --graupl-container-full-width-section-max-width
35
54
  $container-full-width-section-max-width: var(
36
55
  --#{root-defaults.$prefix}container-full-width-section-max-width,
37
56
  1fr
38
57
  );
58
+
59
+ // --graupl-container-feature-section-min-width
39
60
  $container-feature-section-min-width: var(
40
61
  --#{root-defaults.$prefix}container-feature-section-min-width,
41
62
  0rem
42
63
  );
64
+
65
+ // --graupl-container-feature-section-max-width
43
66
  $container-feature-section-max-width: var(
44
67
  --#{root-defaults.$prefix}container-feature-section-max-width,
45
68
  calc((#{$container-feature-max-width} - #{$container-breakout-max-width}) / 2)
46
69
  );
70
+
71
+ // --graupl-container-breakout-section-min-width
47
72
  $container-breakout-section-min-width: var(
48
73
  --#{root-defaults.$prefix}container-breakout-section-min-width,
49
74
  0rem
50
75
  );
76
+
77
+ // --graupl-container-breakout-section-max-width
51
78
  $container-breakout-section-max-width: var(
52
79
  --#{root-defaults.$prefix}container-breakout-section-max-width,
53
80
  calc((#{$container-breakout-max-width} - #{$container-content-max-width}) / 2)
54
81
  );
55
82
  /* stylelint-disable scss/operator-no-newline-after -- Prettier wants to format it this way. */
83
+ // --graupl-container-content-section-min-width
56
84
  $container-content-section-min-width: var(
57
85
  --#{root-defaults.$prefix}container-content-section-min-width,
58
86
  calc(
@@ -62,10 +90,13 @@ $container-content-section-min-width: var(
62
90
  )
63
91
  );
64
92
  /* stylelint-enable scss/operator-no-newline-after */
93
+ // --graupl-container-content-section-max-width
65
94
  $container-content-section-max-width: var(
66
95
  --#{root-defaults.$prefix}container-content-section-max-width,
67
96
  #{$container-content-max-width}
68
97
  );
98
+
99
+ // --graupl-container-full-width-section-width
69
100
  $container-full-width-section-width: var(
70
101
  --#{root-defaults.$prefix}container-full-width-section-width,
71
102
  minmax(
@@ -73,6 +104,8 @@ $container-full-width-section-width: var(
73
104
  #{$container-full-width-section-max-width}
74
105
  )
75
106
  );
107
+
108
+ // --graupl-container-feature-section-width
76
109
  $container-feature-section-width: var(
77
110
  --#{root-defaults.$prefix}container-feature-section-width,
78
111
  minmax(
@@ -80,6 +113,8 @@ $container-feature-section-width: var(
80
113
  #{$container-feature-section-max-width}
81
114
  )
82
115
  );
116
+
117
+ // --graupl-container-breakout-section-width
83
118
  $container-breakout-section-width: var(
84
119
  --#{root-defaults.$prefix}container-breakout-section-width,
85
120
  minmax(
@@ -87,6 +122,8 @@ $container-breakout-section-width: var(
87
122
  #{$container-breakout-section-max-width}
88
123
  )
89
124
  );
125
+
126
+ // --graupl-container-content-section-width
90
127
  $container-content-section-width: var(
91
128
  --#{root-defaults.$prefix}container-content-section-width,
92
129
  min(
@@ -94,21 +131,117 @@ $container-content-section-width: var(
94
131
  #{$container-content-section-max-width}
95
132
  )
96
133
  );
134
+
135
+ // --graupl-container-sidebar-left-section-width
97
136
  $container-sidebar-left-section-width: var(
98
137
  --#{root-defaults.$prefix}container-sidebar-left-section-width,
99
- $container-sidebar-width
138
+ max($container-sidebar-width, $container-feature-section-max-width)
100
139
  );
140
+
141
+ // --graupl-container-sidebar-right-section-width
101
142
  $container-sidebar-right-section-width: var(
102
143
  --#{root-defaults.$prefix}container-sidebar-right-section-width,
103
- $container-sidebar-width
144
+ max($container-sidebar-width, $container-feature-section-max-width)
145
+ );
146
+
147
+ // --graupl-container-sidebars-breakout-section-width
148
+ $container-sidebars-breakout-section-width: var(
149
+ --#{root-defaults.$prefix}container-sidebars-breakout-section-width,
150
+ #{$container-breakout-section-max-width}
104
151
  );
105
152
  /* stylelint-disable scss/operator-no-newline-after -- Prettier wants to format it this way. */
106
- $container-inner-content-section-width: var(
107
- --#{root-defaults.$prefix}container-inner-content-section-width,
153
+ // --graupl-container-sidebars-content-section-min-width
154
+ $container-sidebars-content-section-min-width: var(
155
+ --#{root-defaults.$prefix}container-sidebars-content-section-min-width,
156
+ calc(
157
+ 100% - (#{$container-full-width-section-min-width} * 2) -
158
+ (#{$container-feature-section-min-width} * 2) -
159
+ (#{$container-sidebars-breakout-section-width} * 2) -
160
+ #{$container-sidebar-left-section-width} -
161
+ #{$container-sidebar-right-section-width}
162
+ )
163
+ );
164
+
165
+ // --graupl-container-sidebars-content-section-max-width
166
+ $container-sidebars-content-section-max-width: var(
167
+ --#{root-defaults.$prefix}container-sidebars-content-section-max-width,
108
168
  calc(
109
- #{$container-content-section-width} -
169
+ #{$container-content-section-max-width} -
110
170
  #{$container-sidebar-left-section-width} -
171
+ #{$container-sidebar-right-section-width} +
172
+ min($container-sidebar-width, $container-feature-section-max-width) +
173
+ min($container-sidebar-width, $container-feature-section-max-width)
174
+ )
175
+ );
176
+
177
+ // --graupl-container-sidebars-content-section-width
178
+ $container-sidebars-content-section-width: var(
179
+ --#{root-defaults.$prefix}container-sidebars-content-section-width,
180
+ min(
181
+ #{$container-sidebars-content-section-min-width},
182
+ #{$container-sidebars-content-section-max-width}
183
+ )
184
+ );
185
+
186
+ // --graupl-container-sidebars-right-content-section-min-width
187
+ $container-sidebars-right-content-section-min-width: var(
188
+ --#{root-defaults.$prefix}container-sidebars-right-content-section-min-width,
189
+ calc(
190
+ 100% - (#{$container-full-width-section-min-width} * 2) -
191
+ (#{$container-feature-section-min-width} * 2) -
192
+ #{$container-breakout-section-min-width} -
193
+ #{$container-sidebars-breakout-section-width} -
111
194
  #{$container-sidebar-right-section-width}
112
195
  )
113
196
  );
197
+
198
+ // --graupl-container-sidebars-right-content-section-max-width
199
+ $container-sidebars-right-content-section-max-width: var(
200
+ --#{root-defaults.$prefix}container-sidebars-right-content-section-max-width,
201
+ calc(
202
+ #{$container-content-section-max-width} -
203
+ #{$container-sidebar-right-section-width} +
204
+ min($container-sidebar-width, $container-feature-section-max-width)
205
+ )
206
+ );
207
+
208
+ // --graupl-container-sidebars-right-content-section-width
209
+ $container-sidebars-right-content-section-width: var(
210
+ --#{root-defaults.$prefix}container-sidebars-right-content-section-width,
211
+ min(
212
+ $container-sidebars-right-content-section-min-width,
213
+ $container-sidebars-right-content-section-max-width
214
+ )
215
+ );
216
+
217
+ // --graupl-container-sidebars-left-content-section-min-width
218
+ $container-sidebars-left-content-section-min-width: var(
219
+ --#{root-defaults.$prefix}container-sidebars-left-content-section-min-width,
220
+ calc(
221
+ 100% - (#{$container-full-width-section-min-width} * 2) -
222
+ (#{$container-feature-section-min-width} * 2) -
223
+ #{$container-breakout-section-min-width} -
224
+ #{$container-sidebars-breakout-section-width} -
225
+ #{$container-sidebar-left-section-width}
226
+ )
227
+ );
228
+
229
+ // --graupl-container-sidebars-left-content-section-max-width
230
+ $container-sidebars-left-content-section-max-width: var(
231
+ --#{root-defaults.$prefix}container-sidebars-left-content-section-max-width,
232
+ calc(
233
+ #{$container-content-section-max-width} -
234
+ #{$container-sidebar-left-section-width} +
235
+ min($container-sidebar-width, $container-feature-section-max-width)
236
+ )
237
+ );
238
+
239
+ // --graupl-container-sidebars-left-content-section-width
240
+ $container-sidebars-left-content-section-width: var(
241
+ --#{root-defaults.$prefix}container-sidebars-left-content-section-width,
242
+ min(
243
+ $container-sidebars-left-content-section-min-width,
244
+ $container-sidebars-left-content-section-max-width
245
+ )
246
+ );
114
247
  /* stylelint-enable scss/operator-no-newline-after */
@@ -9,11 +9,13 @@
9
9
  @use "../../defaults" as root-defaults;
10
10
 
11
11
  // Flex columns selectors.
12
- $flex-columns-selector-base: root-defaults.$component-selector-base !default;
12
+ $selector-base: root-defaults.$component-selector-base !default;
13
+ $modifier-selector-base: root-defaults.$modifier-selector-base !default;
14
+ $flex-columns-selector-base: $selector-base !default;
13
15
  $flex-columns-selector: "flex-columns" !default;
14
- $flex-columns-column-selector-base: $flex-columns-selector-base !default;
16
+ $flex-columns-column-selector-base: $selector-base !default;
15
17
  $flex-columns-column-selector: "col-" !default;
16
- $flex-columns-fill-selector-base: $flex-columns-selector-base !default;
18
+ $flex-columns-fill-selector-base: $selector-base !default;
17
19
  $flex-columns-fill-selector: "fill" !default;
18
20
  $flex-columns-screen-aware-separator: root-defaults.$screen-aware-selector-separator !default;
19
21
  $flex-columns-container-aware-separator: root-defaults.$container-aware-selector-separator !default;
@@ -26,27 +26,35 @@
26
26
  // - `.[screen-name]:col-#`: A class to set the size of a column at a specific screen size.
27
27
  // - `.[container-name]:col-#`: A class to set the size of a column at a specific container size.
28
28
  //
29
- // The following custom properties control the generated classes:
30
- // - `--graupl-flex-columns-row-gap`: The gap between the rows of the flex columns.
31
- // - `--graupl-flex-columns-column-gap`: The gap between the columns of the flex columns.
32
- // - `--graupl-flex-columns-size`: The size of a column.
33
- // - `--graupl-flex-columns-max-width`: The maximum width of a column.
29
+ // The following custom properties can be used to customize the flex columns component:
30
+ // | Property | Description | Default Value |
31
+ // | --- | --- | --- |
32
+ // | `--graupl-flex-columns-row-gap` | The gap between the rows of the flex columns. | `var(--graupl-spacer-5)` |
33
+ // | `--graupl-flex-columns-column-gap` | The gap between the columns of the flex columns. | `var(--graupl-spacer-5)` |
34
+ // | `--graupl-flex-columns-size` | The size of a column. | `auto` |
35
+ // | `--graupl-flex-columns-max-width` | The maximum width of a column. | `unset` |
36
+ // | `--graupl-flex-columns-container-type` | The container type applied to the flex columns component. | `inline-size` |
34
37
  //
35
- // The following variables control the generated classes:
36
- // - `$flex-columns-selector-base`: The base selector for the flex columns component.
37
- // - `$flex-columns-selector`: The selector for the flex columns component.
38
- // - `$flex-columns-column-selector-base`: The base selector for the column class.
39
- // - `$flex-columns-column-selector`: The selector for the column class.
40
- // - `$flex-columns-fill-selector-base`: The base selector for the fill class.
41
- // - `$flex-columns-fill-selector`: The selector for the fill class.
42
- // - `$flex-columns-screen-aware-separator`: The separator for the screen-aware column class.
43
- // - `$flex-columns-container-aware-separator`: The separator for the container-aware column class.
44
- // - `$flex-columns-screen-aware-selector-prefix`: The prefix for the screen-aware column class.
45
- // - `$flex-columns-container-aware-selector-prefix`: The prefix for the container-aware column class.
46
- // - `$flex-columns-min-count`: The minimum number of columns used to generate `.col-#` classes.
47
- // - `$flex-columns-max-count`: The maximum number of columns used to generate `.col-#` classes.
48
- // - `$flex-columns-size`: The default size of a column.
49
- // - `$flex-columns-max-width`: The default maximum width of a column.
38
+ // The following sass variables can be used to customize the generation of the flex columns component:
39
+ // | Variable | Description | Default Value |
40
+ // | --- | --- | --- |
41
+ // | `$selector-base` | The base selector for the component. | `"."` |
42
+ // | `$modifier-selector-base` | The base selector for component modifiers. | `"."` |
43
+ // | `$flex-columns-selector-base` | The base selector for the flex columns component. | `$selector-base` |
44
+ // | `$flex-columns-selector` | The selector for the flex columns component. | `"flex-columns"` |
45
+ // | `$flex-columns-column-selector-base` | The base selector for the column class. | `$selector-base` |
46
+ // | `$flex-columns-column-selector` | The selector for the column class. | `"col-"` |
47
+ // | `$flex-columns-fill-selector-base` | The base selector for the fill class. | `$selector-base` |
48
+ // | `$flex-columns-fill-selector` | The selector for the fill class. | `"fill"` |
49
+ // | `$flex-columns-screen-aware-separator` | The separator for the screen-aware column class. | `"\\:"` |
50
+ // | `$flex-columns-container-aware-separator` | The separator for the container-aware column class. | `"\\:"` |
51
+ // | `$flex-columns-screen-aware-selector-prefix` | The prefix for the screen-aware column class. | `""` |
52
+ // | `$flex-columns-container-aware-selector-prefix` | The prefix for the container-aware column class. | `"cq\\:"` |
53
+ // | `$flex-columns-min-count` | The minimum number of columns used to generate `.col-#` classes. | `1` |
54
+ // | `$flex-columns-max-count` | The maximum number of columns used to generate `.col-#` classes. | `12` |
55
+ // | `$flex-columns-size` | The default size of a column. | `auto` |
56
+ // | `$flex-columns-max-width` | The default maximum width of a column. | `unset` |
57
+ // | `$flex-columns-container-type` | The container type applied to the flex columns component. | `"inline-size"` |
50
58
  //
51
59
  // @example
52
60
  // <div class="flex-columns">
@@ -8,22 +8,31 @@
8
8
  @use "../columns/variables" as columns-variables;
9
9
 
10
10
  // Flex columns properties.
11
+ // --graupl-flex-columns-row-gap
11
12
  $flex-columns-row-gap: var(
12
13
  --#{root-defaults.$prefix}flex-columns-row-gap,
13
14
  #{columns-variables.$columns-row-gap}
14
15
  );
16
+
17
+ // --graupl-flex-columns-column-gap
15
18
  $flex-columns-column-gap: var(
16
19
  --#{root-defaults.$prefix}flex-columns-column-gap,
17
20
  #{columns-variables.$columns-column-gap}
18
21
  );
22
+
23
+ // --graupl-flex-columns-size
19
24
  $flex-columns-size: var(
20
25
  --#{root-defaults.$prefix}flex-columns-size,
21
26
  #{defaults.$flex-columns-size}
22
27
  );
28
+
29
+ // --graupl-flex-columns-max-width
23
30
  $flex-columns-max-width: var(
24
31
  --#{root-defaults.$prefix}flex-columns-max-width,
25
32
  #{defaults.$flex-columns-max-width}
26
33
  );
34
+
35
+ // --graupl-flex-columns-container-type
27
36
  $flex-columns-container-type: var(
28
37
  --#{root-defaults.$prefix}flex-columns-container-type,
29
38
  #{defaults.$flex-columns-container-type}
@@ -16,3 +16,40 @@
16
16
  }
17
17
  }
18
18
  }
19
+
20
+ /// Generates state modifiers with properties.
21
+ ///
22
+ /// @param {map} $state-map
23
+ /// The map of props and states.
24
+ /// @param {string} $selector-base
25
+ /// The selector base for the state modifier.
26
+ /// @param {string} $selector-prefix
27
+ /// The selector prefix for the state modifer.
28
+ @mixin generate-modifiers($state-map) {
29
+ @each $state, $selectors in root-defaults.$state-selectors {
30
+ @each $selector in $selectors {
31
+ // e.g &:visited, &:focus-visible, &:hover, &:active, &:disabled
32
+ &#{$selector} {
33
+ @each $prop, $map in $state-map {
34
+ #{$prop}: map.get($map, $state);
35
+ }
36
+
37
+ // If the state is disabled, we want that to supersede all other states.
38
+ @if $state == "disabled" {
39
+ @each $sub-state, $sub-selectors in root-defaults.$state-selectors {
40
+ @if $sub-state != $state {
41
+ @each $sub-selector in $sub-selectors {
42
+ // e.g &:visited, &:focus-visible, &:hover, &:active
43
+ &#{$sub-selector} {
44
+ @each $prop, $map in $state-map {
45
+ #{$prop}: map.get($map, $state);
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
@@ -2,14 +2,49 @@
2
2
  //
3
3
  // A series of mixins to tie styles to a theme-mode.
4
4
 
5
+ @use "../functions/theme";
5
6
  @use "../theme/color/defaults" as color-defaults;
7
+ @use "../defaults" as root-defaults;
8
+ @use "sass:map";
6
9
 
7
10
  /// Applies styles to a specific theme mode.
8
11
  ///
9
12
  /// @param {string} $theme-name
10
13
  /// The name of the theme mode to apply the styles to.
11
14
  @mixin theme($theme-name) {
12
- #{color-defaults.$theme-selector-prefix}#{$theme-name}#{color-defaults.$theme-selector-suffix} {
15
+ #{color-defaults.$theme-selector-base}#{color-defaults.$theme-selector-prefix}#{$theme-name}#{color-defaults.$theme-selector-suffix} {
13
16
  @content;
14
17
  }
15
18
  }
19
+
20
+ /// Generates a theme modifiers with custom props.
21
+ ///
22
+ /// @param {map} $theme-map
23
+ /// The map of custom props.
24
+ /// @param {string} $selector-base
25
+ /// The selector base for the theme modifier.
26
+ /// @param {string} $selector-prefix
27
+ /// The selector prefix for the theme modifer.
28
+ /// @param {string} $scope
29
+ /// The scope of the custom properties.
30
+ /// @param {string} $base
31
+ /// The base selector to append the theme modifier to.
32
+ @mixin generate-modifiers(
33
+ $theme-map,
34
+ $selector-base,
35
+ $selector-prefix,
36
+ $scope: "",
37
+ $base: "&"
38
+ ) {
39
+ @each $color, $map in $theme-map {
40
+ // e.g. &.primary, &.secondary, &.tertiary
41
+ #{$base}#{$selector-base}#{$selector-prefix}#{$color} {
42
+ @each $prop, $value in $map {
43
+ --#{root-defaults.$prefix}#{$scope}#{$prop}: #{theme.get(
44
+ map.get($value, color),
45
+ map.get($value, shade)
46
+ )};
47
+ }
48
+ }
49
+ }
50
+ }
@@ -6,20 +6,25 @@
6
6
  //
7
7
  // The following classes are generated by default:
8
8
  // - `.focus`: The focus state class.
9
+ // - `:focus-visible`: The focus pseudo-class (from the root state selectors).
9
10
  //
10
- // The following custom properties control the generated classes:
11
- // - `--graupl-focus-width`: The width of the focus outline.
12
- // - `--graupl-focus-outline-color`: The color of the focus outline.
13
- // - `--graupl-focus-outline-width`: The width of the focus outline.
14
- // - `--graupl-focus-outline-style`: The style of the focus outline.
15
- // - `--graupl-focus-outline-offset`: The offset of the focus outline.
16
- // - `--graupl-focus-box-shadow-color`: The color of the focus box shadow.
17
- // - `--graupl-focus-box-shadow-style`: The style of the focus box shadow.
18
- // - `--graupl-focus-box-shadow`: The box shadow of the focus state.
11
+ // The following custom properties can be used to customize the focus state:
12
+ // | Property | Description | Default Value |
13
+ // | --- | --- | --- |
14
+ // | `--graupl-focus-width` | The width of both the focus outline and box shadow. | `var(--graupl-border-width)` |
15
+ // | `--graupl-focus-outline-color` | The color of the focus outline. | `var(--graupl-color)` |
16
+ // | `--graupl-focus-outline-width` | The width of the focus outline. | `var(--graupl-focus-width)` |
17
+ // | `--graupl-focus-outline-style` | The style of the focus outline. | `dotted` |
18
+ // | `--graupl-focus-outline` | The outline applied in the focus state. | `var(--graupl-focus-outline-width) var(--graupl-focus-outline-style) var(--graupl-focus-outline-color)` |
19
+ // | `--graupl-focus-outline-offset` | The offset of the focus outline. | `calc(-1 * var(--graupl-focus-outline-width))` |
20
+ // | `--graupl-focus-box-shadow-color` | The color of the focus box shadow. | `var(--graupl-background)` |
21
+ // | `--graupl-focus-border-color` | The color applied to the border in the focus state. | `var(--graupl-background)` |
22
+ // | `--graupl-focus-box-shadow` | The box shadow of the focus state. | `0 0 0 var(--graupl-focus-width) inset var(--graupl-focus-box-shadow-color)` |
19
23
  //
20
- // The following variables control the generated classes:
21
- // - `$focus-outline-style`: The style of the focus outline.
22
- // - `$focus-box-shadow-style`: The style of the focus box shadow.
24
+ // The following sass variables can be used to customize the generation of the focus state:
25
+ // | Variable | Description | Default Value |
26
+ // | --- | --- | --- |
27
+ // | `$focus-outline-style` | The style of the focus outline. | `dotted` |
23
28
  //
24
29
  // Note: This focus styles are also applied to the `:focus-visible` pseudo-class by default.
25
30
  //
@@ -3,48 +3,74 @@
3
3
  // These values are to be used to directly style components and provide a
4
4
  // cleaner way to reference custom properties.
5
5
 
6
+ // Custom property defaults:
7
+ // | Custom property | Default |
8
+ // | ------------------------------- | ----------------------------------------------------------------------------------------------------- |
9
+ // | --graupl-focus-width | var(--graupl-border-width) |
10
+ // | --graupl-focus-outline-color | var(--graupl-color) |
11
+ // | --graupl-focus-outline-width | var(--graupl-focus-width) |
12
+ // | --graupl-focus-outline-style | solid |
13
+ // | --graupl-focus-outline | var(--graupl-focus-outline-width) var(--graupl-focus-outline-style) var(--graupl-focus-outline-color) |
14
+ // | --graupl-focus-outline-offset | calc(-1 * var(--graupl-focus-outline-width)) |
15
+ // | --graupl-focus-box-shadow-color | var(--graupl-background) |
16
+ // | --graupl-focus-border-color | var(--graupl-background) |
17
+ // | --graupl-focus-box-shadow | 0 0 0 var(--graupl-focus-width) inset var(--graupl-focus-box-shadow-color) |
18
+
6
19
  @use "../../variables" as root-variables;
7
20
  @use "defaults";
8
21
  @use "../../defaults" as root-defaults;
9
22
  @use "../../theme/color/variables" as color;
10
23
 
24
+ // --graupl-focus-width
11
25
  $focus-width: var(
12
26
  --#{root-defaults.$prefix}focus-width,
13
27
  #{root-variables.$border-width}
14
28
  );
29
+
30
+ // --graupl-focus-outline-color
15
31
  $focus-outline-color: var(
16
32
  --#{root-defaults.$prefix}focus-outline-color,
17
33
  #{color.$color}
18
34
  );
35
+
36
+ // --graupl-focus-outline-width
19
37
  $focus-outline-width: var(
20
38
  --#{root-defaults.$prefix}focus-outline-width,
21
39
  #{$focus-width}
22
40
  );
41
+
42
+ // --graupl-focus-outline-style
23
43
  $focus-outline-style: var(
24
44
  --#{root-defaults.$prefix}focus-outline-style,
25
45
  #{defaults.$focus-outline-style}
26
46
  );
47
+
48
+ // --graupl-focus-outline
27
49
  $focus-outline: var(
28
50
  --#{root-defaults.$prefix}focus-outline,
29
51
  #{$focus-outline-width} #{$focus-outline-style} #{$focus-outline-color}
30
52
  );
53
+
54
+ // --graupl-focus-outline-offset
31
55
  $focus-outline-offset: var(
32
56
  --#{root-defaults.$prefix}focus-outline-offset,
33
57
  calc(-1 * #{$focus-outline-width})
34
58
  );
59
+
60
+ // --graupl-focus-box-shadow-color
35
61
  $focus-box-shadow-color: var(
36
62
  --#{root-defaults.$prefix}focus-box-shadow-color,
37
63
  #{color.$background}
38
64
  );
65
+
66
+ // --graupl-focus-border-color
39
67
  $focus-border-color: var(
40
68
  --#{root-defaults.$prefix}focus-border-color,
41
69
  #{color.$background}
42
70
  );
71
+
72
+ // --graupl-focus-box-shadow
43
73
  $focus-box-shadow: var(
44
74
  --#{root-defaults.$prefix}focus-box-shadow,
45
75
  0 0 0 #{$focus-width} inset #{$focus-box-shadow-color}
46
76
  );
47
- $focus-box-shadow-bordered: var(
48
- --#{root-defaults.$prefix}focus-box-shadow-bordered,
49
- 0 0 0 #{$focus-width} #{$focus-box-shadow-color}
50
- );
@@ -11,10 +11,15 @@
11
11
  @use "sass:list";
12
12
  @use "sass:meta";
13
13
 
14
+ $selector-base: root-defaults.$component-selector-base !default;
15
+ $modifier-selector-base: root-defaults.$modifier-selector-base !default;
14
16
  $generate-base-colors: root-defaults.$generate-base-colors !default;
15
17
  $generate-base-themes: root-defaults.$generate-base-themes !default;
16
- $theme-selector-prefix: "." !default;
18
+ $theme-selector-base: $modifier-selector-base !default;
19
+ $theme-selector-prefix: "" !default;
17
20
  $theme-selector-suffix: "-mode" !default;
21
+ $root-selector-base: ":" !default;
22
+ $root-selector: "root" !default;
18
23
 
19
24
  // The site will have colours, defaulting to primary, secondary, and tertiary.
20
25
  // Each colour will have a shade mapping, defaulting to 100-900.
@@ -69,7 +74,6 @@ $-colors: (
69
74
  900: hsl(340deg 85% 10%),
70
75
  ),
71
76
  );
72
- $custom-colors: () !default;
73
77
  $colors: () !default;
74
78
 
75
79
  // Loop through the customized colors and convert them to a map structure.
@@ -87,13 +91,6 @@ $colors: () !default;
87
91
  }
88
92
  }
89
93
 
90
- // @todo remove this once $custom-colors is removed
91
- @if $custom-colors != () {
92
- @warn "`$custom-colors` is deprecated and will be removed in a future release of Graupl. Use `$colors` instead.";
93
-
94
- $colors: map.deep-merge($colors, $custom-colors);
95
- }
96
-
97
94
  // Merge the custom colors with the default ones.
98
95
  @if $generate-base-colors {
99
96
  $colors: map.deep-merge($-colors, $colors);
@@ -101,16 +98,7 @@ $colors: () !default;
101
98
 
102
99
  // Themes.
103
100
  $-themes: (light, dark);
104
- $custom-themes: () !default;
105
101
  $themes: () !default;
106
-
107
- // @todo remove this once $custom-themes is removed
108
- @if $custom-themes != () {
109
- @warn "`$custom-themes` is deprecated and will be removed in a future release of Graupl. Use `$themes` instead.";
110
-
111
- $themes: list.join($themes, $custom-themes);
112
- }
113
-
114
102
  $default-theme: light !default;
115
103
 
116
104
  // Theme mappings.
@@ -138,16 +126,8 @@ $-theme-mappings: (
138
126
  900: 100,
139
127
  ),
140
128
  );
141
- $custom-theme-mappings: () !default;
142
129
  $theme-mappings: () !default;
143
130
 
144
- // @todo remove this once $custom-theme-mappings is removed
145
- @if $custom-theme-mappings != () {
146
- @warn "`$custom-theme-mappings` is deprecated and will be removed in a future release of Graupl. Use `$theme-mappings` instead.";
147
-
148
- $theme-mappings: map.deep-merge($theme-mappings, $custom-theme-mappings);
149
- }
150
-
151
131
  // Merge the custom themes with the default ones.
152
132
  @if $generate-base-themes {
153
133
  $themes: list.join($-themes, $themes);
@@ -200,14 +180,5 @@ $-theme-map: ();
200
180
  );
201
181
  }
202
182
 
203
- $custom-theme-map: () !default;
204
183
  $theme-map: () !default;
205
-
206
- // @todo remove this once $custom-theme-map is removed
207
- @if $custom-theme-map != () {
208
- @warn "`$custom-theme-map` is deprecated and will be removed in a future release of Graupl. Use `$theme-map` instead.";
209
-
210
- $theme-map: map.deep-merge($theme-map, $custom-theme-map);
211
- }
212
-
213
184
  $theme-map: map.deep-merge($-theme-map, $theme-map);