@carbon/element-styles 0.3.4 → 0.3.5-rc.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.
- package/css/prebuilt/editorial.css +1 -1
- package/css/prebuilt/expressive.css +1 -1
- package/css/prebuilt/productive.css +1 -1
- package/package.json +4 -4
- package/scss/elements/anchor/index.scss +5 -2
- package/scss/elements/button/index.scss +39 -24
- package/scss/elements/combo-box/index.scss +5 -2
- package/scss/elements/details/index.scss +9 -3
- package/scss/elements/dialog/index.scss +15 -4
- package/scss/elements/email-input/index.scss +40 -0
- package/scss/elements/file-input/index.scss +13 -3
- package/scss/elements/header-navigation/index.scss +6 -3
- package/scss/elements/inline-loading/index.scss +6 -1
- package/scss/elements/menu/index.scss +6 -3
- package/scss/elements/progress-bar/index.scss +6 -1
- package/scss/elements/select/index.scss +5 -2
- package/scss/elements/side-navigation/index.scss +10 -5
- package/scss/elements/table/index.scss +5 -2
- package/scss/elements/tabs/index.scss +30 -11
- package/scss/elements/telephone-number-input/index.scss +40 -0
- package/scss/elements/tile/index.scss +10 -5
- package/scss/elements/toggle/index.scss +5 -1
- package/scss/elements/tree-view/index.scss +13 -4
- package/scss/elements/url-input/index.scss +40 -0
- package/scss/prebuilt/expressive/_elements.scss +7 -0
- package/scss/prebuilt/productive/_elements.scss +7 -0
- package/scss/utilities/_guards.scss +22 -0
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
@use '../../layout';
|
|
17
17
|
@use '../../utilities/icons';
|
|
18
|
+
@use '../../utilities/guards';
|
|
18
19
|
|
|
19
20
|
$config: () !default;
|
|
20
21
|
|
|
@@ -51,9 +52,11 @@ $-default-config: (
|
|
|
51
52
|
fill: currentColor;
|
|
52
53
|
}
|
|
53
54
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
@include guards.hover {
|
|
56
|
+
&:hover {
|
|
57
|
+
@include layer.layer-background-hover;
|
|
58
|
+
color: inherit;
|
|
59
|
+
}
|
|
57
60
|
}
|
|
58
61
|
|
|
59
62
|
&:active {
|
|
@@ -74,8 +77,10 @@ $-default-config: (
|
|
|
74
77
|
transition: color layout.$mode--transition-duration layout.$mode--transition-timing-function;
|
|
75
78
|
}
|
|
76
79
|
|
|
77
|
-
|
|
78
|
-
|
|
80
|
+
@include guards.hover {
|
|
81
|
+
&:hover::after {
|
|
82
|
+
color: theme.$icon-primary;
|
|
83
|
+
}
|
|
79
84
|
}
|
|
80
85
|
}
|
|
81
86
|
}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
@use '../label';
|
|
16
16
|
|
|
17
17
|
@use '../../layout';
|
|
18
|
+
@use '../../utilities/guards';
|
|
18
19
|
|
|
19
20
|
$config: () !default;
|
|
20
21
|
|
|
@@ -98,7 +99,10 @@ $-knob-size: calc($-block-size - $-knob-spacing * 2);
|
|
|
98
99
|
background-color: theme.$icon-on-color;
|
|
99
100
|
inset-inline-start: $-knob-spacing;
|
|
100
101
|
inset-block-start: $-knob-spacing;
|
|
101
|
-
|
|
102
|
+
|
|
103
|
+
@include guards.motion {
|
|
104
|
+
transition: translate layout.$mode--transition-duration layout.$mode--transition-timing-function;
|
|
105
|
+
}
|
|
102
106
|
}
|
|
103
107
|
|
|
104
108
|
& button[role="switch"][aria-checked="true"]::before {
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
@use '../../layout';
|
|
16
16
|
@use '../../utilities/icons';
|
|
17
|
+
@use '../../utilities/guards';
|
|
17
18
|
|
|
18
19
|
$config: () !default;
|
|
19
20
|
|
|
@@ -49,9 +50,11 @@ $-default-config: (
|
|
|
49
50
|
transition-duration: layout.$mode--transition-duration;
|
|
50
51
|
transition-timing-function: layout.$mode--transition-timing-function;
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
@include guards.hover {
|
|
54
|
+
&:hover {
|
|
55
|
+
background-color: theme.$layer-hover;
|
|
56
|
+
color: theme.$text-primary;
|
|
57
|
+
}
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
&:active {
|
|
@@ -87,9 +90,15 @@ $-default-config: (
|
|
|
87
90
|
color: theme.$text-disabled;
|
|
88
91
|
cursor: not-allowed;
|
|
89
92
|
|
|
90
|
-
&:
|
|
93
|
+
&:active {
|
|
91
94
|
background-color: transparent;
|
|
92
95
|
}
|
|
96
|
+
|
|
97
|
+
@include guards.hover {
|
|
98
|
+
&:hover {
|
|
99
|
+
background-color: transparent;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
93
102
|
}
|
|
94
103
|
|
|
95
104
|
& li[role="treeitem"] > ul[role="group"] {
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
@use 'sass:map';
|
|
9
|
+
|
|
10
|
+
@use '../_labelled-input';
|
|
11
|
+
|
|
12
|
+
@use '../../layout';
|
|
13
|
+
|
|
14
|
+
$config: () !default;
|
|
15
|
+
|
|
16
|
+
$-default-config: (
|
|
17
|
+
selector: 'label:has(input[type="url"])',
|
|
18
|
+
axis: 'block',
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
/// @group url-input
|
|
22
|
+
/// @param {Map} config [()]
|
|
23
|
+
/// @param {Selector} config.selector ['label:has(input[type="url"])']
|
|
24
|
+
/// @param {'block' | 'axis'} config.axis ['block']
|
|
25
|
+
@mixin styles($config: $config) {
|
|
26
|
+
$props: map.deep-merge($-default-config, $config);
|
|
27
|
+
|
|
28
|
+
#{map.get($props, 'selector')} {
|
|
29
|
+
@include labelled-input.styles((
|
|
30
|
+
label: (
|
|
31
|
+
selector: '&',
|
|
32
|
+
axis: map.get($props, 'axis'),
|
|
33
|
+
),
|
|
34
|
+
input: (
|
|
35
|
+
selector: 'input[type="url"]',
|
|
36
|
+
),
|
|
37
|
+
input-invalid-slot: 'after',
|
|
38
|
+
));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
@use '../../elements/description-list';
|
|
22
22
|
@use '../../elements/details';
|
|
23
23
|
@use '../../elements/dialog';
|
|
24
|
+
@use '../../elements/email-input';
|
|
24
25
|
@use '../../elements/fieldset';
|
|
25
26
|
@use '../../elements/file-input';
|
|
26
27
|
@use '../../elements/footer';
|
|
@@ -56,6 +57,7 @@
|
|
|
56
57
|
@use '../../elements/side-navigation';
|
|
57
58
|
@use '../../elements/small-text';
|
|
58
59
|
@use '../../elements/table';
|
|
60
|
+
@use '../../elements/telephone-number-input';
|
|
59
61
|
@use '../../elements/text-area';
|
|
60
62
|
@use '../../elements/text-input';
|
|
61
63
|
@use '../../elements/tile';
|
|
@@ -64,6 +66,7 @@
|
|
|
64
66
|
@use '../../elements/tooltip';
|
|
65
67
|
@use '../../elements/tree-view';
|
|
66
68
|
@use '../../elements/unordered-list';
|
|
69
|
+
@use '../../elements/url-input';
|
|
67
70
|
|
|
68
71
|
@mixin styles {
|
|
69
72
|
@include abbreviation.styles;
|
|
@@ -86,6 +89,7 @@
|
|
|
86
89
|
@include description-list.styles;
|
|
87
90
|
@include details.styles;
|
|
88
91
|
@include dialog.styles;
|
|
92
|
+
@include email-input.styles;
|
|
89
93
|
@include fieldset.styles;
|
|
90
94
|
@include file-input.styles;
|
|
91
95
|
@include footer.styles;
|
|
@@ -112,6 +116,7 @@
|
|
|
112
116
|
@include password-input.styles;
|
|
113
117
|
@include popover.styles;
|
|
114
118
|
@include preformatted.styles;
|
|
119
|
+
@include progress-bar.styles;
|
|
115
120
|
@include radio-button.styles;
|
|
116
121
|
@include range-input.styles;
|
|
117
122
|
@include search-input.styles;
|
|
@@ -121,6 +126,7 @@
|
|
|
121
126
|
@include table.styles((
|
|
122
127
|
kind: 'structured-list',
|
|
123
128
|
));
|
|
129
|
+
@include telephone-number-input.styles;
|
|
124
130
|
@include text-area.styles;
|
|
125
131
|
@include text-input.styles;
|
|
126
132
|
@include tile.styles;
|
|
@@ -128,4 +134,5 @@
|
|
|
128
134
|
@include toggle.styles;
|
|
129
135
|
@include tooltip.styles;
|
|
130
136
|
@include unordered-list.styles;
|
|
137
|
+
@include url-input.styles;
|
|
131
138
|
}
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
@use '../../elements/description-list';
|
|
22
22
|
@use '../../elements/details';
|
|
23
23
|
@use '../../elements/dialog';
|
|
24
|
+
@use '../../elements/email-input';
|
|
24
25
|
@use '../../elements/fieldset';
|
|
25
26
|
@use '../../elements/file-input';
|
|
26
27
|
@use '../../elements/footer';
|
|
@@ -56,6 +57,7 @@
|
|
|
56
57
|
@use '../../elements/side-navigation';
|
|
57
58
|
@use '../../elements/small-text';
|
|
58
59
|
@use '../../elements/table';
|
|
60
|
+
@use '../../elements/telephone-number-input';
|
|
59
61
|
@use '../../elements/text-area';
|
|
60
62
|
@use '../../elements/text-input';
|
|
61
63
|
@use '../../elements/tile';
|
|
@@ -64,6 +66,7 @@
|
|
|
64
66
|
@use '../../elements/tooltip';
|
|
65
67
|
@use '../../elements/tree-view';
|
|
66
68
|
@use '../../elements/unordered-list';
|
|
69
|
+
@use '../../elements/url-input';
|
|
67
70
|
|
|
68
71
|
@mixin styles {
|
|
69
72
|
@include abbreviation.styles;
|
|
@@ -86,6 +89,7 @@
|
|
|
86
89
|
@include description-list.styles;
|
|
87
90
|
@include details.styles;
|
|
88
91
|
@include dialog.styles;
|
|
92
|
+
@include email-input.styles;
|
|
89
93
|
@include fieldset.styles;
|
|
90
94
|
@include file-input.styles;
|
|
91
95
|
@include footer.styles;
|
|
@@ -112,6 +116,7 @@
|
|
|
112
116
|
@include password-input.styles;
|
|
113
117
|
@include popover.styles;
|
|
114
118
|
@include preformatted.styles;
|
|
119
|
+
@include progress-bar.styles;
|
|
115
120
|
@include radio-button.styles;
|
|
116
121
|
@include range-input.styles;
|
|
117
122
|
@include search-input.styles;
|
|
@@ -119,6 +124,7 @@
|
|
|
119
124
|
@include side-navigation.styles;
|
|
120
125
|
@include small-text.styles;
|
|
121
126
|
@include table.styles;
|
|
127
|
+
@include telephone-number-input.styles;
|
|
122
128
|
@include text-area.styles;
|
|
123
129
|
@include text-input.styles;
|
|
124
130
|
@include tile.styles;
|
|
@@ -126,4 +132,5 @@
|
|
|
126
132
|
@include toggle.styles;
|
|
127
133
|
@include tooltip.styles;
|
|
128
134
|
@include unordered-list.styles;
|
|
135
|
+
@include url-input.styles;
|
|
129
136
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/// Guards styles to devices that have some hover-capable input mechanism.
|
|
9
|
+
/// @group guards
|
|
10
|
+
@mixin hover {
|
|
11
|
+
@media (any-hover: hover) {
|
|
12
|
+
@content;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/// Guards styles to users without a "reduced motion" preference on devices that can meaningfully display motion.
|
|
17
|
+
/// @group guards
|
|
18
|
+
@mixin motion {
|
|
19
|
+
@media (prefers-reduced-motion: no-preference) and (update: fast) {
|
|
20
|
+
@content;
|
|
21
|
+
}
|
|
22
|
+
}
|