@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,137 @@
1
+ // @graupl/core columns layout styles.
2
+ //
3
+ // This module provides the layout styles for the columns component.
4
+ //
5
+ // The columns component is a grid container that provides a responsive grid layout for content.
6
+ // The columns will automatically adjust their size and number of columns based on the available space.
7
+ //
8
+ // Nesting a columns component directly inside of another columns component will implement a subgrid
9
+ // area. In standard usage, this effectively locks the child columns to be a single column layout.
10
+ // This happens because the maximum width allowed for columns uses `--graupl-content-max-width` to calculate
11
+ // the columns widths, not the columns' parent width. This works as designed.
12
+ //
13
+ // At a certain breakpoint, columns will be forced to be a single column layout to avoid horizontal bleeding.
14
+ // This is controlled by the `force-single-column` screen trigger.
15
+ //
16
+ // The following classes are generated by default:
17
+ // - `.columns`: The main columns component.
18
+ // - `.count-1`: Sets the number of columns in the columns component to 1.
19
+ // - `.count-2`: Sets the number of columns in the columns component to 2.
20
+ // - `.count-3`: Sets the number of columns in the columns component to 3.
21
+ // - `.count-4`: Sets the number of columns in the columns component to 4.
22
+ // - `.count-5`: Sets the number of columns in the columns component to 5.
23
+ // - `.count-6`: Sets the number of columns in the columns component to 6.
24
+ // - `.span-1`: Sets the span of a column in the columns component to 1.
25
+ // - `.span-2`: Sets the span of a column in the columns component to 2.
26
+ // - `.span-3`: Sets the span of a column in the columns component to 3.
27
+ // - `.span-4`: Sets the span of a column in the columns component to 4.
28
+ // - `.span-5`: Sets the span of a column in the columns component to 5.
29
+ // - `.span-6`: Sets the span of a column in the columns component to 6.
30
+ //
31
+ // The following custom properties control the generated classes:
32
+ // - `--graupl-columns-row-gap`: The gap between the rows of the columns.
33
+ // - `--graupl-columns-column-gap`: The gap between the columns of the columns.
34
+ // - `--graupl-columns-count`: The maximum number of columns.
35
+ // - `--graupl-columns-content-max-width`: The maximum width of the content inside the columns.
36
+ // - `--graupl-columns-min-width`: The minimum width of each column.
37
+ // - `--graupl-columns-max-width`: The maximum width of each column.
38
+ // - `--graupl-columns-grid-template-columns`: The grid template columns for the columns.
39
+ // - `--graupl-columns-span`: The span of each column.
40
+ //
41
+ // The following variables control the generated classes:
42
+ // - `$columns-selector-base`: The base selector for the columns component.
43
+ // - `$columns-selector`: The selector for the columns component.
44
+ // - `$columns-count-selector-base`: The base selector for the count class.
45
+ // - `$columns-count-selector-prefix`: The prefix for the count class.
46
+ // - `$columns-span-selector-base`: The base selector for the span class.
47
+ // - `$columns-span-selector-prefix`: The prefix for the span class.
48
+ // - `$columns-max-width`: The maximum width of each column.
49
+ // - `$columns-count`: The default number of columns.
50
+ // - `$columns-min-count`: The minimum number of columns used to generate `.count-#` classes.
51
+ // - `$columns-max-count`: The maximum number of columns used to generate `.count-#` classes.
52
+ // - `$columns-span`: The default span of each column.
53
+ //
54
+ // @example
55
+ // <div class="columns">
56
+ // <div>Column 1</div>
57
+ // <div>Column 2</div>
58
+ // <div>Column 3</div>
59
+ // </div>
60
+ //
61
+ // @example
62
+ // <div class="columns count-4">
63
+ // <div>Column 1</div>
64
+ // <div class="span-2">Column 2</div>
65
+ // <div>Column 3</div>
66
+ // </div>
67
+
68
+ @use "variables" as *;
69
+ @use "defaults";
70
+ @use "../../defaults" as root-defaults;
71
+ @use "../../mixins/layer" as *;
72
+ @use "../../mixins/container";
73
+
74
+ @include layer(layout) {
75
+ // .columns
76
+ #{defaults.$columns-selector-base}#{defaults.$columns-selector} {
77
+ display: grid;
78
+ grid-template-columns: $columns-grid-template-columns;
79
+ gap: $columns-row-gap $columns-column-gap;
80
+
81
+ > * {
82
+ grid-column: span $columns-span;
83
+ }
84
+
85
+ // Set any child columns to subgrid.
86
+ // This is necessary to avoid breaking the layout.
87
+ //
88
+ // .columns
89
+ #{defaults.$columns-selector-base}#{defaults.$columns-selector} {
90
+ grid-template-columns: subgrid;
91
+ }
92
+ }
93
+
94
+ @for $i from defaults.$columns-min-count through defaults.$columns-max-count {
95
+ // .count-#{$i}
96
+ #{defaults.$columns-count-selector-base}#{defaults.$columns-count-selector-prefix}#{$i} {
97
+ --#{root-defaults.$prefix}columns-count: #{$i};
98
+
99
+ // For span values bigger than the actual column count, set them to the
100
+ // maximum column count so they don't break the layout.
101
+ @for $j from $i + 1 through defaults.$columns-max-count {
102
+ // .span-#{$j}
103
+ #{defaults.$columns-span-selector-base}#{defaults.$columns-span-selector-prefix}#{$j} {
104
+ --#{root-defaults.$prefix}columns-span: #{$i};
105
+ }
106
+ }
107
+ }
108
+
109
+ // .span-#{$i}
110
+ #{defaults.$columns-span-selector-base}#{defaults.$columns-span-selector-prefix}#{$i} {
111
+ --#{root-defaults.$prefix}columns-span: #{$i};
112
+ }
113
+ }
114
+
115
+ // Disable columns on small screens to avoid horizontal bleeding.
116
+ @include container.trigger(force-single-column) {
117
+ // .columns
118
+ #{defaults.$columns-selector-base}#{defaults.$columns-selector} {
119
+ --#{root-defaults.$prefix}columns-min-width: #{defaults.$columns-max-width};
120
+
121
+ > * {
122
+ --#{root-defaults.$prefix}columns-span: 1;
123
+ }
124
+
125
+ // All spans should be set to 1 to avoid adding columns.
126
+ @for $i
127
+ from defaults.$columns-min-count
128
+ through defaults.$columns-max-count
129
+ {
130
+ // .span-#{$i}
131
+ #{defaults.$columns-span-selector-base}#{defaults.$columns-span-selector-prefix}#{$i} {
132
+ --#{root-defaults.$prefix}columns-span: 1;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
@@ -0,0 +1,55 @@
1
+ // @graupl/core columns layout 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 "../../variables" as root-variables;
8
+ @use "../../defaults" as root-defaults;
9
+ @use "sass:map";
10
+
11
+ $columns-row-gap: var(
12
+ --#{root-defaults.$prefix}columns-row-gap,
13
+ #{map.get(root-variables.$spacers, 5)}
14
+ );
15
+ $columns-column-gap: var(
16
+ --#{root-defaults.$prefix}columns-column-gap,
17
+ #{map.get(root-variables.$spacers, 5)}
18
+ );
19
+ $columns-count: var(
20
+ --#{root-defaults.$prefix}columns-count,
21
+ #{defaults.$columns-count}
22
+ );
23
+ $columns-content-max-width: var(
24
+ --#{root-defaults.$prefix}columns-content-max-width,
25
+ #{root-variables.$content-max-width}
26
+ );
27
+
28
+ // Calculate the min-width of each column based on the content-max-width and column-gap.
29
+ // We take the maximum width of the page and subtract the gap width multiplied by the number of
30
+ // columns minus one (to account for the gaps between columns).
31
+ // We then divide this by the number of columns to get the min-width of each column.
32
+ /* stylelint-disable scss/operator-no-newline-after -- Prettier wants to format it this way. */
33
+ $columns-min-width: var(
34
+ --#{root-defaults.$prefix}columns-min-width,
35
+ calc(
36
+ (
37
+ #{$columns-content-max-width} - #{$columns-column-gap} *
38
+ (#{$columns-count} - 1)
39
+ ) /
40
+ #{$columns-count}
41
+ )
42
+ );
43
+ /* stylelint-enable scss/operator-no-newline-after */
44
+ $columns-max-width: var(
45
+ --#{root-defaults.$prefix}columns-max-width,
46
+ #{defaults.$columns-max-width}
47
+ );
48
+ $columns-grid-template-columns: var(
49
+ --#{root-defaults.$prefix}columns-grid-template-columns,
50
+ repeat(auto-fit, minmax(#{$columns-min-width}, #{$columns-max-width}))
51
+ );
52
+ $columns-span: var(
53
+ --#{root-defaults.$prefix}columns-span,
54
+ #{defaults.$columns-span}
55
+ );
@@ -0,0 +1,35 @@
1
+ // @graupl/core container layout default values.
2
+ //
3
+ // Generally, these should not be used directly when styling components 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
+ // Container selectors.
12
+ $container-selector-base: root-defaults.$component-selector-base !default;
13
+ $container-selector: "container" !default;
14
+ $container-breakout-selector-base: $container-selector-base !default;
15
+ $container-breakout-selector: "breakout" !default;
16
+ $container-feature-selector-base: $container-selector-base !default;
17
+ $container-feature-selector: "feature" !default;
18
+ $container-full-width-selector-base: $container-selector-base !default;
19
+ $container-full-width-selector: "full-width" !default;
20
+ $container-contain-selector-base: $container-selector-base !default;
21
+ $container-contain-selector: "contain" !default;
22
+ $container-sidebars-selector-base: $container-selector-base !default;
23
+ $container-sidebars-selector: "sidebars" !default;
24
+ $container-content-selector-base: $container-selector-base !default;
25
+ $container-content-selector: "content" !default;
26
+ $container-sidebar-selector-base: $container-selector-base !default;
27
+ $container-sidebar-selector: "sidebar" !default;
28
+ $container-left-selector-suffix: "-left" !default;
29
+ $container-right-selector-suffix: "-right" !default;
30
+ $container-inner-selector-prefix: "inner-" !default;
31
+
32
+ // Container properties.
33
+ $container-breakout-width: 15ch !default;
34
+ $container-feature-width: 20ch !default;
35
+ $container-sidebar-width: 20ch !default;