@stackoverflow/stacks 1.4.2 → 1.6.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/dist/css/stacks.css +3565 -2093
- package/dist/css/stacks.min.css +1 -1
- package/lib/css/atomic/colors.less +1 -1
- package/lib/css/atomic/flex.less +53 -2
- package/lib/css/components/activity-indicator.less +3 -3
- package/lib/css/components/badges.less +11 -11
- package/lib/css/components/button-groups.less +59 -83
- package/lib/css/components/buttons.less +384 -585
- package/lib/css/components/code-blocks.less +98 -125
- package/lib/css/components/expandable.less +69 -59
- package/lib/css/components/inputs.less +38 -24
- package/lib/css/components/link-previews.less +110 -122
- package/lib/css/components/links.less +0 -16
- package/lib/css/components/modals.less +95 -120
- package/lib/css/components/notices.less +187 -180
- package/lib/css/components/popovers.less +132 -181
- package/lib/css/components/post-summary.less +0 -9
- package/lib/css/components/progress-bars.less +236 -297
- package/lib/css/components/prose.less +293 -380
- package/lib/css/components/sidebar-widgets.less +251 -0
- package/lib/css/components/spinner.less +54 -104
- package/lib/css/components/tables.less +0 -24
- package/lib/css/components/toggle-switches.less +69 -120
- package/lib/css/components/topbar.less +10 -11
- package/lib/css/components/user-cards.less +91 -144
- package/lib/css/stacks-dynamic.less +0 -1
- package/lib/css/stacks-static.less +1 -1
- package/package.json +11 -11
- package/lib/css/components/_styles-template.less +0 -78
- package/lib/css/components/widget-dynamic.less +0 -33
- package/lib/css/components/widget-static.less +0 -274
|
@@ -1,130 +1,103 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// CODE BLOCKS
|
|
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
|
-
//
|
|
1
|
+
.s-code-block {
|
|
2
|
+
--_cb-line-numbers-bg: var(--black-050);
|
|
9
3
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
color: var(--highlight-color);
|
|
15
|
-
background-color: var(--highlight-bg);
|
|
16
|
-
border-radius: var(--br-md);
|
|
17
|
-
margin: 0;
|
|
18
|
-
padding: var(--su12);
|
|
19
|
-
overflow: auto;
|
|
20
|
-
|
|
21
|
-
@scrollbar-styles();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
code[class*="language-"],
|
|
25
|
-
pre.s-code-block > code {
|
|
26
|
-
font-family: inherit;
|
|
4
|
+
// CONTEXTUAL STYLES
|
|
5
|
+
.dark-mode({
|
|
6
|
+
--_cb-line-numbers-bg: var(--black-025);
|
|
7
|
+
});
|
|
27
8
|
|
|
28
|
-
|
|
9
|
+
// CHILD COMPONENTS
|
|
10
|
+
code[class*="language-"] &,
|
|
11
|
+
pre& > code {
|
|
12
|
+
.hljs-built_in,
|
|
13
|
+
.hljs-literal,
|
|
14
|
+
.hljs-title {
|
|
15
|
+
color: var(--highlight-literal);
|
|
16
|
+
}
|
|
17
|
+
.hljs-bullet,
|
|
18
|
+
.hljs-code {
|
|
19
|
+
color: var(--highlight-punctuation);
|
|
20
|
+
}
|
|
21
|
+
.hljs-doctag,
|
|
22
|
+
.hljs-keyword,
|
|
23
|
+
.hljs-meta-keyword,
|
|
24
|
+
.hljs-meta,
|
|
25
|
+
.hljs-section,
|
|
26
|
+
.hljs-selector-class,
|
|
27
|
+
.hljs-selector-pseudo,
|
|
28
|
+
.hljs-selector-tag {
|
|
29
|
+
color: var(--highlight-keyword);
|
|
30
|
+
}
|
|
31
|
+
.hljs-name,
|
|
32
|
+
.hljs-number,
|
|
33
|
+
.hljs-quote,
|
|
34
|
+
.hljs-selector-id,
|
|
35
|
+
.hljs-template-tag,
|
|
36
|
+
.hljs-type {
|
|
37
|
+
color: var(--highlight-namespace);
|
|
38
|
+
}
|
|
39
|
+
.hljs-link,
|
|
40
|
+
.hljs-meta-string,
|
|
41
|
+
.hljs-regexp,
|
|
42
|
+
.hljs-selector-attr,
|
|
43
|
+
.hljs-string,
|
|
44
|
+
.hljs-symbol,
|
|
45
|
+
.hljs-template-variable,
|
|
46
|
+
.hljs-variable {
|
|
47
|
+
color: var(--highlight-variable);
|
|
48
|
+
}
|
|
49
|
+
.hljs-addition {
|
|
50
|
+
color: var(--highlight-addition);
|
|
51
|
+
}
|
|
52
|
+
.hljs-attr {
|
|
53
|
+
color: var(--highlight-attribute);
|
|
54
|
+
}
|
|
55
|
+
.hljs-attribute {
|
|
56
|
+
color: var(--highlight-symbol);
|
|
57
|
+
}
|
|
58
|
+
.hljs-comment {
|
|
59
|
+
color: var(--highlight-comment);
|
|
60
|
+
}
|
|
61
|
+
.hljs-deletion {
|
|
62
|
+
color: var(--highlight-deletion);
|
|
63
|
+
}
|
|
64
|
+
.hljs-emphasis {
|
|
65
|
+
font-style: italic;
|
|
66
|
+
}
|
|
67
|
+
.hljs-strong {
|
|
68
|
+
font-weight: bold;
|
|
69
|
+
}
|
|
70
|
+
.hljs-subst {
|
|
71
|
+
color: var(--highlight-color);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
font-family: inherit;
|
|
75
|
+
}
|
|
76
|
+
pre& {
|
|
77
|
+
.s-code-block--line-numbers {
|
|
78
|
+
background-color: var(--_cb-line-numbers-bg);
|
|
79
|
+
|
|
80
|
+
border-color: var(--bc-medium);
|
|
81
|
+
border-style: solid;
|
|
82
|
+
border-width: 0 var(--su-static1) 0 0;
|
|
83
|
+
color: var(--black-300);
|
|
84
|
+
float: left;
|
|
85
|
+
margin: calc(var(--su12) * -1);
|
|
86
|
+
margin-right: var(--su12);
|
|
87
|
+
padding: var(--su12);
|
|
88
|
+
padding-right: var(--su6);
|
|
89
|
+
text-align: right;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@scrollbar-styles();
|
|
93
|
+
background-color: var(--highlight-bg);
|
|
94
|
+
border-radius: var(--br-md);
|
|
29
95
|
color: var(--highlight-color);
|
|
96
|
+
font-family: var(--ff-mono);
|
|
97
|
+
font-size: var(--fs-body1);
|
|
98
|
+
line-height: var(--lh-md);
|
|
99
|
+
margin: 0;
|
|
100
|
+
overflow: auto;
|
|
101
|
+
padding: var(--su12);
|
|
30
102
|
}
|
|
31
|
-
|
|
32
|
-
.hljs-comment {
|
|
33
|
-
color: var(--highlight-comment);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.hljs-keyword,
|
|
37
|
-
.hljs-selector-tag,
|
|
38
|
-
.hljs-meta-keyword,
|
|
39
|
-
.hljs-doctag,
|
|
40
|
-
.hljs-section {
|
|
41
|
-
color: var(--highlight-keyword);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.hljs-attr {
|
|
45
|
-
color: var(--highlight-attribute);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.hljs-attribute {
|
|
49
|
-
color: var(--highlight-symbol);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.hljs-name,
|
|
53
|
-
.hljs-type,
|
|
54
|
-
.hljs-number,
|
|
55
|
-
.hljs-selector-id,
|
|
56
|
-
.hljs-quote,
|
|
57
|
-
.hljs-template-tag {
|
|
58
|
-
color: var(--highlight-namespace);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.hljs-selector-class {
|
|
62
|
-
color: var(--highlight-keyword);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.hljs-string,
|
|
66
|
-
.hljs-regexp,
|
|
67
|
-
.hljs-symbol,
|
|
68
|
-
.hljs-variable,
|
|
69
|
-
.hljs-template-variable,
|
|
70
|
-
.hljs-link,
|
|
71
|
-
.hljs-selector-attr {
|
|
72
|
-
color: var(--highlight-variable);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.hljs-meta,
|
|
76
|
-
.hljs-selector-pseudo {
|
|
77
|
-
color: var(--highlight-keyword);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.hljs-built_in,
|
|
81
|
-
.hljs-title,
|
|
82
|
-
.hljs-literal {
|
|
83
|
-
color: var(--highlight-literal);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.hljs-bullet,
|
|
87
|
-
.hljs-code {
|
|
88
|
-
color: var(--highlight-punctuation);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.hljs-meta-string {
|
|
92
|
-
color: var(--highlight-variable);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.hljs-deletion {
|
|
96
|
-
color: var(--highlight-deletion);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.hljs-addition {
|
|
100
|
-
color: var(--highlight-addition);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.hljs-emphasis {
|
|
104
|
-
font-style: italic;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.hljs-strong {
|
|
108
|
-
font-weight: bold;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
pre.s-code-block .s-code-block--line-numbers {
|
|
113
|
-
float: left;
|
|
114
|
-
color: var(--black-300);
|
|
115
|
-
text-align: right;
|
|
116
|
-
border-width: 0;
|
|
117
|
-
border-style: solid;
|
|
118
|
-
border-color: var(--bc-medium);
|
|
119
|
-
border-right-width: 1px;
|
|
120
|
-
margin: calc(var(--su12) * -1);
|
|
121
|
-
margin-right: var(--su12);
|
|
122
|
-
padding: var(--su12);
|
|
123
|
-
padding-right: var(--su6);
|
|
124
|
-
background-color: var(--black-050);
|
|
125
|
-
|
|
126
|
-
.dark-mode({
|
|
127
|
-
background-color: var(--black-025);
|
|
128
|
-
});
|
|
129
103
|
}
|
|
130
|
-
|
|
@@ -29,76 +29,86 @@
|
|
|
29
29
|
// (no longer visible) element itself to remain at the top, thereby forcing the excess pixels to be added
|
|
30
30
|
// above the top, not below the bottom. And because extending content above the document top will not do
|
|
31
31
|
// anything to the document height, there is no jumping during the transition.
|
|
32
|
-
|
|
33
|
-
@stacks-internals-s-expandable-transition-duration: 100ms;
|
|
32
|
+
// see custom property "--_ex-transition-duration"
|
|
34
33
|
|
|
35
34
|
// Per the answer referenced above, the component can only guarantee smooth transitions if above a minimum
|
|
36
35
|
// height and can only guarantee the element will be hidden is below a maximimum height.
|
|
37
36
|
// The minimum height has been set at 10px because that's below the height of a single line of text in an s-description.
|
|
38
|
-
|
|
39
|
-
@stacks-internal-s-expandable-max-expected-height: 1500px;
|
|
37
|
+
// see custom properties "--_ex-min-expected-height" and "--_ex-content-mb"
|
|
40
38
|
|
|
41
39
|
.s-expandable {
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
// CONSTANTS
|
|
41
|
+
--_ex-clip-path: polygon(-1000000px -1000000px, 1000000px -1000000px, 1000000px 1000000px, -1000000px 1000000px);
|
|
42
|
+
--_ex-min-expected-height: 10px;
|
|
43
|
+
--_ex-transition-duration: 100ms;
|
|
44
|
+
// VARIABLES
|
|
45
|
+
--_ex-after-h: 10px;
|
|
46
|
+
--_ex-after-hmx: 0;
|
|
47
|
+
--_ex-after-transition:
|
|
48
|
+
height var(--_ex-transition-duration) linear,
|
|
49
|
+
max-height 0s var(--_ex-transition-duration) linear;
|
|
50
|
+
--_ex-content-hmx: 1000000px;
|
|
51
|
+
--_ex-content-mb: 0;
|
|
52
|
+
--_ex-content-o: unset;
|
|
53
|
+
--_ex-content-transform: unset;
|
|
54
|
+
--_ex-content-transition:
|
|
55
|
+
margin-bottom var(--_ex-transition-duration) cubic-bezier(0, 0, 0, 1),
|
|
56
|
+
transform var(--_ex-transition-duration) cubic-bezier(1, 0, 1, 1),
|
|
57
|
+
opacity var(--_ex-transition-duration) cubic-bezier(1, 0, 1, 1);
|
|
47
58
|
|
|
59
|
+
&:not(.is-expanded) {
|
|
60
|
+
--_ex-after-h: 0;
|
|
61
|
+
--_ex-after-hmx: var(--_ex-min-expected-height);
|
|
62
|
+
--_ex-after-transition: height var(--_ex-min-expected-height) linear;
|
|
63
|
+
--_ex-content-hmx: 0;
|
|
64
|
+
--_ex-content-mb: -1500px;
|
|
65
|
+
--_ex-content-o: 0;
|
|
66
|
+
--_ex-content-transform: scaleY(0);
|
|
67
|
+
--_ex-content-transition:
|
|
68
|
+
margin-bottom var(--_ex-transition-duration) cubic-bezier(1, 0, 1, 1),
|
|
69
|
+
visibility 0s var(--_ex-transition-duration),
|
|
70
|
+
max-height 0s var(--_ex-transition-duration),
|
|
71
|
+
transform var(--_ex-transition-duration) cubic-bezier(0, 1, 1, 1),
|
|
72
|
+
opacity var(--_ex-transition-duration) cubic-bezier(0, 1, 1, 1);
|
|
73
|
+
|
|
74
|
+
& .s-expandable--content {
|
|
75
|
+
@supports ((-webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)) or (clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%))) {
|
|
76
|
+
--_ex-content-o: 1;
|
|
77
|
+
--_ex-content-transform: none;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
-webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
|
|
82
|
+
clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
|
|
83
|
+
overflow: hidden;
|
|
84
|
+
transition: none;
|
|
85
|
+
}
|
|
48
86
|
&:after {
|
|
49
|
-
|
|
87
|
+
height: var(--_ex-after-h);
|
|
88
|
+
max-height: var(--_ex-after-hmx);
|
|
89
|
+
transition: var(--_ex-after-transition);
|
|
90
|
+
|
|
50
91
|
-ms-flex-preferred-size: 0;
|
|
92
|
+
content: '';
|
|
51
93
|
flex-basis: 0;
|
|
52
|
-
height: @stacks-internal-s-expandable-min-expected-height;
|
|
53
|
-
max-height: 0;
|
|
54
|
-
transition:
|
|
55
|
-
height @stacks-internals-s-expandable-transition-duration linear,
|
|
56
|
-
max-height 0s @stacks-internals-s-expandable-transition-duration linear;
|
|
57
94
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
margin-bottom: 0;
|
|
65
|
-
-webkit-transform-origin: 0 0;
|
|
66
|
-
transform-origin: 0 0;
|
|
67
|
-
transition:
|
|
68
|
-
margin-bottom @stacks-internals-s-expandable-transition-duration cubic-bezier(0, 0, 0, 1),
|
|
69
|
-
transform @stacks-internals-s-expandable-transition-duration cubic-bezier(1, 0, 1, 1),
|
|
70
|
-
opacity @stacks-internals-s-expandable-transition-duration cubic-bezier(1, 0, 1, 1);
|
|
71
|
-
}
|
|
95
|
+
& &--content {
|
|
96
|
+
max-height: var(--_ex-content-hmx);
|
|
97
|
+
margin-bottom: var(--_ex-content-mb);
|
|
98
|
+
opacity: var(--_ex-content-o);
|
|
99
|
+
-webkit-transform: var(--_ex-content-transform);
|
|
100
|
+
transform: var(--_ex-content-transform);
|
|
72
101
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
.s-expandable--content {
|
|
80
|
-
visibility: hidden;
|
|
81
|
-
max-height: 0;
|
|
82
|
-
margin-bottom: -@stacks-internal-s-expandable-max-expected-height;
|
|
83
|
-
opacity: 0;
|
|
84
|
-
-webkit-transform: scaleY(0);
|
|
85
|
-
transform: scaleY(0);
|
|
86
|
-
transition:
|
|
87
|
-
margin-bottom @stacks-internals-s-expandable-transition-duration cubic-bezier(1, 0, 1, 1),
|
|
88
|
-
visibility 0s @stacks-internals-s-expandable-transition-duration,
|
|
89
|
-
max-height 0s @stacks-internals-s-expandable-transition-duration,
|
|
90
|
-
transform @stacks-internals-s-expandable-transition-duration cubic-bezier(0, 1, 1, 1),
|
|
91
|
-
opacity @stacks-internals-s-expandable-transition-duration cubic-bezier(0, 1, 1, 1);
|
|
92
|
-
@supports ((-webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)) or (clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%))) {
|
|
93
|
-
opacity: 1;
|
|
94
|
-
-webkit-transform: none;
|
|
95
|
-
transform: none;
|
|
96
|
-
}
|
|
102
|
+
-ms-flex-preferred-size: 100%;
|
|
103
|
+
flex-basis: 100%;
|
|
104
|
+
-webkit-transform-origin: 0 0;
|
|
105
|
+
transform-origin: 0 0;
|
|
106
|
+
transition: var(--_ex-content-transition);
|
|
97
107
|
}
|
|
98
108
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
109
|
+
align-items: flex-start; // see comment above
|
|
110
|
+
display: flex;
|
|
111
|
+
-webkit-clip-path: var(--_ex-clip-path);
|
|
112
|
+
clip-path: var(--_ex-clip-path);
|
|
113
|
+
transition: clip-path 0s var(--_ex-transition-duration), -webkit-clip-path 0s var(--_ex-transition-duration);
|
|
114
|
+
}
|
|
@@ -1,27 +1,3 @@
|
|
|
1
|
-
//
|
|
2
|
-
// STACK OVERFLOW
|
|
3
|
-
// INPUTS
|
|
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
|
-
// • Variables
|
|
11
|
-
// • Inputs
|
|
12
|
-
// - Base Style (Input / Textarea)
|
|
13
|
-
// - Textarea Styles
|
|
14
|
-
// - Fieldset Resets
|
|
15
|
-
// • Text Styles
|
|
16
|
-
// • Connected Input Fills
|
|
17
|
-
// • Select Menus
|
|
18
|
-
// • Checkbox & Radio
|
|
19
|
-
// • Input States
|
|
20
|
-
// • Validation States
|
|
21
|
-
// • Input Sizes
|
|
22
|
-
// ============================================================================
|
|
23
|
-
// $ VARIABLES & MIXINS
|
|
24
|
-
// ----------------------------------------------------------------------------
|
|
25
1
|
@input-padding: 0.6em 0.7em;
|
|
26
2
|
|
|
27
3
|
@autofill: {
|
|
@@ -268,6 +244,44 @@ fieldset {
|
|
|
268
244
|
// ============================================================================
|
|
269
245
|
// $ CHECKBOXES & RADIOS
|
|
270
246
|
// ----------------------------------------------------------------------------
|
|
247
|
+
// TODO would _love_ to use .s-check instead, with no class on the input itself
|
|
248
|
+
.s-check-control {
|
|
249
|
+
display: flex;
|
|
250
|
+
gap: var(--su8);
|
|
251
|
+
align-items: center;
|
|
252
|
+
|
|
253
|
+
[disabled] + .s-label {
|
|
254
|
+
&:extend(.is-disabled .s-label);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.s-label {
|
|
258
|
+
font-weight: normal;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.s-check-group {
|
|
263
|
+
display: flex;
|
|
264
|
+
flex-direction: column;
|
|
265
|
+
gap: var(--su8);
|
|
266
|
+
|
|
267
|
+
&&__horizontal {
|
|
268
|
+
flex-direction: row;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
// TODO HACK? <legend> isn't respecting gap...
|
|
272
|
+
legend.s-label {
|
|
273
|
+
margin-bottom: var(--su8);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
// manually align the checkboxes and radios to the top of the group
|
|
277
|
+
.s-check-control {
|
|
278
|
+
align-items: flex-start;
|
|
279
|
+
}
|
|
280
|
+
.s-checkbox, .s-radio {
|
|
281
|
+
margin-top: calc(var(--su2) + var(--su1)); // 3px
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
271
285
|
.s-checkbox,
|
|
272
286
|
.s-radio {
|
|
273
287
|
// [1] Check to see if we can use custom styles, if so reset the defaults
|
|
@@ -1,136 +1,124 @@
|
|
|
1
|
-
//
|
|
2
|
-
// STACK OVERFLOW
|
|
3
|
-
// LINK UNFURLS
|
|
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
|
-
// ============================================================================
|
|
10
|
-
// $ BASE STYLE
|
|
11
|
-
// ----------------------------------------------------------------------------
|
|
12
1
|
.s-link-preview {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.s-link-preview--header {
|
|
20
|
-
display: flex;
|
|
21
|
-
background: var(--black-025);
|
|
22
|
-
border-top-left-radius: var(--br-sm);
|
|
23
|
-
border-top-right-radius: var(--br-sm);
|
|
24
|
-
border-bottom: 1px solid var(--bc-medium);
|
|
25
|
-
padding: var(--su12) var(--su8);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.s-link-preview--icon {
|
|
29
|
-
margin-right: var(--su8);
|
|
30
|
-
color: var(--black-800); // Set the default color of the integration's icon. Most likely this will be overridden by the integration icon's native colors.
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.s-link-preview--title {
|
|
34
|
-
font-size: var(--fs-body3);
|
|
35
|
-
font-weight: bold;
|
|
36
|
-
color: var(--black-900);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
a.s-link-preview--title {
|
|
40
|
-
text-decoration: none;
|
|
41
|
-
color: var(--theme-link-color);
|
|
42
|
-
cursor: pointer;
|
|
43
|
-
|
|
44
|
-
&.s-link__visited:visited {
|
|
45
|
-
color: var(--theme-link-color);
|
|
46
|
-
text-decoration: none;
|
|
47
|
-
|
|
48
|
-
.highcontrast-mode({ text-decoration: underline; });
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
&:hover,
|
|
52
|
-
&.s-link__visited:hover,
|
|
53
|
-
&:active,
|
|
54
|
-
&.s-link__visited:active {
|
|
55
|
-
color: var(--theme-link-color-hover);
|
|
56
|
-
text-decoration: none;
|
|
57
|
-
|
|
58
|
-
.highcontrast-mode({ text-decoration: underline; });
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.s-link-preview--details {
|
|
63
|
-
font-size: var(--fs-caption);
|
|
64
|
-
color: var(--black-500);
|
|
65
|
-
margin-top: var(--su2);
|
|
2
|
+
--_lp-details-mt: var(--su2);
|
|
3
|
+
--_lp-footer-fd: unset;
|
|
4
|
+
--_lp-misc-pl: var(--su4);
|
|
5
|
+
--_lp-misc-pt: unset;
|
|
66
6
|
|
|
7
|
+
// CONTEXTUAL STYLES
|
|
67
8
|
#stacks-internals #screen-sm({
|
|
68
|
-
|
|
9
|
+
--_lp-details-mt: var(--su4);
|
|
10
|
+
--_lp-footer-fd: column;
|
|
11
|
+
--_lp-misc-pl: 0;
|
|
12
|
+
--_lp-misc-pt: var(--su2);
|
|
69
13
|
});
|
|
70
|
-
}
|
|
71
14
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
15
|
+
// CHILD ELEMENTS
|
|
16
|
+
& &--details,
|
|
17
|
+
& &--footer {
|
|
18
|
+
a {
|
|
19
|
+
&:visited {
|
|
20
|
+
color: var(--black-700);
|
|
21
|
+
}
|
|
22
|
+
&:hover,
|
|
23
|
+
&:active,
|
|
24
|
+
&:focus {
|
|
25
|
+
color: var(--black-600);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
color: var(--black-500);
|
|
29
|
+
cursor: pointer;
|
|
30
|
+
text-decoration: none;
|
|
31
|
+
}
|
|
78
32
|
}
|
|
79
|
-
|
|
33
|
+
& &--body {
|
|
34
|
+
*:last-child {
|
|
35
|
+
margin-bottom: 0;
|
|
36
|
+
}
|
|
80
37
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
border-radius: 0 !important;
|
|
84
|
-
margin: 0;
|
|
85
|
-
max-height: 400px;
|
|
38
|
+
font-size: var(--fs-body2);
|
|
39
|
+
padding: var(--su12);
|
|
86
40
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
padding: var(--su12);
|
|
97
|
-
font-size: var(--fs-caption);
|
|
98
|
-
|
|
99
|
-
#stacks-internals #screen-sm({
|
|
100
|
-
flex-direction: column;
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.s-link-preview--url {
|
|
105
|
-
overflow: hidden;
|
|
106
|
-
max-width: 100%;
|
|
107
|
-
text-overflow: ellipsis !important;
|
|
108
|
-
white-space: nowrap;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.s-link-preview--misc {
|
|
112
|
-
color: var(--black-500);
|
|
113
|
-
padding-left: var(--su4);
|
|
114
|
-
|
|
115
|
-
#stacks-internals #screen-sm({
|
|
116
|
-
padding-left: 0;
|
|
117
|
-
padding-top: var(--su2);
|
|
118
|
-
});
|
|
119
|
-
}
|
|
41
|
+
& &--code {
|
|
42
|
+
pre {
|
|
43
|
+
border-radius: 0 !important;
|
|
44
|
+
margin: 0;
|
|
45
|
+
max-height: 400px;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
& &--details {
|
|
49
|
+
margin-top: var(--_lp-details-mt);
|
|
120
50
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
51
|
+
color: var(--black-500);
|
|
52
|
+
font-size: var(--fs-caption);
|
|
53
|
+
}
|
|
54
|
+
& &--footer {
|
|
55
|
+
flex-direction: var(--_lp-footer-fd);
|
|
56
|
+
|
|
57
|
+
background: var(--black-025);
|
|
58
|
+
border-bottom-left-radius: var(--br-sm);
|
|
59
|
+
border-bottom-right-radius: var(--br-sm);
|
|
60
|
+
border-top: 1px solid var(--bc-medium);
|
|
61
|
+
display: flex;
|
|
62
|
+
font-size: var(--fs-caption);
|
|
63
|
+
justify-content: space-between;
|
|
64
|
+
padding: var(--su12);
|
|
65
|
+
}
|
|
66
|
+
& &--header {
|
|
67
|
+
background: var(--black-025);
|
|
68
|
+
border-bottom: 1px solid var(--bc-medium);
|
|
69
|
+
border-top-left-radius: var(--br-sm);
|
|
70
|
+
border-top-right-radius: var(--br-sm);
|
|
71
|
+
display: flex;
|
|
72
|
+
padding: var(--su12) var(--su8);
|
|
73
|
+
}
|
|
74
|
+
& &--icon {
|
|
75
|
+
color: var(--black-800); // Set the default color of the integration's icon. Most likely this will be overridden by the integration icon's native colors.
|
|
76
|
+
margin-right: var(--su8);
|
|
77
|
+
}
|
|
78
|
+
& &--misc {
|
|
79
|
+
padding-left: var(--_lp-misc-pl);
|
|
80
|
+
padding-top: var(--_lp-misc-pt);
|
|
126
81
|
|
|
127
|
-
|
|
128
|
-
color: var(--black-700);
|
|
82
|
+
color: var(--black-500);
|
|
129
83
|
}
|
|
84
|
+
& &--title {
|
|
85
|
+
color: var(--black-900);
|
|
86
|
+
font-size: var(--fs-body3);
|
|
87
|
+
font-weight: bold;
|
|
88
|
+
}
|
|
89
|
+
& a&--title {
|
|
90
|
+
&:active,
|
|
91
|
+
&:hover{
|
|
92
|
+
&,
|
|
93
|
+
&.s-link__visited {
|
|
94
|
+
color: var(--theme-link-color-hover);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
&:active,
|
|
98
|
+
&:hover,
|
|
99
|
+
&.s-link__visited:active,
|
|
100
|
+
&.s-link__visited:hover,
|
|
101
|
+
&.s-link__visited:visited {
|
|
102
|
+
.highcontrast-mode({ text-decoration: underline; });
|
|
103
|
+
text-decoration: none;
|
|
104
|
+
}
|
|
105
|
+
&.s-link__visited:visited {
|
|
106
|
+
color: var(--theme-link-color);
|
|
107
|
+
}
|
|
130
108
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
color: var(--black-600);
|
|
109
|
+
color: var(--theme-link-color);
|
|
110
|
+
cursor: pointer;
|
|
111
|
+
text-decoration: none;
|
|
135
112
|
}
|
|
113
|
+
& &--url {
|
|
114
|
+
max-width: 100%;
|
|
115
|
+
overflow: hidden;
|
|
116
|
+
text-overflow: ellipsis !important;
|
|
117
|
+
white-space: nowrap;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
border: 1px solid var(--bc-medium);
|
|
121
|
+
border-radius: var(--br-sm);
|
|
122
|
+
box-shadow: var(--bs-sm);
|
|
123
|
+
text-align: left;
|
|
136
124
|
}
|