Skip to content

Commit 7fb73ae

Browse files
committed
Better settings menu and default visualizer
1 parent d60c566 commit 7fb73ae

4 files changed

Lines changed: 969 additions & 740 deletions

File tree

Build/src/components/Settings.module.css

Lines changed: 171 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,131 @@
1313

1414
.sheetContent {
1515
width: 100%;
16-
max-width: 400px;
16+
max-width: 860px;
1717
background-color: var(--popup);
1818
border-radius: 0 1.5rem 1.5rem 0;
19+
display: flex;
20+
flex-direction: column;
21+
height: 100%;
22+
}
23+
24+
.sheetHeader {
25+
padding: var(--spacing-4);
26+
margin-bottom: var(--spacing-4);
27+
border-bottom: 1px solid var(--border);
1928
}
2029

2130
.settingsContent {
2231
flex: 1;
32+
display: flex;
33+
overflow: hidden;
34+
padding: 0;
35+
margin: var(--spacing-3) 0;
36+
}
37+
38+
.settingsLayout {
39+
display: flex;
40+
gap: var(--spacing-4);
41+
align-items: stretch;
42+
width: 100%;
43+
}
44+
45+
.sidebarShell {
46+
flex-shrink: 0;
47+
min-width: 230px;
48+
max-width: 240px;
49+
display: flex;
50+
align-items: flex-start;
51+
padding-right: var(--spacing-2);
52+
position: relative;
53+
}
54+
55+
.settingsSidebar {
56+
display: flex;
57+
flex-direction: column;
58+
gap: var(--spacing-3);
59+
width: 100%;
60+
padding: var(--spacing-4);
61+
background: var(--surface);
62+
border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
63+
border: 1px solid var(--border);
64+
box-shadow: var(--shadow-sm, 0 8px 20px rgba(0, 0, 0, 0.06));
65+
}
66+
67+
.sidebarButton {
68+
display: flex;
69+
align-items: flex-start;
70+
gap: var(--spacing-3);
71+
padding: var(--spacing-3) var(--spacing-4);
72+
border-radius: var(--radius-lg);
73+
border: 1px solid transparent;
74+
background: var(--surface);
75+
cursor: pointer;
76+
text-align: left;
77+
transition: border-color var(--animation-duration-fast) ease,
78+
background-color var(--animation-duration-fast) ease,
79+
color var(--animation-duration-fast) ease;
80+
color: var(--muted-foreground);
81+
}
82+
83+
.sidebarButton:hover {
84+
border-color: var(--border);
85+
background: var(--surface-transparent-05);
86+
color: var(--foreground);
87+
}
88+
89+
.sidebarButtonActive {
90+
border-color: var(--primary-border, var(--primary));
91+
background: var(--primary-transparent-1, rgba(0, 0, 0, 0.04));
92+
color: var(--foreground);
93+
box-shadow: var(--shadow-sm, 0 4px 10px rgba(0, 0, 0, 0.08));
94+
}
95+
96+
.sidebarButtonIcon {
97+
flex-shrink: 0;
98+
color: inherit;
99+
}
100+
101+
.sidebarButtonText {
102+
display: flex;
103+
flex-direction: column;
104+
gap: var(--spacing-1);
105+
}
106+
107+
.sidebarButtonLabel {
108+
font-weight: 600;
109+
font-size: 0.95rem;
110+
color: inherit;
111+
}
112+
113+
.sidebarButtonDescription {
114+
font-size: 0.8rem;
115+
color: var(--muted-foreground);
116+
}
117+
118+
.sidebarButtonActive .sidebarButtonDescription,
119+
.sidebarButton:hover .sidebarButtonDescription {
120+
color: inherit;
121+
}
122+
123+
.categoryContent {
124+
flex: 1;
125+
display: flex;
126+
flex-direction: column;
127+
gap: var(--spacing-6);
128+
min-width: 0;
129+
max-height: 100%;
23130
overflow-y: auto;
24-
padding: var(--spacing-6) var(--spacing-4);
25-
margin: var(--spacing-6) 0;
131+
padding-right: var(--spacing-1);
132+
background: var(--surface);
133+
border: 1px solid var(--border);
134+
border-left: none;
135+
border-radius: var(--radius-lg) 0 0 var(--radius-lg);
136+
padding: var(--spacing-4);
26137
}
27138

28139
.section {
29-
margin-bottom: var(--spacing-12);
140+
margin-bottom: var(--spacing-6);
30141
padding: var(--spacing-4);
31142
background: var(--surface);
32143
border-radius: var(--radius-lg);
@@ -149,6 +260,62 @@
149260
@media (max-width: 640px) {
150261
.sheetContent {
151262
max-width: 100%;
263+
height: auto;
264+
border-radius: 0;
265+
}
266+
267+
.settingsContent {
268+
padding: var(--spacing-3);
269+
margin: 0;
270+
overflow: visible;
271+
}
272+
273+
.settingsLayout {
274+
flex-direction: column;
275+
gap: var(--spacing-3);
276+
}
277+
278+
.sidebarShell {
279+
min-width: 0;
280+
max-width: none;
281+
padding-right: 0;
282+
overflow: visible;
283+
}
284+
285+
.settingsSidebar {
286+
flex-direction: column;
287+
padding: var(--spacing-3);
288+
border-radius: var(--radius-lg);
289+
border: 1px solid var(--border);
290+
box-shadow: none;
291+
}
292+
293+
.categoryContent {
294+
border: 1px solid var(--border);
295+
border-radius: var(--radius-lg);
296+
border-left: 1px solid var(--border);
297+
max-height: none;
298+
overflow: visible;
299+
padding: var(--spacing-3);
300+
padding-right: var(--spacing-3);
301+
}
302+
303+
.sidebarButton {
304+
width: 100%;
305+
justify-content: flex-start;
306+
padding: var(--spacing-3);
307+
}
308+
309+
.sidebarButtonText {
310+
gap: var(--spacing-1);
311+
}
312+
313+
.sidebarButtonLabel {
314+
font-size: 0.875rem;
315+
}
316+
317+
.sidebarButtonDescription {
318+
display: none;
152319
}
153320

154321
.settingItem {

0 commit comments

Comments
 (0)