@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.
Files changed (31) hide show
  1. package/dist/css/stacks.css +3565 -2093
  2. package/dist/css/stacks.min.css +1 -1
  3. package/lib/css/atomic/colors.less +1 -1
  4. package/lib/css/atomic/flex.less +53 -2
  5. package/lib/css/components/activity-indicator.less +3 -3
  6. package/lib/css/components/badges.less +11 -11
  7. package/lib/css/components/button-groups.less +59 -83
  8. package/lib/css/components/buttons.less +384 -585
  9. package/lib/css/components/code-blocks.less +98 -125
  10. package/lib/css/components/expandable.less +69 -59
  11. package/lib/css/components/inputs.less +38 -24
  12. package/lib/css/components/link-previews.less +110 -122
  13. package/lib/css/components/links.less +0 -16
  14. package/lib/css/components/modals.less +95 -120
  15. package/lib/css/components/notices.less +187 -180
  16. package/lib/css/components/popovers.less +132 -181
  17. package/lib/css/components/post-summary.less +0 -9
  18. package/lib/css/components/progress-bars.less +236 -297
  19. package/lib/css/components/prose.less +293 -380
  20. package/lib/css/components/sidebar-widgets.less +251 -0
  21. package/lib/css/components/spinner.less +54 -104
  22. package/lib/css/components/tables.less +0 -24
  23. package/lib/css/components/toggle-switches.less +69 -120
  24. package/lib/css/components/topbar.less +10 -11
  25. package/lib/css/components/user-cards.less +91 -144
  26. package/lib/css/stacks-dynamic.less +0 -1
  27. package/lib/css/stacks-static.less +1 -1
  28. package/package.json +11 -11
  29. package/lib/css/components/_styles-template.less +0 -78
  30. package/lib/css/components/widget-dynamic.less +0 -33
  31. package/lib/css/components/widget-static.less +0 -274
@@ -1,130 +1,103 @@
1
- //
2
- // STACK OVERFLOW
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
- pre.s-code-block {
11
- font-size: var(--fs-body1);
12
- font-family: var(--ff-mono);
13
- line-height: var(--lh-md);
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
- .hljs-subst {
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
- @stacks-internal-s-expandable-min-expected-height: 10px;
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
- display: flex;
43
- -webkit-clip-path: polygon(-1000000px -1000000px, 1000000px -1000000px, 1000000px 1000000px, -1000000px 1000000px);
44
- clip-path: polygon(-1000000px -1000000px, 1000000px -1000000px, 1000000px 1000000px, -1000000px 1000000px);
45
- align-items: flex-start; // see comment above
46
- transition: clip-path 0s @stacks-internals-s-expandable-transition-duration, -webkit-clip-path 0s @stacks-internals-s-expandable-transition-duration;
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
- content: '';
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
- .s-expandable--content {
61
- -ms-flex-preferred-size: 100%;
62
- flex-basis: 100%;
63
- max-height: 1000000px;
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
- .s-expandable:not(.is-expanded) {
74
- overflow: hidden;
75
- -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
76
- clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
77
- transition: none;
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
- &:after {
100
- height: 0;
101
- max-height: @stacks-internal-s-expandable-min-expected-height;
102
- transition: height @stacks-internals-s-expandable-transition-duration linear;
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
- border: 1px solid var(--bc-medium);
14
- border-radius: var(--br-sm);
15
- text-align: left;
16
- box-shadow: var(--bs-sm);
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
- margin-top: var(--su4);
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
- .s-link-preview--body {
73
- padding: var(--su12);
74
- font-size: var(--fs-body2);
75
-
76
- *:last-child {
77
- margin-bottom: 0;
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
- .s-link-preview--code {
82
- pre {
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
- .s-link-preview--footer {
90
- display: flex;
91
- justify-content: space-between;
92
- background: var(--black-025);
93
- border-bottom-left-radius: var(--br-sm);
94
- border-bottom-right-radius: var(--br-sm);
95
- border-top: 1px solid var(--bc-medium);
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
- .s-link-preview--details a,
122
- .s-link-preview--footer a {
123
- text-decoration: none;
124
- cursor: pointer;
125
- color: var(--black-500);
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
- &:visited {
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
- &:hover,
132
- &:active,
133
- &:focus {
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
  }