@stackoverflow/stacks 1.3.6 → 1.4.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.
@@ -0,0 +1,44 @@
1
+ #stacks-internals #responsify('.g0', { --_gap-x: 0; --_gap-y: 0; });
2
+ #stacks-internals #responsify('.g1', { --_gap-x: var(--su1); --_gap-y: var(--su1); });
3
+ #stacks-internals #responsify('.g2', { --_gap-x: var(--su2); --_gap-y: var(--su2); });
4
+ #stacks-internals #responsify('.g4', { --_gap-x: var(--su4); --_gap-y: var(--su4); });
5
+ #stacks-internals #responsify('.g6', { --_gap-x: var(--su6); --_gap-y: var(--su6); });
6
+ #stacks-internals #responsify('.g8', { --_gap-x: var(--su8); --_gap-y: var(--su8); });
7
+ #stacks-internals #responsify('.g12', { --_gap-x: var(--su12); --_gap-y: var(--su12); });
8
+ #stacks-internals #responsify('.g16', { --_gap-x: var(--su16); --_gap-y: var(--su16); });
9
+ #stacks-internals #responsify('.g24', { --_gap-x: var(--su24); --_gap-y: var(--su24); });
10
+ #stacks-internals #responsify('.g32', { --_gap-x: var(--su32); --_gap-y: var(--su32); });
11
+ #stacks-internals #responsify('.g48', { --_gap-x: var(--su48); --_gap-y: var(--su48); });
12
+ #stacks-internals #responsify('.g64', { --_gap-x: var(--su64); --_gap-y: var(--su64); });
13
+
14
+ #stacks-internals #responsify('.gx0', { --_gap-x: 0; });
15
+ #stacks-internals #responsify('.gx1', { --_gap-x: var(--su1); });
16
+ #stacks-internals #responsify('.gx2', { --_gap-x: var(--su2); });
17
+ #stacks-internals #responsify('.gx4', { --_gap-x: var(--su4); });
18
+ #stacks-internals #responsify('.gx6', { --_gap-x: var(--su6); });
19
+ #stacks-internals #responsify('.gx8', { --_gap-x: var(--su8); });
20
+ #stacks-internals #responsify('.gx12', { --_gap-x: var(--su12); });
21
+ #stacks-internals #responsify('.gx16', { --_gap-x: var(--su16); });
22
+ #stacks-internals #responsify('.gx24', { --_gap-x: var(--su24); });
23
+ #stacks-internals #responsify('.gx32', { --_gap-x: var(--su32); });
24
+ #stacks-internals #responsify('.gx48', { --_gap-x: var(--su48); });
25
+ #stacks-internals #responsify('.gx64', { --_gap-x: var(--su64); });
26
+
27
+ #stacks-internals #responsify('.gy0', { --_gap-y: 0; });
28
+ #stacks-internals #responsify('.gy1', { --_gap-y: var(--su1); });
29
+ #stacks-internals #responsify('.gy2', { --_gap-y: var(--su2); });
30
+ #stacks-internals #responsify('.gy4', { --_gap-y: var(--su4); });
31
+ #stacks-internals #responsify('.gy6', { --_gap-y: var(--su6); });
32
+ #stacks-internals #responsify('.gy8', { --_gap-y: var(--su8); });
33
+ #stacks-internals #responsify('.gy12', { --_gap-y: var(--su12); });
34
+ #stacks-internals #responsify('.gy16', { --_gap-y: var(--su16); });
35
+ #stacks-internals #responsify('.gy24', { --_gap-y: var(--su24); });
36
+ #stacks-internals #responsify('.gy32', { --_gap-y: var(--su32); });
37
+ #stacks-internals #responsify('.gy48', { --_gap-y: var(--su48); });
38
+ #stacks-internals #responsify('.gy64', { --_gap-y: var(--su64); });
39
+
40
+ .gx0, .gx1, .gx2, .gx4, .gx6, .gx8, .gx12, .gx16, .gx24, .gx32, .gx48, .gx64,
41
+ .gy0, .gy1, .gy2, .gy4, .gy6, .gy8, .gy12, .gy16, .gy24, .gy32, .gy48, .gy64,
42
+ .g0, .g1, .g2, .g4, .g6, .g8, .g12, .g16, .g24, .g32, .g48, .g64 {
43
+ gap: var(--_gap-x, 0) var(--_gap-y, 0);
44
+ }
@@ -1,38 +1,3 @@
1
- //
2
- // STACK OVERFLOW
3
- // GRID
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
- // • GAP
11
- // • GRID FLOW
12
- // • GRID COLUMN TEMPLATES
13
- // • COLUMN SPANS
14
- // • ROW SPANS
15
- //
16
-
17
- // ============================================================================
18
- // $ GAP
19
- // Insert spaces or gutters in between grid items
20
- // When this is available in flex layouts, this can be separated
21
- // into its own section and documentation
22
- // ----------------------------------------------------------------------------
23
- #stacks-internals #responsify('.g0', { gap: 0 });
24
- #stacks-internals #responsify('.g1', { gap: var(--su1) });
25
- #stacks-internals #responsify('.g2', { gap: var(--su2) });
26
- #stacks-internals #responsify('.g4', { gap: var(--su4); });
27
- #stacks-internals #responsify('.g6', { gap: var(--su6); });
28
- #stacks-internals #responsify('.g8', { gap: var(--su8); });
29
- #stacks-internals #responsify('.g12', { gap: var(--su12); });
30
- #stacks-internals #responsify('.g16', { gap: var(--su16); });
31
- #stacks-internals #responsify('.g24', { gap: var(--su24); });
32
- #stacks-internals #responsify('.g32', { gap: var(--su32); });
33
- #stacks-internals #responsify('.g48', { gap: var(--su48); });
34
- #stacks-internals #responsify('.g64', { gap: var(--su64); });
35
-
36
1
  // ============================================================================
37
2
  // $ GRID FLOW
38
3
  // ----------------------------------------------------------------------------
@@ -0,0 +1,75 @@
1
+ // This is an example of the expected structure for component-specific styles
2
+ // In some cases, deviations from this structure are warranted if we need to maintain a legacy structure
3
+ .s-component-name {
4
+ // BASE COMPONENT-SPECIFIC CUSTOM PROPERTIES
5
+ // --_{component-abbreviation}-{property-shorthand}: {value};
6
+ --_cn-bg: var(--blue-500);
7
+ --_cn-h: var(--su-static16);
8
+ --_cn-fd: row-reverse;
9
+ // VARIANT CUSTOM PROPERTIES
10
+ // --_{component-abbreviation}-{property-shorthand}-{variant-name}: {value};
11
+ --_cn-fc-filled: var(--green-500);
12
+ // CHILD COMPONENT CUSTOM PROPERTIES
13
+ // --_{component-abreviation}-{child-component-name}-{property-shorthand}: {value};
14
+ --_cn-image-bg: var(--red-500);
15
+
16
+ // CONTEXTUAL STYLES
17
+ // These may include themes/modes, responsive styles, or modifications based on parent containers
18
+ .highcontrast-mode({
19
+ --_cn-bg: var(--black-400);
20
+
21
+ .s-avatar--letter {
22
+ --_cn-image-bg: var(--white);
23
+ }
24
+ });
25
+ .s-special-parent & {
26
+ --_cn-bg: transparent;
27
+ }
28
+
29
+ // MODIFIERS
30
+ // Modifiers are considered to be classes that can be combined with other modifiers outside of their respective groupings without collisions
31
+ // Sizes
32
+ &&__xs {
33
+ --_cn-h: var(--su-static2);
34
+ }
35
+ &&__sm {
36
+ --_cn-h: var(--su-static12);
37
+ }
38
+ // Orientation
39
+ &&__vertical {
40
+ --_cn-fd: column;
41
+ }
42
+
43
+ // VARIANTS
44
+ // Variants are expected to be used exclusive of one another. In other words, you should only use one variant class at a time
45
+ &&__info {
46
+ --_cn-bg: var(--yellow-100);
47
+
48
+ &.s-component-name__filled {
49
+ --_cn-bg-filled: var(--yellow-800);
50
+ }
51
+ }
52
+
53
+ // CHILD ELEMENTS
54
+ &--image {
55
+ background-color: var(--_cn-image-bg);
56
+ }
57
+
58
+ // INTERACTION
59
+ .is-selected {
60
+ --_cn-bg: var(--orange-200);
61
+ }
62
+ &:hover {
63
+ --_cn-bg: var(--_black-050);
64
+ }
65
+
66
+ // STYLES MODIFIED BY COMPONENT-SPECIFIC CUSTOM PROPERTIES
67
+ background-color: var(--_cn-bg-filled, var(--_cn-bg));
68
+ flex-direction: var(--_cn-fd);
69
+ height: var(--_cn-h);
70
+
71
+ // STATIC COMPONENT STYLES
72
+ display: flex;
73
+ position: relative;
74
+ vertical-align: bottom;
75
+ }
@@ -1,45 +1,35 @@
1
- //
2
- // STACK OVERFLOW
3
- // ACTIVITY INDICATOR
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
- // ============================================================================
11
- // $ ACTIVITY INDICATOR
12
- // ----------------------------------------------------------------------------
13
-
14
1
  .s-activity-indicator {
15
- --_focus-ring: var(--focus-ring);
16
- --_bg-color: var(--theme-secondary-400);
2
+ --_ai-focus-ring: var(--focus-ring);
3
+ --_ai-bg: var(--theme-secondary-400);
4
+ --_ai-fc: @white;
17
5
 
18
- &.s-activity-indicator__success {
19
- --_bg-color: var(--green-500);
20
- --_focus-ring: var(--focus-ring-success);
6
+ .highcontrast-mode({ --_ai-fc: var(--white); });
7
+
8
+ // VARIANTS
9
+ &&__success {
10
+ --_ai-bg-color: var(--green-500);
11
+ --_ai-focus-ring: var(--focus-ring-success);
21
12
  }
22
- &.s-activity-indicator__warning {
23
- --_bg-color: var(--yellow-600);
24
- --_focus-ring: var(--focus-ring-warning);
13
+ &&__warning {
14
+ --_ai-bg-color: var(--yellow-600);
15
+ --_ai-focus-ring: var(--focus-ring-warning);
25
16
  }
26
- &.s-activity-indicator__danger {
27
- --_bg-color: var(--red-500);
28
- --_focus-ring: var(--focus-ring-error);
17
+ &&__danger {
18
+ --_ai-bg-color: var(--red-500);
19
+ --_ai-focus-ring: var(--focus-ring-error);
29
20
  }
30
21
 
22
+ background-color: var(--_ai-bg);
23
+ box-shadow: 0 0 0 var(--su-static4) var(--_ai-focus-ring);
24
+ color: var(--_ai-fc);
25
+
26
+ border-radius: 1000px;
31
27
  display: inline-block;
28
+ font-size: var(--fs-fine);
29
+ font-weight: 600;
30
+ line-height: 1.1; // Custom line-height to satisfy 1x screens
32
31
  min-width: var(--su-static12);
33
32
  min-height: var(--su-static12);
34
33
  padding: var(--su2) var(--su4);
35
- line-height: 1.1; // Custom line-height to satisfy 1x screens
36
- background-color: var(--_bg-color);
37
- box-shadow: 0 0 0 var(--su-static4) var(--_focus-ring);
38
- border-radius: 1000px;
39
- font-size: var(--fs-fine);
40
- font-weight: 600;
41
- color: @white;
42
34
  text-transform: uppercase;
43
-
44
- .highcontrast-mode({ color: var(--white); });
45
35
  }
@@ -1,71 +1,9 @@
1
- //
2
- // STACK OVERFLOW
3
- // AVATARS
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
- // • AVATARS
11
- // • TEAM AVATARS
12
- //
13
-
14
- // ============================================================================
15
- // $ TEAM AVATARS
16
- // ----------------------------------------------------------------------------
17
-
18
1
  .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
-
60
- display: inline-block; // Make sure the avatar has structure regardless of the element eg. span vs. div
61
- position: relative;
62
- width: var(--_size);
63
- height: var(--_size);
64
- border-radius: var(--_br);
65
- background-color: @white; // Force a white background color for when we have transparent avatars
66
- background-repeat: no-repeat;
67
- background-size: 100%;
68
- vertical-align: bottom; // Make our avatars play more nicely with text next to it.
2
+ --_av-size: var(--su-static16);
3
+ --_av-bg: @white; // Force a white background color for when we have transparent avatars
4
+ --_av-br: var(--br-sm);
5
+ --_av-fs-letter: calc(var(--su-static12) - var(--su-static1));
6
+ --_av-scale-badge: 1;
69
7
 
70
8
  .highcontrast-mode({
71
9
  background-color: var(--black);
@@ -77,10 +15,65 @@
77
15
  }
78
16
  });
79
17
 
80
- .s-avatar--letter {
18
+ // VARIANTS
19
+ // Sizes
20
+ &&__32,
21
+ &&__48 {
22
+ --_av-br: var(--br-md);
23
+ }
24
+ &&__96,
25
+ &&__128 {
26
+ --_av-br: calc(var(--br-lg) + var(--br-sm));
27
+ --_av-scale-badge: 3;
28
+ }
29
+ &&__24 {
30
+ --_av-size: var(--su-static24);
31
+ --_av-fs-letter: var(--su-static16);
32
+ --_av-scale-badge: 1.1;
33
+ }
34
+ &&__32 {
35
+ --_av-size: var(--su-static32);
36
+ --_av-fs-letter: calc(var(--su-static24) - var(--su-static2));
37
+ --_av-scale-badge: 1.3;
38
+ }
39
+ &&__48 {
40
+ --_av-size: var(--su-static48);
41
+ --_av-fs-letter: calc(var(--su-static32) + var(--su-static2));
42
+ --_av-scale-badge: 1.6;
43
+ }
44
+ &&__64 {
45
+ --_av-size: var(--su-static64);
46
+ --_av-br: var(--br-lg);
47
+ --_av-fs-letter: calc(var(--su-static48) - var(--su-static4));
48
+ --_av-scale-badge: 2.4;
49
+ }
50
+ &&__96 {
51
+ --_av-size: var(--su-static96);
52
+ --_av-fs-letter: calc(var(--su-static64) + var(--su-static2));
53
+ }
54
+ &&__128 {
55
+ --_av-size: var(--su-static128);
56
+ --_av-fs-letter: calc(var(--su-static96) - var(--su-static8));
57
+ }
58
+
59
+ // CHILD ELEMENTS
60
+ & &--badge {
61
+ bottom: calc(var(--su-static4) * -1); // -4px
62
+ position: absolute;
63
+ right: calc(var(--su-static4) * -1); // -4px
64
+ -webkit-transform: scale(var(--_av-scale-badge));
65
+ transform: scale(var(--_av-scale-badge));
66
+ }
67
+ & &--image {
68
+ border-radius: var(--_av-br);
69
+ display: block;
70
+ height: var(--_av-size);
71
+ width: var(--_av-size);
72
+ }
73
+ & &--letter {
81
74
  display: block; // Make sure we're treating the letter as a block-level element
82
75
  color: @white; // Force a light appearance of text rendering
83
- font-size: var(--_fs-letter); // Force a font size so the avatar text doesn't get smaller as the window resizes
76
+ font-size: var(--_av-fs-letter); // Force a font size so the avatar text doesn't get smaller as the window resizes
84
77
  font-weight: bold;
85
78
  line-height: 1.4; // Guards against some line-height trolling from the parent
86
79
  text-align: center;
@@ -92,18 +85,14 @@
92
85
  user-select: none;
93
86
  }
94
87
 
95
- .s-avatar--badge {
96
- position: absolute;
97
- right: -4px;
98
- bottom: -4px;
99
- -webkit-transform: scale(var(--_scale-badge));
100
- transform: scale(var(--_scale-badge));
101
- }
88
+ background-color: var(--_av-bg);
89
+ border-radius: var(--_av-br);
90
+ height: var(--_av-size);
91
+ width: var(--_av-size);
102
92
 
103
- .s-avatar--image {
104
- width: var(--_size);
105
- height: var(--_size);
106
- border-radius: var(--_br);
107
- display: block;
108
- }
93
+ background-repeat: no-repeat;
94
+ background-size: 100%;
95
+ display: inline-block; // Make sure the avatar has structure regardless of the element eg. span vs. div
96
+ position: relative;
97
+ vertical-align: bottom; // Make our avatars play more nicely with text next to it.
109
98
  }
@@ -0,0 +1,29 @@
1
+ .s-award-bling {
2
+ --_ab-before-bg: unset;
3
+
4
+ // VARIANTS
5
+ &&__gold {
6
+ --_ab-before-bg: var(--gold);
7
+ }
8
+ &&__silver {
9
+ --_ab-before-bg: var(--silver);
10
+ }
11
+ &&__bronze {
12
+ --_ab-before-bg: var(--bronze);
13
+ }
14
+
15
+ // CHILD ELEMENTS
16
+ &:before {
17
+ background-color: var(--_ab-before-bg);
18
+
19
+ border-radius: 100%;
20
+ content: "";
21
+ margin-right: var(--su4);
22
+ height: var(--su8);
23
+ width: var(--su8);
24
+ }
25
+
26
+ align-items: center;
27
+ color: inherit;
28
+ display: flex;
29
+ }