@configura/web-ui 1.3.0-alpha.5 → 1.3.0-alpha.7

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 (79) hide show
  1. package/.postcssrc.json +8 -8
  2. package/LICENSE +201 -201
  3. package/README.md +1 -1
  4. package/dist/components/CanvasWrapper.d.ts +9 -9
  5. package/dist/components/CanvasWrapper.js +8 -8
  6. package/dist/components/ConfigurationActionsButtonRow.d.ts +11 -11
  7. package/dist/components/ConfigurationActionsButtonRow.js +13 -13
  8. package/dist/components/Configurator.d.ts +12 -12
  9. package/dist/components/Configurator.js +15 -15
  10. package/dist/components/ConfiguratorWrapper.d.ts +8 -8
  11. package/dist/components/ConfiguratorWrapper.js +5 -5
  12. package/dist/components/CurrencyPrice.d.ts +9 -9
  13. package/dist/components/CurrencyPrice.js +7 -7
  14. package/dist/components/ExpandableHeadingRow.d.ts +15 -15
  15. package/dist/components/ExpandableHeadingRow.js +21 -21
  16. package/dist/components/Loading.d.ts +13 -13
  17. package/dist/components/Loading.js +20 -20
  18. package/dist/components/ProductInformation.d.ts +10 -10
  19. package/dist/components/ProductInformation.js +23 -23
  20. package/dist/components/icons/Checkmark.d.ts +5 -5
  21. package/dist/components/icons/Checkmark.js +12 -12
  22. package/dist/components/icons/Chevron.d.ts +6 -6
  23. package/dist/components/icons/Chevron.js +18 -18
  24. package/dist/components/productConfiguration/CfgAdditionalProductView.d.ts +3 -3
  25. package/dist/components/productConfiguration/CfgAdditionalProductView.js +28 -28
  26. package/dist/components/productConfiguration/CfgCheckboxView.d.ts +18 -18
  27. package/dist/components/productConfiguration/CfgCheckboxView.js +22 -22
  28. package/dist/components/productConfiguration/CfgCheckboxesView.d.ts +12 -12
  29. package/dist/components/productConfiguration/CfgCheckboxesView.js +18 -18
  30. package/dist/components/productConfiguration/CfgDropdownOptionView.d.ts +18 -18
  31. package/dist/components/productConfiguration/CfgDropdownOptionView.js +35 -35
  32. package/dist/components/productConfiguration/CfgDropdownView.d.ts +12 -12
  33. package/dist/components/productConfiguration/CfgDropdownView.js +20 -20
  34. package/dist/components/productConfiguration/CfgFeatureView.d.ts +27 -27
  35. package/dist/components/productConfiguration/CfgFeatureView.js +34 -34
  36. package/dist/components/productConfiguration/CfgGroupView.d.ts +4 -4
  37. package/dist/components/productConfiguration/CfgGroupView.js +13 -13
  38. package/dist/components/productConfiguration/CfgOptionFeaturesView.d.ts +6 -6
  39. package/dist/components/productConfiguration/CfgOptionFeaturesView.js +13 -13
  40. package/dist/components/productConfiguration/CfgOptionNumericView.d.ts +27 -27
  41. package/dist/components/productConfiguration/CfgOptionNumericView.js +117 -116
  42. package/dist/components/productConfiguration/CfgOptionPriceView.d.ts +9 -9
  43. package/dist/components/productConfiguration/CfgOptionPriceView.js +29 -29
  44. package/dist/components/productConfiguration/CfgProductConfigurationView.d.ts +18 -18
  45. package/dist/components/productConfiguration/CfgProductConfigurationView.js +45 -45
  46. package/dist/css/web-ui.css +1 -1
  47. package/dist/css/web-ui.css.map +1 -1
  48. package/dist/index.d.ts +20 -20
  49. package/dist/index.js +20 -20
  50. package/dist/scss/_button.scss +36 -36
  51. package/dist/scss/_configurator.scss +67 -67
  52. package/dist/scss/_expandable.scss +37 -37
  53. package/dist/scss/_feature-item.scss +124 -124
  54. package/dist/scss/_hr.scss +16 -16
  55. package/dist/scss/_loading.scss +98 -98
  56. package/dist/scss/_mixins.scss +56 -56
  57. package/dist/scss/_option-tree.scss +29 -29
  58. package/dist/scss/_product-information.scss +49 -49
  59. package/dist/scss/_range-view.scss +28 -20
  60. package/dist/scss/_slider.scss +70 -70
  61. package/dist/scss/_themed.scss +124 -124
  62. package/dist/scss/_utilities.scss +21 -21
  63. package/dist/scss/_variables.scss +6 -6
  64. package/dist/scss/icons/_checkmark.scss +46 -46
  65. package/dist/scss/icons/_chevron.scss +62 -62
  66. package/dist/scss/web-ui.scss +11 -11
  67. package/dist/useObservable.d.ts +4 -4
  68. package/dist/useObservable.js +18 -18
  69. package/dist/useRerender.d.ts +1 -1
  70. package/dist/useRerender.js +5 -5
  71. package/dist/useResize.d.ts +6 -6
  72. package/dist/useResize.js +47 -47
  73. package/dist/useSelected.d.ts +2 -2
  74. package/dist/useSelected.js +13 -13
  75. package/dist/useUniqueId.d.ts +1 -1
  76. package/dist/useUniqueId.js +7 -7
  77. package/dist/utilities.d.ts +5 -5
  78. package/dist/utilities.js +1 -1
  79. package/package.json +3 -3
@@ -1,49 +1,49 @@
1
- /**
2
- * Web UI Product information
3
- */
4
-
5
- @use "sass:math";
6
- @use "mixins";
7
-
8
- @mixin classes($textColor) {
9
- .cfgProductInfo {
10
- @include mixins.cfgRootStyles;
11
-
12
- color: $textColor;
13
-
14
- display: flex;
15
-
16
- &__left {
17
- flex: 1 1 auto;
18
- min-width: 0;
19
- overflow: hidden;
20
- }
21
-
22
- &__right {
23
- align-items: flex-end;
24
- display: flex;
25
- flex-direction: column;
26
- flex: 1 0 auto;
27
- margin-left: 1em;
28
- max-width: 0.333333333;
29
- min-width: 0;
30
- }
31
-
32
- &__name {
33
- display: block;
34
- font-size: 1.6em;
35
- font-weight: 600;
36
- line-height: 1.33;
37
- margin: 0;
38
- }
39
-
40
- &__number {
41
- font-size: 1.3em;
42
- font-weight: 400;
43
- line-height: 1.38;
44
- margin: 0;
45
- }
46
-
47
- @content;
48
- }
49
- }
1
+ /**
2
+ * Web UI Product information
3
+ */
4
+
5
+ @use "sass:math";
6
+ @use "mixins";
7
+
8
+ @mixin classes($textColor) {
9
+ .cfgProductInfo {
10
+ @include mixins.cfgRootStyles;
11
+
12
+ color: $textColor;
13
+
14
+ display: flex;
15
+
16
+ &__left {
17
+ flex: 1 1 auto;
18
+ min-width: 0;
19
+ overflow: hidden;
20
+ }
21
+
22
+ &__right {
23
+ align-items: flex-end;
24
+ display: flex;
25
+ flex-direction: column;
26
+ flex: 1 0 auto;
27
+ margin-left: 1em;
28
+ max-width: 0.333333333;
29
+ min-width: 0;
30
+ }
31
+
32
+ &__name {
33
+ display: block;
34
+ font-size: 1.6em;
35
+ font-weight: 600;
36
+ line-height: 1.33;
37
+ margin: 0;
38
+ }
39
+
40
+ &__number {
41
+ font-size: 1.3em;
42
+ font-weight: 400;
43
+ line-height: 1.38;
44
+ margin: 0;
45
+ }
46
+
47
+ @content;
48
+ }
49
+ }
@@ -1,20 +1,28 @@
1
- .cfgRangeView {
2
- display: flex;
3
- align-items: center;
4
-
5
- &__number-input {
6
- font-size: 1.5em;
7
- flex-grow: 1;
8
- text-align: right;
9
- }
10
-
11
- &__unit-label {
12
- font-size: 1.5em;
13
- margin-left: 0.3em;
14
- }
15
-
16
- &__slider-input.cfgSlider {
17
- margin-left: 1em;
18
- flex-grow: 3;
19
- }
20
- }
1
+ .cfgRangeView {
2
+ &__inputs {
3
+ display: flex;
4
+ align-items: center;
5
+ }
6
+
7
+ &__number-input {
8
+ font-size: 1.5em;
9
+ flex-grow: 1;
10
+ text-align: right;
11
+ }
12
+
13
+ &__unit-label {
14
+ font-size: 1.5em;
15
+ margin-left: 0.3em;
16
+ }
17
+
18
+ &__slider-input.cfgSlider {
19
+ margin-left: 1em;
20
+ flex-grow: 3;
21
+ }
22
+
23
+ &__error {
24
+ margin-top: 1em;
25
+ font-size: 1.5em;
26
+ color: #b00;
27
+ }
28
+ }
@@ -1,70 +1,70 @@
1
- @use "mixins";
2
-
3
- // The origins of this SCSS file is here:
4
- // https://css-tricks.com/sliding-nightmare-understanding-range-input/
5
-
6
- $trackHeight: 0.2em !default;
7
- $thumbDiameter: 2.8em !default;
8
-
9
- @mixin track($trackColor) {
10
- box-sizing: border-box;
11
- border: none;
12
- height: $trackHeight;
13
- background: $trackColor;
14
- }
15
-
16
- @mixin thumb($thumbColor, $thumbShadowColor) {
17
- box-sizing: border-box;
18
- border: none;
19
- width: $thumbDiameter;
20
- height: $thumbDiameter;
21
- border-radius: 50%;
22
- background: $thumbColor;
23
- box-shadow: 0 0.15em 0.45em 0.05em $thumbShadowColor;
24
- }
25
-
26
- @mixin classes($trackColor, $thumbColor, $thumbShadowColor) {
27
- .cfgSlider {
28
- @include mixins.cfgRootStyles;
29
-
30
- &,
31
- &::-webkit-slider-thumb {
32
- -webkit-appearance: none;
33
- }
34
-
35
- flex: 1;
36
- margin: 0;
37
- padding: 0;
38
- min-height: $thumbDiameter;
39
- background: transparent;
40
- font: inherit;
41
-
42
- &::-webkit-slider-runnable-track {
43
- @include track($trackColor);
44
- }
45
- &::-moz-range-track {
46
- @include track($trackColor);
47
- }
48
- &::-ms-track {
49
- @include track($trackColor);
50
- }
51
-
52
- &::-webkit-slider-thumb {
53
- margin-top: 0.5 * ($trackHeight - $thumbDiameter);
54
- @include thumb($thumbColor, $thumbShadowColor);
55
- }
56
- &::-moz-range-thumb {
57
- @include thumb($thumbColor, $thumbShadowColor);
58
- }
59
- &::-ms-thumb {
60
- margin-top: 0;
61
- @include thumb($thumbColor, $thumbShadowColor);
62
- }
63
-
64
- &::-ms-tooltip {
65
- display: none;
66
- }
67
-
68
- @content;
69
- }
70
- }
1
+ @use "mixins";
2
+
3
+ // The origins of this SCSS file is here:
4
+ // https://css-tricks.com/sliding-nightmare-understanding-range-input/
5
+
6
+ $trackHeight: 0.2em !default;
7
+ $thumbDiameter: 2.8em !default;
8
+
9
+ @mixin track($trackColor) {
10
+ box-sizing: border-box;
11
+ border: none;
12
+ height: $trackHeight;
13
+ background: $trackColor;
14
+ }
15
+
16
+ @mixin thumb($thumbColor, $thumbShadowColor) {
17
+ box-sizing: border-box;
18
+ border: none;
19
+ width: $thumbDiameter;
20
+ height: $thumbDiameter;
21
+ border-radius: 50%;
22
+ background: $thumbColor;
23
+ box-shadow: 0 0.15em 0.45em 0.05em $thumbShadowColor;
24
+ }
25
+
26
+ @mixin classes($trackColor, $thumbColor, $thumbShadowColor) {
27
+ .cfgSlider {
28
+ @include mixins.cfgRootStyles;
29
+
30
+ &,
31
+ &::-webkit-slider-thumb {
32
+ -webkit-appearance: none;
33
+ }
34
+
35
+ flex: 1;
36
+ margin: 0;
37
+ padding: 0;
38
+ min-height: $thumbDiameter;
39
+ background: transparent;
40
+ font: inherit;
41
+
42
+ &::-webkit-slider-runnable-track {
43
+ @include track($trackColor);
44
+ }
45
+ &::-moz-range-track {
46
+ @include track($trackColor);
47
+ }
48
+ &::-ms-track {
49
+ @include track($trackColor);
50
+ }
51
+
52
+ &::-webkit-slider-thumb {
53
+ margin-top: 0.5 * ($trackHeight - $thumbDiameter);
54
+ @include thumb($thumbColor, $thumbShadowColor);
55
+ }
56
+ &::-moz-range-thumb {
57
+ @include thumb($thumbColor, $thumbShadowColor);
58
+ }
59
+ &::-ms-thumb {
60
+ margin-top: 0;
61
+ @include thumb($thumbColor, $thumbShadowColor);
62
+ }
63
+
64
+ &::-ms-tooltip {
65
+ display: none;
66
+ }
67
+
68
+ @content;
69
+ }
70
+ }
@@ -1,124 +1,124 @@
1
- @use "sass:map";
2
- @use "sass:color";
3
-
4
- @use "variables" as v;
5
-
6
- // Components
7
- @use "button";
8
-
9
- @use "configurator";
10
- @use "expandable";
11
- @use "hr";
12
- @use "feature-item";
13
- @use "option-tree";
14
- @use "product-information";
15
- @use "loading";
16
- @use "slider";
17
- @use "range-view";
18
-
19
- // Icons
20
- @use "icons/checkmark";
21
- @use "icons/chevron";
22
-
23
- // Utilities
24
- @use "utilities";
25
-
26
- /* Colors */
27
-
28
- $black: hsl(0, 0%, 0%) !default;
29
- $white: hsl(0, 0%, 100%) !default;
30
- $darkGrey: hsl(0, 0%, 15%) !default;
31
-
32
- /* Specific colors */
33
-
34
- $border: hsl(252, 5%, 79%) !default;
35
- $borderDark: hsl(0, 0%, 73%) !default;
36
- $focusOutlineOuter: hsl(0, 0%, 13%) !default;
37
- $sliderTrack: #666 !default;
38
- $spinner2: hsla(0, 0%, 0%, 0.15);
39
- $grayText: hsl(0, 0%, 50%) !default;
40
- $text: hsl(0, 0%, 20%) !default;
41
- /* As convention we assume the default theme when naming colors,
42
- as attempts at generic naming often leads to confussion */
43
- $lightTheme: (
44
- "black": $black,
45
- "border": $border,
46
- "borderDark": $borderDark,
47
- "checkButtonChecked": $black,
48
- "checkButtonUnchecked": $border,
49
- "chevronActive": $black,
50
- "chevronPassive": $borderDark,
51
- "divider": $border,
52
- "focusOutlineInner": $white,
53
- "focusOutlineOuter": $text,
54
- "grayText": $grayText,
55
- "overlayBackground": $white,
56
- "sliderThumb": $white,
57
- "sliderThumbShadow": $sliderTrack,
58
- "sliderTrack": $sliderTrack,
59
- "spinner1": $black,
60
- "spinner2": $spinner2,
61
- "text": $text,
62
- "white": $white,
63
- ) !default;
64
-
65
- @function invertLightness($color) {
66
- @return color.change(
67
- $color,
68
- $lightness: 100 - color.lightness($color) * 0.8
69
- ); // We scale with 80% to have a bit more contrast
70
- }
71
-
72
- @function invertLightnessList($list) {
73
- @each $key, $color in $list {
74
- $list: map.set($list, $key, invertLightness($color));
75
- }
76
- @return $list;
77
- }
78
-
79
- $darkTheme: invertLightnessList($lightTheme);
80
-
81
- $themes: (
82
- "light": $lightTheme,
83
- "dark": $darkTheme,
84
- );
85
-
86
- @mixin themed($ct, $baseFontSize: v.$baseFontSize, $overlayingZIndex: v.$overlayingZIndex) {
87
- @include button.classes(
88
- map.get($ct, "text"),
89
- map.get($ct, "borderDark"),
90
- map.get($ct, "focusOutlineInner"),
91
- map.get($ct, "focusOutlineOuter")
92
- );
93
- @include configurator.classes($baseFontSize, map.get($ct, "text"), map.get($ct, "divider"));
94
- @include expandable.classes;
95
- @include hr.classes(map.get($ct, "divider"));
96
- @include feature-item.classes(
97
- map.get($ct, "text"),
98
- map.get($ct, "grayText"),
99
- map.get($ct, "checkButtonUnchecked"),
100
- map.get($ct, "checkButtonChecked"),
101
- map.get($ct, "focusOutlineInner"),
102
- map.get($ct, "focusOutlineOuter")
103
- );
104
- @include option-tree.classes;
105
- @include product-information.classes(map.get($ct, "text"));
106
- @include loading.classes(
107
- map.get($ct, "black"),
108
- map.get($ct, "spinner1"),
109
- map.get($ct, "spinner2"),
110
- map.get($ct, "overlayBackground"),
111
- $overlayingZIndex
112
- );
113
-
114
- @include slider.classes(
115
- map.get($ct, "sliderTrack"),
116
- map.get($ct, "sliderThumb"),
117
- map.get($ct, "sliderThumbShadow")
118
- );
119
- @include checkmark.classes(
120
- map.get($ct, "checkButtonChecked"),
121
- map.get($ct, "checkButtonUnchecked")
122
- );
123
- @include chevron.classes(map.get($ct, "chevronActive"), map.get($ct, "chevronPassive"));
124
- }
1
+ @use "sass:map";
2
+ @use "sass:color";
3
+
4
+ @use "variables" as v;
5
+
6
+ // Components
7
+ @use "button";
8
+
9
+ @use "configurator";
10
+ @use "expandable";
11
+ @use "hr";
12
+ @use "feature-item";
13
+ @use "option-tree";
14
+ @use "product-information";
15
+ @use "loading";
16
+ @use "slider";
17
+ @use "range-view";
18
+
19
+ // Icons
20
+ @use "icons/checkmark";
21
+ @use "icons/chevron";
22
+
23
+ // Utilities
24
+ @use "utilities";
25
+
26
+ /* Colors */
27
+
28
+ $black: hsl(0, 0%, 0%) !default;
29
+ $white: hsl(0, 0%, 100%) !default;
30
+ $darkGrey: hsl(0, 0%, 15%) !default;
31
+
32
+ /* Specific colors */
33
+
34
+ $border: hsl(252, 5%, 79%) !default;
35
+ $borderDark: hsl(0, 0%, 73%) !default;
36
+ $focusOutlineOuter: hsl(0, 0%, 13%) !default;
37
+ $sliderTrack: #666 !default;
38
+ $spinner2: hsla(0, 0%, 0%, 0.15);
39
+ $grayText: hsl(0, 0%, 50%) !default;
40
+ $text: hsl(0, 0%, 20%) !default;
41
+ /* As convention we assume the default theme when naming colors,
42
+ as attempts at generic naming often leads to confussion */
43
+ $lightTheme: (
44
+ "black": $black,
45
+ "border": $border,
46
+ "borderDark": $borderDark,
47
+ "checkButtonChecked": $black,
48
+ "checkButtonUnchecked": $border,
49
+ "chevronActive": $black,
50
+ "chevronPassive": $borderDark,
51
+ "divider": $border,
52
+ "focusOutlineInner": $white,
53
+ "focusOutlineOuter": $text,
54
+ "grayText": $grayText,
55
+ "overlayBackground": $white,
56
+ "sliderThumb": $white,
57
+ "sliderThumbShadow": $sliderTrack,
58
+ "sliderTrack": $sliderTrack,
59
+ "spinner1": $black,
60
+ "spinner2": $spinner2,
61
+ "text": $text,
62
+ "white": $white,
63
+ ) !default;
64
+
65
+ @function invertLightness($color) {
66
+ @return color.change(
67
+ $color,
68
+ $lightness: 100 - color.lightness($color) * 0.8
69
+ ); // We scale with 80% to have a bit more contrast
70
+ }
71
+
72
+ @function invertLightnessList($list) {
73
+ @each $key, $color in $list {
74
+ $list: map.set($list, $key, invertLightness($color));
75
+ }
76
+ @return $list;
77
+ }
78
+
79
+ $darkTheme: invertLightnessList($lightTheme);
80
+
81
+ $themes: (
82
+ "light": $lightTheme,
83
+ "dark": $darkTheme,
84
+ );
85
+
86
+ @mixin themed($ct, $baseFontSize: v.$baseFontSize, $overlayingZIndex: v.$overlayingZIndex) {
87
+ @include button.classes(
88
+ map.get($ct, "text"),
89
+ map.get($ct, "borderDark"),
90
+ map.get($ct, "focusOutlineInner"),
91
+ map.get($ct, "focusOutlineOuter")
92
+ );
93
+ @include configurator.classes($baseFontSize, map.get($ct, "text"), map.get($ct, "divider"));
94
+ @include expandable.classes;
95
+ @include hr.classes(map.get($ct, "divider"));
96
+ @include feature-item.classes(
97
+ map.get($ct, "text"),
98
+ map.get($ct, "grayText"),
99
+ map.get($ct, "checkButtonUnchecked"),
100
+ map.get($ct, "checkButtonChecked"),
101
+ map.get($ct, "focusOutlineInner"),
102
+ map.get($ct, "focusOutlineOuter")
103
+ );
104
+ @include option-tree.classes;
105
+ @include product-information.classes(map.get($ct, "text"));
106
+ @include loading.classes(
107
+ map.get($ct, "black"),
108
+ map.get($ct, "spinner1"),
109
+ map.get($ct, "spinner2"),
110
+ map.get($ct, "overlayBackground"),
111
+ $overlayingZIndex
112
+ );
113
+
114
+ @include slider.classes(
115
+ map.get($ct, "sliderTrack"),
116
+ map.get($ct, "sliderThumb"),
117
+ map.get($ct, "sliderThumbShadow")
118
+ );
119
+ @include checkmark.classes(
120
+ map.get($ct, "checkButtonChecked"),
121
+ map.get($ct, "checkButtonUnchecked")
122
+ );
123
+ @include chevron.classes(map.get($ct, "chevronActive"), map.get($ct, "chevronPassive"));
124
+ }
@@ -1,21 +1,21 @@
1
- /**
2
- * Web UI Utilities
3
- */
4
-
5
- .cfgMl1 {
6
- margin-left: 1em;
7
- }
8
-
9
- .cfgMt1 {
10
- margin-top: 1em;
11
- }
12
-
13
- .cfgMb1 {
14
- margin-bottom: 1em;
15
- }
16
-
17
- .cfgTextOverflow {
18
- overflow: hidden;
19
- text-overflow: ellipsis;
20
- white-space: nowrap;
21
- }
1
+ /**
2
+ * Web UI Utilities
3
+ */
4
+
5
+ .cfgMl1 {
6
+ margin-left: 1em;
7
+ }
8
+
9
+ .cfgMt1 {
10
+ margin-top: 1em;
11
+ }
12
+
13
+ .cfgMb1 {
14
+ margin-bottom: 1em;
15
+ }
16
+
17
+ .cfgTextOverflow {
18
+ overflow: hidden;
19
+ text-overflow: ellipsis;
20
+ white-space: nowrap;
21
+ }
@@ -1,6 +1,6 @@
1
- /**
2
- * Web UI Variables
3
- */
4
-
5
- $baseFontSize: 10px !default; // We use 10px for easy em conversion
6
- $overlayingZIndex: 1000 !default;
1
+ /**
2
+ * Web UI Variables
3
+ */
4
+
5
+ $baseFontSize: 10px !default; // We use 10px for easy em conversion
6
+ $overlayingZIndex: 1000 !default;
@@ -1,46 +1,46 @@
1
- @use "../mixins";
2
-
3
- @mixin classes($colorActive, $colorPassive) {
4
- .cfgCheckmark {
5
- /* The distance-units inside the checkmark are px even though everything
6
- else is relative units. The SVG has its own coordinate space. */
7
-
8
- @include mixins.cfgRootStyles;
9
-
10
- display: inline-block;
11
- width: 100%;
12
- height: 100%;
13
-
14
- &__container {
15
- transition: transform 0.4s;
16
- transform: translateY(17px);
17
- }
18
-
19
- &__line {
20
- stroke: $colorActive;
21
- stroke-linecap: round;
22
- stroke-width: 12;
23
- transform-origin: 50px 50px;
24
- transition: transform 0.4s, stroke 0.4s;
25
- }
26
-
27
- &__lineLeft {
28
- stroke: $colorActive;
29
- transform: rotate(40deg) translateY(24px) translateX(18px);
30
- }
31
-
32
- &__lineRight {
33
- stroke: $colorActive;
34
- transform: rotate(-50deg) translateY(-2px) translateX(-3px);
35
- }
36
-
37
- @content;
38
-
39
- &__border {
40
- @include mixins.cfgCheckbox($colorPassive);
41
- &--active {
42
- @include mixins.cfgCheckbox($colorActive);
43
- }
44
- }
45
- }
46
- }
1
+ @use "../mixins";
2
+
3
+ @mixin classes($colorActive, $colorPassive) {
4
+ .cfgCheckmark {
5
+ /* The distance-units inside the checkmark are px even though everything
6
+ else is relative units. The SVG has its own coordinate space. */
7
+
8
+ @include mixins.cfgRootStyles;
9
+
10
+ display: inline-block;
11
+ width: 100%;
12
+ height: 100%;
13
+
14
+ &__container {
15
+ transition: transform 0.4s;
16
+ transform: translateY(17px);
17
+ }
18
+
19
+ &__line {
20
+ stroke: $colorActive;
21
+ stroke-linecap: round;
22
+ stroke-width: 12;
23
+ transform-origin: 50px 50px;
24
+ transition: transform 0.4s, stroke 0.4s;
25
+ }
26
+
27
+ &__lineLeft {
28
+ stroke: $colorActive;
29
+ transform: rotate(40deg) translateY(24px) translateX(18px);
30
+ }
31
+
32
+ &__lineRight {
33
+ stroke: $colorActive;
34
+ transform: rotate(-50deg) translateY(-2px) translateX(-3px);
35
+ }
36
+
37
+ @content;
38
+
39
+ &__border {
40
+ @include mixins.cfgCheckbox($colorPassive);
41
+ &--active {
42
+ @include mixins.cfgCheckbox($colorActive);
43
+ }
44
+ }
45
+ }
46
+ }