@splendidlabz/styles 2.2.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 (67) hide show
  1. package/.stylelintrc.js +3 -0
  2. package/.turbo/turbo-lint.log +4 -0
  3. package/Base/_Accessibility.scss +32 -0
  4. package/Base/_Base.scss +57 -0
  5. package/Base/_Focus.scss +38 -0
  6. package/Base/_Transition.scss +8 -0
  7. package/Base/_index.scss +4 -0
  8. package/CHANGELOG.md +56 -0
  9. package/Components/_Box.scss +9 -0
  10. package/Components/_BrowserFrame.scss +89 -0
  11. package/Components/_Figure.scss +5 -0
  12. package/Components/_List.scss +19 -0
  13. package/Components/_Prose.scss +82 -0
  14. package/Components/_Scrollbars.scss +40 -0
  15. package/Components/_SimpleSVG.scss +9 -0
  16. package/Components/_index.scss +12 -0
  17. package/Effects/_Backdrop.scss +4 -0
  18. package/Effects/_Elevation.scss +92 -0
  19. package/Effects/_Glow.scss +51 -0
  20. package/Effects/_Gradients.scss +88 -0
  21. package/Effects/_Shadows.scss +51 -0
  22. package/Effects/_SpecialShadows.scss +45 -0
  23. package/Effects/_Text-Outline.scss +25 -0
  24. package/Effects/_index.scss +12 -0
  25. package/Experimental/_SimplePricingPlan.scss +141 -0
  26. package/Forms/_Button.scss +106 -0
  27. package/Forms/_Combobox.scss +49 -0
  28. package/Forms/_FormBase.scss +43 -0
  29. package/Forms/_FormControls.scss +95 -0
  30. package/Forms/_Range.scss +101 -0
  31. package/Forms/_Select.scss +114 -0
  32. package/Forms/_Switch.scss +66 -0
  33. package/Forms/_TextField.scss +116 -0
  34. package/Forms/_Textarea.scss +41 -0
  35. package/Forms/_index.scss +10 -0
  36. package/Typography/_WritingMode.scss +33 -0
  37. package/Typography/_index.scss +1 -0
  38. package/UI/Codepen.scss +11 -0
  39. package/UI/Tweet.scss +5 -0
  40. package/UI/Youtube.scss +13 -0
  41. package/UI/_Accordion.scss +33 -0
  42. package/UI/_Breadcrumbs.scss +24 -0
  43. package/UI/_CQChecker.scss +16 -0
  44. package/UI/_Callout.scss +31 -0
  45. package/UI/_Drawer.scss +28 -0
  46. package/UI/_Dropdown.scss +14 -0
  47. package/UI/_FancyList.scss +30 -0
  48. package/UI/_PerspectiveHover.scss +9 -0
  49. package/UI/_Popover.scss +25 -0
  50. package/UI/_Resizer.scss +43 -0
  51. package/UI/_Spotlight.scss +42 -0
  52. package/UI/_Status.scss +33 -0
  53. package/UI/_Tabs.scss +112 -0
  54. package/UI/_Textwall.scss +22 -0
  55. package/UI/_index.scss +17 -0
  56. package/Utilities/_Shapes.scss +20 -0
  57. package/Utilities/_index.scss +1 -0
  58. package/Variables/_Globals.scss +33 -0
  59. package/Variables/_index.scss +1 -0
  60. package/_Animations.scss +18 -0
  61. package/_Fill.scss +314 -0
  62. package/package.json +18 -0
  63. package/styles.scss +12 -0
  64. package/utils/_index.scss +3 -0
  65. package/utils/_mixins.scss +6 -0
  66. package/utils/functions/_fns.scss +77 -0
  67. package/utils/functions/_fonts.scss +114 -0
@@ -0,0 +1,101 @@
1
+ // WIP. Not included.
2
+ // Simple - https://codepen.io/ibaslogic/pen/oNQMWrM
3
+ // Simple 2 - https://stackblitz.com/edit/multi-range-slider?file=src%2Fstyle.css,src%2Fcomponents%2FmultiRangeSlider%2FMultiRangeSlider.js
4
+ // Complex but more real - https://codepen.io/vsync/pen/mdEJMLv
5
+ // Ana tudor collection - https://codepen.io/collection/DgYaMj/?cursor=eyJwYWdlIjo4fQ==
6
+ @layer components {
7
+ }
8
+
9
+ input[type='range'] {
10
+ appearance: none;
11
+ width: 100%;
12
+
13
+ /* New additions */
14
+ height: 6px;
15
+ border-radius: 15px;
16
+ outline: none;
17
+ background: #ccc;
18
+ cursor: pointer;
19
+ }
20
+
21
+ /* Thumb: webkit */
22
+ input[type='range']::-webkit-slider-thumb {
23
+ /* removing default appearance */
24
+ appearance: none;
25
+ width: 15px;
26
+
27
+ /* creating a custom design */
28
+ height: 15px;
29
+ border: none;
30
+ border-radius: 50%;
31
+ background-color: #f50;
32
+
33
+ /* box-shadow: -407px 0 0 400px #f50; emove this line */
34
+ transition: 0.2s ease-in-out;
35
+ }
36
+
37
+ /* Thumb: Firefox */
38
+ input[type='range']::-moz-range-thumb {
39
+ width: 15px;
40
+ height: 15px;
41
+ border: none;
42
+ border-radius: 50%;
43
+ background-color: #f50;
44
+
45
+ /* box-shadow: -407px 0 0 400px #f50; emove this line */
46
+ transition: 0.2s ease-in-out;
47
+ }
48
+
49
+ /* Hover, active & focus Thumb: Webkit */
50
+
51
+ input[type='range']::-webkit-slider-thumb:hover {
52
+ box-shadow: 0 0 0 10px rgb(255 85 0 / 10%);
53
+ }
54
+
55
+ input[type='range']:active::-webkit-slider-thumb {
56
+ box-shadow: 0 0 0 13px rgb(255 85 0 / 20%);
57
+ }
58
+
59
+ input[type='range']:focus::-webkit-slider-thumb {
60
+ box-shadow: 0 0 0 13px rgb(255 85 0 / 20%);
61
+ }
62
+
63
+ /* Hover, active & focus Thumb: Firfox */
64
+
65
+ input[type='range']::-moz-range-thumb:hover {
66
+ box-shadow: 0 0 0 10px rgb(255 85 0 / 10%);
67
+ }
68
+
69
+ input[type='range']:active::-moz-range-thumb {
70
+ box-shadow: 0 0 0 13px rgb(255 85 0 / 20%);
71
+ }
72
+
73
+ input[type='range']:focus::-moz-range-thumb {
74
+ box-shadow: 0 0 0 13px rgb(255 85 0 / 20%);
75
+ }
76
+
77
+ /* =============
78
+ Adding tick marks
79
+ ========================= */
80
+ .range-slider {
81
+ flex: 1;
82
+ }
83
+
84
+ .sliderticks {
85
+ display: flex;
86
+ justify-content: space-between;
87
+ padding: 0 10px;
88
+ }
89
+
90
+ .sliderticks span {
91
+ display: flex;
92
+ justify-content: center;
93
+ width: 1px;
94
+ height: 10px;
95
+ line-height: 40px;
96
+ background: #d3d3d3;
97
+ }
98
+
99
+ /* =============
100
+ End tick marks
101
+ ========================= */
@@ -0,0 +1,114 @@
1
+ @layer components {
2
+ .Select {
3
+ :where(select) {
4
+ appearance: none;
5
+ color: var(--text-color);
6
+ background: var(--bg-color);
7
+
8
+ &:hover {
9
+ border-color: var(--border-hover-color, var(--border-color));
10
+ color: var(--text-hover-color, var(--text-color));
11
+ background-color: var(--bg-hover-color, var(--bg-color));
12
+
13
+ :where(svg path) {
14
+ fill: var(
15
+ --fill-hover-color,
16
+ var(--text-hover-color, var(--fill-color, var(--text-color)))
17
+ );
18
+ stroke: var(
19
+ --stroke-hover-color,
20
+ var(--text-hover-color, var(--stroke-color, var(--text-color)))
21
+ );
22
+ }
23
+ }
24
+
25
+ // Fallback to hover color
26
+ &:focus {
27
+ border-color: var(
28
+ --border-focus-color,
29
+ var(--border-hover-color, var(--border-color))
30
+ );
31
+ color: var(
32
+ --text-focus-color,
33
+ var(--text-hover-color, var(--text-color))
34
+ );
35
+ background-color: var(
36
+ --bg-focus-color,
37
+ var(--bg-hover-color, var(--bg-color))
38
+ );
39
+
40
+ :where(svg path) {
41
+ fill: var(
42
+ --fill-focus-color,
43
+ var(
44
+ --text-focus-color,
45
+ var(
46
+ --fill-hover-color,
47
+ var(--text-hover-color, var(--fill-color, var(--text-color)))
48
+ )
49
+ )
50
+ );
51
+ stroke: var(
52
+ --stroke-focus-color,
53
+ var(
54
+ --text-focus-color,
55
+ var(
56
+ --stroke-hover-color,
57
+ var(--text-hover-color, var(--stroke-color, var(--text-color)))
58
+ )
59
+ )
60
+ );
61
+ }
62
+ }
63
+ }
64
+
65
+ :where(select[multiple]),
66
+ :where(select[multiple]:focus) {
67
+ overflow: auto;
68
+ padding: 0;
69
+
70
+ :where(option) {
71
+ padding: 0.375em 0.75em;
72
+ color: var(--text-color);
73
+ background-image: linear-gradient(
74
+ 0deg,
75
+ var(--bg-color) 0%,
76
+ var(--bg-color) 100%
77
+ );
78
+ }
79
+
80
+ :where(option:hover) {
81
+ color: var(--text-hover-color, var(--text-color));
82
+ background-image: linear-gradient(
83
+ 0deg,
84
+ var(--bg-hover-color, var(--bg-color)) 0%,
85
+ var(--bg-hover-color, var(--bg-color)) 100%
86
+ );
87
+ }
88
+
89
+ :where(option:focus) {
90
+ color: var(
91
+ --text-focus-color,
92
+ var(--text-hover-color, var(--text-color))
93
+ );
94
+
95
+ background-image: linear-gradient(
96
+ 0deg,
97
+ var(--bg-focus-color, var(--bg-hover-color, var(--bg-color))) 0%,
98
+ var(--bg-focus-color, var(--bg-hover-color, var(--bg-color))) 100%
99
+ );
100
+ }
101
+
102
+ :where(option:checked) {
103
+ color: var(--text-selected-color);
104
+ background-image: linear-gradient(
105
+ 0deg,
106
+ var(--bg-selected-color,) 0%,
107
+ var(--bg-selected-color,) 100%
108
+ );
109
+ }
110
+ }
111
+ }
112
+ }
113
+
114
+ // The :selected state of the options is fairly customizable in Chrome, somewhat in Firefox, and not at all in Safari. See the CodePen demo for a section that can be uncommented to preview this.
@@ -0,0 +1,66 @@
1
+ @layer components {
2
+ // ========================
3
+ // Switches
4
+ // Inspiration: https://tailwindui.com/components/application-ui/forms/toggles
5
+ // Variables Used
6
+ // --transition-values
7
+
8
+ // Local Variables
9
+ // --height
10
+ // --aspectRatio
11
+ // --gap
12
+ // --toggleFill: white;
13
+ // --bg-color: #aaa;
14
+ // --onStateBg: teal;
15
+ // ========================
16
+ // Border-width must have a unit here for this to work.
17
+ .Switch {
18
+ --width: 3.5em;
19
+ --height: 1.2em;
20
+ --inner-margin: 0.2em;
21
+
22
+ display: inline-flex;
23
+
24
+ input[type='checkbox'] {
25
+ appearance: none;
26
+ display: grid;
27
+ align-items: center;
28
+ width: var(--width);
29
+ padding: 0;
30
+ border-width: var(--border-width, 1px);
31
+ border-style: var(--border-style, solid);
32
+ border-color: var(--border-color, black);
33
+ border-radius: var(--height);
34
+ background-color: var(--bg-color, #eee);
35
+ transition: background-color var(--transition-values);
36
+ }
37
+
38
+ input[type='checkbox']:checked {
39
+ background-color: var(--bg-color, teal);
40
+ }
41
+
42
+ // This is the part that moves
43
+ input[type='checkbox']::before {
44
+ --translateX: calc(
45
+ var(--width) - var(--height) - var(--inner-margin) * 2 - var(
46
+ --border-width,
47
+ 1px
48
+ ) * 2
49
+ );
50
+
51
+ content: '';
52
+ box-sizing: content-box;
53
+ width: var(--height);
54
+ height: var(--height);
55
+ margin: var(--inner-margin);
56
+ border-radius: 50%;
57
+ background-color: white;
58
+ box-shadow: var(--shadow);
59
+ transition: transform var(--transition-values);
60
+ }
61
+
62
+ input[type='checkbox']:checked::before {
63
+ transform: translateX(var(--translateX));
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,116 @@
1
+ @layer components {
2
+ // Applies to TextInput, Textarea and Select
3
+ :where(.TextField) {
4
+ --padding: 0.5rem 0.75rem;
5
+
6
+ > * {
7
+ display: block;
8
+ }
9
+
10
+ :where(.Label) {
11
+ color: var(--text-color, inherit);
12
+ }
13
+
14
+ :where(.Hint) {
15
+ opacity: 0.5;
16
+ }
17
+
18
+ :where(.Error) {
19
+ color: red;
20
+ }
21
+ }
22
+
23
+ * + .InputGroup {
24
+ margin-top: 0.25rem;
25
+ }
26
+
27
+ .InputGroup {
28
+ border-width: var(--border-width);
29
+ border-color: var(--border-color);
30
+ border-radius: var(--radius);
31
+
32
+ // Allow all inner items to use the same padding values
33
+ > *,
34
+ > :where(astro-slot, astro-content, astro-island) > * {
35
+ padding: var(--padding);
36
+ }
37
+
38
+ // Allows focus outline to wrap around input when it's used standalone without before and after elements
39
+ > :where(.Field) {
40
+ border-radius: inherit;
41
+ }
42
+ }
43
+
44
+ .InputGroup:not(.Stack) {
45
+ display: flex;
46
+
47
+ // Before elements
48
+ // -------------------
49
+ > *:has(~ :where(.Field)),
50
+ > *:has(~ :where(.Field)):where(astro-slot, astro-content, astro-island)
51
+ > * {
52
+ flex-shrink: 0;
53
+ display: flex;
54
+ align-items: center;
55
+ border-width: 0;
56
+ border-radius: 0;
57
+ border-start-start-radius: calc(var(--radius) - var(--border-width));
58
+ border-end-start-radius: calc(var(--radius) - var(--border-width));
59
+
60
+ // The input
61
+ & + :where(.Field) {
62
+ border-start-start-radius: 0;
63
+ border-end-start-radius: 0;
64
+ }
65
+ }
66
+
67
+ // After elements
68
+ // ------------------
69
+ > :where(.Field) ~ *,
70
+ > :where(.Field) ~ *:where(astro-slot, astro-content, astro-island) > * {
71
+ flex-shrink: 0;
72
+ display: flex;
73
+ align-items: center;
74
+ border-width: 0;
75
+ border-radius: 0;
76
+ border-start-end-radius: calc(var(--radius) - var(--border-width));
77
+ border-end-end-radius: calc(var(--radius) - var(--border-width));
78
+ }
79
+
80
+ // The input
81
+ > :where(.Field:has(~ *)) {
82
+ border-start-end-radius: 0;
83
+ border-end-end-radius: 0;
84
+ }
85
+
86
+ // Raise position for nicer focus
87
+ > * {
88
+ position: relative;
89
+
90
+ &:focus,
91
+ &:focus-visible {
92
+ z-index: 2;
93
+ }
94
+ }
95
+ }
96
+
97
+ // Use this when you want the button or arrow to be floating over the input element. When doing this, make sure you set a minimum width for the input! (or InputGroup)
98
+ .InputGroup.Stack {
99
+ // Before elements
100
+ // -------------------
101
+ *:has(~ :where(.Field)),
102
+ *:has(~ :where(.Field)):where(astro-slot, astro-content, astro-island) > * {
103
+ z-index: 2;
104
+ display: flex;
105
+ place-self: center start;
106
+ }
107
+
108
+ // After elements
109
+ // ------------------
110
+ :where(.Field) ~ *,
111
+ :where(.Field) ~ *:where(astro-slot, astro-content, astro-island) > * {
112
+ display: flex;
113
+ place-self: center end;
114
+ }
115
+ }
116
+ }
@@ -0,0 +1,41 @@
1
+ textarea {
2
+ min-height: 9em;
3
+ resize: vertical;
4
+ }
5
+
6
+ @layer components {
7
+ .Textarea {
8
+ // Field is used in TextField for padding and border-radius. We use this to prevent reworking those styles
9
+ .Stack.Field {
10
+ display: grid; // Field has display block. This enforces grid again.
11
+ padding: 0;
12
+ }
13
+
14
+ .Field {
15
+ padding: var(--padding);
16
+ }
17
+
18
+ textarea {
19
+ border-radius: inherit;
20
+ }
21
+
22
+ .Replica {
23
+ // This is how textarea text behaves
24
+ white-space: pre-wrap;
25
+ // Hidden from view, clicks, and screen readers
26
+ visibility: hidden;
27
+
28
+ &::after {
29
+ content: attr(data-replicated-value);
30
+ }
31
+ }
32
+ }
33
+
34
+ .Textarea-autogrow {
35
+ textarea {
36
+ // Prevents user from resizing so it doesn't screw up the auto resizing
37
+ resize: none;
38
+ overflow: hidden;
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,10 @@
1
+ @use 'FormBase';
2
+
3
+ // Components
4
+ @use 'Button';
5
+ @use 'TextField';
6
+ @use 'Textarea';
7
+ @use 'FormControls';
8
+ @use 'Select';
9
+ @use 'Combobox';
10
+ @use 'Switch';
@@ -0,0 +1,33 @@
1
+ @layer components {
2
+ // Prevents the whole text from rotating like a noob
3
+ [class*='Writing'] {
4
+ transition: none;
5
+ }
6
+
7
+ .Writing-normal {
8
+ writing-mode: horizontal-tb;
9
+ }
10
+
11
+ .Writing-rotateLeft {
12
+ writing-mode: vertical-rl;
13
+ text-orientation: sideways;
14
+ transform: rotate(180deg);
15
+ // transform: scale( -1, -1 ); // This is the alternative if we don't want to use rotate (though I'm not sure if there is a specific reason why.
16
+ }
17
+
18
+ .Writing-rotateRight {
19
+ writing-mode: vertical-rl;
20
+ text-orientation: sideways;
21
+ }
22
+
23
+ .Writing-downwards,
24
+ .Writing-downwards-lr {
25
+ writing-mode: vertical-lr;
26
+ text-orientation: upright;
27
+ }
28
+
29
+ .Writing-downwards-rl {
30
+ writing-mode: vertical-rl;
31
+ text-orientation: upright;
32
+ }
33
+ }
@@ -0,0 +1 @@
1
+ @use 'WritingMode';
@@ -0,0 +1,11 @@
1
+ @layer components {
2
+ .Codepen {
3
+ display: flex;
4
+ justify-content: center;
5
+ align-items: center;
6
+ box-sizing: border-box;
7
+ margin: 1em 0;
8
+ padding: 1em;
9
+ border: 2px solid;
10
+ }
11
+ }
package/UI/Tweet.scss ADDED
@@ -0,0 +1,5 @@
1
+ @layer components {
2
+ .Tweet .twitter-tweet {
3
+ margin: 0 !important;
4
+ }
5
+ }
@@ -0,0 +1,13 @@
1
+ @layer components {
2
+ .Youtube,
3
+ .Vimeo {
4
+ div {
5
+ aspect-ratio: 16/9;
6
+ }
7
+
8
+ iframe {
9
+ width: 100%;
10
+ height: 100%;
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,33 @@
1
+ @layer components {
2
+ .Accordion {
3
+ svg {
4
+ transition: var(--transition-values);
5
+ transition-property: var(--transition-props);
6
+ }
7
+
8
+ :where([aria-expanded='true'] svg) {
9
+ transform: rotate(90deg);
10
+ }
11
+ }
12
+
13
+ .AccordionBtn {
14
+ display: flex;
15
+ justify-content: space-between;
16
+ align-items: center;
17
+ gap: 0.5em;
18
+ width: 100%;
19
+ padding: 0.75rem;
20
+ border: 0;
21
+ text-align: left;
22
+
23
+ // astro-slot signifies the title, except it's a slot
24
+ &:where(:has(svg + span)),
25
+ &:where(:has(svg + astro-slot)) {
26
+ justify-content: start;
27
+ }
28
+ }
29
+
30
+ .AccordionContent {
31
+ padding: 0.75rem;
32
+ }
33
+ }
@@ -0,0 +1,24 @@
1
+ @layer components {
2
+ .Breadcrumbs {
3
+ --gap: 0.2em;
4
+ font-size: 0.8rem;
5
+
6
+ ul,
7
+ ol {
8
+ display: flex;
9
+ flex-flow: row wrap;
10
+ align-items: center;
11
+ gap: var(--gap);
12
+ }
13
+
14
+ .Crumb {
15
+ display: flex;
16
+ align-items: center;
17
+ gap: var(--gap);
18
+
19
+ [aria-current] {
20
+ opacity: 0.7;
21
+ }
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,16 @@
1
+ .CQCheckerGrid {
2
+ display: flex;
3
+ flex-flow: row wrap;
4
+ grid-auto-flow: dense;
5
+
6
+ padding: 1rem;
7
+
8
+ > * {
9
+ margin: 0.5rem;
10
+ }
11
+ }
12
+
13
+ .size {
14
+ font-size: 0.8rem;
15
+ color: #666;
16
+ }
@@ -0,0 +1,31 @@
1
+ // --text-callout-header
2
+ // --bg-callout-header
3
+ // Changing font: Just use .CalloutHeader + fontFamily
4
+
5
+ @layer components {
6
+ .Callout {
7
+ border: var(--border-width) var(--border-style) var(--border-color);
8
+ border-radius: var(--radius);
9
+ font-size: 0.85em;
10
+
11
+ > * {
12
+ padding: 0.85rem;
13
+ }
14
+
15
+ :where(.CalloutHeader) {
16
+ padding-block: 0.375rem;
17
+ border-bottom: 1px solid var(--divider-color, var(--border-color));
18
+ border-top-left-radius: inherit;
19
+ border-top-right-radius: inherit;
20
+ color: var(--text-callout-header, var(--text-color));
21
+ background: var(--bg-callout-header, var(--bg-color));
22
+ }
23
+
24
+ :where(.CalloutContent) {
25
+ border-bottom-left-radius: inherit;
26
+ border-bottom-right-radius: inherit;
27
+ color: var(--text-callout-content, var(--text-color));
28
+ background: var(--bg-callout-content, var(--bg-color));
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,28 @@
1
+ @layer components {
2
+ [class*='DrawerBackdrop'] {
3
+ position: fixed;
4
+ inset: 0;
5
+ z-index: 100;
6
+ background-color: oklch(0% 0 0deg / 50%);
7
+ }
8
+
9
+ .DrawerBackdrop-blur {
10
+ transition-property: background, backdrop-filter;
11
+ backdrop-filter: blur(8px);
12
+ }
13
+
14
+ // Note to self:
15
+ // Need to create another Class to contain default z-index for Absolute Drawers — so this doesn't show above it.
16
+ .DrawerContent {
17
+ position: fixed;
18
+ overflow-y: auto;
19
+ z-index: 100;
20
+ padding: 1rem;
21
+ color: var(--text-color);
22
+ background-color: var(--bg-color);
23
+ }
24
+
25
+ .DrawerCloseButton {
26
+ padding: 0.5rem;
27
+ }
28
+ }
@@ -0,0 +1,14 @@
1
+ @layer components {
2
+ .DropdownTrigger {
3
+ gap: 0.25em;
4
+
5
+ svg {
6
+ flex-shrink: 0;
7
+ transition: transform var(--transition-values);
8
+ }
9
+
10
+ &[aria-expanded='true'] svg {
11
+ transform: rotate(-180deg);
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,30 @@
1
+ @layer components {
2
+ .FancyList {
3
+ --svg-width: 1em;
4
+ --svg-height: 1lh;
5
+
6
+ display: grid;
7
+ grid-template-columns: auto 1fr;
8
+ column-gap: var(--gap, 0.5em);
9
+
10
+ :where(li) {
11
+ grid-column: 1 / -1;
12
+ display: grid;
13
+ grid-template-columns: subgrid;
14
+ // align-items: center; // Items are not aligned center so multi-row lists work.
15
+
16
+ // Positions the Emoji
17
+ // This is kind of brute-forced at the moment.
18
+ :where(.emoji),
19
+ > :where(astro-slot, astro-island) > :where(.emoji) {
20
+ font-size: 0.75em;
21
+ line-height: 1lh;
22
+ }
23
+ }
24
+ }
25
+
26
+ // Balance with other list styles in .Prose
27
+ .Prose > :where(.FancyList) {
28
+ margin-left: calc(2em - var(--svg-width, 1em) - var(--gap, 0.5em));
29
+ }
30
+ }