@stackoverflow/stacks 1.0.0 → 1.0.1
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/README.md +47 -47
- package/dist/css/stacks.css +108 -0
- package/dist/css/stacks.min.css +1 -1
- package/lib/css/atomic/borders.less +378 -378
- package/lib/css/atomic/colors.less +209 -209
- package/lib/css/atomic/flex.less +375 -375
- package/lib/css/atomic/grid.less +174 -174
- package/lib/css/atomic/misc.less +343 -343
- package/lib/css/atomic/spacing.less +332 -314
- package/lib/css/atomic/typography.less +273 -273
- package/lib/css/atomic/width-height.less +194 -194
- package/lib/css/base/body.less +44 -44
- package/lib/css/base/configuration-static.less +61 -61
- package/lib/css/base/icons.less +20 -20
- package/lib/css/base/internals.less +220 -220
- package/lib/css/base/reset-meyer.less +64 -64
- package/lib/css/base/reset-normalize.less +449 -449
- package/lib/css/base/reset.less +20 -20
- package/lib/css/components/activity-indicator.less +45 -45
- package/lib/css/components/avatars.less +189 -189
- package/lib/css/components/badges.less +209 -209
- package/lib/css/components/banners.less +80 -80
- package/lib/css/components/blank-states.less +26 -26
- package/lib/css/components/breadcrumbs.less +44 -44
- package/lib/css/components/button-groups.less +104 -104
- package/lib/css/components/buttons.less +665 -665
- package/lib/css/components/cards.less +44 -44
- package/lib/css/components/code-blocks.less +130 -130
- package/lib/css/components/collapsible.less +104 -104
- package/lib/css/components/inputs.less +728 -728
- package/lib/css/components/link-previews.less +136 -136
- package/lib/css/components/links.less +218 -218
- package/lib/css/components/menu.less +47 -47
- package/lib/css/components/modals.less +133 -133
- package/lib/css/components/navigation.less +146 -146
- package/lib/css/components/notices.less +233 -233
- package/lib/css/components/page-titles.less +60 -60
- package/lib/css/components/pagination.less +55 -55
- package/lib/css/components/popovers.less +197 -197
- package/lib/css/components/post-summary.less +425 -425
- package/lib/css/components/progress-bars.less +330 -330
- package/lib/css/components/prose.less +503 -503
- package/lib/css/components/spinner.less +107 -107
- package/lib/css/components/tables.less +341 -341
- package/lib/css/components/tags.less +236 -236
- package/lib/css/components/toggle-switches.less +144 -144
- package/lib/css/components/topbar.less +427 -427
- package/lib/css/components/uploader.less +210 -210
- package/lib/css/components/user-cards.less +169 -169
- package/lib/css/components/widget-dynamic.less +33 -33
- package/lib/css/components/widget-static.less +273 -273
- package/lib/css/exports/constants-colors.less +1092 -1092
- package/lib/css/exports/constants-helpers.less +108 -108
- package/lib/css/exports/constants-type.less +153 -153
- package/lib/css/exports/exports.less +15 -15
- package/lib/css/exports/mixins.less +237 -237
- package/lib/css/stacks-dynamic.less +35 -35
- package/lib/css/stacks-static.less +86 -86
- package/lib/css/stacks.less +13 -13
- package/lib/ts/controllers/index.ts +7 -7
- package/lib/ts/controllers/s-expandable-control.ts +188 -188
- package/lib/ts/controllers/s-modal.ts +321 -321
- package/lib/ts/controllers/s-navigation-tablist.ts +117 -117
- package/lib/ts/controllers/s-popover.ts +547 -547
- package/lib/ts/controllers/s-table.ts +220 -220
- package/lib/ts/controllers/s-tooltip.ts +246 -246
- package/lib/ts/controllers/s-uploader.ts +172 -172
- package/lib/ts/index.ts +20 -20
- package/lib/ts/stacks.ts +88 -88
- package/lib/tsconfig.json +13 -13
- package/package.json +87 -87
|
@@ -1,133 +1,133 @@
|
|
|
1
|
-
//
|
|
2
|
-
// STACK OVERFLOW
|
|
3
|
-
// MODALS
|
|
4
|
-
//
|
|
5
|
-
// This CSS comes from Stacks, our CSS & Pattern library for rapidly building
|
|
6
|
-
// Stack Overflow. For documentation of all these classes and how to contribute,
|
|
7
|
-
// visit https://stackoverflow.design/
|
|
8
|
-
//
|
|
9
|
-
// TABLE OF CONTENTS
|
|
10
|
-
// • BASE STYLE
|
|
11
|
-
// • LAYOUT TRANSITIONS
|
|
12
|
-
//
|
|
13
|
-
// ============================================================================
|
|
14
|
-
// $ BASE STYLE
|
|
15
|
-
// ----------------------------------------------------------------------------
|
|
16
|
-
.s-modal {
|
|
17
|
-
display: flex;
|
|
18
|
-
visibility: hidden;
|
|
19
|
-
position: fixed;
|
|
20
|
-
z-index: var(--zi-hide); // Make sure it's also below everything so we can't interact with it.
|
|
21
|
-
|
|
22
|
-
// This fills the entire viewport without having to worry about size.
|
|
23
|
-
top: 0;
|
|
24
|
-
right: 0;
|
|
25
|
-
bottom: 0;
|
|
26
|
-
left: 0;
|
|
27
|
-
align-items: center;
|
|
28
|
-
justify-content: center;
|
|
29
|
-
background-color: fade(@black-900, 50%); // Background remains fixed
|
|
30
|
-
opacity: 0;
|
|
31
|
-
backface-visibility: hidden;
|
|
32
|
-
transition: opacity 100ms var(--te-smooth) 0s, z-index 0s 100ms, visibility 0s 100ms; // Transition out
|
|
33
|
-
will-change: visibility, z-index, opacity; // Not supported in Edge
|
|
34
|
-
|
|
35
|
-
&[aria-hidden="false"],
|
|
36
|
-
&[aria-hidden="false"] .s-modal--dialog {
|
|
37
|
-
visibility: visible;
|
|
38
|
-
z-index: var(--zi-modals);
|
|
39
|
-
opacity: 1;
|
|
40
|
-
transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
|
|
41
|
-
transition: opacity 100ms var(--te-smooth) 10ms, z-index 0s 0s, visibility 0s 0s, transform 100ms var(--te-smooth) 10ms, transform 100ms var(--te-smooth) 10ms; // Transition in
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.s-modal--dialog {
|
|
46
|
-
overflow-y: auto;
|
|
47
|
-
visibility: hidden;
|
|
48
|
-
z-index: var(--zi-hide); // Make sure it's also below everything so we can't interact with it.
|
|
49
|
-
max-width: 600px;
|
|
50
|
-
max-height: 100%;
|
|
51
|
-
padding: var(--su24);
|
|
52
|
-
border-radius: var(--br-lg);
|
|
53
|
-
background-color: var(--white);
|
|
54
|
-
box-shadow: var(--bs-lg);
|
|
55
|
-
opacity: 0;
|
|
56
|
-
backface-visibility: hidden;
|
|
57
|
-
transform: translate3d(0, 30%, 0) scale3d(0.6, 0.6, 0.6);
|
|
58
|
-
|
|
59
|
-
.dark-mode({
|
|
60
|
-
background-color: var(--black-100);
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
@scrollbar-styles();
|
|
64
|
-
|
|
65
|
-
transition: opacity 200ms var(--te-smooth) 0s, z-index 0s 100ms, visibility 0s 100ms, transform 100ms var(--te-smooth) 0s, transform 100ms var(--te-smooth) 0s; // Transition out
|
|
66
|
-
will-change: visibility, z-index, opacity, transform; // Not supported by Edge
|
|
67
|
-
|
|
68
|
-
.s-modal[aria-hidden="false"] & {
|
|
69
|
-
transform: translate3d(0, 0, 0) scale3d(1, 1, 1); // Transition in
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// [1] To override .s-btn class attributes
|
|
74
|
-
.s-modal--close {
|
|
75
|
-
position: absolute !important; // [1]
|
|
76
|
-
top: var(--su8);
|
|
77
|
-
right: var(--su8);
|
|
78
|
-
padding: var(--su12) !important; // [1]
|
|
79
|
-
|
|
80
|
-
.svg-icon {
|
|
81
|
-
margin: 0 !important;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// ============================================================================
|
|
86
|
-
// $ DIALOG PIECES
|
|
87
|
-
// ----------------------------------------------------------------------------
|
|
88
|
-
.s-modal--header {
|
|
89
|
-
margin-bottom: var(--su16);
|
|
90
|
-
color: var(--fc-dark);
|
|
91
|
-
font-size: var(--fs-headline1);
|
|
92
|
-
font-weight: normal;
|
|
93
|
-
line-height: var(--lh-sm);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.s-modal--body {
|
|
97
|
-
margin-bottom: var(--su24);
|
|
98
|
-
color: var(--fc-medium);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.s-modal--footer {
|
|
102
|
-
margin-top: var(--su24);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
// ============================================================================
|
|
107
|
-
// $ STATES
|
|
108
|
-
// ----------------------------------------------------------------------------
|
|
109
|
-
.s-modal.has-danger,
|
|
110
|
-
.s-modal.s-modal__danger {
|
|
111
|
-
background-color: darken(fade(@red-900, 50%), 23%);
|
|
112
|
-
|
|
113
|
-
.s-modal--header {
|
|
114
|
-
color: var(--red-600);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.s-modal.s-modal__celebration .s-modal--dialog {
|
|
119
|
-
padding-top: var(--su64);
|
|
120
|
-
.bg-confetti-animated;
|
|
121
|
-
|
|
122
|
-
.s-modal--close {
|
|
123
|
-
top: var(--su48);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// ============================================================================
|
|
128
|
-
// $ SIZES
|
|
129
|
-
// ----------------------------------------------------------------------------
|
|
130
|
-
.s-modal__full {
|
|
131
|
-
max-width: calc(100% - var(--su48));
|
|
132
|
-
max-height: calc(100% - var(--su48));
|
|
133
|
-
}
|
|
1
|
+
//
|
|
2
|
+
// STACK OVERFLOW
|
|
3
|
+
// MODALS
|
|
4
|
+
//
|
|
5
|
+
// This CSS comes from Stacks, our CSS & Pattern library for rapidly building
|
|
6
|
+
// Stack Overflow. For documentation of all these classes and how to contribute,
|
|
7
|
+
// visit https://stackoverflow.design/
|
|
8
|
+
//
|
|
9
|
+
// TABLE OF CONTENTS
|
|
10
|
+
// • BASE STYLE
|
|
11
|
+
// • LAYOUT TRANSITIONS
|
|
12
|
+
//
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// $ BASE STYLE
|
|
15
|
+
// ----------------------------------------------------------------------------
|
|
16
|
+
.s-modal {
|
|
17
|
+
display: flex;
|
|
18
|
+
visibility: hidden;
|
|
19
|
+
position: fixed;
|
|
20
|
+
z-index: var(--zi-hide); // Make sure it's also below everything so we can't interact with it.
|
|
21
|
+
|
|
22
|
+
// This fills the entire viewport without having to worry about size.
|
|
23
|
+
top: 0;
|
|
24
|
+
right: 0;
|
|
25
|
+
bottom: 0;
|
|
26
|
+
left: 0;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
background-color: fade(@black-900, 50%); // Background remains fixed
|
|
30
|
+
opacity: 0;
|
|
31
|
+
backface-visibility: hidden;
|
|
32
|
+
transition: opacity 100ms var(--te-smooth) 0s, z-index 0s 100ms, visibility 0s 100ms; // Transition out
|
|
33
|
+
will-change: visibility, z-index, opacity; // Not supported in Edge
|
|
34
|
+
|
|
35
|
+
&[aria-hidden="false"],
|
|
36
|
+
&[aria-hidden="false"] .s-modal--dialog {
|
|
37
|
+
visibility: visible;
|
|
38
|
+
z-index: var(--zi-modals);
|
|
39
|
+
opacity: 1;
|
|
40
|
+
transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
|
|
41
|
+
transition: opacity 100ms var(--te-smooth) 10ms, z-index 0s 0s, visibility 0s 0s, transform 100ms var(--te-smooth) 10ms, transform 100ms var(--te-smooth) 10ms; // Transition in
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.s-modal--dialog {
|
|
46
|
+
overflow-y: auto;
|
|
47
|
+
visibility: hidden;
|
|
48
|
+
z-index: var(--zi-hide); // Make sure it's also below everything so we can't interact with it.
|
|
49
|
+
max-width: 600px;
|
|
50
|
+
max-height: 100%;
|
|
51
|
+
padding: var(--su24);
|
|
52
|
+
border-radius: var(--br-lg);
|
|
53
|
+
background-color: var(--white);
|
|
54
|
+
box-shadow: var(--bs-lg);
|
|
55
|
+
opacity: 0;
|
|
56
|
+
backface-visibility: hidden;
|
|
57
|
+
transform: translate3d(0, 30%, 0) scale3d(0.6, 0.6, 0.6);
|
|
58
|
+
|
|
59
|
+
.dark-mode({
|
|
60
|
+
background-color: var(--black-100);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
@scrollbar-styles();
|
|
64
|
+
|
|
65
|
+
transition: opacity 200ms var(--te-smooth) 0s, z-index 0s 100ms, visibility 0s 100ms, transform 100ms var(--te-smooth) 0s, transform 100ms var(--te-smooth) 0s; // Transition out
|
|
66
|
+
will-change: visibility, z-index, opacity, transform; // Not supported by Edge
|
|
67
|
+
|
|
68
|
+
.s-modal[aria-hidden="false"] & {
|
|
69
|
+
transform: translate3d(0, 0, 0) scale3d(1, 1, 1); // Transition in
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// [1] To override .s-btn class attributes
|
|
74
|
+
.s-modal--close {
|
|
75
|
+
position: absolute !important; // [1]
|
|
76
|
+
top: var(--su8);
|
|
77
|
+
right: var(--su8);
|
|
78
|
+
padding: var(--su12) !important; // [1]
|
|
79
|
+
|
|
80
|
+
.svg-icon {
|
|
81
|
+
margin: 0 !important;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// ============================================================================
|
|
86
|
+
// $ DIALOG PIECES
|
|
87
|
+
// ----------------------------------------------------------------------------
|
|
88
|
+
.s-modal--header {
|
|
89
|
+
margin-bottom: var(--su16);
|
|
90
|
+
color: var(--fc-dark);
|
|
91
|
+
font-size: var(--fs-headline1);
|
|
92
|
+
font-weight: normal;
|
|
93
|
+
line-height: var(--lh-sm);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.s-modal--body {
|
|
97
|
+
margin-bottom: var(--su24);
|
|
98
|
+
color: var(--fc-medium);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.s-modal--footer {
|
|
102
|
+
margin-top: var(--su24);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
// ============================================================================
|
|
107
|
+
// $ STATES
|
|
108
|
+
// ----------------------------------------------------------------------------
|
|
109
|
+
.s-modal.has-danger,
|
|
110
|
+
.s-modal.s-modal__danger {
|
|
111
|
+
background-color: darken(fade(@red-900, 50%), 23%);
|
|
112
|
+
|
|
113
|
+
.s-modal--header {
|
|
114
|
+
color: var(--red-600);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.s-modal.s-modal__celebration .s-modal--dialog {
|
|
119
|
+
padding-top: var(--su64);
|
|
120
|
+
.bg-confetti-animated;
|
|
121
|
+
|
|
122
|
+
.s-modal--close {
|
|
123
|
+
top: var(--su48);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// ============================================================================
|
|
128
|
+
// $ SIZES
|
|
129
|
+
// ----------------------------------------------------------------------------
|
|
130
|
+
.s-modal__full {
|
|
131
|
+
max-width: calc(100% - var(--su48));
|
|
132
|
+
max-height: calc(100% - var(--su48));
|
|
133
|
+
}
|
|
@@ -1,146 +1,146 @@
|
|
|
1
|
-
//
|
|
2
|
-
// STACK OVERFLOW
|
|
3
|
-
// NAVIGATION
|
|
4
|
-
//
|
|
5
|
-
// This CSS comes from Stacks, our CSS & Pattern library for rapidly building
|
|
6
|
-
// Stack Overflow. For documentation of all these classes and how to contribute,
|
|
7
|
-
// visit https://stackoverflow.design/
|
|
8
|
-
//
|
|
9
|
-
// TABLE OF CONTENTS
|
|
10
|
-
// • BASE STYLE
|
|
11
|
-
// • MUTED STYLE
|
|
12
|
-
//
|
|
13
|
-
// ============================================================================
|
|
14
|
-
// $ BASE STYLE
|
|
15
|
-
// ----------------------------------------------------------------------------
|
|
16
|
-
.s-navigation {
|
|
17
|
-
display: flex;
|
|
18
|
-
margin: calc(var(--su2) * -1);
|
|
19
|
-
padding: var(--su2) 0;
|
|
20
|
-
flex-wrap: wrap;
|
|
21
|
-
|
|
22
|
-
// If the s-navigation is a list, let's reset all the properties
|
|
23
|
-
list-style: none;
|
|
24
|
-
|
|
25
|
-
.s-navigation--item {
|
|
26
|
-
display: flex;
|
|
27
|
-
align-items: center;
|
|
28
|
-
padding: var(--su6) var(--su12);
|
|
29
|
-
position: relative;
|
|
30
|
-
|
|
31
|
-
// Reset some things for when the navigation item is also a button
|
|
32
|
-
border: none;
|
|
33
|
-
font: unset;
|
|
34
|
-
background: none;
|
|
35
|
-
box-shadow: none;
|
|
36
|
-
cursor: pointer;
|
|
37
|
-
user-select: auto;
|
|
38
|
-
border-radius: 1000px;
|
|
39
|
-
margin: var(--su2);
|
|
40
|
-
white-space: nowrap;
|
|
41
|
-
color: var(--black-600);
|
|
42
|
-
|
|
43
|
-
&:hover,
|
|
44
|
-
&:active {
|
|
45
|
-
background: var(--black-075);
|
|
46
|
-
color: var(--black-600);
|
|
47
|
-
|
|
48
|
-
.highcontrast-mode({
|
|
49
|
-
background: var(--black-600);
|
|
50
|
-
color: var(--black-100);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@focus-styles();
|
|
55
|
-
|
|
56
|
-
&.is-selected {
|
|
57
|
-
background: var(--theme-primary-color);
|
|
58
|
-
color: var(--white);
|
|
59
|
-
|
|
60
|
-
&:hover,
|
|
61
|
-
&:active {
|
|
62
|
-
background: var(--theme-primary-600);
|
|
63
|
-
color: var(--white);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.highcontrast-mode({ text-decoration: none; });
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
&.s-navigation--item__dropdown {
|
|
70
|
-
padding-right: 2em;
|
|
71
|
-
|
|
72
|
-
&:after {
|
|
73
|
-
content: "";
|
|
74
|
-
position: absolute;
|
|
75
|
-
z-index: var(--zi-active);
|
|
76
|
-
top: calc(50% - 2px);
|
|
77
|
-
right: 0.9em;
|
|
78
|
-
border-style: solid;
|
|
79
|
-
border-width: var(--su-static4);
|
|
80
|
-
border-top-width: var(--su-static4);
|
|
81
|
-
border-bottom-width: 0;
|
|
82
|
-
border-color: currentColor transparent;
|
|
83
|
-
pointer-events: none;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
&.s-navigation__scroll {
|
|
89
|
-
overflow-x: auto;
|
|
90
|
-
flex-wrap: nowrap;
|
|
91
|
-
|
|
92
|
-
@scrollbar-styles();
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
&.s-navigation__vertical {
|
|
96
|
-
flex-direction: column;
|
|
97
|
-
padding: 0;
|
|
98
|
-
margin: 0;
|
|
99
|
-
|
|
100
|
-
.s-navigation--item {
|
|
101
|
-
margin: 0;
|
|
102
|
-
white-space: normal;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.s-navigation--title {
|
|
107
|
-
font-size: var(--fs-fine);
|
|
108
|
-
font-weight: bold;
|
|
109
|
-
margin-top: var(--su16);
|
|
110
|
-
padding: var(--su6) var(--su12);
|
|
111
|
-
text-transform: uppercase;
|
|
112
|
-
|
|
113
|
-
&:first-child {
|
|
114
|
-
margin-top: 0;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// ============================================================================
|
|
119
|
-
// $ MUTED STYLE
|
|
120
|
-
// ----------------------------------------------------------------------------
|
|
121
|
-
&.s-navigation__muted .s-navigation--item {
|
|
122
|
-
&.is-selected {
|
|
123
|
-
background: var(--black-050);
|
|
124
|
-
color: var(--black-800);
|
|
125
|
-
|
|
126
|
-
.highcontrast-mode({
|
|
127
|
-
background: var(--black-800);
|
|
128
|
-
color: var(--black-050);
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// ============================================================================
|
|
134
|
-
// $ SMALL SIZE
|
|
135
|
-
// ----------------------------------------------------------------------------
|
|
136
|
-
&.s-navigation__sm {
|
|
137
|
-
.s-navigation--item {
|
|
138
|
-
padding: var(--su4) var(--su12);
|
|
139
|
-
font-size: var(--fs-caption);
|
|
140
|
-
|
|
141
|
-
&.s-navigation--item__dropdown {
|
|
142
|
-
padding-right: 2em;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
1
|
+
//
|
|
2
|
+
// STACK OVERFLOW
|
|
3
|
+
// NAVIGATION
|
|
4
|
+
//
|
|
5
|
+
// This CSS comes from Stacks, our CSS & Pattern library for rapidly building
|
|
6
|
+
// Stack Overflow. For documentation of all these classes and how to contribute,
|
|
7
|
+
// visit https://stackoverflow.design/
|
|
8
|
+
//
|
|
9
|
+
// TABLE OF CONTENTS
|
|
10
|
+
// • BASE STYLE
|
|
11
|
+
// • MUTED STYLE
|
|
12
|
+
//
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// $ BASE STYLE
|
|
15
|
+
// ----------------------------------------------------------------------------
|
|
16
|
+
.s-navigation {
|
|
17
|
+
display: flex;
|
|
18
|
+
margin: calc(var(--su2) * -1);
|
|
19
|
+
padding: var(--su2) 0;
|
|
20
|
+
flex-wrap: wrap;
|
|
21
|
+
|
|
22
|
+
// If the s-navigation is a list, let's reset all the properties
|
|
23
|
+
list-style: none;
|
|
24
|
+
|
|
25
|
+
.s-navigation--item {
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
padding: var(--su6) var(--su12);
|
|
29
|
+
position: relative;
|
|
30
|
+
|
|
31
|
+
// Reset some things for when the navigation item is also a button
|
|
32
|
+
border: none;
|
|
33
|
+
font: unset;
|
|
34
|
+
background: none;
|
|
35
|
+
box-shadow: none;
|
|
36
|
+
cursor: pointer;
|
|
37
|
+
user-select: auto;
|
|
38
|
+
border-radius: 1000px;
|
|
39
|
+
margin: var(--su2);
|
|
40
|
+
white-space: nowrap;
|
|
41
|
+
color: var(--black-600);
|
|
42
|
+
|
|
43
|
+
&:hover,
|
|
44
|
+
&:active {
|
|
45
|
+
background: var(--black-075);
|
|
46
|
+
color: var(--black-600);
|
|
47
|
+
|
|
48
|
+
.highcontrast-mode({
|
|
49
|
+
background: var(--black-600);
|
|
50
|
+
color: var(--black-100);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@focus-styles();
|
|
55
|
+
|
|
56
|
+
&.is-selected {
|
|
57
|
+
background: var(--theme-primary-color);
|
|
58
|
+
color: var(--white);
|
|
59
|
+
|
|
60
|
+
&:hover,
|
|
61
|
+
&:active {
|
|
62
|
+
background: var(--theme-primary-600);
|
|
63
|
+
color: var(--white);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.highcontrast-mode({ text-decoration: none; });
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&.s-navigation--item__dropdown {
|
|
70
|
+
padding-right: 2em;
|
|
71
|
+
|
|
72
|
+
&:after {
|
|
73
|
+
content: "";
|
|
74
|
+
position: absolute;
|
|
75
|
+
z-index: var(--zi-active);
|
|
76
|
+
top: calc(50% - 2px);
|
|
77
|
+
right: 0.9em;
|
|
78
|
+
border-style: solid;
|
|
79
|
+
border-width: var(--su-static4);
|
|
80
|
+
border-top-width: var(--su-static4);
|
|
81
|
+
border-bottom-width: 0;
|
|
82
|
+
border-color: currentColor transparent;
|
|
83
|
+
pointer-events: none;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&.s-navigation__scroll {
|
|
89
|
+
overflow-x: auto;
|
|
90
|
+
flex-wrap: nowrap;
|
|
91
|
+
|
|
92
|
+
@scrollbar-styles();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&.s-navigation__vertical {
|
|
96
|
+
flex-direction: column;
|
|
97
|
+
padding: 0;
|
|
98
|
+
margin: 0;
|
|
99
|
+
|
|
100
|
+
.s-navigation--item {
|
|
101
|
+
margin: 0;
|
|
102
|
+
white-space: normal;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.s-navigation--title {
|
|
107
|
+
font-size: var(--fs-fine);
|
|
108
|
+
font-weight: bold;
|
|
109
|
+
margin-top: var(--su16);
|
|
110
|
+
padding: var(--su6) var(--su12);
|
|
111
|
+
text-transform: uppercase;
|
|
112
|
+
|
|
113
|
+
&:first-child {
|
|
114
|
+
margin-top: 0;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// ============================================================================
|
|
119
|
+
// $ MUTED STYLE
|
|
120
|
+
// ----------------------------------------------------------------------------
|
|
121
|
+
&.s-navigation__muted .s-navigation--item {
|
|
122
|
+
&.is-selected {
|
|
123
|
+
background: var(--black-050);
|
|
124
|
+
color: var(--black-800);
|
|
125
|
+
|
|
126
|
+
.highcontrast-mode({
|
|
127
|
+
background: var(--black-800);
|
|
128
|
+
color: var(--black-050);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// ============================================================================
|
|
134
|
+
// $ SMALL SIZE
|
|
135
|
+
// ----------------------------------------------------------------------------
|
|
136
|
+
&.s-navigation__sm {
|
|
137
|
+
.s-navigation--item {
|
|
138
|
+
padding: var(--su4) var(--su12);
|
|
139
|
+
font-size: var(--fs-caption);
|
|
140
|
+
|
|
141
|
+
&.s-navigation--item__dropdown {
|
|
142
|
+
padding-right: 2em;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|