@citizenplane/pimp 10.0.8 → 10.1.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 (64) hide show
  1. package/dist/pimp.es.js +1305 -1303
  2. package/dist/pimp.umd.js +22 -22
  3. package/dist/style.css +1 -1
  4. package/package.json +1 -1
  5. package/src/assets/css/base.css +16 -1
  6. package/src/assets/css/colors.css +111 -110
  7. package/src/assets/css/dimensions.css +36 -35
  8. package/src/assets/css/easings.css +2 -1
  9. package/src/assets/css/shadows.css +67 -65
  10. package/src/assets/css/tokens.css +355 -386
  11. package/src/assets/css/typography.css +109 -0
  12. package/src/assets/main.css +1 -1
  13. package/src/assets/styles/helpers/_functions.scss +2 -2
  14. package/src/assets/styles/helpers/_mixins.scss +1 -1
  15. package/src/assets/styles/utilities/_index.scss +3 -6
  16. package/src/components/BaseInputLabel.vue +23 -21
  17. package/src/components/BaseSelectClearButton.vue +15 -9
  18. package/src/components/CpAirlineLogo.vue +1 -1
  19. package/src/components/CpAlert.vue +16 -16
  20. package/src/components/CpBadge.vue +149 -29
  21. package/src/components/CpButton.vue +135 -110
  22. package/src/components/CpButtonGroup.vue +3 -3
  23. package/src/components/CpCalendar.vue +32 -32
  24. package/src/components/CpCheckbox.vue +43 -33
  25. package/src/components/CpContextualMenu.vue +6 -9
  26. package/src/components/CpDate.vue +53 -40
  27. package/src/components/CpDatepicker.vue +3 -3
  28. package/src/components/CpDialog.vue +19 -19
  29. package/src/components/CpHeading.vue +23 -23
  30. package/src/components/CpInput.vue +71 -52
  31. package/src/components/CpItemActions.vue +4 -4
  32. package/src/components/CpLoader.vue +14 -7
  33. package/src/components/CpMenuItem.vue +23 -17
  34. package/src/components/CpMultiselect.vue +84 -58
  35. package/src/components/CpPartnerBadge.vue +13 -13
  36. package/src/components/CpRadio.vue +32 -24
  37. package/src/components/CpSelect.vue +43 -30
  38. package/src/components/CpSelectMenu.vue +39 -39
  39. package/src/components/CpSwitch.vue +51 -40
  40. package/src/components/CpTable.vue +249 -81
  41. package/src/components/CpTableColumnEditor.vue +18 -16
  42. package/src/components/CpTableEmptyState.vue +9 -9
  43. package/src/components/CpTabs.vue +15 -15
  44. package/src/components/CpTelInput.vue +76 -70
  45. package/src/components/CpTextarea.vue +27 -17
  46. package/src/components/CpToast.vue +49 -49
  47. package/src/components/CpTooltip.vue +6 -6
  48. package/src/components/CpTransitionDialog.vue +1 -1
  49. package/src/constants/Sizes.ts +5 -0
  50. package/src/constants/colors/Colors.ts +15 -5
  51. package/src/constants/colors/ToggleColors.ts +2 -1
  52. package/src/libs/CoreDatepicker.vue +21 -18
  53. package/src/stories/CpBadge.stories.ts +25 -17
  54. package/src/stories/CpButton.stories.ts +6 -5
  55. package/src/stories/CpCheckbox.stories.ts +4 -4
  56. package/src/stories/CpContextualMenu.stories.ts +3 -2
  57. package/src/stories/CpLoader.stories.ts +2 -2
  58. package/src/stories/CpMenuItem.stories.ts +104 -0
  59. package/src/stories/CpRadio.stories.ts +29 -2
  60. package/src/stories/CpSwitch.stories.ts +27 -0
  61. package/src/stories/CpTable.stories.ts +94 -0
  62. package/src/assets/css/spacing.css +0 -43
  63. package/src/assets/styles/helpers/_keyframes.scss +0 -48
  64. package/src/assets/styles/variables/_sizing.scss +0 -4
@@ -130,13 +130,13 @@ watch(
130
130
  position: relative;
131
131
  display: flex;
132
132
  align-items: center;
133
- gap: fn.v(spacing-md);
133
+ gap: var(--cp-spacing-md);
134
134
 
135
135
  &__activeUnderline {
136
136
  position: absolute;
137
137
  bottom: 0;
138
138
  left: 0;
139
- height: fn.px-to-rem(2);
139
+ height: var(--cp-dimensions-0_5);
140
140
  transition:
141
141
  background-color 300ms ease,
142
142
  transform 300ms cubic-bezier(0.34, 1.26, 0.64, 1),
@@ -149,17 +149,17 @@ watch(
149
149
  position: relative;
150
150
  display: flex;
151
151
  align-items: center;
152
- padding: fn.v(spacing-md);
153
- border-radius: fn.px-to-rem(8);
154
- color: fn.v(text-secondary);
155
- gap: fn.v(spacing-sm);
152
+ padding: var(--cp-spacing-md);
153
+ border-radius: var(--cp-radius-md);
154
+ color: var(--cp-text-secondary);
155
+ gap: var(--cp-spacing-sm);
156
156
  -webkit-tap-highlight-color: transparent;
157
157
  transition:
158
158
  box-shadow 300ms ease,
159
159
  opacity 300ms ease;
160
160
 
161
161
  &:focus-visible {
162
- outline-offset: fn.px-to-rem(-2);
162
+ outline-offset: calc(var(--cp-dimensions-0_5) * -1);
163
163
  }
164
164
 
165
165
  &--isLoading {
@@ -168,19 +168,19 @@ watch(
168
168
  }
169
169
 
170
170
  &--isActive {
171
- color: fn.v(text-accent-primary);
171
+ color: var(--cp-text-accent-primary);
172
172
  }
173
173
 
174
174
  &--isActive ~ .cpTabs__activeUnderline {
175
- background-color: fn.v(border-accent-solid);
175
+ background-color: var(--cp-border-accent-solid);
176
176
  }
177
177
  }
178
178
 
179
179
  &__title {
180
- font-size: fn.px-to-em(14);
180
+ font-size: var(--cp-text-size-sm);
181
181
  font-weight: 500;
182
- line-height: fn.px-to-rem(24);
183
- padding-inline: fn.v(spacing-sm);
182
+ line-height: var(--cp-line-height-md);
183
+ padding-inline: var(--cp-spacing-sm);
184
184
  transition: color 300ms ease;
185
185
  white-space: nowrap;
186
186
  }
@@ -192,20 +192,20 @@ watch(
192
192
  &__icon {
193
193
  position: relative;
194
194
  display: flex;
195
- border-radius: fn.px-to-rem(4);
195
+ border-radius: var(--cp-radius-sm);
196
196
  }
197
197
  }
198
198
 
199
199
  @include mx.media-query-max(768px) {
200
200
  .cpTabs {
201
- margin-right: sp.$space-lg;
201
+ margin-right: var(--cp-spacing-xl);
202
202
  overflow-x: auto;
203
203
 
204
204
  &__activeUnderline {
205
205
  top: auto;
206
206
  bottom: auto;
207
207
  height: 100%;
208
- border-radius: var(--pimp-radius-md);
208
+ border-radius: var(--cp-radius-md);
209
209
  opacity: 0.14;
210
210
  }
211
211
  }
@@ -166,7 +166,7 @@ const handleOnValidate = (phoneObject: PhoneObject) => {
166
166
  flex-direction: column;
167
167
 
168
168
  &:has(.cpTelInput__help, .cpTelInput__error) .cpTelInput__container {
169
- margin-bottom: sp.$space;
169
+ margin-bottom: var(--cp-spacing-md);
170
170
  }
171
171
 
172
172
  &__container {
@@ -177,22 +177,24 @@ const handleOnValidate = (phoneObject: PhoneObject) => {
177
177
 
178
178
  &__wrapper {
179
179
  border: none;
180
- box-shadow: 0 0 0 fn.px-to-rem(1) colors.$border-color;
180
+ box-shadow:
181
+ var(--cp-shadows-3xs),
182
+ 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft);
181
183
  appearance: none;
182
- border-radius: fn.px-to-rem(10);
184
+ border-radius: var(--cp-radius-md-lg);
183
185
  width: 100%;
184
186
  color: inherit;
185
187
 
186
188
  &:focus-within {
187
- box-shadow: 0 0 0 fn.px-to-rem(1) colors.$border-color;
189
+ box-shadow: 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft-hover);
188
190
  }
189
191
 
190
192
  &:not(.cpTelInput__wrapper--isInvalid, .cpTelInput__wrapper--isDisabled):hover {
191
- box-shadow: 0 0 0 fn.px-to-rem(1) colors.$primary-color;
193
+ box-shadow: 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft-hover);
192
194
  }
193
195
 
194
196
  &--isInvalid {
195
- box-shadow: 0 0 0 fn.px-to-rem(1) colors.$error-color;
197
+ box-shadow: 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-error-solid);
196
198
  }
197
199
 
198
200
  &.disabled {
@@ -201,75 +203,76 @@ const handleOnValidate = (phoneObject: PhoneObject) => {
201
203
  }
202
204
 
203
205
  &__input {
204
- padding: sp.$space sp.$space-lg;
206
+ padding: var(--cp-spacing-md) var(--cp-spacing-xl);
205
207
  color: inherit;
206
- line-height: fn.px-to-rem(24);
207
- font-size: fn.px-to-rem(14);
208
- border-top-right-radius: fn.px-to-rem(10);
209
- border-bottom-right-radius: fn.px-to-rem(10);
208
+ line-height: var(--cp-line-height-md);
209
+ font-size: var(--cp-text-size-sm);
210
+ border-top-right-radius: var(--cp-radius-md-lg);
211
+ border-bottom-right-radius: var(--cp-radius-md-lg);
210
212
 
211
213
  &:is(:hover, :focus) {
212
214
  z-index: 1;
213
215
  }
214
216
 
215
217
  &:not(.cpTelInput__input--isInvalid, .cpTelInput__input--isDisabled):focus {
216
- outline: fn.px-to-rem(2) solid colors.$primary-color;
217
- background-color: colors.$neutral-light;
218
+ outline: var(--cp-dimensions-0_5) solid var(--cp-border-accent-solid);
219
+ background-color: var(--cp-background-primary);
218
220
  }
219
221
 
220
222
  &::placeholder {
221
- color: colors.$neutral-dark-1;
223
+ color: var(--cp-text-placeholder);
222
224
  }
223
225
 
224
226
  &--isDisabled {
225
227
  pointer-events: none;
226
- background-color: colors.$neutral-light-1;
228
+ background-color: var(--cp-background-disabled);
227
229
  }
228
230
  }
229
231
 
230
232
  &__input--isInvalid {
231
233
  &:focus {
232
- outline: fn.px-to-rem(2) solid colors.$error-color;
234
+ outline: var(--cp-dimensions-0_5) solid var(--cp-border-error-solid);
233
235
  }
234
236
 
235
237
  .cpTelInput__input:focus {
236
- outline: fn.px-to-rem(2) solid colors.$error-color;
237
- box-shadow: 0 0 0 fn.px-to-em(1) color.scale(colors.$error-color, $lightness: 60%);
238
+ outline: var(--cp-dimensions-0_5) solid var(--cp-border-error-solid);
239
+ box-shadow: 0 0 0 var(--cp-dimensions-0_25) solid var(--cp-border-error-solid);
238
240
  }
239
241
  }
240
242
 
241
243
  &__arrow,
242
244
  &__searchIcon {
243
- color: colors.$neutral-dark-1;
245
+ color: var(--cp-foreground-secondary);
244
246
  transition: transform 150ms ease;
245
247
  }
246
248
 
247
249
  .vti__dropdown.open .cpTelInput__arrow {
248
250
  transform: rotate(180deg);
251
+ color: var(--cp-foreground-primary);
249
252
  }
250
253
 
251
254
  .vti__dropdown {
252
255
  z-index: 1;
253
256
  position: unset;
254
- border-right: fn.px-to-rem(1) solid colors.$neutral-dark-5;
257
+ border-right: var(--cp-dimensions-0_25) solid var(--cp-border-soft);
255
258
 
256
259
  &:focus,
257
260
  &:focus-within {
258
261
  z-index: 2;
259
- outline: fn.px-to-rem(2) solid colors.$primary-color;
262
+ outline: var(--cp-dimensions-0_5) solid var(--cp-border-accent-solid);
260
263
  }
261
264
  }
262
265
 
263
266
  &__wrapper--isInvalid {
264
267
  .vti__dropdown:focus,
265
268
  .vti__dropdown:focus-within {
266
- outline: fn.px-to-rem(2) solid colors.$error-color;
269
+ outline: var(--cp-dimensions-0_5) solid var(--cp-border-error-solid);
267
270
  }
268
271
  }
269
272
 
270
273
  &__wrapper--isDisabled {
271
- background-color: colors.$neutral-light-1;
272
- color: colors.$neutral-dark-1;
274
+ background-color: var(--cp-background-disabled);
275
+ color: var(--cp-foreground-disabled);
273
276
  cursor: not-allowed;
274
277
 
275
278
  .vti__dropdown:focus {
@@ -278,7 +281,7 @@ const handleOnValidate = (phoneObject: PhoneObject) => {
278
281
  }
279
282
 
280
283
  .vti__selection {
281
- gap: sp.$space;
284
+ gap: var(--cp-spacing-md);
282
285
 
283
286
  .vti__flag {
284
287
  margin: 0;
@@ -286,89 +289,92 @@ const handleOnValidate = (phoneObject: PhoneObject) => {
286
289
  }
287
290
 
288
291
  .vti__flag {
289
- max-width: fn.px-to-rem(20);
290
- border-radius: fn.px-to-rem(2);
292
+ max-width: var(--cp-dimensions-5);
293
+ border-radius: var(--cp-radius-xs);
291
294
  }
292
295
 
293
296
  .vti__dropdown {
294
- padding: sp.$space sp.$space sp.$space sp.$space-md;
295
- border-bottom-left-radius: fn.px-to-rem(10);
296
- border-top-left-radius: fn.px-to-rem(10);
297
+ padding: var(--cp-spacing-md) var(--cp-spacing-md) var(--cp-spacing-md) var(--cp-spacing-lg);
298
+ border-bottom-left-radius: var(--cp-radius-md-lg);
299
+ border-top-left-radius: var(--cp-radius-md-lg);
297
300
  }
298
301
 
299
302
  .vti__search_box_container {
300
303
  position: sticky;
301
304
  top: 0;
302
305
  display: flex;
303
- margin-bottom: sp.$space-sm;
306
+ margin-bottom: var(--cp-spacing-sm);
304
307
  }
305
308
 
306
309
  .vti__search_box {
307
- box-shadow: 0 0 0 fn.px-to-rem(1) colors.$border-color;
310
+ box-shadow:
311
+ var(--cp-shadows-3xs),
312
+ 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft);
308
313
  appearance: none;
309
- border-radius: fn.px-to-rem(6);
314
+ border-radius: var(--cp-radius-sm-md);
310
315
  width: 100%;
311
316
  color: inherit;
312
- padding: sp.$space-sm sp.$space-sm sp.$space-sm sp.$space;
313
- line-height: fn.px-to-rem(24);
314
- font-size: fn.px-to-rem(14);
315
- text-indent: fn.px-to-rem(28);
317
+ padding: var(--cp-spacing-sm) var(--cp-spacing-sm) var(--cp-spacing-sm) var(--cp-spacing-md);
318
+ line-height: var(--cp-line-height-md);
319
+ font-size: var(--cp-text-size-sm);
320
+ text-indent: calc(var(--cp-dimensions-1) * 7);
316
321
  border: none;
317
322
 
318
323
  &:hover {
319
- box-shadow: 0 0 0 fn.px-to-rem(1) colors.$primary-color;
324
+ box-shadow: 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft-hover);
320
325
  }
321
326
 
322
327
  &:focus {
323
- outline: fn.px-to-rem(2) solid colors.$primary-color;
324
- background-color: colors.$neutral-light;
328
+ outline: var(--cp-dimensions-0_5) solid var(--cp-border-accent-solid);
329
+ background-color: var(--cp-background-primary);
325
330
  }
326
331
 
327
332
  &::placeholder {
328
- color: colors.$neutral-dark-1;
333
+ color: var(--cp-text-placeholder);
329
334
  }
330
335
  }
331
336
 
332
337
  &__searchIcon {
333
- @include mx.square-sizing(16);
338
+ width: var(--cp-dimensions-4);
339
+ height: var(--cp-dimensions-4);
334
340
 
335
341
  position: absolute;
336
342
  top: 50%;
337
343
  transform: translateY(-50%);
338
- left: fn.px-to-rem(12);
344
+ left: var(--cp-dimensions-3);
339
345
  }
340
346
 
341
347
  .vti__dropdown-list {
342
- clip-path: inset(0 round fn.px-to-rem(10));
343
- max-height: fn.px-to-rem(130);
344
- width: calc(100% + fn.px-to-rem(2));
345
- padding: sp.$space-sm;
346
- border-radius: fn.px-to-rem(10);
347
- border: fn.px-to-rem(1) solid colors.$border-color;
348
+ clip-path: inset(0 round var(--cp-radius-md-lg));
349
+ max-height: calc(var(--cp-dimensions-1) * 32.5);
350
+ width: calc(100% + var(--cp-dimensions-0_5));
351
+ padding: var(--cp-spacing-sm);
352
+ border-radius: var(--cp-radius-md-lg);
353
+ border: var(--cp-dimensions-0_25) solid var(--cp-border-soft);
348
354
 
349
355
  &:has(.vti__search_box) {
350
- max-height: fn.px-to-rem(170);
356
+ max-height: calc(var(--cp-dimensions-1) * 42.5);
351
357
  }
352
358
 
353
359
  &.below {
354
- top: fn.px-to-rem(40) + sp.$space;
360
+ top: var(--cp-dimensions-10) + var(--cp-spacing-md);
355
361
  }
356
362
 
357
363
  &.above {
358
- bottom: calc(100% + fn.px-to-rem(8));
364
+ bottom: calc(100% + var(--cp-dimensions-2));
359
365
  }
360
366
  }
361
367
 
362
368
  .vti__dropdown-item {
363
- padding: sp.$space-md sp.$space-lg sp.$space-md sp.$space-md;
369
+ padding: var(--cp-spacing-lg) var(--cp-spacing-xl) var(--cp-spacing-lg) var(--cp-spacing-lg);
364
370
  display: flex;
365
371
  align-items: flex-start;
366
- border-radius: fn.px-to-rem(6);
367
- font-size: fn.px-to-rem(14);
368
- line-height: fn.px-to-rem(24);
372
+ border-radius: var(--cp-radius-sm-md);
373
+ font-size: var(--cp-text-size-sm);
374
+ line-height: var(--cp-line-height-md);
369
375
 
370
376
  .vti__flag {
371
- margin: auto sp.$space-lg auto 0;
377
+ margin: auto var(--cp-spacing-xl) auto 0;
372
378
  }
373
379
 
374
380
  strong,
@@ -383,50 +389,50 @@ const handleOnValidate = (phoneObject: PhoneObject) => {
383
389
  }
384
390
 
385
391
  span:not(.vti__flag) {
386
- margin-left: 4px;
392
+ margin-left: var(--cp-spacing-sm);
387
393
  }
388
394
  }
389
395
 
390
396
  &--lg {
391
397
  .cpTelInput__input {
392
- font-size: fn.px-to-rem(16);
393
- padding: sp.$space-md sp.$space-lg;
398
+ font-size: var(--cp-text-size-md);
399
+ padding: var(--cp-spacing-lg) var(--cp-spacing-xl);
394
400
  }
395
401
 
396
402
  .vti__dropdown {
397
- padding: sp.$space-md sp.$space sp.$space-md sp.$space-md;
403
+ padding: var(--cp-spacing-lg) var(--cp-spacing-md) var(--cp-spacing-lg) var(--cp-spacing-lg);
398
404
  }
399
405
 
400
406
  .vti__search_box {
401
- padding: sp.$space sp.$space-lg;
402
- text-indent: fn.px-to-rem(24);
407
+ padding: var(--cp-spacing-md) var(--cp-spacing-xl);
408
+ text-indent: var(--cp-dimensions-6);
403
409
  }
404
410
 
405
411
  .cpTelInput__searchIcon {
406
- left: fn.px-to-rem(16);
412
+ left: var(--cp-dimensions-4);
407
413
  }
408
414
 
409
415
  .vti__dropdown-list.below {
410
- top: fn.px-to-rem(48) + sp.$space;
416
+ top: var(--cp-dimensions-12) + var(--cp-spacing-md);
411
417
  }
412
418
 
413
419
  .vti__dropdown-item {
414
- font-size: fn.px-to-rem(16);
420
+ font-size: var(--cp-text-size-md);
415
421
  }
416
422
  }
417
423
 
418
424
  &__help,
419
425
  &__error {
420
- font-size: fn.px-to-em(14);
421
- line-height: fn.px-to-rem(24);
426
+ font-size: var(--cp-text-size-sm);
427
+ line-height: var(--cp-line-height-md);
422
428
  }
423
429
 
424
430
  &__help {
425
- color: colors.$neutral-dark-1;
431
+ color: var(--cp-text-secondary);
426
432
  }
427
433
 
428
434
  &__error {
429
- color: colors.$error-color;
435
+ color: var(--cp-text-error-primary-hover);
430
436
 
431
437
  &::first-letter {
432
438
  text-transform: capitalize;
@@ -90,53 +90,63 @@ const handleChange = (newValue: string) => emit('update:modelValue', newValue)
90
90
 
91
91
  &__input {
92
92
  appearance: none;
93
- border: fn.px-to-rem(1) solid colors.$neutral-dark-4;
94
- border-radius: fn.px-to-em(10);
93
+ border: none;
94
+ box-shadow:
95
+ var(--cp-shadows-3xs),
96
+ 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft);
97
+ border-radius: var(--cp-radius-md-lg);
95
98
  outline: none;
96
- padding: fn.px-to-em(16);
99
+ padding: var(--cp-spacing-xl);
97
100
  width: 100%;
98
101
  max-width: 100%;
99
102
  height: 100%;
100
- font-size: fn.px-to-em(16);
101
- color: colors.$neutral-dark;
103
+ font-size: var(--cp-text-size-md);
104
+ color: var(--cp-text-primary);
102
105
 
103
106
  &:hover {
104
- border-color: colors.$primary-color;
107
+ box-shadow:
108
+ var(--cp-shadows-3xs),
109
+ 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft-hover);
105
110
  }
106
111
 
107
112
  &:focus {
108
- outline: fn.px-to-rem(2) solid colors.$primary-color;
109
- background-color: colors.$neutral-light;
113
+ outline: var(--cp-dimensions-0_5) solid var(--cp-focus);
114
+ background-color: var(--cp-background-primary);
110
115
  }
111
116
 
112
117
  &:disabled {
113
- background: colors.$neutral-light-1;
114
118
  cursor: not-allowed;
115
- color: colors.$neutral-dark-1;
119
+ background: var(--cp-background-disabled);
120
+ color: var(--cp-text-disabled);
121
+ box-shadow: 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-disabled);
116
122
  }
117
123
 
118
124
  &::placeholder {
119
- color: rgba(colors.$neutral-dark, 0.6);
125
+ color: var(--cp-text-placeholder);
120
126
  }
121
127
 
122
128
  &--isInvalid {
123
- border: fn.px-to-rem(1) solid colors.$error-color;
129
+ box-shadow:
130
+ var(--cp-shadows-3xs),
131
+ 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-error-solid);
124
132
 
125
133
  &:hover,
126
134
  &:focus {
127
- border: fn.px-to-rem(1) solid colors.$error-color;
135
+ box-shadow:
136
+ var(--cp-shadows-3xs),
137
+ 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-error-solid);
128
138
  }
129
139
 
130
140
  &:focus {
131
- outline: fn.px-to-rem(2) solid colors.$error-color;
141
+ outline: var(--cp-dimensions-0_5) solid var(--cp-border-error-solid);
132
142
  }
133
143
  }
134
144
  }
135
145
 
136
146
  &__error {
137
- font-size: fn.px-to-em(14);
138
- line-height: fn.px-to-rem(24);
139
- color: colors.$error-color;
147
+ font-size: var(--cp-text-size-sm);
148
+ line-height: var(--cp-line-height-md);
149
+ color: var(--cp-text-error-primary);
140
150
  }
141
151
  }
142
152
  </style>