@lucca-front/scss 16.2.7-rc.2 → 16.3.0-rc.1

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 (106) hide show
  1. package/dist/lucca-front.min.css +1 -1
  2. package/package.json +2 -2
  3. package/src/components/button/index.scss +1 -1
  4. package/src/components/button/mods.scss +6 -5
  5. package/src/components/button/states.scss +7 -3
  6. package/src/components/checkbox/mods.scss +1 -1
  7. package/src/components/checkboxField/component.scss +85 -0
  8. package/src/components/checkboxField/index.scss +72 -0
  9. package/src/components/checkboxField/mods.scss +18 -0
  10. package/src/components/checkboxField/states.scss +167 -0
  11. package/src/components/checkboxField/vars.scss +8 -0
  12. package/src/components/chip/index.scss +0 -8
  13. package/src/components/chip/mods.scss +0 -20
  14. package/src/components/clear/index.scss +1 -1
  15. package/src/components/clear/mods.scss +1 -1
  16. package/src/components/footer/component.scss +36 -0
  17. package/src/components/footer/exports.scss +4 -0
  18. package/src/components/footer/index.scss +10 -0
  19. package/src/components/footer/mods.scss +4 -0
  20. package/src/components/footer/vars.scss +2 -0
  21. package/src/components/formLabel/component.scss +21 -0
  22. package/src/components/formLabel/exports.scss +4 -0
  23. package/src/components/formLabel/index.scss +18 -0
  24. package/src/components/formLabel/mods.scss +17 -0
  25. package/src/components/formLabel/states.scss +8 -0
  26. package/src/components/formLabel/vars.scss +7 -0
  27. package/src/components/index.scss +13 -2
  28. package/src/components/inlineMessage/component.scss +13 -0
  29. package/src/components/inlineMessage/exports.scss +4 -0
  30. package/src/components/inlineMessage/index.scss +22 -0
  31. package/src/components/inlineMessage/mods.scss +5 -0
  32. package/src/components/inlineMessage/states.scss +41 -0
  33. package/src/components/inlineMessage/vars.scss +7 -0
  34. package/src/components/list/component.scss +16 -6
  35. package/src/components/list/mods.scss +4 -5
  36. package/src/components/menu/component.scss +2 -2
  37. package/src/components/menu/mods.scss +1 -1
  38. package/src/components/menu/states.scss +12 -2
  39. package/src/components/mobileHeader/component.scss +30 -0
  40. package/src/components/mobileHeader/exports.scss +4 -0
  41. package/src/components/mobileHeader/index.scss +10 -0
  42. package/src/components/mobileHeader/mods.scss +23 -0
  43. package/src/components/mobileHeader/states.scss +0 -0
  44. package/src/components/mobileHeader/vars.scss +3 -0
  45. package/src/components/mobileNavigation/component.scss +56 -0
  46. package/src/components/mobileNavigation/exports.scss +4 -0
  47. package/src/components/mobileNavigation/index.scss +10 -0
  48. package/src/components/mobileNavigation/mods.scss +5 -0
  49. package/src/components/mobileNavigation/states.scss +0 -0
  50. package/src/components/mobileNavigation/vars.scss +2 -0
  51. package/src/components/navside/component.scss +6 -3
  52. package/src/components/navside/mods.scss +9 -1
  53. package/src/components/navside/states.scss +1 -1
  54. package/src/components/newBadge/component.scss +10 -0
  55. package/src/components/newBadge/exports.scss +4 -0
  56. package/src/components/newBadge/index.scss +6 -0
  57. package/src/components/newBadge/mods.scss +0 -0
  58. package/src/components/newBadge/states.scss +0 -0
  59. package/src/components/newBadge/vars.scss +2 -0
  60. package/src/components/numericBadge/component.scss +17 -0
  61. package/src/components/numericBadge/exports.scss +4 -0
  62. package/src/components/numericBadge/index.scss +14 -0
  63. package/src/components/numericBadge/mods.scss +13 -0
  64. package/src/components/numericBadge/states.scss +0 -0
  65. package/src/components/numericBadge/vars.scss +8 -0
  66. package/src/components/pagination/component.scss +1 -1
  67. package/src/components/radioButtons/component.scss +5 -0
  68. package/src/components/radioField/component.scss +98 -0
  69. package/src/components/radioField/exports.scss +4 -0
  70. package/src/components/radioField/index.scss +32 -0
  71. package/src/components/radioField/mods.scss +18 -0
  72. package/src/components/radioField/states.scss +122 -0
  73. package/src/components/radioField/vars.scss +7 -0
  74. package/src/components/switchField/component.scss +110 -0
  75. package/src/components/switchField/exports.scss +4 -0
  76. package/src/components/switchField/index.scss +32 -0
  77. package/src/components/switchField/mods.scss +18 -0
  78. package/src/components/switchField/states.scss +119 -0
  79. package/src/components/switchField/vars.scss +7 -0
  80. package/src/components/table/component.scss +4 -16
  81. package/src/components/table/mods.scss +9 -3
  82. package/src/components/table/vars.scss +1 -1
  83. package/src/components/textfield/component.scss +113 -61
  84. package/src/components/textfield/index.scss +10 -380
  85. package/src/components/textfield/mods.scss +61 -619
  86. package/src/components/textfield/states.scss +80 -228
  87. package/src/components/textfield/vars.scss +12 -39
  88. package/src/components/textfields/component.scss +77 -0
  89. package/src/components/textfields/exports.scss +4 -0
  90. package/src/components/textfields/index.scss +402 -0
  91. package/src/components/textfields/mods.scss +560 -0
  92. package/src/components/textfields/states.scss +224 -0
  93. package/src/components/textfields/vars.scss +41 -0
  94. package/src/components/title/component.scss +1 -1
  95. package/src/components/verticalNavigation/component.scss +42 -0
  96. package/src/components/verticalNavigation/exports.scss +4 -0
  97. package/src/components/verticalNavigation/index.scss +26 -0
  98. package/src/components/verticalNavigation/mods.scss +7 -0
  99. package/src/components/verticalNavigation/states.scss +28 -0
  100. package/src/components/verticalNavigation/vars.scss +4 -0
  101. package/src/components/sortableList/component.scss +0 -68
  102. package/src/components/sortableList/index.scss +0 -16
  103. package/src/components/sortableList/mods.scss +0 -19
  104. package/src/components/sortableList/vars.scss +0 -8
  105. /package/src/components/{sortableList → checkboxField}/exports.scss +0 -0
  106. /package/src/components/{sortableList → footer}/states.scss +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucca-front/scss",
3
- "version": "16.2.7-rc.2",
3
+ "version": "16.3.0-rc.1",
4
4
  "description": "A Sass framework for Lucca products.",
5
5
  "main": "src/main.scss",
6
6
  "scripts": {},
@@ -23,6 +23,6 @@
23
23
  "normalize.css": "^8.0.0"
24
24
  },
25
25
  "peerDependencies": {
26
- "@lucca-front/icons": "v16.2.7-rc.2"
26
+ "@lucca-front/icons": "v16.3.0-rc.1"
27
27
  }
28
28
  }
@@ -30,7 +30,7 @@
30
30
  @include XS;
31
31
  }
32
32
 
33
- &.mod-counter {
33
+ &.mod-counter { // deprecated
34
34
  @include counter;
35
35
 
36
36
  &.mod-S {
@@ -6,6 +6,7 @@
6
6
  --components-button-line-height: var(--sizes-S-lineHeight);
7
7
  --components-button-padding: .375rem .75rem;
8
8
  --icon-size: var(--sizes-M-fontSize);
9
+ --components-button-gap: .375rem;
9
10
  }
10
11
 
11
12
  @mixin XS {
@@ -55,7 +56,7 @@
55
56
  }
56
57
  }
57
58
 
58
- .button-counter {
59
+ .button-counter { // deprecated
59
60
  background-color: var(--palettes-300, var(--palettes-grey-300));
60
61
  color: var(--palettes-800, var(--palettes-grey-800));
61
62
  }
@@ -111,7 +112,7 @@
111
112
  --components-button-padding: var(--spacings-XS) calc(var(--spacings-XS) + var(--spacings-XXS)) var(--spacings-XS) var(--spacings-S);
112
113
 
113
114
  @at-root ($atRoot) {
114
- .button-counter {
115
+ .button-counter { // deprecated
115
116
  background-color: var(--palettes-600, var(--palettes-primary-600));
116
117
  border-radius: 1rem;
117
118
  display: flex;
@@ -124,7 +125,7 @@
124
125
  }
125
126
 
126
127
  &:hover {
127
- .button-counter {
128
+ .button-counter { // deprecated
128
129
  background-color: var(--palettes-500, var(--palettes-primary-500));
129
130
  }
130
131
  }
@@ -134,7 +135,7 @@
134
135
  @mixin counterS {
135
136
  --components-button-padding: .375rem calc(var(--spacings-XS) + var(--spacings-XXS)) .375rem var(--spacings-S);
136
137
 
137
- .button-counter {
138
+ .button-counter { // deprecated
138
139
  height: 1.25rem;
139
140
  min-width: 1.25rem;
140
141
  }
@@ -143,7 +144,7 @@
143
144
  @mixin counterXS {
144
145
  --components-button-padding: var(--spacings-XXS) var(--spacings-XS) var(--spacings-XXS) calc(var(--spacings-XS) + var(--spacings-XXS));
145
146
 
146
- .button-counter {
147
+ .button-counter { // deprecated
147
148
  height: 1rem;
148
149
  min-width: 1rem;
149
150
  }
@@ -7,17 +7,21 @@
7
7
  background-color: var(--commons-disabled-background);
8
8
  color: var(--commons-disabled-color);
9
9
  cursor: default;
10
+
11
+ .numericBadge {
12
+ background-color: var(--palettes-grey-200);
13
+ color: var(--commons-disabled-color);
14
+ }
10
15
  }
11
16
 
12
17
  @mixin disabledOutlined {
13
18
  background-color: var(--colors-white-color);
14
- box-shadow: inset 0 0 0 1px var(--palettes-400, var(--palettes-grey-400));
15
- color: var(--palettes-grey-500);
19
+ box-shadow: inset 0 0 0 1px var(--palettes-grey-200);
16
20
  cursor: default;
17
21
  }
18
22
 
19
23
  @mixin disabledText {
20
- color: var(--palettes-grey-500);
24
+ color: var(--commons-disabled-color);
21
25
  background-color: transparent;
22
26
  cursor: default;
23
27
  }
@@ -23,7 +23,7 @@
23
23
  }
24
24
 
25
25
  @mixin noLabel {
26
- height: 1.25rem;
26
+ height: 1rem;
27
27
 
28
28
  .checkbox-label {
29
29
  vertical-align: top;
@@ -0,0 +1,85 @@
1
+ @use '@lucca-front/scss/src/components/formLabel/exports' as formLabel;
2
+ @use '@lucca-front/icons/src/commons/utils/icon';
3
+ @use '@lucca-front/scss/src/commons/utils/a11y';
4
+
5
+ @mixin component($atRoot: 'without: rule') {
6
+ display: grid;
7
+ grid-template-columns: auto 1fr;
8
+ grid-column-gap: var(--spacings-XS);
9
+
10
+ @at-root ($atRoot) {
11
+ .checkboxField-label {
12
+ display: contents;
13
+ }
14
+
15
+ .checkboxField-label-input {
16
+ width: var(--component-checkboxField-label-input-size);
17
+ height: var(--component-checkboxField-label-input-size);
18
+ border: 2px solid var(--palettes-grey-700);
19
+ border-radius: var(--component-checkboxField-label-input-borderRadius);
20
+ position: relative;
21
+ top: var(--component-checkboxField-label-input-top);
22
+ color: var(--colors-white-color);
23
+ transition-property: color, border-color, background-color;
24
+ transition-duration: var(--commons-animations-durations-fast);
25
+ background-color: var(--colors-white-color);
26
+ cursor: pointer;
27
+
28
+ @media (prefers-reduced-motion: reduce) {
29
+ transition-property: none;
30
+ }
31
+
32
+ &::after {
33
+ content: '';
34
+ position: absolute;
35
+ inset: -2px;
36
+ outline-offset: 2px;
37
+ border-radius: var(--component-checkboxField-label-input-borderRadius);
38
+ }
39
+ }
40
+
41
+ .checkboxField-label-input-icon {
42
+ display: flex;
43
+ align-items: center;
44
+ justify-content: center;
45
+ width: 100%;
46
+ height: 100%;
47
+ transform: scale(0);
48
+ transition-property: transform;
49
+ transition-duration: var(--commons-animations-durations-fast);
50
+ transition-timing-function: cubic-bezier(0.5, -0.5, 0.5, 0);
51
+
52
+ @media (prefers-reduced-motion: reduce) {
53
+ transition-property: none;
54
+ }
55
+
56
+ &::before {
57
+ font-weight: 400;
58
+ font-size: var(--component-checkboxField-label-input-icon-fontSize);
59
+ direction: ltr;
60
+ font-family: 'Lucca icons';
61
+ font-feature-settings: 'liga';
62
+ font-style: normal;
63
+ letter-spacing: normal;
64
+ line-height: 1;
65
+ text-transform: none;
66
+ white-space: nowrap;
67
+ word-wrap: normal;
68
+ content: '\e97d'; // Remove when content alternative will have a good support
69
+ content: '\e97d' / '';
70
+ }
71
+ }
72
+
73
+ .checkboxField-input {
74
+ @include a11y.mask;
75
+ }
76
+
77
+ .formLabel {
78
+ @include formLabel.label;
79
+ }
80
+
81
+ .inlineMessage {
82
+ grid-column: 2;
83
+ }
84
+ }
85
+ }
@@ -0,0 +1,72 @@
1
+ @use 'exports' as *;
2
+
3
+ .checkboxField {
4
+ @include vars;
5
+ @include component;
6
+
7
+ &.mod-S {
8
+ @include S;
9
+ }
10
+ }
11
+
12
+ .checkboxField-input {
13
+ &[aria-checked='mixed'] {
14
+ @include mixed;
15
+ }
16
+
17
+ &:focus-visible {
18
+ @include focusVisible;
19
+ }
20
+
21
+ &:hover {
22
+ @include hover;
23
+ }
24
+
25
+ &:active {
26
+ @include active;
27
+ }
28
+
29
+ &:disabled {
30
+ @include disabled;
31
+ }
32
+
33
+ &[aria-invalid='true'] {
34
+ @include invalid;
35
+
36
+ &:hover {
37
+ @include invalidHover;
38
+ }
39
+
40
+ &:active {
41
+ @include invalidActive;
42
+ }
43
+ }
44
+
45
+ &:checked {
46
+ @include checked;
47
+
48
+ &:hover {
49
+ @include checkedHover;
50
+ }
51
+
52
+ &:active {
53
+ @include checkedActive;
54
+ }
55
+
56
+ &:disabled {
57
+ @include checkedDisabled;
58
+ }
59
+
60
+ &[aria-invalid='true'] {
61
+ @include checkedInvalid;
62
+
63
+ &:hover {
64
+ @include checkedInvalidHover;
65
+ }
66
+
67
+ &:active {
68
+ @include checkedInvalidActive;
69
+ }
70
+ }
71
+ }
72
+ }
@@ -0,0 +1,18 @@
1
+ @use '@lucca-front/scss/src/components/formLabel/exports' as formLabel;
2
+ @use '@lucca-front/scss/src/components/inlineMessage/exports' as inlineMessage;
3
+
4
+ @mixin S {
5
+ --component-checkboxField-label-input-size: 1rem;
6
+ --component-checkboxField-label-input-borderRadius: var(--commons-borderRadius-M);
7
+ --component-checkboxField-label-input-icon-fontSize: var(--sizes-XS-lineHeight);
8
+ --component-checkboxField-label-fontSize: var(--sizes-S-fontSize);
9
+ --component-checkboxField-label-lineHeight: var(--sizes-S-lineHeight);
10
+
11
+ .formLabel {
12
+ @include formLabel.S;
13
+ }
14
+
15
+ .inlineMessage {
16
+ @include inlineMessage.S;
17
+ }
18
+ }
@@ -0,0 +1,167 @@
1
+ @use '@lucca-front/scss/src/components/inlineMessage/exports' as inlineMessage;
2
+ @use '@lucca-front/scss/src/components/formLabel/exports' as formLabel;
3
+ @use '@lucca-front/icons/src/commons/utils/icon';
4
+ @use '@lucca-front/scss/src/commons/utils/form';
5
+ @use '@lucca-front/scss/src/commons/utils/a11y';
6
+
7
+ @mixin mixed {
8
+ ~ .checkboxField-label {
9
+ .checkboxField-label-input-icon {
10
+ &::before {
11
+ content: '\e975'; // Remove when content alternative will have a good support
12
+ content: '\e975' / '';
13
+ }
14
+ }
15
+ }
16
+ }
17
+
18
+ @mixin checked {
19
+ ~ .checkboxField-label {
20
+ .checkboxField-label-input {
21
+ background-color: var(--palettes-primary-700);
22
+ border-color: var(--palettes-primary-700);
23
+ }
24
+
25
+ .checkboxField-label-input-icon {
26
+ transform: scale(1);
27
+ transition-timing-function: cubic-bezier(0.5, 1, 0.5, 1.5);
28
+ }
29
+ }
30
+ }
31
+
32
+ @mixin hover {
33
+ ~ .checkboxField-label {
34
+ .checkboxField-label-input {
35
+ border-color: var(--palettes-grey-600);
36
+ }
37
+ }
38
+ }
39
+
40
+ @mixin checkedHover {
41
+ ~ .checkboxField-label {
42
+ .checkboxField-label-input {
43
+ background-color: var(--palettes-primary-600);
44
+ border-color: var(--palettes-primary-600);
45
+ }
46
+ }
47
+ }
48
+
49
+ @mixin checkedActive {
50
+ ~ .checkboxField-label {
51
+ .checkboxField-label-input {
52
+ background-color: var(--palettes-primary-800);
53
+ border-color: var(--palettes-primary-800);
54
+ }
55
+ }
56
+ }
57
+
58
+ @mixin checkedDisabled {
59
+ ~ .checkboxField-label {
60
+ .checkboxField-label-input {
61
+ background-color: var(--palettes-grey-100);
62
+ border-color: var(--palettes-grey-100);
63
+ color: var(--palettes-grey-500);
64
+ }
65
+ }
66
+ }
67
+
68
+ @mixin checkedHover {
69
+ ~ .checkboxField-label {
70
+ .checkboxField-label-input {
71
+ background-color: var(--palettes-primary-600);
72
+ border-color: var(--palettes-primary-600);
73
+ }
74
+ }
75
+ }
76
+
77
+ @mixin checkedInvalid {
78
+ ~ .checkboxField-label {
79
+ .checkboxField-label-input {
80
+ background-color: var(--palettes-error-700);
81
+ border-color: var(--palettes-error-700);
82
+ }
83
+ }
84
+ }
85
+
86
+ @mixin active {
87
+ ~ .checkboxField-label {
88
+ .checkboxField-label-input {
89
+ border-color: var(--palettes-grey-800);
90
+ }
91
+ }
92
+ }
93
+
94
+ @mixin disabled {
95
+ ~ .checkboxField-label {
96
+ color: var(--palettes-grey-500);
97
+
98
+ .checkboxField-label-input {
99
+ border-color: var(--palettes-grey-500);
100
+ cursor: default;
101
+ }
102
+
103
+ .formLabel {
104
+ @include formLabel.disabled;
105
+ }
106
+ }
107
+
108
+ ~ .inlineMessage {
109
+ @include inlineMessage.disabled;
110
+ }
111
+ }
112
+
113
+ @mixin focusVisible {
114
+ ~ .checkboxField-label {
115
+ .checkboxField-label-input {
116
+ &::after {
117
+ @include a11y.focusVisible();
118
+ }
119
+ }
120
+ }
121
+ }
122
+
123
+ @mixin invalid {
124
+ ~ .checkboxField-label {
125
+ .checkboxField-label-input {
126
+ border-color: var(--palettes-error-700);
127
+ }
128
+
129
+ .formLabel {
130
+ @include formLabel.error;
131
+ }
132
+ }
133
+ }
134
+
135
+ @mixin invalidHover {
136
+ ~ .checkboxField-label {
137
+ .checkboxField-label-input {
138
+ border-color: var(--palettes-error-600);
139
+ }
140
+ }
141
+ }
142
+
143
+ @mixin invalidActive {
144
+ ~ .checkboxField-label {
145
+ .checkboxField-label-input {
146
+ border-color: var(--palettes-error-800);
147
+ }
148
+ }
149
+ }
150
+
151
+ @mixin checkedInvalidHover {
152
+ ~ .checkboxField-label {
153
+ .checkboxField-label-input {
154
+ background-color: var(--palettes-error-600);
155
+ border-color: var(--palettes-error-600);
156
+ }
157
+ }
158
+ }
159
+
160
+ @mixin checkedInvalidActive {
161
+ ~ .checkboxField-label {
162
+ .checkboxField-label-input {
163
+ background-color: var(--palettes-error-800);
164
+ border-color: var(--palettes-error-800);
165
+ }
166
+ }
167
+ }
@@ -0,0 +1,8 @@
1
+ @mixin vars {
2
+ --component-checkboxField-label-input-size: 1.25rem;
3
+ --component-checkboxField-label-input-top: .125rem;
4
+ --component-checkboxField-label-input-borderRadius: 6px;
5
+ --component-checkboxField-label-input-icon-fontSize: var(--sizes-S-lineHeight);
6
+ --component-checkboxField-label-fontSize: var(--sizes-M-fontSize);
7
+ --component-checkboxField-label-lineHeight: var(--sizes-M-lineHeight);
8
+ }
@@ -8,14 +8,6 @@
8
8
  @include primary;
9
9
  }
10
10
 
11
- &.mod-unkillable {
12
- @include unkillable;
13
- }
14
-
15
- &.mod-clickable {
16
- @include clickable;
17
- }
18
-
19
11
  &.is-disabled {
20
12
  @include disabled;
21
13
  }
@@ -2,28 +2,8 @@
2
2
 
3
3
  @mixin primary {
4
4
  .chip-kill {
5
-
6
- &:hover {
7
- background-color: var(--palettes-primary-50);
8
- }
9
-
10
5
  &:focus-visible {
11
6
  @include a11y.focusVisible($color: var(--colors-white-color));
12
7
  }
13
8
  }
14
9
  }
15
-
16
- @mixin unkillable {
17
- .chip-kill {
18
- display: none;
19
- }
20
- }
21
-
22
- @mixin clickable {
23
- cursor: pointer;
24
- text-decoration: none;
25
-
26
- &:hover {
27
- background-color: var(--palettes-600, var(--palettes-grey-100));
28
- }
29
- }
@@ -5,7 +5,7 @@
5
5
  @include component;
6
6
 
7
7
  &.mod-S {
8
- @include s;
8
+ @include S;
9
9
  }
10
10
 
11
11
  &.palette-primary:not([disabled]) {
@@ -11,7 +11,7 @@
11
11
  }
12
12
  }
13
13
 
14
- @mixin s {
14
+ @mixin S {
15
15
  --components-clear-size: .75rem;
16
16
  --components-clear-icon-size: .75rem;
17
17
  }
@@ -0,0 +1,36 @@
1
+ @use '@lucca-front/scss/src/commons/utils/media';
2
+
3
+ @mixin component($atRoot: 'without: rule') {
4
+ background-color: var(--colors-white-color);
5
+ padding: var(--spacings-S) var(--spacings-M);
6
+ display: flex;
7
+ gap: var(--spacings-S);
8
+ align-items: center;
9
+ box-shadow: var(--commons-boxShadow-L);
10
+
11
+ @include media.max("XXS") {
12
+ flex-direction: column;
13
+ }
14
+
15
+ @at-root ($atRoot) {
16
+ .footer-actions {
17
+ display: flex;
18
+ margin-left: auto;
19
+ gap: var(--spacings-S);
20
+
21
+ .button {
22
+ margin: 0;
23
+ }
24
+
25
+ @include media.max("XXS") {
26
+ flex-direction: column;
27
+ margin-left: inherit;
28
+ width: 100%;
29
+
30
+ .button {
31
+ width: 100%;
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,4 @@
1
+ @forward 'vars';
2
+ @forward 'mods';
3
+ @forward 'states';
4
+ @forward 'component';
@@ -0,0 +1,10 @@
1
+ @use 'exports' as *;
2
+
3
+ .footer {
4
+ @include vars;
5
+ @include component;
6
+
7
+ &.mod-sticky {
8
+ @include sticky;
9
+ }
10
+ }
@@ -0,0 +1,4 @@
1
+ @mixin sticky {
2
+ position: sticky;
3
+ bottom: 0;
4
+ }
@@ -0,0 +1,2 @@
1
+ @mixin vars {
2
+ }
@@ -0,0 +1,21 @@
1
+ @mixin component($atRoot: 'without: rule') {
2
+ color: var(--components-formLabel-color);
3
+ display: inline-block;
4
+ font-size: var(--components-formLabel-fontSize);
5
+ line-height: var(--components-formLabel-lineHeight);
6
+ width: fit-content;
7
+
8
+ .lucca-icon {
9
+ color: var(--palettes-grey-600);
10
+ font-size: var(--components-formLabel-required-fontSize);
11
+ line-height: var(--components-formLabel-required-lineHeight);
12
+ margin-left: .125rem;
13
+ vertical-align: top;
14
+ }
15
+
16
+ @at-root ($atRoot) {
17
+ .formLabel-required {
18
+ color: var(--palettes-error-700);
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,4 @@
1
+ @forward 'vars';
2
+ @forward 'mods';
3
+ @forward 'states';
4
+ @forward 'component';
@@ -0,0 +1,18 @@
1
+ @use 'exports' as *;
2
+
3
+ .formLabel {
4
+ @include vars;
5
+ @include component;
6
+
7
+ &.mod-S {
8
+ @include S;
9
+ }
10
+
11
+ &.mod-XS {
12
+ @include XS;
13
+ }
14
+
15
+ &.is-error { // To replace by :has as soon as it is implemented in Firefox to cover usage as legend for checkboxes and radio states.
16
+ @include error;
17
+ }
18
+ }
@@ -0,0 +1,17 @@
1
+ @mixin S {
2
+ --components-formLabel-fontSize: var(--sizes-S-fontSize);
3
+ --components-formLabel-lineHeight: var(--sizes-S-lineHeight);
4
+ --components-formLabel-required-fontSize: var(--sizes-XS-lineHeight);
5
+ --components-formLabel-required-lineHeight: var(--sizes-S-lineHeight);
6
+ }
7
+
8
+ @mixin XS {
9
+ --components-formLabel-fontSize: var(--sizes-XS-fontSize);
10
+ --components-formLabel-lineHeight: var(--sizes-XS-lineHeight);
11
+ --components-formLabel-required-fontSize: .75rem;
12
+ --components-formLabel-required-lineHeight: var(--sizes-XS-lineHeight);
13
+ }
14
+
15
+ @mixin label {
16
+ cursor: pointer;
17
+ }
@@ -0,0 +1,8 @@
1
+ @mixin error {
2
+ --components-formLabel-color: var(--palettes-error-700);
3
+ }
4
+
5
+ @mixin disabled {
6
+ --components-formLabel-color: var(--palettes-grey-500);
7
+ pointer-events: none;
8
+ }
@@ -0,0 +1,7 @@
1
+ @mixin vars {
2
+ --components-formLabel-fontSize: var(--sizes-M-fontSize);
3
+ --components-formLabel-lineHeight: var(--sizes-M-lineHeight);
4
+ --components-formLabel-color: var(--palettes-grey-800);
5
+ --components-formLabel-required-fontSize: var(--sizes-XS-lineHeight);
6
+ --components-formLabel-required-lineHeight: var(--sizes-M-lineHeight);
7
+ }