@graupl/graupl 1.0.0-alpha.13 → 1.0.0-alpha.15

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 (143) hide show
  1. package/.github/workflows/codeql-analysis.yml +3 -3
  2. package/.husky/commit-msg +0 -1
  3. package/.husky/pre-commit +0 -1
  4. package/CHANGELOG.md +38 -0
  5. package/dist/base/button.css +1 -1
  6. package/dist/base/button.css.map +1 -1
  7. package/dist/base/form.css.map +1 -1
  8. package/dist/base/link.css.map +1 -1
  9. package/dist/base/table.css.map +1 -1
  10. package/dist/base.css +1 -1
  11. package/dist/base.css.map +1 -1
  12. package/dist/component/alert.css +2 -0
  13. package/dist/component/alert.css.map +1 -0
  14. package/dist/component/card.css +1 -1
  15. package/dist/component/card.css.map +1 -1
  16. package/dist/component/carousel.css +2 -0
  17. package/dist/component/carousel.css.map +1 -0
  18. package/dist/component/input-group.css.map +1 -1
  19. package/dist/component/menu.css +1 -1
  20. package/dist/component/menu.css.map +1 -1
  21. package/dist/component/navigation.css.map +1 -1
  22. package/dist/component.css +1 -1
  23. package/dist/component.css.map +1 -1
  24. package/dist/graupl.css +1 -1
  25. package/dist/graupl.css.map +1 -1
  26. package/dist/layout/columns.css.map +1 -1
  27. package/dist/layout/container.css.map +1 -1
  28. package/dist/layout/flex-columns.css.map +1 -1
  29. package/dist/layout.css +1 -1
  30. package/dist/layout.css.map +1 -1
  31. package/dist/normalize.css.map +1 -1
  32. package/dist/state/focus.css.map +1 -1
  33. package/dist/state.css.map +1 -1
  34. package/dist/theme/color.css.map +1 -1
  35. package/dist/theme/typography.css.map +1 -1
  36. package/dist/theme.css.map +1 -1
  37. package/dist/utilities/alignment.css.map +1 -1
  38. package/dist/utilities/color.css.map +1 -1
  39. package/dist/utilities/display.css +1 -1
  40. package/dist/utilities/display.css.map +1 -1
  41. package/dist/utilities/flex.css.map +1 -1
  42. package/dist/utilities/height.css +2 -0
  43. package/dist/utilities/height.css.map +1 -0
  44. package/dist/utilities/inset.css.map +1 -1
  45. package/dist/utilities/justification.css.map +1 -1
  46. package/dist/utilities/list.css.map +1 -1
  47. package/dist/utilities/order.css.map +1 -1
  48. package/dist/utilities/postion.css.map +1 -1
  49. package/dist/utilities/spacing.css.map +1 -1
  50. package/dist/utilities/typography.css.map +1 -1
  51. package/dist/utilities/visibility.css.map +1 -1
  52. package/dist/utilities/width.css +2 -0
  53. package/dist/utilities/width.css.map +1 -0
  54. package/dist/utilities.css +1 -1
  55. package/dist/utilities.css.map +1 -1
  56. package/docs/.vitepress/config.js +39 -12
  57. package/docs/components/alert.md +130 -0
  58. package/docs/components/button.md +84 -0
  59. package/docs/components/card.md +369 -0
  60. package/docs/components/index.md +1 -0
  61. package/docs/components/inputgroup.md +159 -0
  62. package/docs/components/menu.md +326 -0
  63. package/docs/components/navigation.md +158 -0
  64. package/docs/content.md +237 -0
  65. package/docs/defaults.md +121 -0
  66. package/docs/forms.md +79 -0
  67. package/docs/functions.md +9 -0
  68. package/docs/getting-started.md +1 -0
  69. package/docs/index.md +1 -7
  70. package/docs/introduction.md +22 -2
  71. package/docs/layout.md +200 -0
  72. package/docs/mixins.md +47 -0
  73. package/docs/state.md +67 -0
  74. package/docs/theme.md +258 -0
  75. package/docs/utilities.md +357 -0
  76. package/index.html +178 -37
  77. package/package.json +5 -6
  78. package/scss/component/alert.scss +3 -0
  79. package/scss/component/carousel.scss +3 -0
  80. package/scss/utilities/height.scss +3 -0
  81. package/scss/utilities/width.scss +3 -0
  82. package/src/js/alert/Alert.js +511 -0
  83. package/src/js/alert/index.js +21 -0
  84. package/src/js/carousel/Carousel.js +1376 -0
  85. package/src/js/carousel/index.js +20 -0
  86. package/src/js/domHelpers.js +37 -0
  87. package/src/js/eventHandlers.js +32 -0
  88. package/src/js/validate.js +225 -0
  89. package/src/scss/base/_index.scss +1 -1
  90. package/src/scss/base/button/_defaults.scss +7 -0
  91. package/src/scss/base/button/_index.scss +46 -149
  92. package/src/scss/base/button/_mixins.scss +164 -0
  93. package/src/scss/base/form/_index.scss +1 -1
  94. package/src/scss/base/link/_index.scss +1 -1
  95. package/src/scss/base/table/_index.scss +1 -1
  96. package/src/scss/component/_index.scss +3 -1
  97. package/src/scss/component/alert/_defaults.scss +49 -0
  98. package/src/scss/component/alert/_index.scss +118 -0
  99. package/src/scss/component/alert/_variables.scss +170 -0
  100. package/src/scss/component/card/_defaults.scss +3 -0
  101. package/src/scss/component/card/_index.scss +43 -9
  102. package/src/scss/component/carousel/_defaults.scss +43 -0
  103. package/src/scss/component/carousel/_index.scss +182 -0
  104. package/src/scss/component/carousel/_variables.scss +104 -0
  105. package/src/scss/component/input-group/_index.scss +1 -1
  106. package/src/scss/component/menu/_defaults.scss +2 -1
  107. package/src/scss/component/menu/_index.scss +2 -1
  108. package/src/scss/component/menu/_variables.scss +4 -0
  109. package/src/scss/component/navigation/_index.scss +1 -1
  110. package/src/scss/layout/_index.scss +1 -1
  111. package/src/scss/layout/columns/_index.scss +1 -1
  112. package/src/scss/layout/container/_index.scss +1 -1
  113. package/src/scss/layout/flex-columns/_index.scss +1 -1
  114. package/src/scss/mixins/_layer.scss +2 -4
  115. package/src/scss/mixins/_visually-hidden.scss +20 -0
  116. package/src/scss/state/_index.scss +1 -1
  117. package/src/scss/state/focus/_index.scss +1 -1
  118. package/src/scss/theme/_index.scss +1 -1
  119. package/src/scss/theme/color/_index.scss +1 -1
  120. package/src/scss/theme/typography/_index.scss +1 -1
  121. package/src/scss/utilities/_index.scss +3 -1
  122. package/src/scss/utilities/alignment/_index.scss +1 -1
  123. package/src/scss/utilities/color/_index.scss +1 -1
  124. package/src/scss/utilities/display/_defaults.scss +2 -0
  125. package/src/scss/utilities/display/_index.scss +11 -1
  126. package/src/scss/utilities/flex/_index.scss +1 -1
  127. package/src/scss/utilities/height/_defaults.scss +38 -0
  128. package/src/scss/utilities/height/_index.scss +23 -0
  129. package/src/scss/utilities/height/_variables.scss +6 -0
  130. package/src/scss/utilities/inset/_index.scss +1 -1
  131. package/src/scss/utilities/justification/_index.scss +1 -1
  132. package/src/scss/utilities/list/_index.scss +1 -1
  133. package/src/scss/utilities/order/_index.scss +1 -1
  134. package/src/scss/utilities/position/_index.scss +1 -1
  135. package/src/scss/utilities/ratio/_defaults.scss +1 -0
  136. package/src/scss/utilities/ratio/_index.scss +9 -1
  137. package/src/scss/utilities/spacing/_index.scss +1 -1
  138. package/src/scss/utilities/typography/_index.scss +1 -1
  139. package/src/scss/utilities/visibility/_index.scss +1 -1
  140. package/src/scss/utilities/width/_defaults.scss +38 -0
  141. package/src/scss/utilities/width/_index.scss +23 -0
  142. package/src/scss/utilities/width/_variables.scss +6 -0
  143. package/stylelint.config.js +5 -0
@@ -0,0 +1,182 @@
1
+ // @graupl/graupl carousel component styles.
2
+
3
+ @use "defaults";
4
+ @use "variables" as *;
5
+ @use "../../defaults" as root-defaults;
6
+ @use "../../mixins/layer" as *;
7
+ @use "../../base/button/variables" as button-variables;
8
+ @use "../../base/button/mixins" as button-mixins;
9
+
10
+ #{defaults.$carousel-selector} {
11
+ @include layer(component) {
12
+ display: grid;
13
+ position: relative;
14
+ grid-template-columns: [slide-start controls-start] auto [tabs-start] $carousel-tabs-width [tabs-end] auto [controls-end slide-end];
15
+ grid-template-rows: [slide-start controls-start] $carousel-controls-height [controls-end] $carousel-slide-height [tabs-start] $carousel-tabs-height [tabs-end slide-end];
16
+ isolation: isolate;
17
+ padding: $carousel-padding;
18
+
19
+ &[data-graupl-action="next"] {
20
+ #{defaults.$carousel-item-selector} {
21
+ &#{defaults.$carousel-previous-item-selector} {
22
+ transform: translateX(calc(-1 * $carousel-item-max-width));
23
+
24
+ &#{defaults.$carousel-active-item-selector} {
25
+ transform: none;
26
+ }
27
+ }
28
+
29
+ &#{defaults.$carousel-next-item-selector} {
30
+ transform: translateX($carousel-item-max-width);
31
+
32
+ &#{defaults.$carousel-active-item-selector} {
33
+ transform: none;
34
+ }
35
+ }
36
+ }
37
+ }
38
+
39
+ &[data-graupl-action="previous"] {
40
+ #{defaults.$carousel-item-selector} {
41
+ &#{defaults.$carousel-previous-item-selector} {
42
+ transform: translateX($carousel-item-max-width);
43
+
44
+ &#{defaults.$carousel-active-item-selector} {
45
+ transform: none;
46
+ }
47
+ }
48
+
49
+ &#{defaults.$carousel-next-item-selector} {
50
+ transform: translateX(calc(-1 * $carousel-item-max-width));
51
+
52
+ &#{defaults.$carousel-active-item-selector} {
53
+ transform: none;
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+
61
+ #{defaults.$carousel-control-container-selector} {
62
+ @include layer(component) {
63
+ display: grid;
64
+ z-index: 1;
65
+ grid-area: controls;
66
+ grid-template-columns:
67
+ [autoplay-start] $carousel-control-width [autoplay-end]
68
+ 1fr [previous-start] $carousel-control-width [previous-end next-start]
69
+ $carousel-control-width [next-end];
70
+ grid-template-rows: [autoplay-start next-start previous-start] $carousel-control-height [previous-end next-end autoplay-end];
71
+ }
72
+ }
73
+
74
+ #{defaults.$carousel-control-selector} {
75
+ @include button-mixins.apply-button;
76
+
77
+ @include layer(component) {
78
+ &#{defaults.$carousel-autoplay-selector} {
79
+ grid-area: autoplay;
80
+ }
81
+
82
+ &#{defaults.$carousel-play-selector}::before {
83
+ content: $carousel-play-content;
84
+ display: inline-block;
85
+ }
86
+
87
+ &#{defaults.$carousel-pause-selector}::before {
88
+ content: $carousel-pause-content;
89
+ display: inline-block;
90
+ }
91
+
92
+ &#{defaults.$carousel-next-selector} {
93
+ grid-area: next;
94
+
95
+ &::before {
96
+ content: $carousel-next-content;
97
+ display: inline-block;
98
+ }
99
+ }
100
+
101
+ &#{defaults.$carousel-previous-selector} {
102
+ grid-area: previous;
103
+
104
+ &::before {
105
+ content: $carousel-previous-content;
106
+ display: inline-block;
107
+ }
108
+ }
109
+ }
110
+ }
111
+
112
+ #{defaults.$carousel-item-container-selector} {
113
+ @include layer(component) {
114
+ display: grid;
115
+ z-index: 0;
116
+ grid-area: slide;
117
+ grid-template-areas: "items";
118
+ padding: $carousel-item-container-padding;
119
+ overflow-x: hidden;
120
+ isolation: isolate;
121
+ }
122
+ }
123
+
124
+ #{defaults.$carousel-item-selector} {
125
+ @include layer(component) {
126
+ z-index: -1;
127
+ grid-area: items;
128
+ max-width: $carousel-item-max-width;
129
+ opacity: 0;
130
+
131
+ &#{defaults.$carousel-active-item-selector} {
132
+ z-index: 1;
133
+ transform: none;
134
+ transition: transform
135
+ var(--#{root-defaults.$prefix}-carousel-transition-duration, 500ms)
136
+ ease-in-out;
137
+ opacity: 1;
138
+ }
139
+
140
+ &#{defaults.$carousel-previous-item-selector} {
141
+ z-index: 1;
142
+ transform: translateX(calc(-1 * $carousel-item-max-width));
143
+ transition: transform
144
+ var(--#{root-defaults.$prefix}-carousel-transition-duration, 500ms)
145
+ ease-in-out;
146
+ opacity: 1;
147
+
148
+ &#{defaults.$carousel-active-item-selector} {
149
+ transform: none;
150
+ }
151
+ }
152
+
153
+ &#{defaults.$carousel-next-item-selector} {
154
+ z-index: 1;
155
+ transform: translateX($carousel-item-max-width);
156
+ opacity: 1;
157
+
158
+ &#{defaults.$carousel-active-item-selector} {
159
+ transform: none;
160
+ }
161
+ }
162
+ }
163
+ }
164
+
165
+ #{defaults.$carousel-tab-container-selector} {
166
+ @include layer(component) {
167
+ display: flex;
168
+ z-index: 1;
169
+ grid-area: tabs;
170
+ justify-content: center;
171
+ padding: $carousel-tab-container-padding;
172
+ gap: $carousel-tab-container-gap;
173
+ }
174
+ }
175
+
176
+ #{defaults.$carousel-tab-selector} {
177
+ @include button-mixins.apply-button;
178
+
179
+ @include layer(component) {
180
+ --#{root-defaults.$prefix}-button-border-radius: 50%;
181
+ }
182
+ }
@@ -0,0 +1,104 @@
1
+ // @graupl/graupl carousel component 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 "../../defaults" as root-defaults;
8
+ @use "../../variables" as root-variables;
9
+ @use "../../base/button/variables" as button-variables;
10
+ @use "sass:map";
11
+
12
+ // Carousel grid area properties.
13
+ $carousel-controls-height: var(
14
+ --#{root-defaults.$prefix}-carousel-controls-height,
15
+ #{defaults.$carousel-controls-height}
16
+ );
17
+ $carousel-tabs-width: var(
18
+ --#{root-defaults.$prefix}-carousel-tabs-width,
19
+ #{defaults.$carousel-tabs-width}
20
+ );
21
+ $carousel-tabs-height: var(
22
+ --#{root-defaults.$prefix}-carousel-tabs-height,
23
+ #{defaults.$carousel-tabs-height}
24
+ );
25
+ $carousel-slide-height: var(
26
+ --#{root-defaults.$prefix}-carousel-slide-height,
27
+ #{defaults.$carousel-slide-height}
28
+ );
29
+
30
+ // Carousel properties.
31
+ $carousel-padding-x: var(
32
+ --#{root-defaults.$prefix}-carousel-padding-x,
33
+ #{map.get(root-variables.$spacers, 0)}
34
+ );
35
+ $carousel-padding-y: var(
36
+ --#{root-defaults.$prefix}-carousel-padding-y,
37
+ #{map.get(root-variables.$spacers, 0)}
38
+ );
39
+ $carousel-padding: var(
40
+ --#{root-defaults.$prefix}-carousel-padding,
41
+ #{$carousel-padding-y} #{$carousel-padding-x}
42
+ );
43
+
44
+ // Carousel slide properties.
45
+ $carousel-item-max-width: var(
46
+ --#{root-defaults.$prefix}-carousel-item-max-width,
47
+ #{defaults.$carousel-item-max-width}
48
+ );
49
+ $carousel-item-container-padding-x: var(
50
+ --#{root-defaults.$prefix}-carousel-item-container-padding-x,
51
+ #{map.get(root-variables.$spacers, 0)}
52
+ );
53
+ $carousel-item-container-padding-y: var(
54
+ --#{root-defaults.$prefix}-carousel-item-container-padding-y,
55
+ #{map.get(root-variables.$spacers, 0)}
56
+ );
57
+ $carousel-item-container-padding: var(
58
+ --#{root-defaults.$prefix}-carousel-item-container-padding,
59
+ #{$carousel-item-container-padding-y} #{$carousel-item-container-padding-x}
60
+ );
61
+
62
+ // Carousel control properties.
63
+ $carousel-play-content: var(
64
+ --#{root-defaults.$prefix}-carousel-play-content,
65
+ #{defaults.$carousel-play-content}
66
+ );
67
+ $carousel-pause-content: var(
68
+ --#{root-defaults.$prefix}-carousel-pause-content,
69
+ #{defaults.$carousel-pause-content}
70
+ );
71
+ $carousel-next-content: var(
72
+ --#{root-defaults.$prefix}-carousel-next-content,
73
+ #{defaults.$carousel-next-content}
74
+ );
75
+ $carousel-previous-content: var(
76
+ --#{root-defaults.$prefix}-carousel-previous-content,
77
+ #{defaults.$carousel-previous-content}
78
+ );
79
+ $carousel-control-width: var(
80
+ --#{root-defaults.$prefix}-carousel-control-width,
81
+ #{defaults.$carousel-control-width}
82
+ );
83
+ $carousel-control-height: var(
84
+ --#{root-defaults.$prefix}-carousel-control-height,
85
+ #{defaults.$carousel-control-height}
86
+ );
87
+
88
+ // Carousel tab properties.
89
+ $carousel-tab-container-padding-x: var(
90
+ --#{root-defaults.$prefix}-carousel-tab-container-padding-x,
91
+ #{map.get(root-variables.$spacers, 3)}
92
+ );
93
+ $carousel-tab-container-padding-y: var(
94
+ --#{root-defaults.$prefix}-carousel-tab-container-padding-y,
95
+ #{map.get(root-variables.$spacers, 3)}
96
+ );
97
+ $carousel-tab-container-padding: var(
98
+ --#{root-defaults.$prefix}-carousel-tab-container-padding,
99
+ #{$carousel-tab-container-padding-y} #{$carousel-tab-container-padding-x}
100
+ );
101
+ $carousel-tab-container-gap: var(
102
+ --#{root-defaults.$prefix}-carousel-tab-container-gap,
103
+ #{map.get(root-variables.$spacers, 3)}
104
+ );
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl input group component styles.
1
+ // @graupl/graupl input group component styles.
2
2
 
3
3
  @use "defaults";
4
4
  @use "../../base/form/defaults" as form-defaults;
@@ -26,7 +26,8 @@ $submenu-show-display: $menu-show-display !default;
26
26
  $submenu-hide-display: $menu-hide-display !default;
27
27
 
28
28
  // Menu item properties.
29
- $menu-item-min-width: max-content !default;
29
+ $menu-item-min-width: min-content !default;
30
+ $menu-item-max-width: 100% !default;
30
31
 
31
32
  // Submenu properties.
32
33
  $submenu-position: absolute !default;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl menu component styles.
1
+ // @graupl/graupl menu component styles.
2
2
 
3
3
  @use "defaults";
4
4
  @use "variables" as *;
@@ -87,6 +87,7 @@
87
87
  align-items: center;
88
88
  justify-content: center;
89
89
  min-width: $menu-item-min-width;
90
+ max-width: $menu-item-max-width;
90
91
  padding: $menu-item-padding;
91
92
  }
92
93
 
@@ -195,6 +195,10 @@ $menu-item-min-width: var(
195
195
  --#{root-defaults.$prefix}-menu-item-min-width,
196
196
  #{defaults.$menu-item-min-width}
197
197
  );
198
+ $menu-item-max-width: var(
199
+ --#{root-defaults.$prefix}-menu-item-max-width,
200
+ #{defaults.$menu-item-max-width}
201
+ );
198
202
  $menu-item-padding-x: var(
199
203
  --#{root-defaults.$prefix}-menu-item-padding-x,
200
204
  #{map.get(root-variables.$spacers, 0)}
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl navigation component styles.
1
+ // @graupl/graupl navigation component styles.
2
2
 
3
3
  @use "defaults";
4
4
  @use "variables" as *;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl layout styles.
1
+ // @graupl/graupl layout styles.
2
2
 
3
3
  @forward "container";
4
4
  @forward "columns";
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl columns layout styles.
1
+ // @graupl/graupl columns layout styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults";
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl container layout styles.
1
+ // @graupl/graupl container layout styles.
2
2
 
3
3
  @use "defaults";
4
4
  @use "variables" as *;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl flex columns layout styles.
1
+ // @graupl/graupl flex columns layout styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults";
@@ -6,9 +6,7 @@
6
6
  @use "../defaults" as root-defaults;
7
7
 
8
8
  @mixin layer($layer) {
9
- @at-root {
10
- @layer #{root-defaults.$prefix}.#{$layer} {
11
- @content;
12
- }
9
+ @layer #{root-defaults.$prefix}.#{$layer} {
10
+ @content;
13
11
  }
14
12
  }
@@ -0,0 +1,20 @@
1
+ // @graupl/graupl visually hidden mixins.
2
+
3
+ @mixin apply() {
4
+ position: absolute !important;
5
+ width: 1px !important;
6
+ height: 1px !important;
7
+ margin: -1px !important;
8
+ padding: 0 !important;
9
+ overflow: hidden !important;
10
+ clip: rect(0, 0, 0, 0) !important;
11
+ border: 0 !important;
12
+ white-space: nowrap !important;
13
+ clip-path: inset(50%) !important;
14
+ }
15
+
16
+ @mixin focusable() {
17
+ &:not(:focus, :focus-within) {
18
+ @include apply;
19
+ }
20
+ }
@@ -1,3 +1,3 @@
1
- // @gruapl/graupl state styles.
1
+ // @graupl/graupl state styles.
2
2
 
3
3
  @forward "focus";
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl focus state styles.
1
+ // @graupl/graupl focus state styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "../../mixins/layer" as *;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl theme styles.
1
+ // @graupl/graupl theme styles.
2
2
 
3
3
  @forward "color";
4
4
  @forward "typography";
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl color theme styles.
1
+ // @graupl/graupl color theme styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "../../mixins/layer" as *;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl typography theme styles.
1
+ // @graupl/graupl typography theme styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "../../mixins/layer" as *;
@@ -1,9 +1,10 @@
1
- // @gruapl/graupl utilities styles.
1
+ // @graupl/graupl utilities styles.
2
2
 
3
3
  @forward "alignment";
4
4
  @forward "color";
5
5
  @forward "display";
6
6
  @forward "flex";
7
+ @forward "height";
7
8
  @forward "inset";
8
9
  @forward "justification";
9
10
  @forward "list";
@@ -13,3 +14,4 @@
13
14
  @forward "spacing";
14
15
  @forward "typography";
15
16
  @forward "visibility";
17
+ @forward "width";
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl alignment utilities styles.
1
+ // @graupl/graupl alignment utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl color utilities styles.
1
+ // @graupl/graupl color utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults";
@@ -27,3 +27,5 @@ $display-properties: map.merge(
27
27
  $base-display-properties,
28
28
  $custom-display-properties
29
29
  );
30
+ $visually-hidden-selector: ".visually-hidden" !default;
31
+ $visually-hidden-focusable-selector: ".visually-hidden-focusable" !default;
@@ -1,9 +1,10 @@
1
- // @gruapl/graupl display utilities styles.
1
+ // @graupl/graupl display utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
5
5
  @use "../../mixins/layer" as *;
6
6
  @use "../../functions/important";
7
+ @use "../../mixins/visually-hidden";
7
8
 
8
9
  @include layer(utilities) {
9
10
  // For each display property, create a utility class.
@@ -12,4 +13,13 @@
12
13
  display: important.insert($property);
13
14
  }
14
15
  }
16
+
17
+ // Visually hidden utility classes.
18
+ #{$visually-hidden-selector} {
19
+ @include visually-hidden.apply;
20
+ }
21
+
22
+ #{$visually-hidden-focusable-selector} {
23
+ @include visually-hidden.focusable;
24
+ }
15
25
  }
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl flex utilities styles.
1
+ // @graupl/graupl flex utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -0,0 +1,38 @@
1
+ // @graupl/graupl height utilities 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 "sass:map";
10
+
11
+ // Height properties.
12
+ $height-class-prefix: "h-" !default;
13
+ $max-height-class-prefix: "max-h-" !default;
14
+ $min-height-class-prefix: "min-h-" !default;
15
+
16
+ // Height values.
17
+ $base-height-values: (
18
+ auto: auto,
19
+ fit-content: fit-content,
20
+ max-content: max-content,
21
+ min-content: min-content,
22
+ stretch: stretch,
23
+ 0: 0,
24
+ full: 100%,
25
+ quarter: 25%,
26
+ half: 50%,
27
+ three-quarters: 75%,
28
+ third: calc(100% / 3),
29
+ two-thirds: calc(100% / 1.5),
30
+ half-screen: 50vh,
31
+ third-screen: calc(100vh / 3),
32
+ two-thirds-screen: calc(100vh / 1.5),
33
+ quarter-screen: 25vh,
34
+ three-quarters-screen: 75vh,
35
+ full-screen: 100vh,
36
+ );
37
+ $custom-height-values: () !default;
38
+ $height-values: map.merge($base-height-values, $custom-height-values);
@@ -0,0 +1,23 @@
1
+ // @graupl/graupl height utilities styles.
2
+
3
+ @use "variables" as *;
4
+ @use "defaults";
5
+ @use "../../mixins/layer" as *;
6
+ @use "../../functions/important";
7
+
8
+ @include layer(utilities) {
9
+ // For each height property, create a utility class.
10
+ @each $height, $value in defaults.$height-values {
11
+ .#{defaults.$height-class-prefix}#{$height} {
12
+ height: important.insert($value);
13
+ }
14
+
15
+ .#{defaults.$max-height-class-prefix}#{$height} {
16
+ max-height: important.insert($value);
17
+ }
18
+
19
+ .#{defaults.$min-height-class-prefix}#{$height} {
20
+ min-height: important.insert($value);
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,6 @@
1
+ // @graupl/graupl height utilities 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
+ @forward "defaults";
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl inset utilities styles.
1
+ // @graupl/graupl inset utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl justification utilities styles.
1
+ // @graupl/graupl justification utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl list utilities styles.
1
+ // @graupl/graupl list utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl order utilities styles.
1
+ // @graupl/graupl order utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl position utilities styles.
1
+ // @graupl/graupl position utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -11,6 +11,7 @@
11
11
  // Ratio utilities.
12
12
  $ratio-selector: ".ratio" !default;
13
13
  $ratio-variant-selector-prefix: "." !default;
14
+ $force-ratio-selector: ".force-ratio" !default;
14
15
  $base-ratios: (
15
16
  "one-by-one": 100%,
16
17
  "two-by-one": 50%,
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl ratio utilities styles.
1
+ // @graupl/graupl ratio utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -16,6 +16,14 @@
16
16
  display: block;
17
17
  padding-top: $ratio;
18
18
  }
19
+
20
+ #{defaults.$force-ratio-selector} {
21
+ position: absolute;
22
+ inset: 0;
23
+ width: 100%;
24
+ height: 100%;
25
+ object-fit: cover;
26
+ }
19
27
  }
20
28
 
21
29
  @each $ratio-selector, $value in defaults.$ratios {
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl spacing utilities styles.
1
+ // @graupl/graupl spacing utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl typography utilities styles.
1
+ // @graupl/graupl typography utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults";
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl visibility utilities styles.
1
+ // @graupl/graupl visibility utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;