@stihl-design-system/components 1.0.0-RC.11 → 1.0.0-RC.13
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.
- package/README.md +1 -1
- package/{accordion.CEKQh-7i.js → accordion.Rvtiu8Y4.js} +3 -3
- package/arialiveregions.Cyycgs8g.js +27 -0
- package/assets/Accordion.i4k5SMQM.css +1 -0
- package/assets/CheckboxGroup.BH1Br1dg.css +1 -0
- package/assets/Chip.DSdLuzoi.css +1 -0
- package/assets/CustomReactSelect.vHt8qNKC.css +1 -0
- package/assets/Dialog.BgzebVk4.css +1 -0
- package/assets/Drawer.Bauwxrk7.css +1 -0
- package/assets/Fieldset.DOdTbb7C.css +1 -0
- package/assets/Icon.DxRSBRSL.css +1 -0
- package/assets/InputPassword.CG7Ugu73.css +1 -0
- package/assets/InputSearch.CseChMc-.css +1 -0
- package/assets/InputStepper.C0eAYr7P.css +1 -0
- package/assets/Notification.DbRapUJo.css +1 -0
- package/assets/RadioGroup.BfMo157q.css +1 -0
- package/assets/Select.D4EXgIbz.css +1 -0
- package/assets/Textarea.KJGPTYMz.css +1 -0
- package/assets/Toast.CuafTAf7.css +1 -0
- package/assets/arialiveregions.DhsijBaL.css +1 -0
- package/assets/asterisk.BfVAUBO7.css +1 -0
- package/assets/button.DF4RBeC2.css +1 -0
- package/assets/buttonround.19uK_-oO.css +1 -0
- package/assets/checkbox.ByOoFouu.css +1 -0
- package/assets/chipgroup.BzfZLbkv.css +1 -0
- package/assets/flag.B-RLcMcf.css +1 -0
- package/assets/floatingactionbutton.E9HekT6S.css +1 -0
- package/assets/heading.u4f8Mz94.css +1 -0
- package/assets/input.BAkFKPW3.css +1 -0
- package/assets/link.DDJj0D1U.css +1 -0
- package/assets/linkstandalone.DIazcjIv.css +1 -0
- package/assets/logo.CnW8alZU.css +1 -0
- package/assets/optioncheckbox.BZaWtRD7.css +1 -0
- package/assets/radio.X-RTl_jo.css +1 -0
- package/assets/skiptocontent.PTL3256m.css +1 -0
- package/assets/spinner.2iWJWKyA.css +1 -0
- package/assets/switch.gw6aa3kx.css +1 -0
- package/assets/systemfeedback.BPz5YlPC.css +1 -0
- package/assets/text.DjTG_qNb.css +1 -0
- package/assets/title.rosWPEG3.css +1 -0
- package/asterisk.DpzETKdT.js +8 -0
- package/button.M4nXjcUn.js +135 -0
- package/buttonround.E56F_805.js +118 -0
- package/checkbox.Cb2_ey6U.js +111 -0
- package/{checkboxgroup.BqD5IV51.js → checkboxgroup.DBDmB-zR.js} +2 -2
- package/{chip.B92ew-hk.js → chip.C_1tGqvZ.js} +2 -2
- package/chipgroup.BvTj1ziW.js +174 -0
- package/chunks/Accordion.CB6jB3s_.js +125 -0
- package/chunks/{CheckboxGroup.M3jOjhNf.js → CheckboxGroup.S6i5EOc4.js} +40 -40
- package/chunks/{Chip.fMG8wi5K.js → Chip.CMlPUyOJ.js} +15 -15
- package/chunks/{CustomReactSelect.D3jv5-fa.js → CustomReactSelect.CQ1uexBH.js} +1321 -1321
- package/chunks/Dialog.CudsqNag.js +148 -0
- package/chunks/Drawer.ueG2Bzr9.js +154 -0
- package/chunks/{Fieldset.C9K8BYmH.js → Fieldset.Cjmkgxxk.js} +32 -32
- package/chunks/{Icon.C2o2seDb.js → Icon.BCmt_XBG.js} +45 -45
- package/chunks/InputPassword.CNLbBFjx.js +143 -0
- package/chunks/InputSearch.CHA6mkX_.js +192 -0
- package/chunks/InputStepper.xmWGU9pU.js +294 -0
- package/chunks/Notification.nx5vTamN.js +92 -0
- package/chunks/RadioGroup.Crj7NoOs.js +137 -0
- package/chunks/Select.E6gLFYLk.js +194 -0
- package/chunks/Textarea.DUBSOpNL.js +198 -0
- package/chunks/Toast.DyEi2GEP.js +89 -0
- package/{combobox.BeTnbG1m.js → combobox.CzBpi97e.js} +1 -1
- package/components/Combobox/Combobox.d.ts +1 -1
- package/components/{CustomReactSelect → Combobox/CustomReactSelect}/CustomReactSelect.d.ts +2 -2
- package/components/{CustomReactSelect → Combobox/CustomReactSelect}/CustomReactSelect.utils.d.ts +1 -1
- package/components/Notification/Notification.d.ts +2 -6
- package/components/Radio/Radio.d.ts +1 -1
- package/customreactselect.d.ts +1 -1
- package/customreactselect.qf7CIeFs.js +13 -0
- package/{dialog.lGwNQU91.js → dialog.DYlBUsOD.js} +2 -2
- package/{drawer.DNi5m8wP.js → drawer.CvhbP1ra.js} +2 -2
- package/fieldset.CtUGEdLv.js +11 -0
- package/flag.BKpsdB_-.js +43 -0
- package/floatingactionbutton.D5L0B7zI.js +87 -0
- package/heading.IPIYc5vW.js +50 -0
- package/{icon.BoMgOmC1.js → icon.Ck0BpI34.js} +1 -1
- package/index.es.js +34 -34
- package/input.BEnCFNM-.js +239 -0
- package/{inputpassword.CSjh1GU7.js → inputpassword.B-D_jB9w.js} +4 -4
- package/{inputsearch.DyznOWLK.js → inputsearch.CaSpklR1.js} +4 -4
- package/{inputstepper.3BLb7s0P.js → inputstepper.C7KD1-0S.js} +4 -4
- package/link.DREJAoPG.js +116 -0
- package/linkstandalone.BBoEniZ_.js +79 -0
- package/logo.Hul8qCFo.js +65 -0
- package/{notification.0kX1GMaB.js → notification.6M0OdGXK.js} +3 -3
- package/optioncheckbox.BRUTnQnJ.js +43 -0
- package/optioncheckbox.d.ts +1 -1
- package/package.json +8 -6
- package/partials/index.js +1 -1
- package/radio.DEILy_lV.js +114 -0
- package/{radiogroup.SYkZm2DG.js → radiogroup.DeU-HdlP.js} +3 -3
- package/{select.CYbwR3RW.js → select.BYraFJzz.js} +4 -4
- package/skiptocontent.BxvpIB7H.js +45 -0
- package/spinner.Bq97Og-6.js +58 -0
- package/styles/scss/ds/index.scss +19 -0
- package/styles/scss/ds/lib/animation.scss +21 -0
- package/styles/scss/ds/lib/breakpoints.scss +15 -0
- package/styles/scss/ds/lib/container-query.scss +54 -0
- package/styles/scss/ds/lib/ds-internal/_a11y.scss +15 -0
- package/styles/scss/{lib → ds/lib/ds-internal}/_focus.scss +13 -15
- package/styles/scss/ds/lib/ds-internal/_heading.scss +37 -0
- package/styles/scss/ds/lib/ds-internal/_helpers.scss +32 -0
- package/styles/scss/ds/lib/ds-internal/_high-contrast.scss +6 -0
- package/styles/scss/ds/lib/ds-internal/_hover.scss +6 -0
- package/styles/scss/ds/lib/ds-internal/_index.scss +9 -0
- package/styles/scss/ds/lib/ds-internal/_link.scss +62 -0
- package/styles/scss/ds/lib/ds-internal/_spacing-dynamic.scss +53 -0
- package/styles/scss/ds/lib/ds-internal/_text.scss +30 -0
- package/styles/scss/ds/lib/grid-extended.scss +11 -0
- package/styles/scss/ds/lib/grid-full.scss +6 -0
- package/styles/scss/ds/lib/grid-main.scss +119 -0
- package/styles/scss/ds/lib/grid-narrow.scss +14 -0
- package/styles/scss/ds/lib/grid-sidebar-sidebar.scss +52 -0
- package/styles/scss/{lib/_grid-sidebar.scss → ds/lib/grid-sidebar.scss} +23 -32
- package/styles/scss/{lib/_grid.scss → ds/lib/grid.scss} +15 -17
- package/styles/scss/ds/lib/heading.scss +75 -0
- package/styles/scss/ds/lib/link.scss +74 -0
- package/styles/scss/ds/lib/media-query.scss +32 -0
- package/styles/scss/{lib/_shadow.scss → ds/lib/shadow.scss} +2 -2
- package/styles/scss/ds/lib/spacing-dynamic.scss +7 -0
- package/styles/scss/ds/lib/spacing.scss +20 -0
- package/styles/scss/ds/lib/text.scss +83 -0
- package/styles/scss/ds/lib/theme.scss +162 -0
- package/styles/scss/ds/lib/transition.scss +36 -0
- package/switch.DI8YYa5G.js +65 -0
- package/{systemfeedback.ZzRUAVYX.js → systemfeedback.C3Pfxxpp.js} +6 -6
- package/text.DThvTwm8.js +57 -0
- package/{textarea.DJc527nX.js → textarea.CBvH0ljM.js} +3 -3
- package/title.DqzdB2Gq.js +36 -0
- package/{toast.D48GFmp0.js → toast.n1QUINSA.js} +3 -3
- package/{toastmanager.Dl8-Q3ED.js → toastmanager.B7EZ4JSI.js} +1 -1
- package/arialiveregions.BKpxxK7O.js +0 -27
- package/assets/Accordion.DMEFgtQm.css +0 -1
- package/assets/CheckboxGroup.Bz3_xkZU.css +0 -1
- package/assets/Chip.D10_7Q82.css +0 -1
- package/assets/CustomReactSelect.D5XKd9vg.css +0 -1
- package/assets/Dialog.B0pucIEI.css +0 -1
- package/assets/Drawer.CATBzfY7.css +0 -1
- package/assets/Fieldset.CwDhKRUL.css +0 -1
- package/assets/Icon.Duy_0R8w.css +0 -1
- package/assets/InputPassword.DOAAzj-O.css +0 -1
- package/assets/InputSearch.CxPYaQGZ.css +0 -1
- package/assets/InputStepper.CYYJUu0b.css +0 -1
- package/assets/Notification.mhVFeSGm.css +0 -1
- package/assets/Select.DZKpHV4G.css +0 -1
- package/assets/Textarea.Cp0b7oZp.css +0 -1
- package/assets/Toast.Cz6wYaBv.css +0 -1
- package/assets/arialiveregions.GsGx2USO.css +0 -1
- package/assets/asterisk.DlJ4YtSZ.css +0 -1
- package/assets/button.C9_ejpGG.css +0 -1
- package/assets/buttonround.DTCqRP-0.css +0 -1
- package/assets/checkbox.K4CVYK9g.css +0 -1
- package/assets/chipgroup.BMovtKTy.css +0 -1
- package/assets/flag.DX_lH1v7.css +0 -1
- package/assets/floatingactionbutton.Do-yEH6c.css +0 -1
- package/assets/heading.6bER-Eac.css +0 -1
- package/assets/input.Q5oKkmW2.css +0 -1
- package/assets/link.DhZqkLMP.css +0 -1
- package/assets/linkstandalone.Dwz-_O8q.css +0 -1
- package/assets/logo.pETQEsvZ.css +0 -1
- package/assets/optioncheckbox.C62HtIj5.css +0 -1
- package/assets/radio.-Xxx5wL4.css +0 -1
- package/assets/skiptocontent.CHcqLS7S.css +0 -1
- package/assets/spinner.D_Nnf1ZG.css +0 -1
- package/assets/switch.C1Ei0-z8.css +0 -1
- package/assets/systemfeedback.Sq0bAIyf.css +0 -1
- package/assets/text.DxKFcfY6.css +0 -1
- package/assets/title.f74Bosn-.css +0 -1
- package/asterisk.DDn-yX4P.js +0 -8
- package/button.C5opEJ6x.js +0 -135
- package/buttonround.CUoqRyy0.js +0 -118
- package/checkbox.DETR3e3X.js +0 -112
- package/chipgroup.BJrqEfvr.js +0 -175
- package/chunks/Accordion.DFwFN8mX.js +0 -125
- package/chunks/Dialog.Fwr6vLiK.js +0 -148
- package/chunks/Drawer.CKoYzQHd.js +0 -154
- package/chunks/InputPassword.C7pNeWGx.js +0 -143
- package/chunks/InputSearch.B24rcIJ_.js +0 -192
- package/chunks/InputStepper.CEW-bieQ.js +0 -294
- package/chunks/Notification.BXVN7_Fs.js +0 -93
- package/chunks/RadioGroup.D4UOflwr.js +0 -137
- package/chunks/Select.Ds86q4UC.js +0 -194
- package/chunks/Textarea.DcB8hKnO.js +0 -198
- package/chunks/Toast.DrzxdzVW.js +0 -89
- package/customreactselect.lYJhIeyx.js +0 -13
- package/fieldset.BqiAjeax.js +0 -11
- package/flag.XJHHSP38.js +0 -43
- package/floatingactionbutton.CMpkTdhX.js +0 -87
- package/heading.CAkraI2D.js +0 -50
- package/input.v7qB7wPJ.js +0 -239
- package/link.Clk5_BYp.js +0 -116
- package/linkstandalone.BXERmqdN.js +0 -80
- package/logo.CEO6OV7u.js +0 -65
- package/optioncheckbox.BPN3f6l_.js +0 -43
- package/radio.DTZNJzMU.js +0 -115
- package/skiptocontent.DUQWopO4.js +0 -46
- package/spinner.D-xrotcu.js +0 -58
- package/styles/scss/_index.scss +0 -24
- package/styles/scss/lib/_a11y.scss +0 -15
- package/styles/scss/lib/_animation.scss +0 -21
- package/styles/scss/lib/_breakpoints.scss +0 -15
- package/styles/scss/lib/_container-query.scss +0 -58
- package/styles/scss/lib/_grid-extended.scss +0 -11
- package/styles/scss/lib/_grid-full.scss +0 -6
- package/styles/scss/lib/_grid-main.scss +0 -117
- package/styles/scss/lib/_grid-narrow.scss +0 -16
- package/styles/scss/lib/_grid-sidebar-sidebar.scss +0 -50
- package/styles/scss/lib/_heading.scss +0 -107
- package/styles/scss/lib/_helpers.scss +0 -15
- package/styles/scss/lib/_high-contrast.scss +0 -24
- package/styles/scss/lib/_hover.scss +0 -10
- package/styles/scss/lib/_link.scss +0 -129
- package/styles/scss/lib/_media-query.scss +0 -32
- package/styles/scss/lib/_spacing-dynamic.scss +0 -61
- package/styles/scss/lib/_spacing.scss +0 -32
- package/styles/scss/lib/_text.scss +0 -110
- package/styles/scss/lib/_theme.scss +0 -162
- package/styles/scss/lib/_transition.scss +0 -45
- package/switch.CoNnIhM4.js +0 -65
- package/text.fMcHzVbH.js +0 -57
- package/title.LY1ylQsb.js +0 -36
- /package/components/{CustomReactSelect → Combobox/CustomReactSelect}/CustomReactSelect.utils.test.d.ts +0 -0
- /package/components/{CustomReactSelect → Combobox/CustomReactSelect}/OptionCheckbox.d.ts +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
@
|
|
2
|
-
@
|
|
1
|
+
@use '../theme' as *;
|
|
2
|
+
@use '_high-contrast' as *;
|
|
3
3
|
|
|
4
4
|
@mixin outline($theme, $offset, $thickness: 2px) {
|
|
5
5
|
outline: $thickness solid;
|
|
6
6
|
outline-color: if(
|
|
7
7
|
$theme == 'light',
|
|
8
|
-
$
|
|
9
|
-
$
|
|
8
|
+
$theme-light-border-color-focus,
|
|
9
|
+
$theme-dark-border-color-focus
|
|
10
10
|
);
|
|
11
11
|
outline-offset: $offset;
|
|
12
12
|
|
|
@@ -16,29 +16,27 @@
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
@mixin
|
|
19
|
+
|
|
20
|
+
@mixin focus($theme: 'light', $offset: 2px, $thickness: 2px) {
|
|
21
21
|
&:focus {
|
|
22
22
|
@include outline($theme, $offset, $thickness);
|
|
23
23
|
}
|
|
24
24
|
@supports selector(:focus-visible) {
|
|
25
25
|
&:focus {
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
outline: revert;
|
|
28
28
|
outline-offset: revert;
|
|
29
29
|
}
|
|
30
30
|
&:focus-visible {
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
@include outline($theme, $offset, $thickness);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
@mixin ds-focus-pseudo($theme: 'light', $offset: 2px, $thickness: 2px) {
|
|
41
|
-
// remove focus from actual element
|
|
37
|
+
|
|
38
|
+
@mixin focus-pseudo($theme: 'light', $offset: 2px, $thickness: 2px) {
|
|
39
|
+
|
|
42
40
|
&:focus,
|
|
43
41
|
&:focus-visible {
|
|
44
42
|
outline: none;
|
|
@@ -50,12 +48,12 @@
|
|
|
50
48
|
|
|
51
49
|
@supports selector(:focus-visible) {
|
|
52
50
|
&:focus::before {
|
|
53
|
-
|
|
51
|
+
|
|
54
52
|
outline: revert;
|
|
55
53
|
outline-offset: revert;
|
|
56
54
|
}
|
|
57
55
|
&:focus-visible::before {
|
|
58
|
-
|
|
56
|
+
|
|
59
57
|
@include outline($theme, $offset, $thickness);
|
|
60
58
|
}
|
|
61
59
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
@use 'sass:string';
|
|
2
|
+
@use '../media-query' as *;
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@mixin base-heading($fontFamily, $fontSize, $lineHeight) {
|
|
6
|
+
font-family: #{string.unquote(
|
|
7
|
+
$fontFamily +
|
|
8
|
+
', -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif'
|
|
9
|
+
)};
|
|
10
|
+
font-style: normal;
|
|
11
|
+
font-variant: normal;
|
|
12
|
+
font-weight: normal;
|
|
13
|
+
font-size: $fontSize;
|
|
14
|
+
line-height: $lineHeight;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@mixin base-heading-bold($fontFamily, $fontSize, $lineHeight) {
|
|
19
|
+
@include base-heading($fontFamily, $fontSize, $lineHeight);
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
font-size-adjust: 0.426;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@mixin base-heading-display-title($fontFamily, $fontSize, $lineHeight) {
|
|
27
|
+
@include base-heading($fontFamily, $fontSize, $lineHeight);
|
|
28
|
+
|
|
29
|
+
font-size-adjust: cap-height 0.68;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@mixin responsive-heading($min, $fontSize, $lineHeight) {
|
|
33
|
+
@include media-query-min($min: $min) {
|
|
34
|
+
font-size: $fontSize;
|
|
35
|
+
line-height: $lineHeight;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
@use 'sass:color';
|
|
2
|
+
@use 'sass:meta';
|
|
3
|
+
@use 'sass:string';
|
|
4
|
+
@use '../spacing' as *;
|
|
5
|
+
|
|
6
|
+
@function px-to-rem($pixels, $base-font-size: 16px) {
|
|
7
|
+
@return #{calc($pixels / $base-font-size)}rem;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@function urlEncodeHexColor($string) {
|
|
12
|
+
@if meta.type-of($string) == 'color' and string.index(#{$string}, '#') == 1 {
|
|
13
|
+
$hex: string.slice(color.ie-hex-str($string), 4);
|
|
14
|
+
$string: string.unquote('#{$hex}');
|
|
15
|
+
|
|
16
|
+
@return '%23' + $string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@return $string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@function adjust-spacing-for-border-1($spacing) {
|
|
27
|
+
@return #{calc($spacing - $spacing-1)};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@function adjust-spacing-for-border-2($spacing) {
|
|
31
|
+
@return #{calc($spacing - $spacing-2)};
|
|
32
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
@use '_focus' as *;
|
|
2
|
+
@use '_helpers' as *;
|
|
3
|
+
@use '_high-contrast' as *;
|
|
4
|
+
@use '_hover' as *;
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@mixin link-variant(
|
|
11
|
+
$content-color,
|
|
12
|
+
$background-color-hover,
|
|
13
|
+
$content-color-hover,
|
|
14
|
+
$theme: 'light'
|
|
15
|
+
) {
|
|
16
|
+
& {
|
|
17
|
+
color: $content-color;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
&:link,
|
|
21
|
+
&:visited {
|
|
22
|
+
color: $content-color;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&:active {
|
|
26
|
+
background-color: $background-color-hover;
|
|
27
|
+
color: $content-color-hover;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@include hover-media-query {
|
|
31
|
+
&:hover {
|
|
32
|
+
background-color: $background-color-hover;
|
|
33
|
+
color: $content-color-hover;
|
|
34
|
+
@include high-contrast-media-query {
|
|
35
|
+
background-color: Canvas;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&[href^="http://"]::after,
|
|
41
|
+
&[href^="https://"]::after
|
|
42
|
+
{
|
|
43
|
+
content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{urlEncodeHexColor($content-color)}' viewBox='0 0 16 16' focusable='false' width='100%25' height='100%25'%3E%3Cpath fill-rule='evenodd' d='M9 2V0h7v7h-2V3.4L8.1 9.3 6.7 7.9 12.6 2H9Zm5 8h-2v4H2V4h4V2H0v14h14v-6Z' clip-rule='evenodd'/%3E%3C/svg%3E");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&[href^='#']::after {
|
|
47
|
+
content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{urlEncodeHexColor($content-color)}' viewBox='0 0 16 16' focusable='false' width='100%25' height='100%25'%3E%3Cpath d='M14.4 9.6 8 16 1.6 9.6 3 8.2l4 4V0h2v12.2l4-4 1.4 1.4Z'/%3E%3C/svg%3E");
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@include focus($theme, $offset: 0);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
@mixin link-underline {
|
|
57
|
+
text-decoration-skip-ink: auto;
|
|
58
|
+
text-decoration-line: underline;
|
|
59
|
+
text-underline-offset: 2px;
|
|
60
|
+
text-decoration-thickness: 1px;
|
|
61
|
+
text-decoration-color: currentColor;
|
|
62
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
@use '../spacing.scss' as *;
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
$spacing-dynamic-values: (
|
|
5
|
+
'xs': (
|
|
6
|
+
'base': $spacing-16,
|
|
7
|
+
's': $spacing-16,
|
|
8
|
+
'm': $spacing-24,
|
|
9
|
+
'l': $spacing-24,
|
|
10
|
+
'xl': $spacing-32,
|
|
11
|
+
'xxl': $spacing-32,
|
|
12
|
+
),
|
|
13
|
+
's': (
|
|
14
|
+
'base': $spacing-24,
|
|
15
|
+
's': $spacing-24,
|
|
16
|
+
'm': $spacing-32,
|
|
17
|
+
'l': $spacing-32,
|
|
18
|
+
'xl': $spacing-40,
|
|
19
|
+
'xxl': $spacing-40,
|
|
20
|
+
),
|
|
21
|
+
'm': (
|
|
22
|
+
'base': $spacing-32,
|
|
23
|
+
's': $spacing-32,
|
|
24
|
+
'm': $spacing-40,
|
|
25
|
+
'l': $spacing-40,
|
|
26
|
+
'xl': $spacing-48,
|
|
27
|
+
'xxl': $spacing-48,
|
|
28
|
+
),
|
|
29
|
+
'l': (
|
|
30
|
+
'base': $spacing-40,
|
|
31
|
+
's': $spacing-40,
|
|
32
|
+
'm': $spacing-48,
|
|
33
|
+
'l': $spacing-48,
|
|
34
|
+
'xl': $spacing-56,
|
|
35
|
+
'xxl': $spacing-56,
|
|
36
|
+
),
|
|
37
|
+
'xl': (
|
|
38
|
+
'base': $spacing-56,
|
|
39
|
+
's': $spacing-56,
|
|
40
|
+
'm': $spacing-64,
|
|
41
|
+
'l': $spacing-64,
|
|
42
|
+
'xl': $spacing-80,
|
|
43
|
+
'xxl': $spacing-80,
|
|
44
|
+
),
|
|
45
|
+
'xxl': (
|
|
46
|
+
'base': $spacing-80,
|
|
47
|
+
's': $spacing-80,
|
|
48
|
+
'm': $spacing-96,
|
|
49
|
+
'l': $spacing-96,
|
|
50
|
+
'xl': $spacing-128,
|
|
51
|
+
'xxl': $spacing-128,
|
|
52
|
+
),
|
|
53
|
+
);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
@use 'sass:string';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
@mixin base-text($fontFamily, $fontSize, $lineHeight) {
|
|
5
|
+
font-family: #{string.unquote(
|
|
6
|
+
$fontFamily +
|
|
7
|
+
', -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif'
|
|
8
|
+
)};
|
|
9
|
+
font-style: normal;
|
|
10
|
+
font-variant: normal;
|
|
11
|
+
hyphens: manual;
|
|
12
|
+
overflow-wrap: break-word;
|
|
13
|
+
font-weight: normal;
|
|
14
|
+
font-size: $fontSize;
|
|
15
|
+
line-height: $lineHeight;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@mixin base-text-regular($fontFamily, $fontSize, $lineHeight) {
|
|
20
|
+
@include base-text($fontFamily, $fontSize, $lineHeight);
|
|
21
|
+
|
|
22
|
+
font-size-adjust: 0.414;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@mixin base-text-bold($fontFamily, $fontSize, $lineHeight) {
|
|
27
|
+
@include base-text($fontFamily, $fontSize, $lineHeight);
|
|
28
|
+
|
|
29
|
+
font-size-adjust: 0.426;
|
|
30
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
$grid-extended-column-start: extended-start;
|
|
2
|
+
$grid-extended-column-end: extended-end;
|
|
3
|
+
|
|
4
|
+
@mixin grid-extended-column {
|
|
5
|
+
grid-column: $grid-extended-column-start / $grid-extended-column-end;
|
|
6
|
+
|
|
7
|
+
@media (min-width: 1668px) {
|
|
8
|
+
margin-inline-start: -32px;
|
|
9
|
+
margin-inline-end: -32px;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
@use 'media-query' as *;
|
|
2
|
+
|
|
3
|
+
$grid-main-column-start: main-start;
|
|
4
|
+
$grid-main-column-end: main-end;
|
|
5
|
+
$grid-sidebar-main-column-start: $grid-main-column-start;
|
|
6
|
+
$grid-sidebar-main-column-end: $grid-main-column-end;
|
|
7
|
+
|
|
8
|
+
@mixin grid-main-column {
|
|
9
|
+
grid-column: $grid-main-column-start / $grid-main-column-end;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@mixin grid-sidebar-main-column {
|
|
13
|
+
@include grid-main-column;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@mixin grid-span-first-half {
|
|
18
|
+
grid-column: $grid-main-column-start / $grid-span-one-half;
|
|
19
|
+
}
|
|
20
|
+
@mixin grid-span-second-half {
|
|
21
|
+
grid-column: $grid-span-one-half / $grid-main-column-end;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@mixin grid-sidebar-span-first-half {
|
|
25
|
+
@include grid-span-first-half;
|
|
26
|
+
}
|
|
27
|
+
@mixin grid-sidebar-span-second-half {
|
|
28
|
+
@include grid-span-second-half;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@mixin grid-span-first-third {
|
|
33
|
+
grid-column: $grid-main-column-start / $grid-main-column-end;
|
|
34
|
+
@include media-query-min('m') {
|
|
35
|
+
grid-column: $grid-main-column-start / $grid-span-one-third;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
@mixin grid-span-one-third {
|
|
39
|
+
grid-column: $grid-main-column-start / $grid-main-column-end;
|
|
40
|
+
@include media-query-min('m') {
|
|
41
|
+
grid-column: $grid-span-one-third;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@mixin grid-sidebar-span-first-third {
|
|
46
|
+
@include grid-span-first-third;
|
|
47
|
+
}
|
|
48
|
+
@mixin grid-sidebar-span-one-third {
|
|
49
|
+
@include grid-span-one-third;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
@mixin grid-span-first-two-thirds {
|
|
54
|
+
grid-column: $grid-main-column-start / $grid-main-column-end;
|
|
55
|
+
@include media-query-min('m') {
|
|
56
|
+
grid-column: $grid-main-column-start / $grid-span-two-thirds;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
@mixin grid-span-two-thirds {
|
|
60
|
+
grid-column: $grid-main-column-start / $grid-main-column-end;
|
|
61
|
+
@include media-query-min('m') {
|
|
62
|
+
grid-column: $grid-span-two-thirds / $grid-main-column-end;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@mixin grid-sidebar-span-first-two-thirds {
|
|
67
|
+
@include grid-span-first-two-thirds;
|
|
68
|
+
}
|
|
69
|
+
@mixin grid-sidebar-span-two-thirds {
|
|
70
|
+
@include grid-span-two-thirds;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
@mixin grid-span-first-quarter {
|
|
75
|
+
grid-column: $grid-main-column-start / $grid-span-one-quarter;
|
|
76
|
+
}
|
|
77
|
+
@mixin grid-span-one-quarter {
|
|
78
|
+
grid-column: $grid-span-one-quarter;
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
&:nth-of-type(odd) {
|
|
83
|
+
grid-column: $grid-main-column-start / $grid-span-one-quarter;
|
|
84
|
+
}
|
|
85
|
+
@include media-query-min('l') {
|
|
86
|
+
&:nth-of-type(odd) {
|
|
87
|
+
grid-column: $grid-span-one-quarter;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@mixin grid-sidebar-span-first-quarter {
|
|
93
|
+
@include grid-span-first-quarter;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@mixin grid-sidebar-span-one-quarter {
|
|
97
|
+
grid-column: $grid-span-one-quarter;
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
&:nth-of-type(odd) {
|
|
102
|
+
grid-column: $grid-main-column-start / $grid-span-one-quarter;
|
|
103
|
+
}
|
|
104
|
+
@include media-query-min('xl') {
|
|
105
|
+
&:nth-of-type(odd) {
|
|
106
|
+
grid-column: $grid-span-one-quarter;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
$grid-span-one-half: var(--ds-grid-span-one-half);
|
|
112
|
+
$grid-span-one-third: var(--ds-grid-span-one-third);
|
|
113
|
+
$grid-span-two-thirds: var(--ds-grid-span-two-thirds);
|
|
114
|
+
$grid-span-one-quarter: var(--ds-grid-span-one-quarter);
|
|
115
|
+
|
|
116
|
+
$grid-sidebar-span-one-half: $grid-span-one-half;
|
|
117
|
+
$grid-sidebar-span-one-third: $grid-span-one-third;
|
|
118
|
+
$grid-sidebar-span-two-thirds: $grid-span-two-thirds;
|
|
119
|
+
$grid-sidebar-span-one-quarter: $grid-span-one-quarter;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
|
|
2
|
+
$grid-narrow-max-width: 948px;
|
|
3
|
+
$grid-narrow-left-column-start: narrow-left-start;
|
|
4
|
+
$grid-narrow-left-column-end: narrow-left-end;
|
|
5
|
+
$grid-narrow-center-column-start: narrow-center-start;
|
|
6
|
+
$grid-narrow-center-column-end: narrow-center-end;
|
|
7
|
+
|
|
8
|
+
@mixin grid-narrow-left-column {
|
|
9
|
+
grid-column: $grid-narrow-left-column-start / $grid-narrow-left-column-end;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@mixin grid-narrow-center-column {
|
|
13
|
+
grid-column: $grid-narrow-center-column-start / $grid-narrow-center-column-end;
|
|
14
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
@use 'media-query' as *;
|
|
2
|
+
|
|
3
|
+
$grid-sidebar-sidebar-1-column-start: sidebar-1-start;
|
|
4
|
+
$grid-sidebar-sidebar-1-column-end: sidebar-1-end;
|
|
5
|
+
$grid-sidebar-sidebar-2-column-start: sidebar-2-start;
|
|
6
|
+
$grid-sidebar-sidebar-2-column-end: sidebar-2-end;
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@mixin grid-sidebar-sidebar-1($is-open: false) {
|
|
10
|
+
display: none;
|
|
11
|
+
@include media-query-min('l') {
|
|
12
|
+
display: unset;
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
grid-row: span 300;
|
|
18
|
+
grid-column: $grid-sidebar-sidebar-1-column-start /
|
|
19
|
+
$grid-sidebar-sidebar-1-column-end;
|
|
20
|
+
margin-block-end: 0;
|
|
21
|
+
@if ($is-open == true) {
|
|
22
|
+
width: 264px;
|
|
23
|
+
max-width: 264px;
|
|
24
|
+
} @else {
|
|
25
|
+
width: 64px;
|
|
26
|
+
max-width: 64px;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@mixin grid-sidebar-sidebar-2($is-open: false) {
|
|
32
|
+
display: none;
|
|
33
|
+
@include media-query-min('l') {
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
grid-row: span 300;
|
|
39
|
+
margin-block-end: 0;
|
|
40
|
+
@if ($is-open == true) {
|
|
41
|
+
grid-column: $grid-sidebar-sidebar-2-column-start /
|
|
42
|
+
$grid-sidebar-sidebar-2-column-end;
|
|
43
|
+
display: unset;
|
|
44
|
+
width: 320px;
|
|
45
|
+
max-width: 320px;
|
|
46
|
+
margin-inline-start: -24px;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
@media (min-width: 1535px) {
|
|
50
|
+
margin-inline-start: -32px;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
@
|
|
1
|
+
@use 'grid-sidebar-sidebar' as *;
|
|
2
|
+
@use 'media-query' as *;
|
|
2
3
|
|
|
3
|
-
@mixin
|
|
4
|
+
@mixin grid-sidebar($is-sidebar-1-open: false, $is-sidebar-2-open: false) {
|
|
4
5
|
@if $is-sidebar-1-open == false and $is-sidebar-2-open == true {
|
|
5
|
-
@error "[STIHL Design System] - [ds
|
|
6
|
+
@error "[STIHL Design System] - [ds.grid-sidebar()]: Sidebar 1 cannot be visually closed when sidebar 2 is open";
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
display: grid;
|
|
@@ -21,28 +22,28 @@
|
|
|
21
22
|
|
|
22
23
|
@if $is-sidebar-1-open == false {
|
|
23
24
|
& > :first-child {
|
|
24
|
-
@include
|
|
25
|
+
@include grid-sidebar-sidebar-1(false);
|
|
25
26
|
}
|
|
26
27
|
& > :nth-child(2) {
|
|
27
|
-
@include
|
|
28
|
+
@include grid-sidebar-sidebar-2(false);
|
|
28
29
|
}
|
|
29
30
|
} @else if $is-sidebar-1-open == true and $is-sidebar-2-open == false {
|
|
30
31
|
& > :first-child {
|
|
31
|
-
@include
|
|
32
|
+
@include grid-sidebar-sidebar-1(true);
|
|
32
33
|
}
|
|
33
34
|
& > :nth-child(2) {
|
|
34
|
-
@include
|
|
35
|
+
@include grid-sidebar-sidebar-2(false);
|
|
35
36
|
}
|
|
36
37
|
} @else if $is-sidebar-1-open == true and $is-sidebar-2-open == true {
|
|
37
38
|
& > :first-child {
|
|
38
|
-
@include
|
|
39
|
+
@include grid-sidebar-sidebar-1(true);
|
|
39
40
|
}
|
|
40
41
|
& > :nth-child(2) {
|
|
41
|
-
@include
|
|
42
|
+
@include grid-sidebar-sidebar-2(true);
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
@include
|
|
46
|
+
@include media-query-min('m') {
|
|
46
47
|
--ds-grid-sidebar-gap: 24px;
|
|
47
48
|
gap: var(--ds-grid-sidebar-gap);
|
|
48
49
|
grid-template-columns:
|
|
@@ -56,12 +57,12 @@
|
|
|
56
57
|
--ds-grid-span-one-quarter: span 3;
|
|
57
58
|
}
|
|
58
59
|
|
|
59
|
-
@include
|
|
60
|
+
@include media-query-min('l') {
|
|
60
61
|
--ds-grid-sidebar-gap: 0px;
|
|
61
62
|
gap: var(--ds-grid-sidebar-gap);
|
|
62
63
|
column-gap: 24px;
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
|
|
65
|
+
|
|
65
66
|
margin-block-end: -24px;
|
|
66
67
|
|
|
67
68
|
@if $is-sidebar-1-open == false {
|
|
@@ -89,29 +90,24 @@
|
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
--ds-internal-grid-safe-zone-left: 2px;
|
|
92
|
-
|
|
93
|
-
* The safe zone + gap equal to what is called "margin" in the designs.
|
|
94
|
-
* The "margin" on the right differs ONLY in Figma, based on the status of the sidebar 1 and 2.
|
|
95
|
-
* HOWEVER, in code, the margins are always the same!
|
|
96
|
-
* 26 + 24 = 50
|
|
97
|
-
*/
|
|
93
|
+
|
|
98
94
|
--ds-internal-grid-safe-zone-right: 26px;
|
|
99
95
|
|
|
100
96
|
--ds-grid-span-one-half: span 3;
|
|
101
97
|
--ds-grid-span-one-third: span 2;
|
|
102
98
|
--ds-grid-span-two-thirds: span 4;
|
|
103
99
|
|
|
104
|
-
|
|
105
|
-
|
|
100
|
+
|
|
101
|
+
|
|
106
102
|
& > * {
|
|
107
103
|
margin-block-end: 24px;
|
|
108
104
|
}
|
|
109
105
|
}
|
|
110
106
|
|
|
111
|
-
@include
|
|
107
|
+
@include media-query-min('xl') {
|
|
112
108
|
column-gap: 32px;
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
|
|
110
|
+
|
|
115
111
|
margin-block-end: -32px;
|
|
116
112
|
|
|
117
113
|
@if $is-sidebar-1-open == false {
|
|
@@ -139,20 +135,15 @@
|
|
|
139
135
|
}
|
|
140
136
|
|
|
141
137
|
--ds-internal-grid-safe-zone-left: 0px;
|
|
142
|
-
|
|
143
|
-
* The safe zone + gap equal to what is called "margin" in the designs.
|
|
144
|
-
* The "margin" on the right differs ONLY in Figma, based on the status of the sidebar 1 and 2.
|
|
145
|
-
* HOWEVER, in code, the margins are always the same!
|
|
146
|
-
* 32 + 32 = 64
|
|
147
|
-
*/
|
|
138
|
+
|
|
148
139
|
--ds-internal-grid-safe-zone-right: 32px;
|
|
149
140
|
|
|
150
141
|
--ds-grid-span-one-half: span 6;
|
|
151
142
|
--ds-grid-span-one-third: span 4;
|
|
152
143
|
--ds-grid-span-two-thirds: span 8;
|
|
153
144
|
|
|
154
|
-
|
|
155
|
-
|
|
145
|
+
|
|
146
|
+
|
|
156
147
|
& > * {
|
|
157
148
|
margin-block-end: 32px;
|
|
158
149
|
}
|