@finqu/cool 1.3.0 → 2.0.2

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 (74) hide show
  1. package/README.md +23 -9
  2. package/dist/css/cool.css +13391 -7742
  3. package/dist/css/cool.css.map +1 -1
  4. package/dist/css/cool.min.css +2 -93
  5. package/dist/css/cool.min.css.map +1 -1
  6. package/dist/js/cool.bundle.js +16051 -17050
  7. package/dist/js/cool.bundle.js.map +1 -1
  8. package/dist/js/cool.bundle.min.js +11 -18
  9. package/dist/js/cool.bundle.min.js.map +1 -1
  10. package/dist/js/cool.esm.js +3469 -4468
  11. package/dist/js/cool.esm.js.map +1 -1
  12. package/dist/js/cool.esm.min.js +2 -8
  13. package/dist/js/cool.esm.min.js.map +1 -1
  14. package/dist/js/cool.js +5083 -6089
  15. package/dist/js/cool.js.map +1 -1
  16. package/dist/js/cool.min.js +2 -8
  17. package/dist/js/cool.min.js.map +1 -1
  18. package/package.json +48 -16
  19. package/scss/LISENCE +15 -0
  20. package/scss/_badge.scss +134 -0
  21. package/scss/_button-group.scss +80 -0
  22. package/scss/_buttons.scss +304 -0
  23. package/scss/_dark.scss +637 -0
  24. package/scss/_dialog.scss +351 -0
  25. package/scss/_dropdown.scss +165 -0
  26. package/scss/_forms.scss +613 -0
  27. package/scss/_frame.scss +948 -0
  28. package/scss/_grid.scss +215 -0
  29. package/scss/_input-group.scss +326 -0
  30. package/scss/_list-group.scss +127 -0
  31. package/scss/_media.scss +439 -0
  32. package/scss/_navbar.scss +122 -0
  33. package/scss/_notification.scss +115 -0
  34. package/scss/_pagination.scss +82 -0
  35. package/scss/_popover.scss +61 -0
  36. package/scss/_reboot.scss +306 -0
  37. package/scss/_root.scss +848 -0
  38. package/scss/_section.scss +735 -0
  39. package/scss/_select.scss +559 -0
  40. package/scss/_tables.scss +611 -0
  41. package/scss/_tabs.scss +50 -0
  42. package/scss/_toast.scss +277 -0
  43. package/scss/_tooltip.scss +130 -0
  44. package/scss/_typography.scss +166 -0
  45. package/scss/_variables.scss +1229 -0
  46. package/scss/cool.scss +69 -0
  47. package/scss/utilities/_align.scss +51 -0
  48. package/scss/utilities/_animation.scss +165 -0
  49. package/scss/utilities/_background.scss +72 -0
  50. package/scss/utilities/_borders.scss +205 -0
  51. package/scss/utilities/_collapse.scss +28 -0
  52. package/scss/utilities/_cursor.scss +160 -0
  53. package/scss/utilities/_display.scss +116 -0
  54. package/scss/utilities/_embed.scss +89 -0
  55. package/scss/utilities/_fill.scss +79 -0
  56. package/scss/utilities/_filters.scss +233 -0
  57. package/scss/utilities/_flex.scss +216 -0
  58. package/scss/utilities/_grid.scss +136 -0
  59. package/scss/utilities/_opacity.scss +131 -0
  60. package/scss/utilities/_overflow.scss +242 -0
  61. package/scss/utilities/_perfect-scrollbar.scss +147 -0
  62. package/scss/utilities/_pointer-events.scss +125 -0
  63. package/scss/utilities/_position.scss +130 -0
  64. package/scss/utilities/_screen-readers.scss +95 -0
  65. package/scss/utilities/_shadows.scss +195 -0
  66. package/scss/utilities/_sizing.scss +288 -0
  67. package/scss/utilities/_spacing.scss +168 -0
  68. package/scss/utilities/_stroke.scss +124 -0
  69. package/scss/utilities/_text.scss +420 -0
  70. package/scss/utilities/_transform.scss +232 -0
  71. package/scss/utilities/_transitions.scss +147 -0
  72. package/scss/utilities/_user-select.scss +93 -0
  73. package/scss/utilities/_visibility.scss +66 -0
  74. package/scss/utilities/_z-index.scss +169 -0
@@ -0,0 +1,613 @@
1
+ @use "variables" as *;
2
+ /* Forms ========================================================================== */
3
+
4
+ @mixin cool-forms {
5
+ .form-control {
6
+ display: block;
7
+ width: 100%;
8
+ height: var(--cool-input-height);
9
+ padding: var(--cool-input-padding-y) var(--cool-input-padding-x);
10
+ font-family: var(--cool-input-font-family);
11
+ font-size: var(--cool-input-font-size);
12
+ font-weight: var(--cool-input-font-weight);
13
+ line-height: var(--cool-input-line-height);
14
+ color: var(--cool-input-color);
15
+ background-color: var(--cool-input-bg);
16
+ background-clip: padding-box;
17
+ border: var(--cool-input-border-width) solid var(--cool-input-border-color);
18
+ border-radius: var(--cool-input-border-radius);
19
+ transition:
20
+ color 0.15s ease-in-out,
21
+ box-shadow 0.15s ease-in-out;
22
+
23
+ &:focus {
24
+ border-color: var(--cool-input-focus-border-color);
25
+ outline: 0;
26
+
27
+ @supports selector(:focus-visible) {
28
+ outline: 0;
29
+ }
30
+ }
31
+
32
+ &::placeholder {
33
+ color: var(--cool-input-placeholder-color);
34
+ opacity: 1;
35
+ }
36
+
37
+ &:disabled,
38
+ &[readonly] {
39
+ background-color: var(--cool-input-disabled-bg);
40
+ opacity: 1;
41
+ color: var(--cool-input-disabled-color);
42
+ }
43
+ }
44
+
45
+ .form-control-sm {
46
+ --cool-input-padding-y: var(--cool-input-padding-y-sm);
47
+ --cool-input-padding-x: var(--cool-input-padding-x-sm);
48
+ --cool-input-font-size: var(--cool-input-font-size-sm);
49
+ --cool-input-line-height: var(--cool-input-line-height-sm);
50
+ --cool-input-border-radius: var(--cool-input-border-radius-sm);
51
+ --cool-input-height: var(--cool-input-height-sm);
52
+ }
53
+
54
+ .form-control-lg {
55
+ --cool-input-padding-y: var(--cool-input-padding-y-lg);
56
+ --cool-input-padding-x: var(--cool-input-padding-x-lg);
57
+ --cool-input-font-size: var(--cool-input-font-size-lg);
58
+ --cool-input-line-height: var(--cool-input-line-height-lg);
59
+ --cool-input-border-radius: var(--cool-input-border-radius-lg);
60
+ --cool-input-height: var(--cool-input-height-lg);
61
+ }
62
+
63
+ textarea.form-control {
64
+ height: auto;
65
+
66
+ @supports (resize: vertical) {
67
+ resize: vertical;
68
+ }
69
+ }
70
+
71
+ select.form-control {
72
+ &[size],
73
+ &[multiple] {
74
+ height: auto;
75
+ }
76
+
77
+ &:focus::-ms-value {
78
+ color: var(--cool-input-color);
79
+ background-color: var(--cool-input-bg);
80
+ }
81
+ }
82
+
83
+ .form-control-underline {
84
+ display: inline-block;
85
+ width: auto;
86
+ height: auto;
87
+ min-height: 1.5em;
88
+ border: none;
89
+ border-bottom: var(--cool-input-border-width) solid var(--cool-input-border-color);
90
+ border-radius: 0;
91
+ padding: 2px;
92
+ margin: 0 2px;
93
+ font-size: 1em;
94
+ line-height: 1.5;
95
+ vertical-align: baseline;
96
+ color: currentColor;
97
+ appearance: none;
98
+ background-color: var(--cool-input-bg);
99
+
100
+ &:focus {
101
+ outline: none;
102
+ box-shadow: none;
103
+ border-bottom-color: var(--cool-input-focus-border-color);
104
+ }
105
+ }
106
+
107
+ select.form-control-underline {
108
+ padding-right: 1.5em;
109
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>');
110
+ background-repeat: no-repeat;
111
+ background-position: bottom -0.35em right -0.5em;
112
+ }
113
+
114
+ .col-form-label {
115
+ padding-top: calc(var(--cool-input-padding-y) + var(--cool-input-border-width));
116
+ padding-bottom: calc(var(--cool-input-padding-y) + var(--cool-input-border-width));
117
+ margin-bottom: 0;
118
+ font-size: inherit;
119
+ line-height: var(--cool-input-line-height);
120
+ }
121
+
122
+ .col-form-label-lg {
123
+ padding-top: calc(var(--cool-input-padding-y-lg) + var(--cool-input-border-width));
124
+ padding-bottom: calc(var(--cool-input-padding-y-lg) + var(--cool-input-border-width));
125
+ font-size: var(--cool-input-font-size-lg);
126
+ line-height: var(--cool-input-line-height-lg);
127
+ }
128
+
129
+ .col-form-label-sm {
130
+ padding-top: calc(var(--cool-input-padding-y-sm) + var(--cool-input-border-width));
131
+ padding-bottom: calc(var(--cool-input-padding-y-sm) + var(--cool-input-border-width));
132
+ font-size: var(--cool-input-font-size-sm);
133
+ line-height: var(--cool-input-line-height-sm);
134
+ }
135
+
136
+ .form-group {
137
+ margin-bottom: var(--cool-form-group-margin-bottom);
138
+ }
139
+
140
+ .form-label-group {
141
+ position: relative;
142
+
143
+ select {
144
+ -webkit-appearance: none;
145
+ appearance: none;
146
+
147
+ @-moz-document url-prefix() {
148
+ text-indent: -2px;
149
+ }
150
+ }
151
+
152
+ & > input,
153
+ select,
154
+ textarea,
155
+ label,
156
+ & > .input-group > label {
157
+ padding: var(--cool-input-padding-y) var(--cool-input-padding-x);
158
+ }
159
+
160
+ & > label,
161
+ & > .input-group > label {
162
+ position: absolute;
163
+ top: 0;
164
+ left: 0;
165
+ display: block;
166
+ width: 100%;
167
+ margin-bottom: 0;
168
+ line-height: var(--cool-input-line-height);
169
+ color: var(--cool-input-placeholder-color);
170
+ border: 1px solid transparent;
171
+ border-radius: var(--cool-border-radius);
172
+ transition: var(--cool-form-transition-fast);
173
+ pointer-events: none;
174
+ font-size: var(--cool-input-font-size);
175
+ white-space: nowrap;
176
+ text-overflow: ellipsis;
177
+ overflow: hidden;
178
+ }
179
+
180
+ input::-webkit-input-placeholder,
181
+ input:-ms-input-placeholder,
182
+ input::-ms-input-placeholder,
183
+ input::-moz-placeholder,
184
+ input::placeholder {
185
+ color: transparent;
186
+ }
187
+
188
+ &:not(.label-on-top) .show-when-label-on-top {
189
+ display: none;
190
+ }
191
+
192
+ &.label-on-top {
193
+ & > label,
194
+ & > .input-group > label {
195
+ line-height: 1;
196
+ font-size: 10px;
197
+ }
198
+
199
+ input,
200
+ select,
201
+ textarea {
202
+ padding-top: calc(var(--cool-input-padding-y) + var(--cool-input-padding-y) * (2 / 3));
203
+ padding-bottom: calc(var(--cool-input-padding-y) / 3);
204
+
205
+ & ~ label {
206
+ padding-top: calc(var(--cool-input-padding-y) / 3);
207
+ padding-bottom: calc(var(--cool-input-padding-y) / 3);
208
+ font-size: var(--cool-small-font-size);
209
+ color: var(--cool-input-placeholder-color);
210
+ }
211
+ }
212
+ }
213
+
214
+ input:-webkit-autofill {
215
+ padding-top: calc(var(--cool-input-padding-y) + var(--cool-input-padding-y) * (2 / 3));
216
+ padding-bottom: calc(var(--cool-input-padding-y) / 3);
217
+
218
+ & ~ label {
219
+ padding-top: calc(var(--cool-input-padding-y) / 3);
220
+ padding-bottom: calc(var(--cool-input-padding-y) / 3);
221
+ font-size: var(--cool-small-font-size);
222
+ color: var(--cool-input-placeholder-color);
223
+ }
224
+ }
225
+
226
+ &.form-label-group-lg {
227
+ &.label-on-top {
228
+ input,
229
+ select,
230
+ textarea {
231
+ padding-top: calc(var(--cool-input-padding-y-lg) + var(--cool-input-padding-y-lg) * (2 / 3));
232
+ padding-bottom: calc(var(--cool-input-padding-y-lg) / 3);
233
+
234
+ & ~ label {
235
+ padding-top: calc(var(--cool-input-padding-y-lg) / 3);
236
+ padding-bottom: calc(var(--cool-input-padding-y-lg) / 3);
237
+ font-size: var(--cool-small-font-size);
238
+ color: var(--cool-input-placeholder-color);
239
+ }
240
+ }
241
+ }
242
+
243
+ & > input,
244
+ select,
245
+ textarea,
246
+ label,
247
+ & > .input-group > label {
248
+ padding: var(--cool-input-padding-y-lg) var(--cool-input-padding-x-lg);
249
+ }
250
+
251
+ input:-webkit-autofill {
252
+ padding-top: calc(var(--cool-input-padding-y-lg) + var(--cool-input-padding-y-lg) * (2 / 3));
253
+ padding-bottom: calc(var(--cool-input-padding-y-lg) / 3);
254
+
255
+ & ~ label {
256
+ padding-top: calc(var(--cool-input-padding-y-lg) / 3);
257
+ padding-bottom: calc(var(--cool-input-padding-y-lg) / 3);
258
+ font-size: var(--cool-small-font-size);
259
+ color: var(--cool-input-placeholder-color);
260
+ }
261
+ }
262
+ }
263
+ }
264
+
265
+ .form-control-placeholder {
266
+ display: block;
267
+ width: 100%;
268
+ height: var(--cool-input-height);
269
+ padding: var(--cool-input-padding-y) var(--cool-input-padding-x);
270
+ font-family: var(--cool-input-font-family);
271
+ font-size: var(--cool-input-font-size);
272
+ line-height: var(--cool-input-line-height);
273
+ color: var(--cool-body-color);
274
+ box-sizing: border-box;
275
+
276
+ &.input-lg {
277
+ --cool-input-padding-y: var(--cool-input-padding-y-lg);
278
+ --cool-input-padding-x: var(--cool-input-padding-x-lg);
279
+ --cool-input-font-size: var(--cool-input-font-size-lg);
280
+ --cool-input-line-height: var(--cool-input-line-height-lg);
281
+ --cool-input-height: var(--cool-input-height-lg);
282
+ }
283
+
284
+ &.input-sm {
285
+ --cool-input-padding-y: var(--cool-input-padding-y-sm);
286
+ --cool-input-padding-x: var(--cool-input-padding-x-sm);
287
+ --cool-input-font-size: var(--cool-input-font-size-sm);
288
+ --cool-input-line-height: var(--cool-input-line-height-sm);
289
+ --cool-input-height: var(--cool-input-height-sm);
290
+ }
291
+
292
+ & + .input-validation {
293
+ width: 100%;
294
+ flex: 1;
295
+ }
296
+ }
297
+
298
+ .form-inline {
299
+ display: flex;
300
+ flex-flow: row wrap;
301
+ align-items: center;
302
+ gap: 0.5rem;
303
+
304
+ @include media-breakpoint-up(sm) {
305
+ label {
306
+ display: flex;
307
+ align-items: center;
308
+ justify-content: center;
309
+ margin-bottom: 0;
310
+ }
311
+
312
+ .form-group {
313
+ display: flex;
314
+ flex: 0 0 auto;
315
+ flex-flow: row wrap;
316
+ align-items: center;
317
+ margin-bottom: 0;
318
+ }
319
+
320
+ .form-control {
321
+ display: inline-block;
322
+ width: auto;
323
+ vertical-align: middle;
324
+ }
325
+
326
+ .input-group {
327
+ width: auto;
328
+ }
329
+ }
330
+ }
331
+
332
+ .form-check {
333
+ display: inline-flex;
334
+
335
+ &:has(input[type="radio"]) {
336
+ --cool-form-check-input-radius: 50%;
337
+ }
338
+
339
+ label {
340
+ display: inline-flex;
341
+ align-items: center;
342
+ margin: 0;
343
+ user-select: none;
344
+ cursor: pointer;
345
+ font-size: inherit;
346
+
347
+ &:hover .form-check-icon {
348
+ border-color: var(--cool-form-check-input-color);
349
+ }
350
+ }
351
+
352
+ .form-check-icon {
353
+ position: relative;
354
+ width: var(--cool-form-check-input-size);
355
+ height: var(--cool-form-check-input-size);
356
+ min-width: var(--cool-form-check-input-size);
357
+ min-height: var(--cool-form-check-input-size);
358
+ border-radius: var(--cool-form-check-input-radius);
359
+ border: var(--cool-form-check-input-border-width) solid var(--cool-form-check-input-border-color);
360
+ border-radius: var(--cool-form-check-input-radius);
361
+ transition: var(--cool-form-transition-fast);
362
+ transform: scale(1);
363
+ vertical-align: middle;
364
+
365
+ svg {
366
+ position: absolute;
367
+ top: 4px;
368
+ left: 3.5px;
369
+ fill: none;
370
+ stroke: #ffffff;
371
+ stroke-width: 2.5px;
372
+ stroke-linecap: round;
373
+ stroke-linejoin: round;
374
+ stroke-linecap: round;
375
+ stroke-linejoin: round;
376
+ stroke-dasharray: var(--cool-form-check-input-size);
377
+ stroke-dashoffset: var(--cool-form-check-input-size);
378
+ transition: var(--cool-form-transition-normal);
379
+ transition-delay: 0.1s;
380
+
381
+ @include media-breakpoint-down(md) {
382
+ left: 3px;
383
+ }
384
+ }
385
+ }
386
+
387
+ .form-check-label {
388
+ display: inline-block;
389
+ vertical-align: middle;
390
+ width: 100%;
391
+ padding-left: var(--cool-spacing-2);
392
+ overflow: hidden;
393
+ text-overflow: ellipsis;
394
+ font-family: var(--cool-font-family-base);
395
+ font-style: normal;
396
+ font-weight: var(--cool-font-weight-base);
397
+ line-height: var(--cool-line-height-base);
398
+ text-align: start;
399
+ text-decoration: none;
400
+ text-shadow: none;
401
+ text-transform: none;
402
+ letter-spacing: normal;
403
+ word-break: normal;
404
+ word-spacing: normal;
405
+ white-space: normal;
406
+ line-break: auto;
407
+ }
408
+
409
+ input[type="checkbox"],
410
+ input[type="radio"] {
411
+ display: none;
412
+
413
+ &:checked + label .form-check-icon {
414
+ background: var(--cool-form-check-input-color);
415
+ border-color: var(--cool-form-check-input-color);
416
+ animation: check-animation 0.4s ease;
417
+
418
+ svg {
419
+ stroke-dashoffset: 0;
420
+ }
421
+ }
422
+
423
+ &:disabled + label .form-check-icon,
424
+ &.disabled + label .form-check-icon {
425
+ cursor: not-allowed;
426
+ background-color: var(--cool-theme-color-light);
427
+ border: var(--cool-form-check-input-border-width) solid var(--cool-form-check-input-border-color);
428
+ opacity: 0.35;
429
+ }
430
+
431
+ &:disabled + label:hover .form-check-icon,
432
+ &.disabled + label:hover .form-check-icon {
433
+ border: var(--cool-form-check-input-border-width) solid var(--cool-form-check-input-border-color);
434
+ }
435
+
436
+ &:disabled:checked + label .form-check-icon,
437
+ &.disabled:checked + label .form-check-icon {
438
+ background: color-mix(in srgb, var(--cool-theme-color-info) 85%, white);
439
+ }
440
+ }
441
+ }
442
+
443
+ .form-switch {
444
+ display: inline-flex;
445
+ vertical-align: middle;
446
+ position: relative;
447
+ user-select: none;
448
+ width: var(--cool-form-switch-width);
449
+ padding: 0;
450
+
451
+ & + label {
452
+ margin-left: var(--cool-spacing-2);
453
+ margin-bottom: 0;
454
+ flex-basis: 0;
455
+ flex-grow: 1;
456
+ }
457
+
458
+ .form-switch-input {
459
+ display: none;
460
+
461
+ &:disabled {
462
+ cursor: not-allowed;
463
+ pointer-events: none;
464
+
465
+ & + .form-switch-label {
466
+ opacity: 0.4;
467
+
468
+ &:hover {
469
+ cursor: not-allowed;
470
+ }
471
+ }
472
+ }
473
+ }
474
+
475
+ .form-switch-label {
476
+ display: block;
477
+ width: 100%;
478
+ overflow: hidden;
479
+ cursor: pointer;
480
+ height: var(--cool-form-check-input-size);
481
+ padding: 0;
482
+ line-height: var(--cool-form-check-input-size);
483
+ border: 2px solid var(--cool-color-grey-600);
484
+ border-radius: var(--cool-form-check-input-size);
485
+ background-color: var(--cool-color-grey-600);
486
+ margin-bottom: 0;
487
+ box-sizing: content-box;
488
+ transition:
489
+ background-color var(--cool-switch-transition),
490
+ border-color var(--cool-switch-transition);
491
+
492
+ &:before {
493
+ content: "";
494
+ display: block;
495
+ width: var(--cool-form-check-input-size);
496
+ height: var(--cool-form-check-input-size);
497
+ margin: 0px;
498
+ background: #ffffff;
499
+ position: absolute;
500
+ top: 0;
501
+ right: var(--cool-form-check-input-size);
502
+ bottom: 0;
503
+ border: 2px solid var(--cool-color-grey-600);
504
+ border-radius: var(--cool-form-check-input-size);
505
+ transition:
506
+ background-color var(--cool-switch-transition),
507
+ border-color var(--cool-switch-transition),
508
+ right var(--cool-switch-transition);
509
+ box-sizing: content-box;
510
+ }
511
+ }
512
+
513
+ .form-switch-input:checked + .form-switch-label {
514
+ background-color: var(--cool-theme-color-info);
515
+ }
516
+
517
+ .form-switch-input:checked + .form-switch-label,
518
+ .form-switch-input:checked + .form-switch-label:before {
519
+ border-color: var(--cool-theme-color-info);
520
+ }
521
+
522
+ .form-switch-input:checked + .form-switch-label:before {
523
+ right: 0px;
524
+ }
525
+ }
526
+
527
+ // Validation
528
+ .valid-feedback {
529
+ display: none;
530
+ width: 100%;
531
+ margin-top: var(--cool-form-feedback-margin-top);
532
+ font-size: var(--cool-form-feedback-font-size);
533
+ color: var(--cool-form-feedback-valid-color);
534
+ }
535
+
536
+ .invalid-feedback {
537
+ display: none;
538
+ width: 100%;
539
+ margin-top: var(--cool-form-feedback-margin-top);
540
+ font-size: var(--cool-form-feedback-font-size);
541
+ color: var(--cool-form-feedback-invalid-color);
542
+ }
543
+
544
+ .input-group {
545
+ .was-validated &:valid,
546
+ &.is-valid {
547
+ .form-control,
548
+ .input-group-text,
549
+ .input-dropdown {
550
+ border-color: var(--cool-form-feedback-valid-color);
551
+ }
552
+
553
+ ~ .valid-feedback {
554
+ display: block;
555
+ }
556
+ }
557
+
558
+ .was-validated &:invalid,
559
+ &.is-invalid {
560
+ .form-control,
561
+ .input-group-text,
562
+ .input-dropdown {
563
+ border-color: var(--cool-form-feedback-invalid-color);
564
+ }
565
+
566
+ ~ .invalid-feedback {
567
+ display: block;
568
+ }
569
+ }
570
+ }
571
+
572
+ .form-control {
573
+ .was-validated &:valid,
574
+ &.is-valid {
575
+ border-color: var(--cool-form-feedback-valid-color);
576
+
577
+ &:focus {
578
+ border-color: var(--cool-form-feedback-valid-color);
579
+ }
580
+
581
+ ~ .valid-feedback {
582
+ display: block;
583
+ }
584
+ }
585
+
586
+ .was-validated &:invalid,
587
+ &.is-invalid {
588
+ border-color: var(--cool-form-feedback-invalid-color);
589
+
590
+ &:focus {
591
+ border-color: var(--cool-form-feedback-invalid-color);
592
+ }
593
+
594
+ ~ .invalid-feedback {
595
+ display: block;
596
+ }
597
+ }
598
+ }
599
+
600
+ @keyframes check-animation {
601
+ 50% {
602
+ transform: scale(0.9);
603
+ }
604
+ }
605
+ }
606
+
607
+ @if $cool-use-component-layer {
608
+ @layer components {
609
+ @include cool-forms;
610
+ }
611
+ } @else {
612
+ @include cool-forms;
613
+ }