@trilogy-ds/styles 4.15.3 → 4.16.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.
@@ -68,8 +68,12 @@ $button-border-width: 2px !default;
68
68
  [aria-disabled=true] {
69
69
  pointer-events: none;
70
70
  }
71
- .icon{
72
- justify-content: start;
71
+ &:has(.icon) {
72
+ gap: $spacing-2;
73
+ }
74
+
75
+ .icon {
76
+ width: auto;
73
77
  }
74
78
 
75
79
  &.is-loading {
@@ -31,7 +31,8 @@
31
31
 
32
32
  .checkbox,
33
33
  .checkbox-tile {
34
- input:checked ~ label.checkbox-label {
34
+ input:checked ~ label.checkbox-label,
35
+ input:checked ~ .checkbox-container {
35
36
  &:before {
36
37
  background-color: getColor('main');
37
38
  }
@@ -44,7 +45,8 @@
44
45
  }
45
46
  }
46
47
 
47
- label.checkbox-label {
48
+ label.checkbox-label,
49
+ .checkbox-container {
48
50
  &:before,
49
51
  &:after {
50
52
  border-radius: var(--radius-small);
@@ -53,7 +55,8 @@
53
55
  }
54
56
 
55
57
  .checkbox-tile {
56
- input:checked ~ label.checkbox-label {
58
+ input:checked ~ label.checkbox-label,
59
+ input:checked ~ .checkbox-container {
57
60
  &:after {
58
61
  top: 15px;
59
62
  left: 15px;
@@ -833,7 +833,7 @@
833
833
  }
834
834
 
835
835
  &.is-gapless {
836
- --ColumnGap: 0;
836
+ --ColumnGap: 0px;
837
837
  }
838
838
 
839
839
  $itemWidth: calc((100% / (var(--ColumnFraction))) - ((((var(--ColumnFraction)) - 1) / (var(--ColumnFraction))) * var(--ColumnGap)));
@@ -2,6 +2,10 @@
2
2
  [disabled] {
3
3
  @include disabledRulesWithoutBG;
4
4
  }
5
+
6
+ &.is-small {
7
+ font-size: $size-6;
8
+ }
5
9
  }
6
10
 
7
11
  .link:not([disabled]) {
@@ -31,7 +31,8 @@
31
31
 
32
32
  .radio,
33
33
  .radio-tile {
34
- input:checked ~ label.radio-label {
34
+ input:checked ~ label.radio-label,
35
+ input:checked ~ .radio-container {
35
36
  cursor: default;
36
37
 
37
38
  &:after {
@@ -41,7 +42,8 @@
41
42
  }
42
43
  }
43
44
 
44
- label.radio-label {
45
+ label.radio-label,
46
+ .radio-container {
45
47
  &:before,
46
48
  &:after {
47
49
  border-radius: 9999px;
@@ -61,18 +63,19 @@
61
63
  @include hoverRules()
62
64
  }
63
65
  }
64
-
65
66
  }
66
67
 
67
68
  .radio-tile {
68
- input:checked ~ label.radio-label {
69
+ input:checked ~ label.radio-label,
70
+ input:checked ~ .radio-container {
69
71
  &:after {
70
72
  top: 18px;
71
73
  left: 18px;
72
74
  }
73
75
  }
74
76
 
75
- input:checked:disabled ~ label.radio-label {
77
+ input:checked:disabled ~ label.radio-label,
78
+ input:checked:disabled ~ .radio-container {
76
79
  &:after {
77
80
  background-color: getColor('neutral');
78
81
  top: 19px;
@@ -143,20 +143,36 @@
143
143
  font-weight: 400;
144
144
  font-size: 16px;
145
145
  line-height: 24px;
146
- padding-top: $spacing-2;
147
146
  gap: $spacing-1;
148
147
  .icon {
149
148
  font-size: 20px;
150
149
  height: auto;
151
150
  }
151
+ }
152
152
 
153
- @include touch {
154
- position: absolute;
155
- top: 10px;
156
- left: 0;
157
- }
153
+ .stepper-wrapper > .stepper-item > .step-label {
154
+ padding-top: $spacing-2;
155
+ @include touch {
156
+ position: absolute;
157
+ top: 10px;
158
+ left: 0;
159
+ }
158
160
  }
159
161
 
162
+ .stepper-container > .stepper-content > .step-label {
163
+ transition: opacity 0.3s ease-in-out;
164
+ animation: fadeInLabel 0.4s ease-out;
165
+ }
166
+
167
+ .stepper-content {
168
+ margin-bottom: $spacing-3 !important;
169
+ }
170
+
171
+ .stepper-steps {
172
+ margin-bottom: $spacing-2 !important;
173
+ }
174
+
175
+
160
176
  @include desktop {
161
177
  .step-count {
162
178
  display: none;
@@ -180,6 +196,20 @@
180
196
  display: none;
181
197
  }
182
198
  }
199
+
200
+ .stepper-container > .stepper-steps {
201
+ font-size: 12px !important;
202
+ line-height: 18px !important;
203
+ }
204
+
205
+ .stepper-container > .stepper-content > .step-label {
206
+ font-size: 14px !important;
207
+ line-height: 18px !important;
208
+ }
209
+
210
+ .stepper-container > .stepper-content > .icon {
211
+ font-size: 16px !important;
212
+ }
183
213
  }
184
214
 
185
215
  @include tablet-only {
@@ -194,9 +224,9 @@
194
224
 
195
225
  .stepper-item:not(.is-current) {
196
226
  display: flex;
197
-
227
+
198
228
  .step-label {
199
- display: none;
229
+ display: none;
200
230
  }
201
231
  }
202
232
  }
@@ -214,3 +244,11 @@
214
244
  }
215
245
  }
216
246
 
247
+ @keyframes fadeInLabel {
248
+ 0% {
249
+ opacity: 0;
250
+ }
251
+ 100% {
252
+ opacity: 1;
253
+ }
254
+ }
@@ -44,6 +44,60 @@
44
44
  display: flex;
45
45
  gap: 16px;
46
46
  flex-wrap: wrap;
47
+ &.is-grid {
48
+ display: grid;
49
+ & > .#{$type}-tile {
50
+ width: 100%;
51
+ max-width: none;
52
+ }
53
+ }
54
+ @for $i from 1 through 12 {
55
+ &.is-grid-cols-#{$i} {
56
+ grid-template-columns: repeat(#{$i}, 1fr);
57
+ }
58
+ }
59
+ @include mobile {
60
+ @for $i from 1 through 12 {
61
+ &.is-grid-cols-mobile-#{$i} {
62
+ grid-template-columns: repeat(#{$i}, 1fr);
63
+ }
64
+ }
65
+ }
66
+ @include tablet {
67
+ @for $i from 1 through 12 {
68
+ &.is-grid-cols-tablet-#{$i} {
69
+ grid-template-columns: repeat(#{$i}, 1fr);
70
+ }
71
+ }
72
+ }
73
+ @include touch {
74
+ @for $i from 1 through 12 {
75
+ &.is-grid-cols-touch-#{$i} {
76
+ grid-template-columns: repeat(#{$i}, 1fr);
77
+ }
78
+ }
79
+ }
80
+ @include desktop {
81
+ @for $i from 1 through 12 {
82
+ &.is-grid-cols-desktop-#{$i} {
83
+ grid-template-columns: repeat(#{$i}, 1fr);
84
+ }
85
+ }
86
+ }
87
+ @include widescreen {
88
+ @for $i from 1 through 12 {
89
+ &.is-grid-cols-widescreen-#{$i} {
90
+ grid-template-columns: repeat(#{$i}, 1fr);
91
+ }
92
+ }
93
+ }
94
+ @include fullhd {
95
+ @for $i from 1 through 12 {
96
+ &.is-grid-cols-fullhd-#{$i} {
97
+ grid-template-columns: repeat(#{$i}, 1fr);
98
+ }
99
+ }
100
+ }
47
101
  }
48
102
 
49
103
  //BOTH
@@ -51,7 +105,8 @@
51
105
  .#{$type}-tile {
52
106
  position: relative;
53
107
 
54
- label.#{$type}-label {
108
+ label.#{$type}-label,
109
+ .#{$type}-container {
55
110
  cursor: pointer;
56
111
  font-size: 14px;
57
112
 
@@ -73,7 +128,8 @@
73
128
  position: absolute;
74
129
  outline: none;
75
130
 
76
- &:checked ~ label.#{$type}-label {
131
+ &:checked ~ label.#{$type}-label,
132
+ &:checked ~ .#{$type}-container {
77
133
  border-color: getColor('main');
78
134
 
79
135
  &:before {
@@ -84,18 +140,22 @@
84
140
  background-color: getColor('main');
85
141
  }
86
142
  }
87
- &:focus-visible ~ label.#{$type}-label:before {
143
+
144
+ &:focus-visible ~ label.#{$type}-label:before,
145
+ &:focus-visible ~ .#{$type}-container:before {
88
146
  outline: 1px solid;
89
147
  }
90
148
 
91
149
  &:disabled,
92
150
  &:disabled:checked {
93
- & ~ label.checkbox-label {
151
+ & ~ label.checkbox-label,
152
+ & ~ .checkbox-container {
94
153
  &:after {
95
154
  background-color: getColor('disabled-fade');
96
155
  }
97
156
  }
98
- & ~ label.radio-label {
157
+ & ~ label.radio-label,
158
+ & ~ .radio-container {
99
159
  &:after {
100
160
  background-color: getColor('disabled');
101
161
  }
@@ -103,7 +163,8 @@
103
163
  }
104
164
 
105
165
  &:disabled {
106
- & ~ label.#{$type}-label {
166
+ & ~ label.#{$type}-label,
167
+ & ~ .#{$type}-container {
107
168
  &:after {
108
169
  background-color: transparent;
109
170
  }
@@ -164,11 +225,14 @@
164
225
 
165
226
  input:disabled,
166
227
  input:disabled:checked {
167
- & ~ label.#{$type}-label {
228
+ & ~ label.#{$type}-label,
229
+ & ~ .#{$type}-container {
168
230
  @include disabledRules;
169
231
  }
170
232
  }
171
- &:has(input:focus-visible) label.#{$type}-label{
233
+
234
+ &:has(input:focus-visible) label.#{$type}-label,
235
+ &:has(input:focus-visible) .#{$type}-container{
172
236
  outline: 1px solid;
173
237
  }
174
238
 
@@ -180,7 +244,8 @@
180
244
  margin-right: 0;
181
245
  }
182
246
 
183
- label.#{$type}-label {
247
+ label.#{$type}-label,
248
+ .#{$type}-container {
184
249
  display: block;
185
250
  position: relative;
186
251
  padding: 40px 16px 16px;
@@ -195,24 +260,32 @@
195
260
  left: 16px;
196
261
  }
197
262
 
198
- span.#{$type}-title {
263
+ span.#{$type}-title,
264
+ label.#{$type}-title {
199
265
  font-weight: bold;
200
266
  width: 100%;
201
267
  display: block;
202
268
  font-size: 16px;
203
269
  }
270
+
271
+ label.#{$type}-title {
272
+ cursor: pointer;
273
+ }
204
274
  }
205
275
 
206
276
  input {
207
- &:not(:disabled):not(:checked) ~ label.radio-label {
277
+ &:not(:disabled):not(:checked) ~ label.radio-label,
278
+ &:not(:disabled):not(:checked) ~ .radio-container {
208
279
  @include label-states;
209
280
  }
210
281
 
211
- &:not(:disabled) ~ label.checkbox-label {
282
+ &:not(:disabled) ~ label.checkbox-label,
283
+ &:not(:disabled) ~ .checkbox-container {
212
284
  @include label-states;
213
285
  }
214
286
 
215
- &:checked:not(:disabled) ~ label.#{$type}-label {
287
+ &:checked:not(:disabled) ~ label.#{$type}-label,
288
+ &:checked:not(:disabled) ~ .#{$type}-container {
216
289
  border-color: getColor('main');
217
290
  border-width: 2px;
218
291
  padding: 15px;
@@ -223,20 +296,23 @@
223
296
  left: 15px;
224
297
  }
225
298
 
226
- span.#{$type}-title {
299
+ span.#{$type}-title,
300
+ label.#{$type}-title {
227
301
  color: getColor('main');
228
302
  }
229
303
  }
230
304
 
231
305
  &:disabled {
232
- & ~ label.#{$type}-label {
306
+ & ~ label.#{$type}-label,
307
+ & ~ .#{$type}-container {
233
308
  &:before {
234
309
  border-color: getColor('disabled') !important;
235
310
  }
236
311
  }
237
312
  }
238
313
 
239
- &:disabled:checked ~ label.#{$type}-label {
314
+ &:disabled:checked ~ label.#{$type}-label,
315
+ &:disabled:checked ~ .#{$type}-container {
240
316
  .checkbox-title {
241
317
  color: getColor('disabled');
242
318
  }
@@ -263,13 +339,15 @@
263
339
  }
264
340
 
265
341
  input {
266
- &:checked:not(:disabled) ~ label.#{$type}-label {
342
+ &:checked:not(:disabled) ~ label.#{$type}-label,
343
+ &:checked:not(:disabled) ~ .#{$type}-container {
267
344
  padding: ($spacing-4 - 1px) ($spacing-4 - 1px) ($spacing-4 - 1px) ($spacing-8 - 1px);
268
345
  }
269
346
 
270
347
  }
271
348
 
272
- label.#{$type}-label {
349
+ label.#{$type}-label,
350
+ .#{$type}-container {
273
351
  width: 100%;
274
352
  display: flex;
275
353
  align-items: center;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trilogy-ds/styles",
3
- "version": "4.15.3",
3
+ "version": "4.16.1",
4
4
  "author": "Bouygues Telecom",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,217 +0,0 @@
1
- @use "sass:math";
2
-
3
- .stepper-wrapper {
4
- display: flex;
5
- position: relative;
6
- justify-content: space-between;
7
- min-height: 44px;
8
- gap: $spacing-4;
9
-
10
- @include touch {
11
- gap: $spacing-2;
12
- }
13
-
14
- .stepper-item {
15
- display: flex;
16
- flex-direction: column;
17
- width: 100%;
18
-
19
- &:before {
20
- content: "";
21
- display: block;
22
- height: 4px;
23
- border-radius: var(--radius-small);
24
- background-size: 200% !important;
25
- background-color: getColor('neutral');
26
- }
27
-
28
- &.is-error {
29
-
30
- &:before {
31
- background-color: getColor('error') !important;
32
-
33
- }
34
-
35
- &.is-current {
36
- &:before {
37
- animation: progress 1s;
38
- }
39
-
40
- }
41
-
42
- .step-bars {
43
- background: getColor('error') !important;
44
- }
45
-
46
- color: getColor('font');
47
-
48
- .step-label {
49
-
50
- &::before {
51
- content: "";
52
- mask-image: url('./assets/icons/all/times.svg') !important;
53
- background-color: getColor('error') !important;
54
- border-width: 0;
55
- mask-size: 20px;
56
- width: 20px;
57
- height: 20px;
58
- align-self: baseline;
59
- margin-top: 2px;
60
- }
61
-
62
- .icon {
63
- display: none;
64
- }
65
- }
66
- }
67
-
68
- &.is-done {
69
-
70
- &:before {
71
- background-color: getColor('font');
72
- }
73
-
74
- .step-bars {
75
- background: getColor('font');
76
- transition: background-color 1s ease-in-out;
77
- }
78
-
79
- .step-label {
80
- &::before {
81
- content: "";
82
- mask-image: url('./assets/icons/all/check-circle.svg');
83
- background-color: getColor('success');
84
- border-width: 0;
85
- min-width: 20px;
86
- mask-size: 20px;
87
- height: 20px;
88
- align-self: baseline;
89
- margin-top: 2px;
90
- }
91
- }
92
- }
93
-
94
- &.is-current,
95
- &.is-active {
96
-
97
- &:before {
98
- background-color: getColor('main');
99
- animation: progress 1s;
100
- }
101
-
102
- .step-bars {
103
- background: getColor('main');
104
- }
105
-
106
- .step-label {
107
- font-style: normal;
108
- font-weight: 600;
109
- font-size: 20px;
110
- line-height: 22px;
111
- width: max-content;
112
-
113
- .icon [class^=tri-], .icon [class*=" tri-"] {
114
- height: 22px;
115
- width: 22px;
116
- margin: 0 4px 0 -4px;
117
- }
118
-
119
- @include tablet-only {
120
- width: 90% !important;
121
- }
122
-
123
- @include mobile {
124
- font-size: 18px;
125
- width: 90%;
126
- }
127
- }
128
- }
129
- }
130
-
131
- .step-bars {
132
- height: 4px;
133
- background: getColor('disabled');
134
- border-radius: var(--radius-small);
135
- display: none;
136
- }
137
-
138
- .step-label {
139
- display: flex;
140
- align-items: center;
141
- color: getColor('font');
142
- font-style: normal;
143
- font-weight: 400;
144
- font-size: 16px;
145
- line-height: 24px;
146
- padding-top: $spacing-2;
147
- gap: $spacing-1;
148
-
149
- .icon {
150
- font-size: 20px;
151
- height: auto;
152
- }
153
-
154
- @include touch {
155
- position: absolute;
156
- top: 10px;
157
- left: 0;
158
- }
159
- }
160
-
161
- @include desktop {
162
- .step-count {
163
- display: none;
164
- }
165
- }
166
-
167
- @include mobile {
168
- .step-count {
169
- position: absolute;
170
- top: 23px;
171
- right: 8px;
172
- font-size: 14px;
173
- line-height: 18px;
174
- font-weight: 600;
175
- }
176
-
177
- .stepper-item:not(.is-current) {
178
- display: flex;
179
-
180
- .step-label {
181
- display: none;
182
- }
183
- }
184
- }
185
-
186
- @include tablet-only {
187
- .step-count {
188
- position: absolute;
189
- top: 24px;
190
- right: 8px;
191
- font-size: 14px;
192
- line-height: 18px;
193
- font-weight: 600;
194
- }
195
-
196
- .stepper-item:not(.is-current) {
197
- display: flex;
198
-
199
- .step-label {
200
- display: none;
201
- }
202
- }
203
- }
204
-
205
-
206
- @keyframes progress {
207
- 0%, 100% {
208
- background-image: linear-gradient(to right, transparent 0, transparent 50%, getColor('neutral') 50%, getColor('neutral') 100%);
209
- }
210
- 0% {
211
- background-position: 100% 0;
212
- }
213
- 100% {
214
- background-position: 0 0;
215
- }
216
- }
217
- }