@tedi-design-system/core 2.0.0

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 (51) hide show
  1. package/README.md +14 -0
  2. package/_base.scss +93 -0
  3. package/_fonts.scss +253 -0
  4. package/_helpers.scss +43 -0
  5. package/_icons.scss +51 -0
  6. package/_mixins.scss +108 -0
  7. package/_print.scss +35 -0
  8. package/_typography.scss +220 -0
  9. package/bootstrap-utility/_breakpoints.scss +136 -0
  10. package/bootstrap-utility/_grid.scss +167 -0
  11. package/bootstrap-utility/_mixin-utilities.scss +95 -0
  12. package/bootstrap-utility/_utilities-api.scss +23 -0
  13. package/bootstrap-utility/_utilities.scss +104 -0
  14. package/fonts/README.md +34 -0
  15. package/fonts/material-symbols-outlined.woff2 +0 -0
  16. package/fonts/material-symbols-rounded.woff2 +0 -0
  17. package/fonts/material-symbols-sharp.woff2 +0 -0
  18. package/fonts/roboto-v30-cyrillic-300-italic.woff2 +0 -0
  19. package/fonts/roboto-v30-cyrillic-300.woff2 +0 -0
  20. package/fonts/roboto-v30-cyrillic-400-italic.woff2 +0 -0
  21. package/fonts/roboto-v30-cyrillic-400.woff2 +0 -0
  22. package/fonts/roboto-v30-cyrillic-700-italic.woff2 +0 -0
  23. package/fonts/roboto-v30-cyrillic-700.woff2 +0 -0
  24. package/fonts/roboto-v30-cyrillic-ext-300-italic.woff2 +0 -0
  25. package/fonts/roboto-v30-cyrillic-ext-300.woff2 +0 -0
  26. package/fonts/roboto-v30-cyrillic-ext-400-italic.woff2 +0 -0
  27. package/fonts/roboto-v30-cyrillic-ext-400.woff2 +0 -0
  28. package/fonts/roboto-v30-cyrillic-ext-700-italic.woff2 +0 -0
  29. package/fonts/roboto-v30-cyrillic-ext-700.woff2 +0 -0
  30. package/fonts/roboto-v30-latin-300-italic.woff2 +0 -0
  31. package/fonts/roboto-v30-latin-300.woff2 +0 -0
  32. package/fonts/roboto-v30-latin-400-italic.woff2 +0 -0
  33. package/fonts/roboto-v30-latin-400.woff2 +0 -0
  34. package/fonts/roboto-v30-latin-700-italic.woff2 +0 -0
  35. package/fonts/roboto-v30-latin-700.woff2 +0 -0
  36. package/fonts/roboto-v30-latin-ext-300-italic.woff2 +0 -0
  37. package/fonts/roboto-v30-latin-ext-300.woff2 +0 -0
  38. package/fonts/roboto-v30-latin-ext-400-italic.woff2 +0 -0
  39. package/fonts/roboto-v30-latin-ext-400.woff2 +0 -0
  40. package/fonts/roboto-v30-latin-ext-700-italic.woff2 +0 -0
  41. package/fonts/roboto-v30-latin-ext-700.woff2 +0 -0
  42. package/index.css +1 -0
  43. package/index.scss +17 -0
  44. package/package.json +63 -0
  45. package/tedi-storybook-styles.scss +172 -0
  46. package/variables/_base-variables.scss +168 -0
  47. package/variables/_bootstrap-variables.scss +30 -0
  48. package/variables/_color-variables.scss +1113 -0
  49. package/variables/_dimensional-variables.scss +1236 -0
  50. package/variables/_font-variables.scss +77 -0
  51. package/variables/_utility-variables.scss +11 -0
package/README.md ADDED
@@ -0,0 +1,14 @@
1
+ # TEDI Core
2
+
3
+ [![semantic-release](https://img.shields.io/badge/semantic--release-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)
4
+
5
+ `@tedi-design-system/core` contains shared variables and core styles shared between TEDI React and Angular components
6
+
7
+ Usage instructions and detailed documentation can be found in the [TEDI Design System wiki](https://github.com/TEDI-Design-System/general).
8
+
9
+ ---
10
+
11
+ ## Contributing
12
+
13
+ Check the [wiki](https://github.com/TEDI-Design-System/general) for component guidelines and coding standards.
14
+ Report issues or contribute via [GitHub Issues](https://github.com/TEDI-Design-System/core/issues).
package/_base.scss ADDED
@@ -0,0 +1,93 @@
1
+ @use 'mixins';
2
+ @use 'bootstrap-utility/breakpoints';
3
+
4
+ html,
5
+ body {
6
+ height: 100%;
7
+ background-color: var(--neutral-300);
8
+ }
9
+
10
+ html {
11
+ scroll-behavior: smooth;
12
+ scroll-padding-top: var(--header-bottom-height, 0);
13
+ }
14
+
15
+ body {
16
+ box-sizing: border-box;
17
+ color: var(--general-text-primary);
18
+
19
+ @include mixins.responsive-styles(font-family, family-primary, $exclude: tablet);
20
+ @include mixins.responsive-styles(line-height, body-regular-line-height, $exclude: tablet);
21
+ @include mixins.responsive-styles(font-size, body-regular-size, $exclude: tablet);
22
+ }
23
+
24
+ *,
25
+ *::before,
26
+ *::after {
27
+ box-sizing: inherit;
28
+ }
29
+
30
+ /**
31
+ * To overwrite behavior of focus outline
32
+ * Set '--global-outline-color' and '--global-outline-offset' inside component scope
33
+ */
34
+ *:where(:focus) {
35
+ @include mixins.focus-element;
36
+ }
37
+
38
+ body,
39
+ h1,
40
+ h2,
41
+ h3,
42
+ h4,
43
+ h5,
44
+ h6,
45
+ p,
46
+ ol,
47
+ dl,
48
+ dd,
49
+ ul {
50
+ padding: 0;
51
+ margin: 0;
52
+ font-weight: normal;
53
+ }
54
+
55
+ ol,
56
+ ul {
57
+ margin: 0.25rem 0;
58
+ list-style-position: inside;
59
+ }
60
+
61
+ ol.public-DraftStyleDefault-ul,
62
+ ul.public-DraftStyleDefault-ul {
63
+ list-style-position: outside;
64
+ }
65
+
66
+ button {
67
+ line-height: 1.5;
68
+ }
69
+
70
+ img {
71
+ max-width: 100%;
72
+ height: auto;
73
+ }
74
+
75
+ a {
76
+ color: var(--link-primary-default);
77
+ text-decoration: underline;
78
+
79
+ &.link-white {
80
+ color: var(--link-white-default);
81
+ }
82
+
83
+ &.no-underline {
84
+ text-decoration: none;
85
+ }
86
+ }
87
+
88
+ .scroll-disabled {
89
+ @include breakpoints.media-breakpoint-down(lg) {
90
+ height: 100%;
91
+ overflow-y: hidden;
92
+ }
93
+ }
package/_fonts.scss ADDED
@@ -0,0 +1,253 @@
1
+ // check src/public/fonts/README.md for explanation on font paths
2
+
3
+ /* cyrillic-ext */
4
+ @font-face {
5
+ font-family: Roboto;
6
+ font-style: italic;
7
+ font-weight: 300;
8
+ src: url('/fonts/roboto-v30-cyrillic-ext-300-italic.woff2') format('woff2');
9
+ font-display: swap;
10
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
11
+ }
12
+
13
+ /* cyrillic */
14
+ @font-face {
15
+ font-family: Roboto;
16
+ font-style: italic;
17
+ font-weight: 300;
18
+ src: url('/fonts/roboto-v30-cyrillic-300-italic.woff2') format('woff2');
19
+ font-display: swap;
20
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
21
+ }
22
+
23
+ /* latin-ext */
24
+ @font-face {
25
+ font-family: Roboto;
26
+ font-style: italic;
27
+ font-weight: 300;
28
+ src: url('/fonts/roboto-v30-latin-ext-300-italic.woff2') format('woff2');
29
+ font-display: swap;
30
+ unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
31
+ U+2C60-2C7F, U+A720-A7FF;
32
+ }
33
+
34
+ /* latin */
35
+ @font-face {
36
+ font-family: Roboto;
37
+ font-style: italic;
38
+ font-weight: 300;
39
+ src: url('/fonts/roboto-v30-latin-300-italic.woff2') format('woff2');
40
+ font-display: swap;
41
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
42
+ U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
43
+ }
44
+
45
+ /* cyrillic-ext */
46
+ @font-face {
47
+ font-family: Roboto;
48
+ font-style: italic;
49
+ font-weight: 400;
50
+ src: url('/fonts/roboto-v30-cyrillic-ext-400-italic.woff2') format('woff2');
51
+ font-display: swap;
52
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
53
+ }
54
+
55
+ /* cyrillic */
56
+ @font-face {
57
+ font-family: Roboto;
58
+ font-style: italic;
59
+ font-weight: 400;
60
+ src: url('/fonts/roboto-v30-cyrillic-400-italic.woff2') format('woff2');
61
+ font-display: swap;
62
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
63
+ }
64
+
65
+ /* latin-ext */
66
+ @font-face {
67
+ font-family: Roboto;
68
+ font-style: italic;
69
+ font-weight: 400;
70
+ src: url('/fonts/roboto-v30-latin-ext-400-italic.woff2') format('woff2');
71
+ font-display: swap;
72
+ unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
73
+ U+2C60-2C7F, U+A720-A7FF;
74
+ }
75
+
76
+ /* latin */
77
+ @font-face {
78
+ font-family: Roboto;
79
+ font-style: italic;
80
+ font-weight: 400;
81
+ src: url('/fonts/roboto-v30-latin-400-italic.woff2') format('woff2');
82
+ font-display: swap;
83
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
84
+ U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
85
+ }
86
+
87
+ /* cyrillic-ext */
88
+ @font-face {
89
+ font-family: Roboto;
90
+ font-style: italic;
91
+ font-weight: 700;
92
+ src: url('/fonts/roboto-v30-cyrillic-ext-700-italic.woff2') format('woff2');
93
+ font-display: swap;
94
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
95
+ }
96
+
97
+ /* cyrillic */
98
+ @font-face {
99
+ font-family: Roboto;
100
+ font-style: italic;
101
+ font-weight: 700;
102
+ src: url('/fonts/roboto-v30-cyrillic-700-italic.woff2') format('woff2');
103
+ font-display: swap;
104
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
105
+ }
106
+
107
+ /* latin-ext */
108
+ @font-face {
109
+ font-family: Roboto;
110
+ font-style: italic;
111
+ font-weight: 700;
112
+ src: url('/fonts/roboto-v30-latin-ext-700-italic.woff2') format('woff2');
113
+ font-display: swap;
114
+ unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
115
+ U+2C60-2C7F, U+A720-A7FF;
116
+ }
117
+
118
+ /* latin */
119
+ @font-face {
120
+ font-family: Roboto;
121
+ font-style: italic;
122
+ font-weight: 700;
123
+ src: url('/fonts/roboto-v30-latin-700-italic.woff2') format('woff2');
124
+ font-display: swap;
125
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
126
+ U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
127
+ }
128
+
129
+ /* cyrillic-ext */
130
+ @font-face {
131
+ font-family: Roboto;
132
+ font-style: normal;
133
+ font-weight: 300;
134
+ src: url('/fonts/roboto-v30-cyrillic-ext-300.woff2') format('woff2');
135
+ font-display: swap;
136
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
137
+ }
138
+
139
+ /* cyrillic */
140
+ @font-face {
141
+ font-family: Roboto;
142
+ font-style: normal;
143
+ font-weight: 300;
144
+ src: url('/fonts/roboto-v30-cyrillic-300.woff2') format('woff2');
145
+ font-display: swap;
146
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
147
+ }
148
+
149
+ /* latin-ext */
150
+ @font-face {
151
+ font-family: Roboto;
152
+ font-style: normal;
153
+ font-weight: 300;
154
+ src: url('/fonts/roboto-v30-latin-ext-300.woff2') format('woff2');
155
+ font-display: swap;
156
+ unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
157
+ U+2C60-2C7F, U+A720-A7FF;
158
+ }
159
+
160
+ /* latin */
161
+ @font-face {
162
+ font-family: Roboto;
163
+ font-style: normal;
164
+ font-weight: 300;
165
+ src: url('/fonts/roboto-v30-latin-300.woff2') format('woff2');
166
+ font-display: swap;
167
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
168
+ U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
169
+ }
170
+
171
+ /* cyrillic-ext */
172
+ @font-face {
173
+ font-family: Roboto;
174
+ font-style: normal;
175
+ font-weight: 400;
176
+ src: url('/fonts/roboto-v30-cyrillic-ext-400.woff2') format('woff2');
177
+ font-display: swap;
178
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
179
+ }
180
+
181
+ /* cyrillic */
182
+ @font-face {
183
+ font-family: Roboto;
184
+ font-style: normal;
185
+ font-weight: 400;
186
+ src: url('/fonts/roboto-v30-cyrillic-400.woff2') format('woff2');
187
+ font-display: swap;
188
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
189
+ }
190
+
191
+ /* latin-ext */
192
+ @font-face {
193
+ font-family: Roboto;
194
+ font-style: normal;
195
+ font-weight: 400;
196
+ src: url('/fonts/roboto-v30-latin-ext-400.woff2') format('woff2');
197
+ font-display: swap;
198
+ unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
199
+ U+2C60-2C7F, U+A720-A7FF;
200
+ }
201
+
202
+ /* latin */
203
+ @font-face {
204
+ font-family: Roboto;
205
+ font-style: normal;
206
+ font-weight: 400;
207
+ src: url('/fonts/roboto-v30-latin-400.woff2') format('woff2');
208
+ font-display: swap;
209
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
210
+ U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
211
+ }
212
+
213
+ /* cyrillic-ext */
214
+ @font-face {
215
+ font-family: Roboto;
216
+ font-style: normal;
217
+ font-weight: 700;
218
+ src: url('/fonts/roboto-v30-cyrillic-ext-700.woff2') format('woff2');
219
+ font-display: swap;
220
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
221
+ }
222
+
223
+ /* cyrillic */
224
+ @font-face {
225
+ font-family: Roboto;
226
+ font-style: normal;
227
+ font-weight: 700;
228
+ src: url('/fonts/roboto-v30-cyrillic-700.woff2') format('woff2');
229
+ font-display: swap;
230
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
231
+ }
232
+
233
+ /* latin-ext */
234
+ @font-face {
235
+ font-family: Roboto;
236
+ font-style: normal;
237
+ font-weight: 700;
238
+ src: url('/fonts/roboto-v30-latin-ext-700.woff2') format('woff2');
239
+ font-display: swap;
240
+ unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
241
+ U+2C60-2C7F, U+A720-A7FF;
242
+ }
243
+
244
+ /* latin */
245
+ @font-face {
246
+ font-family: Roboto;
247
+ font-style: normal;
248
+ font-weight: 700;
249
+ src: url('/fonts/roboto-v30-latin-700.woff2') format('woff2');
250
+ font-display: swap;
251
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
252
+ U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
253
+ }
package/_helpers.scss ADDED
@@ -0,0 +1,43 @@
1
+ // https://github.com/h5bp/main.css/blob/main/src/_helpers.css
2
+
3
+ .hidden,
4
+ [hidden] {
5
+ display: none !important;
6
+ }
7
+
8
+ .block {
9
+ display: block !important;
10
+ }
11
+
12
+ .inline-block {
13
+ display: inline-block !important;
14
+ }
15
+
16
+ .flex {
17
+ display: flex !important;
18
+ }
19
+
20
+ .screen-reader-only,
21
+ .visually-hidden,
22
+ .sr-only {
23
+ position: absolute;
24
+ width: 1px;
25
+ height: 1px;
26
+ padding: 0;
27
+ margin: -1px;
28
+ overflow: hidden;
29
+ clip: rect(0, 0, 0, 0);
30
+ white-space: nowrap;
31
+ border: 0;
32
+
33
+ &.focusable:active,
34
+ &.focusable:focus {
35
+ position: static;
36
+ width: auto;
37
+ height: auto;
38
+ margin: 0;
39
+ overflow: visible;
40
+ clip: auto;
41
+ white-space: inherit;
42
+ }
43
+ }
package/_icons.scss ADDED
@@ -0,0 +1,51 @@
1
+ @font-face {
2
+ font-family: 'Material Symbols Outlined';
3
+ font-style: normal;
4
+ font-weight: 100 700;
5
+ src: url('/fonts/material-symbols-outlined.woff2') format('woff2');
6
+ font-display: block;
7
+ }
8
+
9
+ @font-face {
10
+ font-family: 'Material Symbols Rounded';
11
+ font-style: normal;
12
+ font-weight: 100 700;
13
+ src: url('/fonts/material-symbols-rounded.woff2') format('woff2');
14
+ font-display: block;
15
+ }
16
+
17
+ @font-face {
18
+ font-family: 'Material Symbols Sharp';
19
+ font-style: normal;
20
+ font-weight: 100 700;
21
+ src: url('/fonts/material-symbols-sharp.woff2') format('woff2');
22
+ font-display: block;
23
+ }
24
+
25
+ .material-symbols {
26
+ display: inline-block;
27
+ font-style: normal;
28
+ font-weight: normal;
29
+ font-feature-settings: 'liga';
30
+ line-height: 1;
31
+ text-transform: none;
32
+ letter-spacing: normal;
33
+ word-wrap: normal;
34
+ white-space: nowrap;
35
+ direction: ltr;
36
+ -webkit-font-smoothing: antialiased;
37
+ -moz-osx-font-smoothing: grayscale;
38
+ text-rendering: optimizelegibility;
39
+
40
+ &--outlined {
41
+ font-family: 'Material Symbols Outlined', sans-serif;
42
+ }
43
+
44
+ &--rounded {
45
+ font-family: 'Material Symbols Rounded', sans-serif;
46
+ }
47
+
48
+ &--sharp {
49
+ font-family: 'Material Symbols Sharp', sans-serif;
50
+ }
51
+ }
package/_mixins.scss ADDED
@@ -0,0 +1,108 @@
1
+ @use 'sass:string';
2
+ @use 'sass:map';
3
+ @use 'sass:meta';
4
+
5
+ $breakpoints: (
6
+ xs: 0,
7
+ sm: 576px,
8
+ md: 768px,
9
+ lg: 992px,
10
+ xl: 1200px,
11
+ xxl: 1400px,
12
+ );
13
+
14
+ @function construct-variables($variable-names, $suffix) {
15
+ $result: '';
16
+
17
+ @each $name in $variable-names {
18
+ $result: #{$result} var(--#{$name}-#{$suffix});
19
+ }
20
+
21
+ @return $result;
22
+ }
23
+
24
+ @mixin responsive-styles($property, $names, $exclude: null) {
25
+ $variable-names: ();
26
+
27
+ @if meta.type-of($names) == 'string' {
28
+ $variable-names: (string.slice($names, 1, -1));
29
+ } @else {
30
+ $variable-names: $names;
31
+ }
32
+
33
+ & {
34
+ #{$property}: #{construct-variables($variable-names, mobile)};
35
+ }
36
+
37
+ @if $exclude != 'tablet' {
38
+ @media (min-width: map.get($breakpoints, sm)) {
39
+ #{$property}: #{construct-variables($variable-names, tablet)};
40
+ }
41
+ }
42
+
43
+ @if $exclude != 'desktop' {
44
+ @media (min-width: map.get($breakpoints, lg)) {
45
+ #{$property}: #{construct-variables($variable-names, desktop)};
46
+ }
47
+ }
48
+ }
49
+
50
+ @mixin print-grayscale {
51
+ @media print {
52
+ filter: grayscale(1);
53
+ }
54
+ }
55
+
56
+ @mixin visually-hidden {
57
+ position: absolute !important;
58
+ width: 1px !important;
59
+ height: 1px !important;
60
+ padding: 0 !important;
61
+ overflow: hidden;
62
+ clip: rect(1px, 1px, 1px, 1px);
63
+ border: 0 !important;
64
+ }
65
+
66
+ @mixin table-cell-selector($selector: 'all') {
67
+ @if $selector == 'thead' or $selector == 'all' {
68
+ & > thead > tr > th {
69
+ @content;
70
+ }
71
+ }
72
+
73
+ @if $selector == 'tbody' or $selector == 'all' {
74
+ & > tbody > tr > td {
75
+ @content;
76
+ }
77
+ }
78
+
79
+ @if $selector == 'tfoot' or $selector == 'all' {
80
+ & > tfoot > tr > th {
81
+ @content;
82
+ }
83
+ }
84
+ }
85
+
86
+ @mixin focus-element {
87
+ border-radius: 0.25rem;
88
+ outline: 2px solid var(--global-outline-color, var(--color-primary-main));
89
+ outline-offset: var(--global-outline-offset, 1px);
90
+
91
+ html:not([data-whatintent='keyboard']) & {
92
+ outline: none;
93
+ }
94
+ }
95
+
96
+ @mixin button-reset {
97
+ padding: 0;
98
+ font: inherit;
99
+ color: inherit;
100
+ text-decoration: none;
101
+ cursor: pointer;
102
+ background-color: var(--color-transparent);
103
+ border: none;
104
+
105
+ &:disabled {
106
+ cursor: default;
107
+ }
108
+ }
package/_print.scss ADDED
@@ -0,0 +1,35 @@
1
+ $breaks: ('auto', 'avoid', 'avoid-column', 'avoid-page', 'avoid-region');
2
+
3
+ @media print {
4
+ html {
5
+ font-size: 14px;
6
+ }
7
+
8
+ body {
9
+ background-color: var(--neutral-100);
10
+ -webkit-print-color-adjust: exact;
11
+ print-color-adjust: exact; // needed for Edge. Isn't added automatically by autoprefixer
12
+ }
13
+
14
+ a {
15
+ filter: grayscale(1);
16
+ }
17
+
18
+ .no-print:not(.show-print) {
19
+ display: none !important;
20
+ }
21
+
22
+ @each $break in $breaks {
23
+ .break-before-#{$break} {
24
+ break-before: #{$break};
25
+ }
26
+
27
+ .break-after-#{$break} {
28
+ break-after: #{$break};
29
+ }
30
+
31
+ .break-inside-#{$break} {
32
+ break-inside: #{$break};
33
+ }
34
+ }
35
+ }