@knadh/oat 0.3.0 → 0.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.
package/README.md CHANGED
@@ -10,6 +10,8 @@ I wrote this to use in my own projects after getting sick of the ridiculous bloa
10
10
 
11
11
  See live demo and docs at [**oat.ink**](https://oat.ink)
12
12
 
13
+ **IMPORTANT:** The lib is currently sub v1 and is likely to have breaking changes until it hits v1.
14
+
13
15
  -------------
14
16
 
15
17
  <img width="739" height="735" alt="image" src="https://github.com/user-attachments/assets/b0a2f55c-659d-4aab-922c-b13d89eeab36" />
package/css/00-base.css CHANGED
@@ -3,6 +3,7 @@
3
3
  @layer base {
4
4
  *, *::before, *::after {
5
5
  box-sizing: border-box;
6
+ -webkit-tap-highlight-color: transparent;
6
7
  }
7
8
 
8
9
  * {
@@ -108,7 +109,7 @@
108
109
  code {
109
110
  font-family: var(--font-mono);
110
111
  font-size: 0.875em;
111
- padding: 0.125rem 0.25rem;
112
+ padding: calc(var(--space-1) / 2) var(--space-1);
112
113
  background-color: var(--faint);
113
114
  border-radius: var(--radius-small);
114
115
  }
@@ -139,7 +140,7 @@
139
140
  hr {
140
141
  border: none;
141
142
  border-top: 1px solid var(--border);
142
- margin: var(--space-8) 0;
143
+ margin: var(--space-2) 0;
143
144
  }
144
145
 
145
146
  ul, ol {
@@ -161,10 +162,14 @@
161
162
 
162
163
  mark {
163
164
  background-color: rgb(from var(--warning) r g b / 0.3);
164
- padding: 0.125rem 0.25rem;
165
+ padding: calc(var(--space-1) / 2) var(--space-1);
165
166
  border-radius: var(--radius-small);
166
167
  }
167
168
 
169
+ [hidden] {
170
+ display: none;
171
+ }
172
+
168
173
  :focus-visible {
169
174
  outline: 2px solid var(--ring);
170
175
  outline-offset: 2px;
package/css/01-theme.css CHANGED
@@ -1,27 +1,29 @@
1
1
  @layer theme {
2
2
  :root {
3
- /* Default light theme variables */
4
- --background: #fff;
5
- --foreground: #09090b;
6
- --card: #fff;
7
- --card-foreground: #09090b;
8
- --primary: #574747;
9
- --primary-foreground: #fafafa;
10
- --secondary: #f4f4f5;
11
- --secondary-foreground: #574747;
12
- --muted: #f4f4f5;
13
- --muted-foreground: #71717a;
14
- --faint: #fafafa;
15
- --accent: #f4f4f5;
16
- --danger: #df514c;
17
- --danger-foreground: #fafafa;
18
- --success: #4caf50;
19
- --success-foreground: #fafafa;
20
- --warning: #ff8c00;
3
+ color-scheme: light dark;
4
+
5
+ --background: light-dark(#fff, #09090b);
6
+ --foreground: light-dark(#09090b, #fafafa);
7
+ --card: light-dark(#fff, #18181b);
8
+ --card-foreground: light-dark(#09090b, #fafafa);
9
+ --primary: light-dark(#574747, #fafafa);
10
+ --primary-foreground: light-dark(#fafafa, #18181b);
11
+ --secondary: light-dark(#f4f4f5, #27272a);
12
+ --secondary-foreground: light-dark(#574747, #fafafa);
13
+ --muted: light-dark(#f4f4f5, #27272a);
14
+ --muted-foreground: light-dark(#71717a, #a1a1aa);
15
+ --faint: light-dark(#fafafa, #1e1e21);
16
+ --faint-foreground: light-dark(#a1a1aa, #71717a);
17
+ --accent: light-dark(#f4f4f5, #27272a);
18
+ --danger: light-dark(#d32f2f, #f4807b);
19
+ --danger-foreground: light-dark(#fafafa, #18181b);
20
+ --success: light-dark(#008032, #6cc070);
21
+ --success-foreground: light-dark(#fafafa, #18181b);
22
+ --warning: light-dark(#a65b00, #f0a030);
21
23
  --warning-foreground: #09090b;
22
- --border: #d4d4d8;
23
- --input: #d4d4d8;
24
- --ring: #574747;
24
+ --border: light-dark(#d4d4d8, #52525b);
25
+ --input: light-dark(#d4d4d8, #52525b);
26
+ --ring: light-dark(#574747, #d4d4d8);
25
27
 
26
28
  /* ==================== */
27
29
  --space-1: 0.25rem;
@@ -74,26 +76,4 @@
74
76
  --z-dropdown: 50;
75
77
  --z-modal: 200;
76
78
  }
77
-
78
- [data-theme="dark"] {
79
- color-scheme: dark;
80
- --background: #09090b;
81
- --foreground: #fafafa;
82
- --card: #18181b;
83
- --card-foreground: #fafafa;
84
- --primary: #fafafa;
85
- --primary-foreground: #18181b;
86
- --secondary: #27272a;
87
- --secondary-foreground: #fafafa;
88
- --muted: #27272a;
89
- --muted-foreground: #a1a1aa;
90
- --faint: #1e1e21;
91
- --accent: #27272a;
92
- --danger-foreground: #fafafa;
93
- --success-foreground: #fafafa;
94
- --warning-foreground: #09090b;
95
- --border: #52525b;
96
- --input: #52525b;
97
- --ring: #d4d4d8;
98
- }
99
79
  }
package/css/accordion.css CHANGED
@@ -57,6 +57,6 @@
57
57
  }
58
58
 
59
59
  details > *:not(summary) {
60
- padding: var(--space-4);
60
+ margin: var(--space-4);
61
61
  }
62
62
  }
package/css/alert.css CHANGED
@@ -1,20 +1,14 @@
1
1
  @layer components {
2
2
  [role="alert"] {
3
- --bg-amount: 8%;
4
-
5
3
  position: relative;
6
4
  display: flex;
7
5
  gap: var(--space-3);
8
- padding: var(--space-4);
6
+ padding: var(--space-4) var(--space-6);
9
7
  background-color: var(--background);
10
8
  border: 1px solid var(--border);
11
9
  border-radius: var(--radius-medium);
12
10
  font-size: var(--text-7);
13
11
 
14
- [data-theme="dark"] & {
15
- --bg-amount: 20%;
16
- }
17
-
18
12
  &[data-variant] {
19
13
  border: none;
20
14
  }
@@ -22,7 +16,10 @@
22
16
  &[data-variant="error"],
23
17
  &[data-variant="danger"] {
24
18
  color: var(--danger);
25
- background-color: color-mix(in srgb, var(--danger) var(--bg-amount), transparent);
19
+ background-color: light-dark(
20
+ color-mix(in srgb, var(--danger) 8%, transparent),
21
+ color-mix(in srgb, var(--danger) 20%, transparent)
22
+ );
26
23
 
27
24
  & a {
28
25
  color: var(--danger);
@@ -31,7 +28,10 @@
31
28
 
32
29
  &[data-variant="success"] {
33
30
  color: var(--success);
34
- background-color: color-mix(in srgb, var(--success) var(--bg-amount), transparent);
31
+ background-color: light-dark(
32
+ color-mix(in srgb, var(--success) 8%, transparent),
33
+ color-mix(in srgb, var(--success) 20%, transparent)
34
+ );
35
35
 
36
36
  & a {
37
37
  color: var(--success);
@@ -40,7 +40,10 @@
40
40
 
41
41
  &[data-variant="warning"] {
42
42
  color: var(--warning);
43
- background-color: color-mix(in srgb, var(--warning) var(--bg-amount), transparent);
43
+ background-color: light-dark(
44
+ color-mix(in srgb, var(--warning) 8%, transparent),
45
+ color-mix(in srgb, var(--warning) 20%, transparent)
46
+ );
44
47
 
45
48
  & a {
46
49
  color: var(--warning);
package/css/badge.css CHANGED
@@ -1,7 +1,5 @@
1
1
  @layer components {
2
2
  .badge {
3
- --bg-amount: 12%;
4
-
5
3
  display: inline-flex;
6
4
  align-items: center;
7
5
  gap: var(--space-1);
@@ -13,10 +11,6 @@
13
11
  color: var(--primary-foreground);
14
12
  border-radius: var(--radius-full);
15
13
 
16
- [data-theme="dark"] & {
17
- --bg-amount: 40%;
18
- }
19
-
20
14
  &.secondary {
21
15
  background-color: var(--secondary);
22
16
  color: var(--secondary-foreground);
@@ -30,17 +24,26 @@
30
24
 
31
25
  &.success {
32
26
  color: var(--success);
33
- background-color: color-mix(in srgb, var(--success) var(--bg-amount), transparent);
27
+ background-color: light-dark(
28
+ color-mix(in srgb, var(--success) 10%, transparent),
29
+ color-mix(in srgb, var(--success) 30%, transparent)
30
+ );
34
31
  }
35
32
 
36
33
  &.warning {
37
34
  color: var(--warning);
38
- background-color: color-mix(in srgb, var(--warning) var(--bg-amount), transparent);
35
+ background-color: light-dark(
36
+ color-mix(in srgb, var(--warning) 10%, transparent),
37
+ color-mix(in srgb, var(--warning) 30%, transparent)
38
+ );
39
39
  }
40
40
 
41
41
  &.danger {
42
42
  color: var(--danger);
43
- background-color: color-mix(in srgb, var(--danger) var(--bg-amount), transparent);
43
+ background-color: light-dark(
44
+ color-mix(in srgb, var(--danger) 10%, transparent),
45
+ color-mix(in srgb, var(--danger) 30%, transparent)
46
+ );
44
47
  }
45
48
  }
46
49
  }
package/css/button.css CHANGED
@@ -1,10 +1,11 @@
1
1
  @layer base {
2
2
  :is(button, [type=submit], [type=reset], [type=button], a.button), ::file-selector-button {
3
+ --_hov: color-mix(in srgb, var(--primary), white 25%);
4
+
3
5
  display: inline-flex;
4
6
  align-items: center;
5
7
  justify-content: center;
6
8
  gap: var(--space-2);
7
- /* height: 2.5rem; */
8
9
  padding: var(--space-2) var(--space-4);
9
10
  font-size: var(--text-7);
10
11
  font-weight: var(--font-medium);
@@ -17,10 +18,13 @@
17
18
  border: 1px solid;
18
19
  border-color: rgb(from #fff r g b / 0.15) rgb(from #000 r g b / 0.2) rgb(from #000 r g b / 0.2) rgb(from #fff r g b / 0.15);
19
20
  transition: background-color var(--transition-fast), opacity var(--transition-fast), transform var(--transition-fast);
20
- cursor: pointer;
21
+
22
+ &:not(:disabled) {
23
+ cursor: pointer;
24
+ }
21
25
 
22
26
  &:hover:not(:disabled) {
23
- background-color: color-mix(in srgb, var(--primary), white 25%);
27
+ background-color: var(--_hov);
24
28
  }
25
29
 
26
30
  &:active:not(:disabled) {
@@ -28,74 +32,51 @@
28
32
  }
29
33
 
30
34
  &[data-variant="secondary"] {
35
+ --_hov: color-mix(in srgb, var(--secondary), black 10%);
31
36
  background-color: var(--secondary);
32
37
  color: var(--secondary-foreground);
33
38
  border-color: rgb(from #fff r g b / 0.5) rgb(from #000 r g b / 0.1) rgb(from #000 r g b / 0.1) rgb(from #fff r g b / 0.5);
34
-
35
- &:hover:not(:disabled) {
36
- background-color: color-mix(in srgb, var(--secondary), black 10%);
37
- }
38
39
  }
39
40
 
40
41
  &[data-variant="danger"] {
42
+ --_hov: color-mix(in srgb, var(--danger), black 15%);
41
43
  background-color: var(--danger);
42
44
  color: var(--danger-foreground);
43
-
44
- &:hover:not(:disabled) {
45
- background-color: color-mix(in srgb, var(--danger), black 15%);
46
- }
47
45
  }
48
46
 
49
- &.outline {
47
+ &:is(.outline, .ghost) {
48
+ --_hov: var(--accent);
50
49
  background-color: transparent;
51
- border-color: var(--border);
50
+ color: var(--foreground);
52
51
 
53
- &:not([data-variant]) {
54
- color: var(--foreground);
55
- }
56
52
  &[data-variant="danger"] {
53
+ --_hov: color-mix(in srgb, var(--danger), transparent 90%);
57
54
  color: var(--danger);
58
- border-color: var(--danger);
59
- &:hover:not(:disabled) {
60
- background-color: color-mix(in srgb, var(--danger), transparent 90%);
61
- }
62
55
  }
56
+
63
57
  &[data-variant="secondary"] {
58
+ --_hov: color-mix(in srgb, var(--secondary), transparent 80%);
64
59
  color: var(--secondary-foreground);
65
- border-color: var(--secondary);
66
- &:hover:not(:disabled) {
67
- background-color: color-mix(in srgb, var(--secondary), transparent 80%);
68
- }
69
- }
70
- &:hover:not(:disabled):not([data-variant]) {
71
- background-color: var(--accent);
72
60
  }
73
61
  }
74
62
 
75
- &.ghost {
76
- background-color: transparent;
77
- border-color: transparent;
63
+ &.outline {
64
+ border-color: var(--border);
78
65
 
79
- &:not([data-variant]) {
80
- color: var(--foreground);
81
- }
82
66
  &[data-variant="danger"] {
83
- color: var(--danger);
84
- &:hover:not(:disabled) {
85
- background-color: color-mix(in srgb, var(--danger), transparent 90%);
86
- }
67
+ border-color: var(--danger);
87
68
  }
69
+
88
70
  &[data-variant="secondary"] {
89
- color: var(--secondary-foreground);
90
- &:hover:not(:disabled) {
91
- background-color: color-mix(in srgb, var(--secondary), transparent 80%);
92
- }
93
- }
94
- &:hover:not(:disabled):not([data-variant]) {
95
- background-color: var(--accent);
71
+ border-color: var(--secondary);
96
72
  }
97
73
  }
98
74
 
75
+ &.ghost {
76
+ /* Same as .outline but no border. */
77
+ border-color: transparent;
78
+ }
79
+
99
80
  &.small {
100
81
  padding: var(--space-1) var(--space-3);
101
82
  font-size: var(--text-8);
@@ -134,23 +115,27 @@
134
115
 
135
116
  @layer components {
136
117
  menu.buttons {
118
+ list-style-type: none;
137
119
  padding-inline-start: 0;
138
120
  display: inline-flex;
139
121
 
140
- & > :is(button, [type=button], [type=submit], [type=reset], a.button) {
141
- border-radius: 0;
142
-
143
- &:first-child {
122
+ /* In menu.buttons, <li> children are expected to have just one child, which is a button/or a.button */
123
+ & > li {
124
+ &:first-child > * {
144
125
  border-start-start-radius: var(--radius-medium);
145
126
  border-end-start-radius: var(--radius-medium);
146
127
  }
147
128
 
148
- &:last-child {
129
+ &:last-child > * {
149
130
  border-start-end-radius: var(--radius-medium);
150
131
  border-end-end-radius: var(--radius-medium);
151
132
  }
152
133
 
153
- &:not(:last-child) {
134
+ & > * {
135
+ border-radius: 0;
136
+ }
137
+
138
+ &:not(:last-child) > * {
154
139
  border-inline-end: 1px solid rgb(from var(--primary-foreground) r g b / 0.2);
155
140
  }
156
141
  }
package/css/dialog.css CHANGED
@@ -3,8 +3,7 @@
3
3
  position: fixed;
4
4
  inset: 0;
5
5
  z-index: var(--z-modal);
6
- width: 100%;
7
- max-width: 32rem;
6
+ width: min(100% - 2rem, 32rem);
8
7
  max-height: 85vh;
9
8
  margin: auto;
10
9
  padding: 0;
package/css/dropdown.css CHANGED
@@ -28,10 +28,6 @@
28
28
  transform: translateY(-4px);
29
29
  }
30
30
  }
31
-
32
- hr {
33
- margin: var(--space-1) 0;
34
- }
35
31
  }
36
32
 
37
33
  [role="menuitem"] {
package/css/form.css CHANGED
@@ -32,6 +32,7 @@
32
32
  outline: none;
33
33
  border-color: var(--ring);
34
34
  box-shadow: 0 0 0 2px rgb(from var(--ring) r g b / 0.2);
35
+ z-index: 1;
35
36
  }
36
37
 
37
38
  &:disabled {
@@ -67,6 +68,7 @@
67
68
  width: 1rem;
68
69
  height: 1rem;
69
70
  margin: 0;
71
+ position: relative;
70
72
  background-color: var(--background);
71
73
  border: 1px solid var(--input);
72
74
  transition: background-color var(--transition-fast), border-color var(--transition-fast);
@@ -74,22 +76,24 @@
74
76
  &:checked {
75
77
  background-color: var(--primary);
76
78
  border-color: var(--primary);
79
+
80
+ &::after {
81
+ content: "";
82
+ position: absolute;
83
+ inset: 0;
84
+ background-color: var(--primary-foreground);
85
+ mask-position: center;
86
+ mask-repeat: no-repeat;
87
+ mask-size: 100%;
88
+ }
77
89
  }
78
90
  }
79
91
 
80
92
  input[type=checkbox] {
81
93
  border-radius: var(--radius-small);
82
- position: relative;
83
94
 
84
95
  &:checked::after {
85
- content: "";
86
- position: absolute;
87
- inset: 0;
88
- background-color: var(--primary-foreground);
89
96
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='4'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
90
- mask-size: 90%;
91
- mask-position: center;
92
- mask-repeat: no-repeat;
93
97
  }
94
98
 
95
99
  &[role=switch] {
@@ -101,7 +105,6 @@
101
105
  height: var(--switch-height);
102
106
  border-radius: var(--radius-full);
103
107
  background-color: var(--input);
104
- position: relative;
105
108
 
106
109
  &::before {
107
110
  content: "";
@@ -133,17 +136,9 @@
133
136
 
134
137
  input[type=radio] {
135
138
  border-radius: var(--radius-full);
136
- position: relative;
137
139
 
138
140
  &:checked::after {
139
- content: "";
140
- position: absolute;
141
- inset: 0;
142
- background-color: var(--primary-foreground);
143
141
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='4' fill='currentColor'/%3E%3C/svg%3E");
144
- mask-size: 100%;
145
- mask-position: center;
146
- mask-repeat: no-repeat;
147
142
  }
148
143
  }
149
144
 
@@ -206,7 +201,10 @@
206
201
  & > :is(input, textarea, select) {
207
202
  flex: 1;
208
203
  margin-block-start: 0;
209
- border-inline-end: 0;
204
+
205
+ &:not(:focus) {
206
+ border-inline-end-color: transparent;
207
+ }
210
208
  }
211
209
 
212
210
  & > :is(input, textarea, select, button) {
package/css/sidebar.css CHANGED
@@ -1,30 +1,24 @@
1
1
  @layer components {
2
- :root {
3
- --topnav-height: var(--space-12);
4
- --sidebar-width: 14rem;
5
- }
6
-
7
2
  [data-sidebar-layout] {
8
3
  --topnav-offset: 0px;
9
- --topnav-scroll-offset: 0px;
10
4
 
11
5
  display: grid;
12
- grid-template-columns: var(--sidebar-width) 1fr;
6
+ grid-template-columns: 14rem 1fr;
13
7
  min-height: 100dvh;
14
8
  gap: var(--space-4);
15
9
 
16
10
  &:has(nav[data-topnav]) {
17
- --topnav-offset: var(--topnav-height);
18
- --topnav-scroll-offset: calc(var(--topnav-height) + var(--space-6));
11
+ --topnav-offset: var(--space-12);
12
+
13
+ > main [id] {
14
+ scroll-margin-block-start: calc(var(--space-12) + var(--space-6));
15
+ }
19
16
  }
20
17
 
21
18
  > main {
22
19
  min-width: 0;
23
20
  margin-block-start: var(--topnav-offset);
24
-
25
- [id] {
26
- scroll-margin-block-start: var(--topnav-scroll-offset);
27
- }
21
+ padding-block-start: var(--space-8);
28
22
  }
29
23
 
30
24
  > aside[data-sidebar] {
@@ -35,9 +29,9 @@
35
29
  align-self: start;
36
30
  background-color: var(--background);
37
31
  border-inline-end: 1px solid var(--border);
32
+ box-shadow: var(--shadow-medium);
38
33
  display: flex;
39
34
  flex-direction: column;
40
- width: var(--sidebar-width);
41
35
 
42
36
  > :is(header, footer) {
43
37
  flex-shrink: 0;
@@ -53,6 +47,7 @@
53
47
  min-height: 0;
54
48
  overflow-y: auto;
55
49
  padding: var(--space-3) var(--space-2);
50
+ font-size: var(--text-7);
56
51
 
57
52
  ul {
58
53
  list-style: none;
@@ -71,7 +66,6 @@
71
66
  display: flex;
72
67
  gap: var(--space-2);
73
68
  padding: var(--space-1) var(--space-3);
74
- font-size: var(--text-7);
75
69
  color: var(--foreground);
76
70
  text-decoration: none;
77
71
  border-radius: var(--radius-small);
@@ -93,11 +87,7 @@
93
87
 
94
88
  summary {
95
89
  justify-content: flex-start;
96
- gap: var(--space-2);
97
90
  padding: var(--space-2) var(--space-3);
98
- font-size: var(--text-7);
99
- font-weight: var(--font-medium);
100
- color: var(--foreground);
101
91
  border-radius: var(--radius-small);
102
92
 
103
93
  &::after {
@@ -112,10 +102,9 @@
112
102
 
113
103
  nav[data-topnav] {
114
104
  position: fixed;
115
- inset-block-start: 0;
116
- inset-inline: 0;
105
+ inset: 0 0 auto;
117
106
  z-index: 5;
118
- min-height: var(--topnav-height);
107
+ min-height: var(--space-12);
119
108
  display: flex;
120
109
  align-items: center;
121
110
  gap: var(--space-3);
@@ -123,6 +112,10 @@
123
112
  background-color: var(--background);
124
113
  border-bottom: 1px solid var(--border);
125
114
  box-shadow: var(--shadow-small);
115
+
116
+ a {
117
+ text-decoration: none;
118
+ }
126
119
  }
127
120
 
128
121
  :is([data-sidebar-toggle], [data-sidebar-header]) {
@@ -134,34 +127,35 @@
134
127
  background: none;
135
128
  border: 1px solid var(--border);
136
129
  border-radius: var(--radius-small);
137
- cursor: pointer;
138
- }
139
-
140
- [data-sidebar-layout="always"] [data-sidebar-toggle] {
141
- display: inline-block;
142
130
  }
143
131
 
144
- [data-sidebar-layout="always"] {
145
- transition: grid-template-columns var(--transition);
132
+ @media (min-width: 769px) {
133
+ [data-sidebar-layout="always"] {
134
+ transition: grid-template-columns var(--transition);
146
135
 
147
- > aside[data-sidebar] {
148
- transform: translateX(0);
149
- opacity: 1;
150
- transition: transform var(--transition), opacity var(--transition), visibility var(--transition);
151
- }
152
- }
136
+ [data-sidebar-toggle] {
137
+ display: inline-block;
138
+ }
153
139
 
154
- [data-sidebar-layout="always"][data-sidebar-open] {
155
- grid-template-columns: 0px 1fr;
156
- gap: 0;
140
+ > aside[data-sidebar] {
141
+ transform: translateX(0);
142
+ opacity: 1;
143
+ transition: transform var(--transition), opacity var(--transition), visibility var(--transition);
144
+ }
157
145
 
158
- > aside[data-sidebar] {
159
- overflow: hidden;
160
- min-width: 0;
161
- transform: translateX(-100%);
162
- opacity: 0;
163
- visibility: hidden;
164
- border-inline-end: none;
146
+ &[data-sidebar-open] {
147
+ grid-template-columns: 0px 1fr;
148
+ gap: 0;
149
+
150
+ > aside[data-sidebar] {
151
+ overflow: hidden;
152
+ min-width: 0;
153
+ transform: translateX(-100%);
154
+ opacity: 0;
155
+ visibility: hidden;
156
+ border-inline-end: none;
157
+ }
158
+ }
165
159
  }
166
160
  }
167
161
 
@@ -171,9 +165,7 @@
171
165
 
172
166
  > aside[data-sidebar] {
173
167
  position: fixed;
174
- top: var(--topnav-offset);
175
168
  left: 0;
176
- height: calc(100dvh - var(--topnav-offset));
177
169
  width: 16rem;
178
170
  transform: translateX(-100%);
179
171
  transition: transform var(--transition);
@@ -184,17 +176,6 @@
184
176
  transform: translateX(0);
185
177
  }
186
178
  }
187
- [data-sidebar-layout="always"][data-sidebar-open] {
188
- grid-template-columns: 1fr;
189
- gap: var(--space-4);
190
-
191
- > aside[data-sidebar] {
192
- opacity: 1;
193
- visibility: visible;
194
- transform: translateX(0);
195
- }
196
- }
197
-
198
179
  [data-sidebar-toggle] { display: inline-block; }
199
180
 
200
181
  [data-sidebar-header] {