@davidsouther/jiffies 1.0.0-beta.1 → 1.0.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 (96) hide show
  1. package/build/components/button_bar.js +24 -13
  2. package/build/components/select.d.ts +1 -4
  3. package/build/display.js +9 -1
  4. package/build/dom/dom.js +1 -0
  5. package/build/dom/form/form.d.ts +9 -8
  6. package/build/dom/form/form.js +14 -5
  7. package/build/dom/provide.d.ts +3 -0
  8. package/build/dom/provide.js +7 -0
  9. package/build/equal.d.ts +5 -4
  10. package/build/equal.js +19 -4
  11. package/build/fs.d.ts +48 -0
  12. package/build/fs.js +144 -0
  13. package/build/{components/index.d.ts → fs.test.d.ts} +0 -0
  14. package/build/fs.test.js +43 -0
  15. package/build/log.js +16 -4
  16. package/build/result.d.ts +11 -11
  17. package/build/result.js +2 -2
  18. package/build/scope/execute.js +1 -1
  19. package/build/scope/expect.d.ts +1 -1
  20. package/build/scope/expect.js +4 -3
  21. package/build/server/http/css.d.ts +5 -0
  22. package/build/server/http/css.js +47 -0
  23. package/build/server/http/index.js +4 -2
  24. package/build/server/http/response.js +6 -3
  25. package/build/test_all.d.ts +7 -1
  26. package/build/test_all.js +7 -8
  27. package/package.json +5 -2
  28. package/src/components/button_bar.ts +32 -26
  29. package/src/display.ts +8 -2
  30. package/src/dom/dom.ts +1 -0
  31. package/src/dom/form/form.ts +30 -7
  32. package/src/dom/provide.ts +11 -0
  33. package/src/equal.ts +22 -11
  34. package/src/fs.test.ts +53 -0
  35. package/src/fs.ts +180 -0
  36. package/src/index.html +4 -4
  37. package/src/log.ts +8 -4
  38. package/src/pico/_variables.scss +66 -0
  39. package/src/pico/components/_accordion.scss +112 -0
  40. package/src/pico/components/_button-group.scss +51 -0
  41. package/src/pico/components/_card.scss +47 -0
  42. package/src/pico/components/_dropdown.scss +203 -0
  43. package/src/pico/components/_modal.scss +181 -0
  44. package/src/pico/components/_nav.scss +79 -0
  45. package/src/pico/components/_progress.scss +70 -0
  46. package/src/pico/components/_property.scss +34 -0
  47. package/src/pico/content/_button.scss +152 -0
  48. package/src/pico/content/_code.scss +63 -0
  49. package/src/pico/content/_embedded.scss +0 -0
  50. package/src/pico/content/_form-alt.scss +276 -0
  51. package/src/pico/content/_form.scss +259 -0
  52. package/src/pico/content/_misc.scss +0 -0
  53. package/src/pico/content/_table.scss +28 -0
  54. package/src/pico/content/_toggle.scss +132 -0
  55. package/src/pico/content/_typography.scss +232 -0
  56. package/src/pico/layout/_container.scss +40 -0
  57. package/src/pico/layout/_document.scss +0 -0
  58. package/src/pico/layout/_flex.scss +46 -0
  59. package/src/pico/layout/_grid.scss +24 -0
  60. package/src/pico/layout/_scroller.scss +16 -0
  61. package/src/pico/layout/_section.scss +8 -0
  62. package/src/pico/layout/_sectioning.scss +53 -0
  63. package/src/pico/pico.scss +60 -0
  64. package/src/pico/reset/_accessibility.scss +34 -0
  65. package/src/pico/reset/_button.scss +17 -0
  66. package/src/pico/reset/_code.scss +15 -0
  67. package/src/pico/reset/_document.scss +48 -0
  68. package/src/pico/reset/_embedded.scss +39 -0
  69. package/src/pico/reset/_form.scss +97 -0
  70. package/src/pico/reset/_misc.scss +23 -0
  71. package/src/pico/reset/_nav.scss +5 -0
  72. package/src/pico/reset/_progress.scss +4 -0
  73. package/src/pico/reset/_table.scss +8 -0
  74. package/src/pico/reset/_typography.scss +25 -0
  75. package/src/pico/themes/default/_colors.scss +65 -0
  76. package/src/pico/themes/default/_dark.scss +148 -0
  77. package/src/pico/themes/default/_light.scss +149 -0
  78. package/src/pico/themes/default/_styles.scss +272 -0
  79. package/src/pico/themes/default.scss +34 -0
  80. package/src/pico/utilities/_accessibility.scss +3 -0
  81. package/src/pico/utilities/_loading.scss +52 -0
  82. package/src/pico/utilities/_reduce-motion.scss +27 -0
  83. package/src/pico/utilities/_tooltip.scss +101 -0
  84. package/src/result.ts +16 -20
  85. package/src/scope/execute.ts +1 -1
  86. package/src/scope/expect.ts +10 -9
  87. package/src/server/http/css.ts +63 -0
  88. package/src/server/http/index.ts +4 -2
  89. package/src/server/http/response.ts +7 -4
  90. package/src/test_all.ts +7 -8
  91. package/src/zip/spec.txt +3260 -0
  92. package/build/components/index.js +0 -1
  93. package/build/index.d.ts +0 -13
  94. package/build/index.js +0 -13
  95. package/build/parcel_resolver.d.ts +0 -3
  96. package/build/parcel_resolver.js +0 -19
@@ -0,0 +1,112 @@
1
+ details {
2
+ display: block;
3
+ margin-bottom: var(--spacing);
4
+ padding-bottom: var(--spacing);
5
+ border-bottom: var(--border-width) solid var(--accordion-border-color);
6
+
7
+ summary {
8
+ line-height: 1rem;
9
+ list-style-type: none;
10
+ cursor: pointer;
11
+
12
+ &:not([role]) {
13
+ color: var(--accordion-close-summary-color);
14
+ }
15
+
16
+ @if $enable-transitions {
17
+ transition: color var(--transition);
18
+ }
19
+
20
+ // Reset marker
21
+ &::-webkit-details-marker {
22
+ display: none;
23
+ }
24
+
25
+ &::marker {
26
+ display: none;
27
+ }
28
+
29
+ &::-moz-list-bullet {
30
+ list-style-type: none;
31
+ }
32
+
33
+ // Marker
34
+ &::after {
35
+ display: block;
36
+ width: 1rem;
37
+ height: 1rem;
38
+ margin-inline-start: calc(var(--spacing, 1rem) * 0.5);
39
+ float: right;
40
+ transform: rotate(-90deg);
41
+ background-image: var(--icon-chevron);
42
+ background-position: right center;
43
+ background-size: 1rem auto;
44
+ background-repeat: no-repeat;
45
+ content: "";
46
+
47
+ @if $enable-transitions {
48
+ transition: transform var(--transition);
49
+ }
50
+ }
51
+
52
+ &:focus {
53
+ outline: none;
54
+
55
+ &:not([role="button"]) {
56
+ color: var(--accordion-active-summary-color);
57
+ }
58
+ }
59
+
60
+ // Type button
61
+ &[role="button"] {
62
+ width: 100%;
63
+ text-align: left;
64
+
65
+ // Marker
66
+ &::after {
67
+ height: calc(1rem * var(--line-height, 1.5));
68
+ background-image: var(--icon-chevron-button);
69
+ }
70
+
71
+ @if $enable-classes {
72
+ // .contrast
73
+ &:not(.outline).contrast {
74
+ // Marker
75
+ &::after {
76
+ background-image: var(--icon-chevron-button-inverse);
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }
82
+
83
+ // Open
84
+ &[open] {
85
+ > summary {
86
+ margin-bottom: calc(var(--spacing));
87
+
88
+ &:not([role]) {
89
+ &:not(:focus) {
90
+ color: var(--accordion-open-summary-color);
91
+ }
92
+ }
93
+
94
+ &::after {
95
+ transform: rotate(0);
96
+ }
97
+ }
98
+ }
99
+ }
100
+
101
+ [dir="rtl"] {
102
+ details {
103
+ summary {
104
+ text-align: right;
105
+
106
+ &::after {
107
+ float: left;
108
+ background-position: left center;
109
+ }
110
+ }
111
+ }
112
+ }
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Input group and button group
3
+ */
4
+
5
+ .button-group,
6
+ .input-group {
7
+ // Stick buttons together
8
+ display: flex;
9
+ flex-direction: row;
10
+
11
+ // Buttons have no margin-bottom set
12
+ & > button,
13
+ & > label,
14
+ & > select,
15
+ & > input:not([type="checkbox"]):not([type="radio"]) {
16
+ margin-bottom: 0;
17
+ }
18
+
19
+ // No round corners in button groups
20
+ & > button:not(:last-child),
21
+ & > [role="button"]:not(:last-child),
22
+ & > input:not(:last-child),
23
+ & > select:not(:last-child) {
24
+ border-top-right-radius: 0;
25
+ border-bottom-right-radius: 0;
26
+ /* border-right: 0;*/
27
+ }
28
+
29
+ & > [role="button"]:not(:first-child),
30
+ & > input:not(:first-child),
31
+ & > button:not(:first-child),
32
+ & > select:not(:first-child) {
33
+ border-top-left-radius: 0;
34
+ border-bottom-left-radius: 0;
35
+ border-left: 0;
36
+ }
37
+ }
38
+
39
+ // Radio groups need a text label
40
+ .input-group > [type="radio"] ~ label {
41
+ margin-right: 0;
42
+ }
43
+
44
+ // The selected radio button will be outlined when outline class is choose and in reverse
45
+ .input-group:not(.outline)
46
+ > input[type="radio"]:not(:checked)
47
+ + label[role="button"],
48
+ .input-group.outline > input[type="radio"]:checked + label[role="button"] {
49
+ --background-color: transparent;
50
+ --color: var(--primary);
51
+ }
@@ -0,0 +1,47 @@
1
+ article {
2
+ display: flex;
3
+ flex-direction: column;
4
+ margin: var(--block-spacing-vertical) 0;
5
+ padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);
6
+ border-radius: var(--border-radius);
7
+ background: var(--card-background-color);
8
+ box-shadow: var(--card-box-shadow);
9
+
10
+ > header,
11
+ > footer {
12
+ display: flex;
13
+ flex-direction: row;
14
+ justify-content: space-between;
15
+ margin-right: calc(var(--block-spacing-horizontal) * -1);
16
+ margin-left: calc(var(--block-spacing-horizontal) * -1);
17
+ padding: calc(var(--block-spacing-vertical) * 0.66)
18
+ var(--block-spacing-horizontal);
19
+ background-color: var(--card-sectionning-background-color);
20
+ }
21
+
22
+ > header {
23
+ margin-top: calc(var(--block-spacing-vertical) * -1);
24
+ margin-bottom: var(--block-spacing-vertical);
25
+ border-bottom: var(--border-width) solid var(--card-border-color);
26
+
27
+ nav ul {
28
+ &:first-of-type {
29
+ margin: inherit;
30
+ }
31
+
32
+ li {
33
+ padding: 0 calc(var(--nav-element-spacing-horizontal) / 2);
34
+ }
35
+ }
36
+ }
37
+
38
+ > main {
39
+ flex: 1;
40
+ }
41
+
42
+ > footer {
43
+ margin-top: var(--block-spacing-vertical);
44
+ margin-bottom: calc(var(--block-spacing-vertical) * -1);
45
+ border-top: var(--border-width) solid var(--card-border-color);
46
+ }
47
+ }
@@ -0,0 +1,203 @@
1
+ details[role="list"],
2
+ li[role="list"] {
3
+ position: relative;
4
+ }
5
+
6
+ details[role="list"] summary + ul,
7
+ li[role="list"] > ul {
8
+ display: flex;
9
+ z-index: 99;
10
+ position: absolute;
11
+ top: auto;
12
+ right: 0;
13
+ left: 0;
14
+ flex-direction: column;
15
+ margin: 0;
16
+ padding: 0;
17
+ border: var(--border-width) solid var(--dropdown-border-color);
18
+ border-radius: var(--border-radius);
19
+ border-top-right-radius: 0;
20
+ border-top-left-radius: 0;
21
+ background-color: var(--dropdown-background-color);
22
+ box-shadow: var(--card-box-shadow);
23
+ color: var(--dropdown-color);
24
+ white-space: nowrap;
25
+
26
+ li {
27
+ width: 100%;
28
+ margin-bottom: 0;
29
+ padding: calc(var(--form-element-spacing-vertical) * 0.5)
30
+ var(--form-element-spacing-horizontal);
31
+ list-style: none;
32
+
33
+ &:first-of-type {
34
+ margin-top: calc(var(--form-element-spacing-vertical) * 0.5);
35
+ }
36
+
37
+ &:last-of-type {
38
+ margin-bottom: calc(var(--form-element-spacing-vertical) * 0.5);
39
+ }
40
+
41
+ a {
42
+ display: block;
43
+ margin: calc(var(--form-element-spacing-vertical) * -0.5)
44
+ calc(var(--form-element-spacing-horizontal) * -1);
45
+ padding: calc(var(--form-element-spacing-vertical) * 0.5)
46
+ var(--form-element-spacing-horizontal);
47
+ overflow: hidden;
48
+ color: var(--dropdown-color);
49
+ text-decoration: none;
50
+ text-overflow: ellipsis;
51
+
52
+ &:hover {
53
+ background-color: var(--dropdown-hover-background-color);
54
+ }
55
+ }
56
+ }
57
+ }
58
+
59
+ // Marker
60
+ details[role="list"] summary,
61
+ li[role="list"] > a {
62
+ &::after {
63
+ display: block;
64
+ width: 1rem;
65
+ height: calc(1rem * var(--line-height, 1.5));
66
+ margin-inline-start: 0.5rem;
67
+ float: right;
68
+ transform: rotate(0deg);
69
+ background-position: right center;
70
+ background-size: 1rem auto;
71
+ background-repeat: no-repeat;
72
+ content: "";
73
+ }
74
+ }
75
+
76
+ // Global dropdown only
77
+ details[role="list"] {
78
+ padding: 0;
79
+ border-bottom: none;
80
+
81
+ // Style <summary> as <select>
82
+ summary {
83
+ margin-bottom: 0;
84
+
85
+ &:not([role]) {
86
+ height: calc(
87
+ 1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 +
88
+ var(--border-width) * 2
89
+ );
90
+ padding: var(--form-element-spacing-vertical)
91
+ var(--form-element-spacing-horizontal);
92
+ border: var(--border-width) solid var(--form-element-border-color);
93
+ border-radius: var(--border-radius);
94
+ background-color: var(--form-element-background-color);
95
+ color: var(--form-element-placeholder-color);
96
+ line-height: inherit;
97
+ cursor: pointer;
98
+
99
+ @if $enable-transitions {
100
+ transition: background-color var(--transition),
101
+ border-color var(--transition), color var(--transition),
102
+ box-shadow var(--transition);
103
+ }
104
+
105
+ &:active,
106
+ &:focus {
107
+ border-color: var(--form-element-active-border-color);
108
+ background-color: var(--form-element-active-background-color);
109
+ }
110
+
111
+ &:focus {
112
+ box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color);
113
+ }
114
+ }
115
+ }
116
+
117
+ // Close for details[role="list"]
118
+ &[open] summary {
119
+ border-bottom-right-radius: 0;
120
+ border-bottom-left-radius: 0;
121
+
122
+ &::before {
123
+ display: block;
124
+ z-index: 1;
125
+ position: fixed;
126
+ top: 0;
127
+ right: 0;
128
+ bottom: 0;
129
+ left: 0;
130
+ background: none;
131
+ content: "";
132
+ cursor: default;
133
+ }
134
+ }
135
+ }
136
+
137
+ // All Dropdowns inside <nav>
138
+ nav details[role="list"] summary,
139
+ nav li[role="list"] a {
140
+ display: flex;
141
+ direction: ltr;
142
+ }
143
+
144
+ nav details[role="list"] summary + ul,
145
+ nav li[role="list"] > ul {
146
+ min-width: fit-content;
147
+ border-radius: var(--border-radius);
148
+
149
+ li a {
150
+ border-radius: 0;
151
+ }
152
+ }
153
+
154
+ // Dropdowns inside <nav> as nested <details>
155
+ nav details[role="list"] {
156
+ summary,
157
+ summary:not([role]) {
158
+ height: auto;
159
+ padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);
160
+ }
161
+
162
+ &[open] summary {
163
+ border-radius: var(--border-radius);
164
+ }
165
+
166
+ summary + ul {
167
+ margin-top: var(--outline-width);
168
+ margin-inline-start: 0;
169
+ }
170
+
171
+ summary[role="link"] {
172
+ margin-bottom: calc(var(--nav-link-spacing-vertical) * -1);
173
+ line-height: var(--line-height);
174
+
175
+ + ul {
176
+ margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));
177
+ margin-inline-start: calc(var(--nav-link-spacing-horizontal) * -1);
178
+ }
179
+ }
180
+ }
181
+
182
+ // Dropdowns inside a <nav> without using <details>
183
+ li[role="list"] {
184
+ // Open on hover (for mobile)
185
+ // or on active/focus (for keyboard navigation)
186
+ &:hover > ul,
187
+ a:active ~ ul,
188
+ a:focus ~ ul {
189
+ display: flex;
190
+ }
191
+
192
+ > ul {
193
+ display: none;
194
+ margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));
195
+ margin-inline-start: calc(
196
+ var(--nav-element-spacing-horizontal) - var(--nav-link-spacing-horizontal)
197
+ );
198
+ }
199
+
200
+ > a::after {
201
+ background-image: var(--icon-chevron);
202
+ }
203
+ }
@@ -0,0 +1,181 @@
1
+ :root {
2
+ --scrollbar-width: 0px;
3
+ }
4
+
5
+ dialog {
6
+ display: flex;
7
+ z-index: 999;
8
+ position: fixed;
9
+ top: 0;
10
+ right: 0;
11
+ bottom: 0;
12
+ left: 0;
13
+ align-items: center;
14
+ justify-content: center;
15
+ width: inherit;
16
+ min-width: 100%;
17
+ height: inherit;
18
+ min-height: 100%;
19
+ padding: var(--spacing);
20
+ border: 0;
21
+ background-color: var(--modal-overlay-background-color);
22
+
23
+ // Content
24
+ article {
25
+ max-height: calc(100vh - var(--spacing) * 2);
26
+ width: calc(100vw - var(--spacing) * 2);
27
+ overflow: auto;
28
+
29
+ @if map-get($breakpoints, "sm") {
30
+ @media (min-width: map-get($breakpoints, "sm")) {
31
+ width: map-get($viewports, "sm");
32
+ }
33
+ }
34
+
35
+ @if map-get($breakpoints, "md") {
36
+ @media (min-width: map-get($breakpoints, "md")) {
37
+ width: map-get($viewports, "md");
38
+ }
39
+ }
40
+
41
+ @if map-get($breakpoints, "lg") {
42
+ @media (min-width: map-get($breakpoints, "lg")) {
43
+ width: map-get($viewports, "lg");
44
+ }
45
+ }
46
+
47
+ @if map-get($breakpoints, "xl") {
48
+ @media (min-width: map-get($breakpoints, "xl")) {
49
+ width: map-get($viewports, "xl");
50
+ }
51
+ }
52
+
53
+ > header,
54
+ > footer {
55
+ padding: calc(var(--block-spacing-vertical) * 0.5)
56
+ var(--block-spacing-horizontal);
57
+ }
58
+
59
+ > header {
60
+ .close {
61
+ margin: 0;
62
+ margin-left: var(--spacing);
63
+ float: right;
64
+ }
65
+ }
66
+
67
+ > footer {
68
+ text-align: right;
69
+
70
+ [role="button"] {
71
+ margin-bottom: 0;
72
+
73
+ &:not(:first-of-type) {
74
+ margin-left: calc(var(--spacing) * 0.5);
75
+ }
76
+ }
77
+ }
78
+
79
+ p {
80
+ &:last-of-type {
81
+ margin: 0;
82
+ }
83
+ }
84
+
85
+ // Close icon
86
+ @if $enable-classes {
87
+ .close {
88
+ display: block;
89
+ width: 1rem;
90
+ height: 1rem;
91
+ margin-top: calc(var(--block-spacing-vertical) * -0.5);
92
+ margin-bottom: var(--typography-spacing-vertical);
93
+ margin-left: auto;
94
+ background-image: var(--icon-close);
95
+ background-position: center;
96
+ background-size: auto 1rem;
97
+ background-repeat: no-repeat;
98
+ opacity: 0.5;
99
+
100
+ @if $enable-transitions {
101
+ transition: opacity var(--transition);
102
+ }
103
+
104
+ &:is([aria-current], :hover, :active, :focus) {
105
+ opacity: 1;
106
+ }
107
+ }
108
+ }
109
+ }
110
+
111
+ // Closed state
112
+ &:not([open]),
113
+ &[open="false"] {
114
+ display: none;
115
+ }
116
+ }
117
+
118
+ // Utilities
119
+ @if $enable-classes {
120
+ .modal-is-open {
121
+ padding-right: var(--scrollbar-width, 0px);
122
+ overflow: hidden;
123
+ pointer-events: none;
124
+
125
+ dialog {
126
+ pointer-events: auto;
127
+ }
128
+ }
129
+ }
130
+
131
+ // Animations
132
+ @if ($enable-classes and $enable-transitions) {
133
+ $animation-duration: 0.2s;
134
+
135
+ :where(.modal-is-opening, .modal-is-closing) {
136
+ dialog,
137
+ dialog > article {
138
+ animation-duration: $animation-duration;
139
+ animation-timing-function: ease-in-out;
140
+ animation-fill-mode: both;
141
+ }
142
+
143
+ dialog {
144
+ animation-duration: ($animation-duration * 4);
145
+ animation-name: fadeIn;
146
+
147
+ > article {
148
+ animation-delay: $animation-duration;
149
+ animation-name: slideInDown;
150
+ }
151
+ }
152
+ }
153
+
154
+ .modal-is-closing {
155
+ dialog,
156
+ dialog > article {
157
+ animation-delay: 0s;
158
+ animation-direction: reverse;
159
+ }
160
+ }
161
+
162
+ @keyframes fadeIn {
163
+ from {
164
+ background-color: transparent;
165
+ }
166
+ to {
167
+ background-color: var(--modal-overlay-background-color);
168
+ }
169
+ }
170
+
171
+ @keyframes slideInDown {
172
+ from {
173
+ transform: translateY(-100%);
174
+ opacity: 0;
175
+ }
176
+ to {
177
+ transform: translateY(0);
178
+ opacity: 1;
179
+ }
180
+ }
181
+ }
@@ -0,0 +1,79 @@
1
+ nav,
2
+ nav ul {
3
+ display: flex;
4
+ }
5
+
6
+ nav {
7
+ justify-content: space-between;
8
+
9
+ ol,
10
+ ul {
11
+ align-items: center;
12
+ margin-bottom: 0;
13
+ padding: 0;
14
+ list-style: none;
15
+
16
+ &:first-of-type {
17
+ margin-left: calc(var(--nav-element-spacing-horizontal) * -1);
18
+ }
19
+ &:last-of-type {
20
+ margin-right: calc(var(--nav-element-spacing-horizontal) * -1);
21
+ }
22
+ }
23
+
24
+ li {
25
+ display: inline-block;
26
+ margin: 0;
27
+ padding: var(--nav-element-spacing-vertical)
28
+ var(--nav-element-spacing-horizontal);
29
+
30
+ // Minimal support for buttons and forms elements
31
+ > * {
32
+ --spacing: 0;
33
+ }
34
+ }
35
+
36
+ :where(a, [role="link"]) {
37
+ display: inline-block;
38
+ margin: calc(var(--nav-link-spacing-vertical) * -1)
39
+ calc(var(--nav-link-spacing-horizontal) * -1);
40
+ padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);
41
+ border-radius: var(--border-radius);
42
+ text-decoration: none;
43
+
44
+ &:is([aria-current], :hover, :active, :focus) {
45
+ text-decoration: none;
46
+ }
47
+ }
48
+
49
+ // Minimal support for role="button"
50
+ [role="button"] {
51
+ margin-right: inherit;
52
+ margin-left: inherit;
53
+ padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);
54
+ }
55
+ }
56
+
57
+ // Vertical Nav
58
+ aside {
59
+ nav,
60
+ ol,
61
+ ul,
62
+ li {
63
+ display: block;
64
+ }
65
+
66
+ li {
67
+ padding: calc(var(--nav-element-spacing-vertical) * 0.5)
68
+ var(--nav-element-spacing-horizontal);
69
+
70
+ a {
71
+ display: block;
72
+ }
73
+
74
+ // Minimal support for links as buttons
75
+ [role="button"] {
76
+ margin: inherit;
77
+ }
78
+ }
79
+ }