@clayui/css 3.35.3 → 3.36.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.
@@ -1,123 +1,25 @@
1
1
  .btn {
2
- background-color: transparent;
3
- border: $btn-border-width solid transparent;
4
-
5
- @include border-radius($btn-border-radius, 0);
6
- @include box-shadow($btn-box-shadow);
7
-
8
- color: $body-color;
9
- cursor: $btn-cursor;
10
- display: inline-block;
11
- font-family: $btn-font-family;
12
- font-size: $btn-font-size;
13
- font-weight: $btn-font-weight;
14
- line-height: $btn-line-height;
15
- padding: $btn-padding-y $btn-padding-x;
16
- text-align: center;
17
- text-transform: none;
18
-
19
- @include transition($btn-transition);
20
-
21
- user-select: none;
22
- vertical-align: middle;
23
- white-space: $btn-white-space;
24
-
25
- @include clay-scale-component {
26
- font-size: $btn-font-size-mobile;
27
- padding-bottom: $btn-padding-y-mobile;
28
- padding-left: $btn-padding-x-mobile;
29
- padding-right: $btn-padding-x-mobile;
30
- padding-top: $btn-padding-y-mobile;
31
- }
32
-
33
- &:hover {
34
- color: $body-color;
35
- text-decoration: none;
36
- }
37
-
38
- &:focus,
39
- &.focus {
40
- box-shadow: $btn-focus-box-shadow;
41
- outline: 0;
42
- }
43
-
44
- &:active,
45
- &.active {
46
- @include box-shadow($btn-active-box-shadow);
47
-
48
- &:focus {
49
- @if ($enable-shadows and $btn-active-box-shadow != none) {
50
- box-shadow: $btn-focus-box-shadow, $btn-active-box-shadow;
51
- } @else {
52
- box-shadow: $btn-focus-box-shadow;
53
- }
54
- }
55
- }
2
+ @include clay-button-variant($btn);
3
+ }
56
4
 
57
- &.disabled,
58
- &:disabled {
59
- cursor: $btn-disabled-cursor;
60
- opacity: $btn-disabled-opacity;
5
+ fieldset:disabled a.btn {
6
+ $btn-disabled: setter(map-get($btn, disabled), ());
61
7
 
62
- &:focus,
63
- &:focus:active {
64
- box-shadow: none;
65
- }
8
+ @include clay-css($btn-disabled);
66
9
 
67
- &:active {
68
- pointer-events: none;
69
- }
10
+ &:focus {
11
+ @include clay-css(setter(map-get($btn-disabled, focus), ()));
70
12
  }
71
- }
72
-
73
- fieldset:disabled a.btn {
74
- box-shadow: none;
75
- cursor: $btn-disabled-cursor;
76
- opacity: $btn-disabled-opacity;
77
13
 
78
14
  &:active {
79
- pointer-events: none;
15
+ @include clay-css(setter(map-get($btn-disabled, active), ()));
80
16
  }
81
17
  }
82
18
 
83
- .btn .inline-item {
84
- font-size: $btn-inline-item-font-size;
85
- }
86
-
87
- .btn-section {
88
- display: block;
89
- font-size: $btn-section-font-size;
90
- font-weight: $btn-section-font-weight;
91
- line-height: $btn-section-line-height;
92
- }
93
-
94
19
  // Button Sizes
95
20
 
96
21
  %clay-btn-lg {
97
- @include border-radius($btn-border-radius-lg, 0);
98
-
99
- font-size: $btn-font-size-lg;
100
- line-height: $btn-line-height-lg;
101
- padding-bottom: $btn-padding-y-lg;
102
- padding-left: $btn-padding-x-lg;
103
- padding-right: $btn-padding-x-lg;
104
- padding-top: $btn-padding-y-lg;
105
-
106
- @include clay-scale-component {
107
- font-size: $btn-font-size-lg-mobile;
108
- padding-bottom: $btn-padding-y-lg-mobile;
109
- padding-left: $btn-padding-x-lg-mobile;
110
- padding-right: $btn-padding-x-lg-mobile;
111
- padding-top: $btn-padding-y-lg-mobile;
112
- }
113
-
114
- .inline-item {
115
- font-size: $btn-inline-item-font-size-lg;
116
- }
117
-
118
- .btn-section {
119
- font-size: $btn-section-font-size-lg;
120
- }
22
+ @include clay-button-variant($btn-lg);
121
23
  }
122
24
 
123
25
  .btn-lg {
@@ -125,30 +27,7 @@ fieldset:disabled a.btn {
125
27
  }
126
28
 
127
29
  %clay-btn-sm {
128
- @include border-radius($btn-border-radius-sm, 0);
129
-
130
- font-size: $btn-font-size-sm;
131
- line-height: $btn-line-height-sm;
132
- padding-bottom: $btn-padding-y-sm;
133
- padding-left: $btn-padding-x-sm;
134
- padding-right: $btn-padding-x-sm;
135
- padding-top: $btn-padding-y-sm;
136
-
137
- @include clay-scale-component {
138
- font-size: $btn-font-size-sm-mobile;
139
- padding-bottom: $btn-padding-y-sm-mobile;
140
- padding-left: $btn-padding-x-sm-mobile;
141
- padding-right: $btn-padding-x-sm-mobile;
142
- padding-top: $btn-padding-y-sm-mobile;
143
- }
144
-
145
- .inline-item {
146
- font-size: $btn-inline-item-font-size-sm;
147
- }
148
-
149
- .btn-section {
150
- font-size: $btn-section-font-size-sm;
151
- }
30
+ @include clay-button-variant($btn-sm);
152
31
  }
153
32
 
154
33
  .btn-sm {
@@ -179,17 +58,7 @@ input[type='button'] {
179
58
  // Button Unstyled
180
59
 
181
60
  %btn-unstyled {
182
- background-color: rgba(0, 0, 0, 0.001);
183
- border-width: 0;
184
- cursor: $btn-cursor;
185
- font-size: inherit;
186
- font-weight: inherit;
187
- line-height: inherit;
188
- max-width: 100%;
189
- padding: 0;
190
- text-align: left;
191
- text-transform: inherit;
192
- vertical-align: baseline;
61
+ @include clay-button-variant($btn-unstyled);
193
62
  }
194
63
 
195
64
  .btn-unstyled {
@@ -199,22 +68,7 @@ input[type='button'] {
199
68
  // Button Monospaced
200
69
 
201
70
  .btn-monospaced {
202
- height: $btn-monospaced-size;
203
- line-height: 1;
204
- overflow: hidden;
205
- padding-bottom: $btn-monospaced-padding-y;
206
- padding-left: $btn-monospaced-padding-x;
207
- padding-right: $btn-monospaced-padding-x;
208
- padding-top: $btn-monospaced-padding-y;
209
- text-align: center;
210
- white-space: normal;
211
- width: $btn-monospaced-size;
212
- word-wrap: break-word;
213
-
214
- @include clay-scale-component {
215
- height: $btn-monospaced-size-mobile;
216
- width: $btn-monospaced-size-mobile;
217
- }
71
+ @include clay-button-variant($btn-monospaced);
218
72
 
219
73
  &.btn .lexicon-icon {
220
74
  margin-top: 0;
@@ -222,17 +76,7 @@ input[type='button'] {
222
76
  }
223
77
 
224
78
  %clay-btn-monospaced-lg {
225
- height: $btn-monospaced-size-lg;
226
- padding-bottom: $btn-monospaced-padding-y-lg;
227
- padding-left: $btn-monospaced-padding-x-lg;
228
- padding-right: $btn-monospaced-padding-x-lg;
229
- padding-top: $btn-monospaced-padding-y-lg;
230
- width: $btn-monospaced-size-lg;
231
-
232
- @include clay-scale-component {
233
- height: $btn-monospaced-size-lg-mobile;
234
- width: $btn-monospaced-size-lg-mobile;
235
- }
79
+ @include clay-button-variant($btn-monospaced-lg);
236
80
  }
237
81
 
238
82
  .btn-monospaced.btn-lg {
@@ -240,96 +84,24 @@ input[type='button'] {
240
84
  }
241
85
 
242
86
  %clay-btn-monospaced-sm {
243
- height: $btn-monospaced-size-sm;
244
- padding-bottom: $btn-monospaced-padding-y-sm;
245
- padding-left: $btn-monospaced-padding-x-sm;
246
- padding-right: $btn-monospaced-padding-x-sm;
247
- padding-top: $btn-monospaced-padding-y-sm;
248
- width: $btn-monospaced-size-sm;
249
-
250
- @include clay-scale-component {
251
- height: $btn-monospaced-size-sm-mobile;
252
- width: $btn-monospaced-size-sm-mobile;
253
- }
87
+ @include clay-button-variant($btn-monospaced-sm);
254
88
  }
255
89
 
256
90
  .btn-monospaced.btn-sm {
257
91
  @extend %clay-btn-monospaced-sm !optional;
258
92
  }
259
93
 
260
- // Button C Inner
261
-
262
- @if ($enable-c-inner) {
263
- .btn .c-inner {
264
- margin: #{math-sign($btn-padding-y)} #{math-sign($btn-padding-x)};
265
-
266
- @include clay-scale-component {
267
- margin: #{math-sign($btn-padding-y-mobile)} #{math-sign(
268
- $btn-padding-x-mobile
269
- )};
270
- }
271
- }
272
-
273
- .btn-unstyled .c-inner {
274
- margin: 0;
275
- max-width: none;
276
- }
277
-
278
- .btn-monospaced .c-inner {
279
- align-items: center;
280
- display: flex;
281
- flex-direction: column;
282
- height: calc(100% + #{$btn-monospaced-padding-y * 2});
283
- justify-content: center;
284
- margin: #{math-sign($btn-monospaced-padding-y)} 0;
285
- padding: 0;
286
- width: 100%;
287
- }
288
-
289
- .btn-sm {
290
- .c-inner {
291
- margin: #{math-sign($btn-padding-y-sm)}
292
- #{math-sign($btn-padding-x-sm)};
293
-
294
- @include clay-scale-component {
295
- margin: #{math-sign($btn-padding-y-sm-mobile)} #{math-sign(
296
- $btn-padding-x-sm-mobile
297
- )};
298
- }
299
- }
300
-
301
- &.btn-monospaced .c-inner {
302
- height: calc(100% + #{$btn-monospaced-padding-y-sm * 2});
303
- margin: #{math-sign($btn-monospaced-padding-y-sm)} 0;
304
- }
305
- }
306
-
307
- .btn-lg {
308
- .c-inner {
309
- margin: #{math-sign($btn-padding-y-lg)}
310
- #{math-sign($btn-padding-x-lg)};
311
-
312
- @include clay-scale-component {
313
- margin: #{math-sign($btn-padding-y-lg-mobile)} #{math-sign(
314
- $btn-padding-x-lg-mobile
315
- )};
316
- }
317
- }
318
-
319
- &.btn-monospaced .c-inner {
320
- height: calc(100% + #{$btn-monospaced-padding-y-lg * 2});
321
- margin: #{math-sign($btn-monospaced-padding-y-lg)} 0;
322
- }
323
- }
324
- }
325
-
326
94
  // Button Variants
327
95
 
328
96
  @each $color, $value in $btn-palette {
329
- .btn-#{$color} {
97
+ %btn-#{$color} {
330
98
  @include clay-button-variant($value);
331
99
  }
332
100
 
101
+ .btn-#{$color} {
102
+ @extend %btn-#{$color} !optional;
103
+ }
104
+
333
105
  %btn-#{$color}-focus {
334
106
  background-color: map-get($value, focus-bg);
335
107
  border-color: map-get($value, focus-border-color);
@@ -341,10 +113,14 @@ input[type='button'] {
341
113
  // Button Outline Variants
342
114
 
343
115
  @each $color, $value in $btn-outline-palette {
344
- .btn-outline-#{$color} {
116
+ %btn-outline-#{$color} {
345
117
  @include clay-button-variant($value);
346
118
  }
347
119
 
120
+ .btn-outline-#{$color} {
121
+ @extend %btn-outline-#{$color} !optional;
122
+ }
123
+
348
124
  %btn-outline-#{$color}-focus {
349
125
  background-color: map-get($value, focus-bg);
350
126
  border-color: map-get($value, focus-border-color);
@@ -354,17 +130,7 @@ input[type='button'] {
354
130
  }
355
131
 
356
132
  .btn-outline-borderless {
357
- border-color: transparent;
358
-
359
- &:hover,
360
- &:focus {
361
- border-color: transparent;
362
- }
363
-
364
- &:disabled,
365
- &.disabled {
366
- border-color: transparent;
367
- }
133
+ @include clay-button-variant($btn-outline-borderless);
368
134
  }
369
135
 
370
136
  .btn-outline-borderless:not(:disabled):not(.disabled):active {
@@ -23,129 +23,58 @@ fieldset {
23
23
  }
24
24
 
25
25
  label {
26
- color: $input-label-color;
27
- font-size: $input-label-font-size;
28
- font-weight: $input-label-font-weight;
29
- margin-bottom: $input-label-margin-bottom;
30
- max-width: 100%;
31
- word-wrap: break-word;
26
+ @include clay-css($input-label);
32
27
 
33
28
  @include clay-scale-component {
34
- font-size: $input-label-font-size-mobile;
29
+ $mobile: setter(map-get($input-label, mobile), ());
30
+
31
+ @include clay-css($mobile);
35
32
  }
36
33
 
37
34
  &.focus {
38
- color: $input-label-focus-color;
35
+ $focus: setter(map-get($input-label, focus), ());
36
+
37
+ @include clay-css($focus);
39
38
  }
40
39
 
41
40
  &[for] {
42
- cursor: $input-label-for-cursor;
41
+ $for: setter(map-get($input-label, for), ());
42
+
43
+ @include clay-css($for);
43
44
  }
44
45
 
45
46
  + .form-text {
46
- margin-bottom: $input-label-margin-bottom;
47
- margin-top: 0;
47
+ $form-text: setter(map-get($input-label, form-text), ());
48
+
49
+ @include clay-css($form-text);
48
50
  }
49
51
 
50
52
  .reference-mark {
51
- color: $input-label-reference-mark-color;
52
- font-size: $input-label-reference-mark-font-size;
53
- margin-left: $input-label-reference-mark-spacer;
54
- margin-right: $input-label-reference-mark-spacer;
55
- vertical-align: $input-label-reference-mark-vertical-align;
53
+ $reference-mark: setter(map-get($input-label, reference-mark), ());
54
+
55
+ @include clay-css($reference-mark);
56
56
  }
57
57
  }
58
58
 
59
59
  // Label without for attribute
60
60
 
61
61
  .form-control-label {
62
- display: inline;
63
- margin-bottom: 0;
62
+ @include clay-css($form-control-label);
64
63
  }
65
64
 
66
65
  .form-control-label-text {
67
- cursor: $input-label-for-cursor;
68
- display: inline-block;
69
- margin-bottom: $input-label-margin-bottom;
70
- max-width: 100%;
71
- word-wrap: break-word;
66
+ @include clay-css($form-control-label-text);
72
67
  }
73
68
 
74
69
  // Inputs
75
70
 
76
71
  .form-control {
77
- background-color: $input-bg;
78
- border-color: $input-border-color;
79
- border-style: $input-border-style;
80
-
81
- border-bottom-width: $input-border-bottom-width;
82
- border-left-width: $input-border-left-width;
83
- border-right-width: $input-border-right-width;
84
- border-top-width: $input-border-top-width;
85
-
86
- @include border-radius($input-border-radius, 0);
87
- @include box-shadow($input-box-shadow);
88
-
89
- color: $input-color;
90
- display: block;
91
- font-family: $input-font-family;
92
- font-size: $input-font-size;
93
- font-weight: $input-font-weight;
94
- height: $input-height;
95
- line-height: $input-line-height;
96
- min-width: 0;
97
- padding-bottom: $input-padding-y;
98
- padding-left: $input-padding-x;
99
- padding-right: $input-padding-x;
100
- padding-top: $input-padding-y;
101
- width: 100%;
102
-
103
- @include transition($input-transition);
72
+ @include clay-form-control-variant($input);
104
73
 
105
74
  @include clay-scale-component {
106
- font-size: $input-font-size-mobile;
107
- height: $input-height-mobile;
108
- }
109
-
110
- // Placeholder
111
-
112
- &::placeholder {
113
- color: $input-placeholder-color;
114
-
115
- // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
116
-
117
- opacity: 1;
118
- }
119
-
120
- &:focus,
121
- &.focus {
122
- background-color: $input-focus-bg;
123
- border-color: $input-focus-border-color;
124
- box-shadow: $input-focus-box-shadow;
125
- color: $input-focus-color;
126
- outline: 0;
75
+ $mobile: setter(map-get($input, mobile), ());
127
76
 
128
- &::placeholder {
129
- color: $input-placeholder-focus-color;
130
- }
131
- }
132
-
133
- // Disabled
134
- // HTML5 says that controls under a fieldset > legend:first-child won't be
135
- // disabled if the fieldset is disabled. Due to implementation difficulty, we
136
- // don't honor that edge case; we style them as disabled anyway.
137
-
138
- &:disabled,
139
- &.disabled {
140
- background-color: $input-disabled-bg;
141
- border-color: $input-disabled-border-color;
142
- color: $input-disabled-color;
143
- cursor: $input-disabled-cursor;
144
-
145
- // `opacity: 1;` iOS fix for unreadable disabled content;
146
- // see https://github.com/twbs/bootstrap/issues/11655.
147
-
148
- opacity: $input-disabled-opacity;
77
+ @include clay-css($mobile);
149
78
  }
150
79
 
151
80
  // Removes inner shadow on inputs in iOS. Bootstrap 4 uses
@@ -166,6 +166,10 @@
166
166
  }
167
167
  }
168
168
 
169
+ .hide {
170
+ display: none !important;
171
+ }
172
+
169
173
  // Display Print
170
174
 
171
175
  @media print {
@@ -246,8 +246,8 @@
246
246
  true
247
247
  );
248
248
 
249
- @if ($enable-transitions) {
250
- @return $transition;
249
+ @if ($enable) {
250
+ @return $transitions;
251
251
  }
252
252
 
253
253
  @return null;
@@ -634,6 +634,20 @@
634
634
  @return max($val1, $val2);
635
635
  }
636
636
 
637
+ /// A function that determines whether the string `$str1` begins with the characters of the specified string `$str2`. This returns `true` if `$str1` begins with `$str2`.
638
+ /// @param {String} $str1 - The string to search.
639
+ /// @param {String} $str2 - The search parameter.
640
+
641
+ @function starts-with($str1, $str2) {
642
+ $returnVal: false;
643
+
644
+ @if (str-index($str1, $str2) == 1) {
645
+ $returnVal: true;
646
+ }
647
+
648
+ @return $returnVal;
649
+ }
650
+
637
651
  // * REUSE-Snippet-Begin
638
652
  // * SPDX-License-Identifier: MIT
639
653
  // * SPDX-FileCopyrightText: © 2016 Hugo Giraudel <https://hugogiraudel.com/>
@@ -233,6 +233,8 @@
233
233
  )
234
234
  );
235
235
 
236
+ $disabled-focus: setter(map-get($disabled, focus), ());
237
+
236
238
  $nested-disabled-active: setter(map-get($disabled, active), ());
237
239
  $disabled-active: setter(map-get($map, disabled-active), ());
238
240
  $disabled-active: map-merge($nested-disabled-active, $disabled-active);
@@ -281,7 +283,9 @@
281
283
  )
282
284
  );
283
285
 
286
+ $btn-section: setter(map-get($map, btn-section), ());
284
287
  $section: setter(map-get($map, section), ());
288
+ $section: map-merge($btn-section, $section);
285
289
  $section: map-merge(
286
290
  $section,
287
291
  (
@@ -338,6 +342,26 @@
338
342
  )
339
343
  );
340
344
 
345
+ $mobile-c-inner: setter(map-get($mobile, c-inner), ());
346
+ $mobile-c-inner: map-merge(
347
+ (
348
+ enabled:
349
+ setter(
350
+ if(
351
+ variable-exists(enable-c-inner),
352
+ $enable-c-inner,
353
+ $cadmin-enable-c-inner
354
+ ),
355
+ true
356
+ ),
357
+ margin-bottom: math-sign(map-get($mobile, padding-bottom)),
358
+ margin-left: math-sign(map-get($mobile, padding-left)),
359
+ margin-right: math-sign(map-get($mobile, padding-right)),
360
+ margin-top: math-sign(map-get($mobile, padding-top)),
361
+ ),
362
+ $mobile-c-inner
363
+ );
364
+
341
365
  $unset: setter(
342
366
  if(
343
367
  variable-exists(clay-unset-placeholder),
@@ -372,16 +396,15 @@
372
396
  @if ($enabled) {
373
397
  @include clay-css($base);
374
398
 
375
- @at-root {
376
- a#{&},
377
- button#{&} {
378
- cursor: map-get($map, cursor);
379
- }
380
- }
381
-
382
399
  @if ($breakpoint-down) {
383
400
  @include media-breakpoint-down($breakpoint-down) {
384
401
  @include clay-css($mobile);
402
+
403
+ @if (map-get($c-inner, enabled)) {
404
+ .c-inner {
405
+ @include clay-css($mobile-c-inner);
406
+ }
407
+ }
385
408
  }
386
409
  }
387
410
 
@@ -417,6 +440,10 @@
417
440
  &.disabled {
418
441
  @include clay-css($disabled);
419
442
 
443
+ &:focus {
444
+ @include clay-css($disabled-focus);
445
+ }
446
+
420
447
  &:active {
421
448
  @include clay-css($disabled-active);
422
449
  }
@@ -334,7 +334,12 @@
334
334
  )
335
335
  );
336
336
 
337
- $hover-placeholder: setter(map-get($map, hover-placeholder), ());
337
+ $old-hover-placeholder: setter(map-get($map, hover-placeholder), ());
338
+ $hover-placeholder: setter(map-get($hover, placeholder), ());
339
+ $hover-placeholder: map-deep-merge(
340
+ $hover-placeholder,
341
+ $old-hover-placeholder
342
+ );
338
343
  $hover-placeholder: map-deep-merge(
339
344
  $hover-placeholder,
340
345
  (
@@ -374,7 +379,12 @@
374
379
  )
375
380
  );
376
381
 
377
- $focus-placeholder: setter(map-get($map, focus-placeholder), ());
382
+ $old-focus-placeholder: setter(map-get($map, focus-placeholder), ());
383
+ $focus-placeholder: setter(map-get($focus, placeholder), ());
384
+ $focus-placeholder: map-deep-merge(
385
+ $focus-placeholder,
386
+ $old-focus-placeholder
387
+ );
378
388
  $focus-placeholder: map-deep-merge(
379
389
  $focus-placeholder,
380
390
  (
@@ -436,7 +446,12 @@
436
446
  )
437
447
  );
438
448
 
439
- $disabled-placeholder: setter(map-get($map, disabled-placeholder), ());
449
+ $old-disabled-placeholder: setter(map-get($map, disabled-placeholder), ());
450
+ $disabled-placeholder: setter(map-get($disabled, placeholder), ());
451
+ $disabled-placeholder: map-deep-merge(
452
+ $disabled-placeholder,
453
+ $old-disabled-placeholder
454
+ );
440
455
  $disabled-placeholder: map-deep-merge(
441
456
  $disabled-placeholder,
442
457
  (
@@ -452,6 +467,8 @@
452
467
  @include clay-css($base);
453
468
 
454
469
  &::placeholder {
470
+ // opacity: 1, override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
471
+
455
472
  @include clay-css($placeholder);
456
473
  }
457
474
 
@@ -493,8 +510,16 @@
493
510
  }
494
511
  }
495
512
 
513
+ // Disabled
514
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
515
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
516
+ // don't honor that edge case; we style them as disabled anyway.
517
+
496
518
  &:disabled,
497
519
  &.disabled {
520
+ // `opacity: 1;` iOS fix for unreadable disabled content;
521
+ // see https://github.com/twbs/bootstrap/issues/11655.
522
+
498
523
  @include clay-css($disabled);
499
524
 
500
525
  &::placeholder {