@stackoverflow/stacks 1.3.0 → 1.3.3
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/dist/controllers/s-expandable-control.d.ts +1 -1
- package/dist/controllers/s-tooltip.d.ts +16 -1
- package/dist/css/stacks.css +848 -559
- package/dist/css/stacks.min.css +1 -1
- package/dist/js/stacks.js +153 -84
- package/dist/js/stacks.min.js +1 -1
- package/lib/css/atomic/borders.less +1 -0
- package/lib/css/atomic/colors.less +1 -0
- package/lib/css/atomic/misc.less +1 -1
- package/lib/css/atomic/typography.less +0 -6
- package/lib/css/components/activity-indicator.less +18 -17
- package/lib/css/components/avatars.less +50 -131
- package/lib/css/components/breadcrumbs.less +4 -4
- package/lib/css/components/buttons.less +8 -48
- package/lib/css/components/empty-states.less +15 -0
- package/lib/css/components/{collapsible.less → expandable.less} +0 -0
- package/lib/css/components/inputs.less +37 -101
- package/lib/css/components/labels.less +98 -0
- package/lib/css/components/links.less +15 -3
- package/lib/css/components/notices.less +190 -163
- package/lib/css/components/post-summary.less +98 -35
- package/lib/css/components/progress-bars.less +1 -1
- package/lib/css/components/prose.less +4 -4
- package/lib/css/components/spinner.less +39 -1
- package/lib/css/components/tables.less +1 -5
- package/lib/css/components/uploader.less +70 -84
- package/lib/css/exports/constants-colors.less +19 -0
- package/lib/css/stacks-dynamic.less +0 -1
- package/lib/css/stacks-static.less +3 -2
- package/lib/ts/controllers/s-expandable-control.ts +23 -19
- package/lib/ts/controllers/s-modal.ts +16 -16
- package/lib/ts/controllers/s-navigation-tablist.ts +13 -13
- package/lib/ts/controllers/s-popover.ts +26 -18
- package/lib/ts/controllers/s-table.ts +31 -29
- package/lib/ts/controllers/s-tooltip.ts +62 -23
- package/lib/ts/stacks.ts +8 -4
- package/package.json +17 -17
- package/lib/css/components/banners.less +0 -80
- package/lib/css/components/blank-states.less +0 -26
|
@@ -12,13 +12,29 @@
|
|
|
12
12
|
// ----------------------------------------------------------------------------
|
|
13
13
|
|
|
14
14
|
.s-activity-indicator {
|
|
15
|
+
--_focus-ring: var(--focus-ring);
|
|
16
|
+
--_bg-color: var(--theme-secondary-400);
|
|
17
|
+
|
|
18
|
+
&.s-activity-indicator__success {
|
|
19
|
+
--_bg-color: var(--green-500);
|
|
20
|
+
--_focus-ring: var(--focus-ring-success);
|
|
21
|
+
}
|
|
22
|
+
&.s-activity-indicator__warning {
|
|
23
|
+
--_bg-color: var(--yellow-600);
|
|
24
|
+
--_focus-ring: var(--focus-ring-warning);
|
|
25
|
+
}
|
|
26
|
+
&.s-activity-indicator__danger {
|
|
27
|
+
--_bg-color: var(--red-500);
|
|
28
|
+
--_focus-ring: var(--focus-ring-error);
|
|
29
|
+
}
|
|
30
|
+
|
|
15
31
|
display: inline-block;
|
|
16
32
|
min-width: var(--su-static12);
|
|
17
33
|
min-height: var(--su-static12);
|
|
18
34
|
padding: var(--su2) var(--su4);
|
|
19
35
|
line-height: 1.1; // Custom line-height to satisfy 1x screens
|
|
20
|
-
background-color: var(--
|
|
21
|
-
box-shadow: 0 0 0 var(--su-static4) var(--
|
|
36
|
+
background-color: var(--_bg-color);
|
|
37
|
+
box-shadow: 0 0 0 var(--su-static4) var(--_focus-ring);
|
|
22
38
|
border-radius: 1000px;
|
|
23
39
|
font-size: var(--fs-fine);
|
|
24
40
|
font-weight: 600;
|
|
@@ -27,18 +43,3 @@
|
|
|
27
43
|
|
|
28
44
|
.highcontrast-mode({ color: var(--white); });
|
|
29
45
|
}
|
|
30
|
-
|
|
31
|
-
.s-activity-indicator__success {
|
|
32
|
-
background-color: var(--green-500);
|
|
33
|
-
box-shadow: 0 0 0 var(--su-static4) var(--focus-ring-success);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.s-activity-indicator__warning {
|
|
37
|
-
background-color: var(--yellow-600);
|
|
38
|
-
box-shadow: 0 0 0 var(--su-static4) var(--focus-ring-warning);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.s-activity-indicator__danger {
|
|
42
|
-
background-color: var(--red-500);
|
|
43
|
-
box-shadow: 0 0 0 var(--su-static4) var(--focus-ring-error);
|
|
44
|
-
}
|
|
@@ -16,11 +16,52 @@
|
|
|
16
16
|
// ----------------------------------------------------------------------------
|
|
17
17
|
|
|
18
18
|
.s-avatar {
|
|
19
|
+
--_size: var(--su-static16);
|
|
20
|
+
--_br: var(--br-sm);
|
|
21
|
+
--_fs-letter: calc(var(--su-static12) - var(--su-static1));
|
|
22
|
+
--_scale-badge: 1;
|
|
23
|
+
|
|
24
|
+
&.s-avatar__24 {
|
|
25
|
+
--_size: var(--su-static24);
|
|
26
|
+
--_fs-letter: var(--su-static16);
|
|
27
|
+
--_scale-badge: 1.1;
|
|
28
|
+
}
|
|
29
|
+
&.s-avatar__32 {
|
|
30
|
+
--_size: var(--su-static32);
|
|
31
|
+
--_br: var(--br-md);
|
|
32
|
+
--_fs-letter: calc(var(--su-static24) - var(--su-static2));
|
|
33
|
+
--_scale-badge: 1.3;
|
|
34
|
+
}
|
|
35
|
+
&.s-avatar__48 {
|
|
36
|
+
--_size: var(--su-static48);
|
|
37
|
+
--_br: var(--br-md);
|
|
38
|
+
--_fs-letter: calc(var(--su-static32) + var(--su-static2));
|
|
39
|
+
--_scale-badge: 1.6;
|
|
40
|
+
}
|
|
41
|
+
&.s-avatar__64 {
|
|
42
|
+
--_size: var(--su-static64);
|
|
43
|
+
--_br: var(--br-lg);
|
|
44
|
+
--_fs-letter: calc(var(--su-static48) - var(--su-static4));
|
|
45
|
+
--_scale-badge: 2.4;
|
|
46
|
+
}
|
|
47
|
+
&.s-avatar__96 {
|
|
48
|
+
--_size: var(--su-static96);
|
|
49
|
+
--_br: calc(var(--br-lg) + var(--br-sm));
|
|
50
|
+
--_fs-letter: calc(var(--su-static64) + var(--su-static2));
|
|
51
|
+
--_scale-badge: 3;
|
|
52
|
+
}
|
|
53
|
+
&.s-avatar__128 {
|
|
54
|
+
--_size: var(--su-static128);
|
|
55
|
+
--_br: calc(var(--br-lg) + var(--br-sm));
|
|
56
|
+
--_fs-letter: calc(var(--su-static96) - var(--su-static8));
|
|
57
|
+
--_scale-badge: 3;
|
|
58
|
+
}
|
|
59
|
+
|
|
19
60
|
display: inline-block; // Make sure the avatar has structure regardless of the element eg. span vs. div
|
|
20
61
|
position: relative;
|
|
21
|
-
width: var(--
|
|
22
|
-
height: var(--
|
|
23
|
-
border-radius: var(--
|
|
62
|
+
width: var(--_size);
|
|
63
|
+
height: var(--_size);
|
|
64
|
+
border-radius: var(--_br);
|
|
24
65
|
background-color: @white; // Force a white background color for when we have transparent avatars
|
|
25
66
|
background-repeat: no-repeat;
|
|
26
67
|
background-size: 100%;
|
|
@@ -39,7 +80,7 @@
|
|
|
39
80
|
.s-avatar--letter {
|
|
40
81
|
display: block; // Make sure we're treating the letter as a block-level element
|
|
41
82
|
color: @white; // Force a light appearance of text rendering
|
|
42
|
-
font-size:
|
|
83
|
+
font-size: var(--_fs-letter); // Force a font size so the avatar text doesn't get smaller as the window resizes
|
|
43
84
|
font-weight: bold;
|
|
44
85
|
line-height: 1.4; // Guards against some line-height trolling from the parent
|
|
45
86
|
text-align: center;
|
|
@@ -55,136 +96,14 @@
|
|
|
55
96
|
position: absolute;
|
|
56
97
|
right: -4px;
|
|
57
98
|
bottom: -4px;
|
|
99
|
+
-webkit-transform: scale(var(--_scale-badge));
|
|
100
|
+
transform: scale(var(--_scale-badge));
|
|
58
101
|
}
|
|
59
102
|
|
|
60
103
|
.s-avatar--image {
|
|
61
|
-
width: var(--
|
|
62
|
-
height: var(--
|
|
63
|
-
border-radius: var(--
|
|
104
|
+
width: var(--_size);
|
|
105
|
+
height: var(--_size);
|
|
106
|
+
border-radius: var(--_br);
|
|
64
107
|
display: block;
|
|
65
108
|
}
|
|
66
|
-
|
|
67
|
-
&.s-avatar__24 {
|
|
68
|
-
width: var(--su-static24);
|
|
69
|
-
height: var(--su-static24);
|
|
70
|
-
|
|
71
|
-
.s-avatar--letter {
|
|
72
|
-
font-size: 16px; // Force the font size regardless of the parent
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.s-avatar--badge {
|
|
76
|
-
-webkit-transform: scale(1.1);
|
|
77
|
-
transform: scale(1.1);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.s-avatar--image {
|
|
81
|
-
width: var(--su-static24);
|
|
82
|
-
height: var(--su-static24);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
&.s-avatar__32 {
|
|
87
|
-
width: var(--su-static32);
|
|
88
|
-
height: var(--su-static32);
|
|
89
|
-
border-radius: var(--br-md);
|
|
90
|
-
|
|
91
|
-
.s-avatar--letter {
|
|
92
|
-
font-size: 22px; // Force the font size regardless of the parent
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.s-avatar--badge {
|
|
96
|
-
-webkit-transform: scale(1.3);
|
|
97
|
-
transform: scale(1.3);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.s-avatar--image {
|
|
101
|
-
width: var(--su-static32);
|
|
102
|
-
height: var(--su-static32);
|
|
103
|
-
border-radius: var(--br-md);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
&.s-avatar__48 {
|
|
108
|
-
width: var(--su-static48);
|
|
109
|
-
height: var(--su-static48);
|
|
110
|
-
border-radius: var(--br-md);
|
|
111
|
-
|
|
112
|
-
.s-avatar--letter {
|
|
113
|
-
font-size: 34px; // Force the font size regardless of the parent
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
.s-avatar--badge {
|
|
117
|
-
-webkit-transform: scale(1.6);
|
|
118
|
-
transform: scale(1.6);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
.s-avatar--image {
|
|
122
|
-
width: var(--su-static48);
|
|
123
|
-
height: var(--su-static48);
|
|
124
|
-
border-radius: var(--br-md);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
&.s-avatar__64 {
|
|
129
|
-
width: var(--su-static64);
|
|
130
|
-
height: var(--su-static64);
|
|
131
|
-
border-radius: var(--br-lg);
|
|
132
|
-
|
|
133
|
-
.s-avatar--letter {
|
|
134
|
-
font-size: 44px; // Force the font size regardless of the parent
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
.s-avatar--badge {
|
|
138
|
-
-webkit-transform: scale(2.4);
|
|
139
|
-
transform: scale(2.4);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
.s-avatar--image {
|
|
143
|
-
width: var(--su-static64);
|
|
144
|
-
height: var(--su-static64);
|
|
145
|
-
border-radius: var(--br-lg);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
&.s-avatar__96 {
|
|
150
|
-
width: var(--su-static96);
|
|
151
|
-
height: var(--su-static96);
|
|
152
|
-
border-radius: calc(var(--br-lg) + var(--br-sm));
|
|
153
|
-
|
|
154
|
-
.s-avatar--letter {
|
|
155
|
-
font-size: 66px; // Force the font size regardless of the parent
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
.s-avatar--badge {
|
|
159
|
-
-webkit-transform: scale(3);
|
|
160
|
-
transform: scale(3);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
.s-avatar--image {
|
|
164
|
-
width: var(--su-static96);
|
|
165
|
-
height: var(--su-static96);
|
|
166
|
-
border-radius: calc(var(--br-lg) + var(--br-sm));
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
&.s-avatar__128 {
|
|
171
|
-
width: var(--su-static128);
|
|
172
|
-
height: var(--su-static128);
|
|
173
|
-
border-radius: calc(var(--br-lg) + var(--br-lg));
|
|
174
|
-
|
|
175
|
-
.s-avatar--letter {
|
|
176
|
-
font-size: 88px; // Force the font size regardless of the parent
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
.s-avatar--badge {
|
|
180
|
-
-webkit-transform: scale(3);
|
|
181
|
-
transform: scale(3);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
.s-avatar--image {
|
|
185
|
-
width: var(--su-static128);
|
|
186
|
-
height: var(--su-static128);
|
|
187
|
-
border-radius: calc(var(--br-lg) + var(--br-lg));
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
109
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
display: flex;
|
|
12
12
|
flex-wrap: wrap;
|
|
13
13
|
align-items: start;
|
|
14
|
-
color: var(--black-
|
|
14
|
+
color: var(--black-200);
|
|
15
15
|
font-size: var(--fs-caption);
|
|
16
16
|
|
|
17
17
|
.s-breadcrumbs--item {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
margin-right: var(--su4);
|
|
27
27
|
margin-left: var(--su4);
|
|
28
28
|
|
|
29
|
-
.highcontrast-mode({ color: var(--
|
|
29
|
+
.highcontrast-mode({ color: var(--fc-light); });
|
|
30
30
|
|
|
31
31
|
#stacks-internals #screen-sm({
|
|
32
32
|
margin-right: var(--su2);
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
.s-breadcrumbs--link {
|
|
38
|
-
color: var(--
|
|
38
|
+
color: var(--fc-light);
|
|
39
39
|
|
|
40
40
|
&:hover {
|
|
41
|
-
color: var(--
|
|
41
|
+
color: var(--fc-medium);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
&[disabled] {
|
|
77
|
-
opacity:
|
|
77
|
+
opacity: var(--_o-disabled-static);
|
|
78
78
|
pointer-events: none;
|
|
79
79
|
box-shadow: none !important;
|
|
80
80
|
}
|
|
@@ -151,15 +151,13 @@
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
.s-btn--badge {
|
|
154
|
-
opacity:
|
|
154
|
+
opacity: var(--_o-disabled);
|
|
155
155
|
display: inline-block;
|
|
156
156
|
border-radius: var(--br-sm);
|
|
157
157
|
padding: var(--su2) calc(var(--su4) - var(--su1));
|
|
158
158
|
font-size: var(--fs-caption);
|
|
159
159
|
line-height: var(--lh-xs);
|
|
160
160
|
background-color: currentColor;
|
|
161
|
-
|
|
162
|
-
.highcontrast-mode({ opacity: 0.8; });
|
|
163
161
|
}
|
|
164
162
|
|
|
165
163
|
.s-btn--number {
|
|
@@ -640,50 +638,12 @@
|
|
|
640
638
|
}
|
|
641
639
|
|
|
642
640
|
// $$ Loading Icon
|
|
643
|
-
//
|
|
641
|
+
// see spinner.less for full implementation
|
|
644
642
|
// ----------------------------------------------------------------------------
|
|
645
|
-
.s-btn {
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
content: "";
|
|
651
|
-
position: absolute;
|
|
652
|
-
opacity: 0.3;
|
|
653
|
-
left: 0.6em;
|
|
654
|
-
top: calc(50% - 0.6em);
|
|
655
|
-
width: 1.23076923em;
|
|
656
|
-
height: 1.23076923em;
|
|
657
|
-
border-width: 2px;
|
|
658
|
-
border-style: solid;
|
|
659
|
-
border-color: currentColor;
|
|
660
|
-
border-radius: var(--br-circle);
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
&:after {
|
|
664
|
-
content: "";
|
|
665
|
-
position: absolute;
|
|
666
|
-
left: 0.6em;
|
|
667
|
-
top: calc(50% - 0.6em);
|
|
668
|
-
width: 1.23076923em;
|
|
669
|
-
height: 1.23076923em;
|
|
670
|
-
border-width: 2px;
|
|
671
|
-
border-style: solid;
|
|
672
|
-
border-color: transparent;
|
|
673
|
-
border-left-color: currentColor;
|
|
674
|
-
border-radius: var(--br-circle);
|
|
675
|
-
animation: s-spinner-rotate 0.9s infinite cubic-bezier(0.5, 0.1, 0.5, 0.9);
|
|
676
|
-
// see spinner.less for an explanation of the following two
|
|
677
|
-
filter: invert(0); // (*)
|
|
678
|
-
transform-origin: 50% 50% 1px; // (*)
|
|
679
|
-
}
|
|
680
|
-
|
|
681
|
-
.svg-icon:first-child {
|
|
682
|
-
margin-left: -23px;
|
|
683
|
-
// If the first thing in the button is an icon, let's hide it on loading
|
|
684
|
-
// We only want to modify the visibility, since we still want it to have shape and keep the same layout.
|
|
685
|
-
opacity: 0;
|
|
686
|
-
}
|
|
687
|
-
}
|
|
643
|
+
.s-btn.is-loading .svg-icon:first-child {
|
|
644
|
+
margin-left: -23px;
|
|
645
|
+
// If the first thing in the button is an icon, let's hide it on loading
|
|
646
|
+
// We only want to modify the visibility, since we still want it to have shape and keep the same layout.
|
|
647
|
+
opacity: 0;
|
|
688
648
|
}
|
|
689
649
|
}
|
|
File without changes
|
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
// - Base Style (Input / Textarea)
|
|
13
13
|
// - Textarea Styles
|
|
14
14
|
// - Fieldset Resets
|
|
15
|
-
// • Labels
|
|
16
|
-
// • Label Statuses
|
|
17
15
|
// • Text Styles
|
|
18
16
|
// • Connected Input Fills
|
|
19
17
|
// • Select Menus
|
|
@@ -45,7 +43,11 @@
|
|
|
45
43
|
}
|
|
46
44
|
}
|
|
47
45
|
|
|
48
|
-
|
|
46
|
+
// ============================================================================
|
|
47
|
+
// $ BASE INPUT / TEXTAREA STYLE
|
|
48
|
+
// ----------------------------------------------------------------------------
|
|
49
|
+
.s-input,
|
|
50
|
+
.s-textarea {
|
|
49
51
|
-webkit-appearance: none; // Removes shadows we don't want in mobile Safari
|
|
50
52
|
width: 100%;
|
|
51
53
|
margin: 0; // A guard against Core's default margins
|
|
@@ -95,14 +97,6 @@
|
|
|
95
97
|
@autofill();
|
|
96
98
|
}
|
|
97
99
|
|
|
98
|
-
// ============================================================================
|
|
99
|
-
// $ BASE INPUT / TEXTAREA STYLE
|
|
100
|
-
// ----------------------------------------------------------------------------
|
|
101
|
-
.s-input,
|
|
102
|
-
.s-textarea {
|
|
103
|
-
@basic-styling();
|
|
104
|
-
}
|
|
105
|
-
|
|
106
100
|
.s-input.s-input__search,
|
|
107
101
|
.s-input.s-input__creditcard {
|
|
108
102
|
padding-left: var(--su-static32);
|
|
@@ -122,83 +116,28 @@ fieldset {
|
|
|
122
116
|
.s-btn,
|
|
123
117
|
.s-link {
|
|
124
118
|
box-shadow: none !important;
|
|
125
|
-
opacity:
|
|
119
|
+
opacity: var(--_o-disabled-static);
|
|
126
120
|
pointer-events: none;
|
|
127
121
|
}
|
|
128
122
|
|
|
129
123
|
.s-checkbox,
|
|
130
124
|
.s-input-message,
|
|
131
|
-
.s-label,
|
|
132
125
|
.s-radio,
|
|
133
126
|
.s-toggle-switch,
|
|
134
127
|
.s-toggle-switch label {
|
|
135
128
|
cursor: not-allowed;
|
|
136
|
-
opacity:
|
|
129
|
+
opacity: var(--_o-disabled-static);
|
|
137
130
|
}
|
|
138
131
|
|
|
139
132
|
.s-input,
|
|
140
133
|
.s-textarea,
|
|
141
134
|
.s-select > select {
|
|
142
135
|
cursor: not-allowed;
|
|
143
|
-
opacity:
|
|
136
|
+
opacity: var(--_o-disabled-static);
|
|
144
137
|
}
|
|
145
138
|
}
|
|
146
139
|
}
|
|
147
140
|
|
|
148
|
-
// ============================================================================
|
|
149
|
-
// $ LABELS
|
|
150
|
-
// ============================================================================
|
|
151
|
-
.s-label {
|
|
152
|
-
padding: 0 var(--su2); // Helps the label visually line up with inputs
|
|
153
|
-
color: var(--fc-dark);
|
|
154
|
-
font-family: inherit;
|
|
155
|
-
font-size: var(--fs-body2);
|
|
156
|
-
font-weight: 600;
|
|
157
|
-
|
|
158
|
-
&[for] {
|
|
159
|
-
cursor: pointer;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// $$ LABEL STATUS FLAG
|
|
164
|
-
// ----------------------------------------------------------------------------
|
|
165
|
-
// Is this form item required or optional? Flag the status for users.
|
|
166
|
-
// Default styling is optional.
|
|
167
|
-
.s-label--status {
|
|
168
|
-
margin-left: var(--su4);
|
|
169
|
-
padding: var(--su2) var(--su8);
|
|
170
|
-
border-radius: 1000px;
|
|
171
|
-
background-color: var(--black-050);
|
|
172
|
-
color: var(--fc-medium);
|
|
173
|
-
font-size: var(--fs-caption);
|
|
174
|
-
font-weight: 400;
|
|
175
|
-
vertical-align: text-bottom;
|
|
176
|
-
|
|
177
|
-
.highcontrast-mode({
|
|
178
|
-
border: 1px solid currentColor;
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
&.s-label--status__required {
|
|
182
|
-
background-color: var(--red-100);
|
|
183
|
-
color: var(--red-600);
|
|
184
|
-
|
|
185
|
-
.dark-mode({
|
|
186
|
-
color: var(--red-800);
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
&.s-label--status__new {
|
|
191
|
-
background-color: var(--green-100);
|
|
192
|
-
color: var(--green-700);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
&.s-label--status__beta {
|
|
196
|
-
background-color: var(--blue-100);
|
|
197
|
-
color: var(--blue-700);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
|
|
202
141
|
// ============================================================================
|
|
203
142
|
// $ TEXT STYLES
|
|
204
143
|
// ============================================================================
|
|
@@ -208,14 +147,6 @@ fieldset {
|
|
|
208
147
|
font-size: var(--fs-caption);
|
|
209
148
|
}
|
|
210
149
|
|
|
211
|
-
.s-label .s-description,
|
|
212
|
-
.s-label .s-input-message {
|
|
213
|
-
padding: 0;
|
|
214
|
-
margin-top: 4px;
|
|
215
|
-
margin-bottom: 0;
|
|
216
|
-
font-weight: normal;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
150
|
// ============================================================================
|
|
220
151
|
// $ CONNECTED INPUTS
|
|
221
152
|
// To visually connect inputs together
|
|
@@ -363,7 +294,7 @@ fieldset {
|
|
|
363
294
|
|
|
364
295
|
// Disabled
|
|
365
296
|
&[disabled] {
|
|
366
|
-
opacity:
|
|
297
|
+
opacity: var(--_o-disabled-static);
|
|
367
298
|
cursor: not-allowed;
|
|
368
299
|
}
|
|
369
300
|
}
|
|
@@ -462,21 +393,26 @@ fieldset {
|
|
|
462
393
|
.s-input,
|
|
463
394
|
.s-textarea,
|
|
464
395
|
.s-select > select {
|
|
465
|
-
// Disabled
|
|
466
|
-
&[disabled]
|
|
467
|
-
&[read-only] {
|
|
396
|
+
// Disabled
|
|
397
|
+
&[disabled] {
|
|
468
398
|
cursor: not-allowed;
|
|
469
|
-
opacity:
|
|
470
|
-
|
|
471
|
-
.highcontrast-mode({
|
|
472
|
-
opacity: 0.5;
|
|
473
|
-
});
|
|
399
|
+
opacity: var(--_o-disabled-static);
|
|
474
400
|
}
|
|
475
401
|
|
|
476
|
-
//
|
|
477
|
-
|
|
402
|
+
// Readonly
|
|
403
|
+
// Note: The readonly attribute is not supported on select elements
|
|
404
|
+
// See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly
|
|
405
|
+
// and https://github.com/StackExchange/Stacks/pull/1040#discussion_r931144086
|
|
406
|
+
&[readonly],
|
|
407
|
+
.is-readonly & {
|
|
408
|
+
border-color: var(--bc-light);
|
|
409
|
+
background-color: var(--black-050);
|
|
410
|
+
color: var(--black-200);
|
|
478
411
|
cursor: not-allowed;
|
|
479
|
-
|
|
412
|
+
|
|
413
|
+
.highcontrast-mode({
|
|
414
|
+
color: var(--fc-light);
|
|
415
|
+
});
|
|
480
416
|
}
|
|
481
417
|
}
|
|
482
418
|
|
|
@@ -485,6 +421,7 @@ fieldset {
|
|
|
485
421
|
// Classes are applied at the wrapping container level.
|
|
486
422
|
// ----------------------------------------------------------------------------
|
|
487
423
|
.is-disabled,
|
|
424
|
+
.is-readonly,
|
|
488
425
|
.has-success,
|
|
489
426
|
.has-error,
|
|
490
427
|
.has-warning {
|
|
@@ -612,21 +549,24 @@ fieldset {
|
|
|
612
549
|
border-color: var(--bc-darker) transparent;
|
|
613
550
|
}
|
|
614
551
|
|
|
615
|
-
.s-label,
|
|
616
552
|
.s-description {
|
|
617
|
-
opacity:
|
|
618
|
-
|
|
619
|
-
.s-description {
|
|
620
|
-
opacity: unset;
|
|
621
|
-
}
|
|
553
|
+
opacity: var(--_o-disabled-static);
|
|
622
554
|
}
|
|
623
555
|
|
|
624
556
|
.s-input-icon {
|
|
625
557
|
color: var(--black-400);
|
|
626
558
|
}
|
|
559
|
+
}
|
|
627
560
|
|
|
628
|
-
|
|
629
|
-
|
|
561
|
+
// $$ READONLY
|
|
562
|
+
// ----------------------------------------------------------------------------
|
|
563
|
+
.is-readonly {
|
|
564
|
+
.s-input-icon {
|
|
565
|
+
color: var(--black-200);
|
|
566
|
+
|
|
567
|
+
.highcontrast-mode({
|
|
568
|
+
color: var(--fc-light);
|
|
569
|
+
});
|
|
630
570
|
}
|
|
631
571
|
}
|
|
632
572
|
|
|
@@ -659,25 +599,21 @@ fieldset {
|
|
|
659
599
|
// ----------------------------------------------------------------------------
|
|
660
600
|
.s-input__sm,
|
|
661
601
|
.s-textarea__sm,
|
|
662
|
-
.s-label__sm,
|
|
663
602
|
.s-select__sm > select {
|
|
664
603
|
font-size: var(--fs-caption);
|
|
665
604
|
}
|
|
666
605
|
.s-input__md,
|
|
667
606
|
.s-textarea__md,
|
|
668
|
-
.s-label__md,
|
|
669
607
|
.s-select__md > select {
|
|
670
608
|
font-size: var(--fs-body3);
|
|
671
609
|
}
|
|
672
610
|
.s-input__lg,
|
|
673
611
|
.s-textarea__lg,
|
|
674
|
-
.s-label__lg,
|
|
675
612
|
.s-select__lg > select {
|
|
676
613
|
font-size: var(--fs-title);
|
|
677
614
|
}
|
|
678
615
|
.s-input__xl,
|
|
679
616
|
.s-textarea__xl,
|
|
680
|
-
.s-label__xl,
|
|
681
617
|
.s-select__xl > select {
|
|
682
618
|
font-size: var(--fs-headline1);
|
|
683
619
|
}
|