users/ryan/modules/simple-bar/simple-bar-source/lib/styles/components/settings/settings.js

8d7aa6e03293de5432a33e6ed55f3f4b2a4f095c · 9.1 KB · 408 lines raw

1 // Styles for /lib/components/settings/settings.jsx component
2 import { userWidgetsCreatorStyles } from "./user-widgets-creator";
3 import { aerospaceDisplayManagerStyles } from "./aerospace-display-manager";
4
5 export const settingsStyles = /* css */ `
6 .settings {
7 z-index: 1;
8 }
9 .settings__overlay {
10 position: fixed;
11 top: 0;
12 left: 0;
13 width: 100%;
14 height: 100%;
15 z-index: 0;
16 }
17 .simple-bar--floating .settings__overlay,
18 .simple-bar--no-bar-background .settings__overlay {
19 display: none;
20 }
21 .simple-bar--on-bottom .settings__overlay {
22 top: unset;
23 bottom: 28px;
24 }
25 .settings__outer {
26 --settings-width: 620px;
27 position: fixed;
28 left: calc(50% - (var(--settings-width) / 2));
29 top: calc(var(--bar-height) + 10px);
30 width: var(--settings-width);
31 display: flex;
32 flex-direction: column;
33 align-items: stretch;
34 padding: 20px;
35 background-color: var(--main);
36 border-radius: var(--item-radius);
37 box-shadow: var(--light-shadow);
38 z-index: 1;
39 }
40 .simple-bar--floating .settings__outer {
41 top: calc(var(--bar-height) + 20px);
42 }
43 .simple-bar--on-bottom .settings__outer {
44 top: unset;
45 bottom: calc(var(--bar-height) + 10px);
46 }
47 .settings__header {
48 display: flex;
49 align-items: center;
50 margin-bottom: 14px;
51 font-size: calc(var(--font-size) * 1.4);
52 font-weight: 700;
53 }
54 .settings__header-dot {
55 flex: 0 0 12px;
56 width: 12px;
57 height: 12px;
58 border-radius: 50%;
59 margin-right: 9px;
60 }
61 .settings__header-dot--close {
62 padding: 0;
63 background-color: var(--red);
64 cursor: pointer;
65 user-select: none;
66 border: 0;
67 -webkit-user-select: none;
68 }
69 .settings__header-dot--disabled {
70 background-color: grey;
71 opacity: 0.3;
72 }
73 .settings__tabs {
74 width: fit-content;
75 display: flex;
76 gap: 10px;
77 margin-bottom: 10px;
78 padding: 5px;
79 background-color: var(--minor);
80 border-radius: var(--item-radius);
81 }
82 .settings__tab {
83 flex: 0 0 auto;
84 display: flex;
85 align-items: center;
86 padding: 5px;
87 font-family: var(--font);
88 font-size: var(--font-size);
89 color: var(--foreground);
90 text-align: center;
91 background-color: transparent;
92 border-radius: var(--item-radius);
93 border: 0;
94 outline: none;
95 cursor: pointer;
96 user-select: none;
97 -webkit-user-select: none;
98 transition: color 160ms var(--transition-easing), background-color 160ms var(--transition-easing),
99 box-shadow 160ms var(--transition-easing);
100 }
101 .settings__tab:hover {
102 box-shadow: var(--hover-ring);
103 }
104 .settings__tab:active {
105 box-shadow: var(--focus-ring);
106 }
107 .settings__tab--current {
108 color: var(--background);
109 background-color: var(--foreground);
110 }
111 .settings__inner {
112 display: flex;
113 align-items: flex-start;
114 flex-wrap: nowrap;
115 overflow: clip;
116 }
117 .settings__category {
118 flex: 0 0 100%;
119 max-height: 70vh;
120 display: flex;
121 flex-wrap: wrap;
122 gap: 6px;
123 padding: 0 10px 25px 0;
124 box-sizing: border-box;
125 overflow: auto;
126 transition: transform 160ms var(--transition-easing);
127 }
128 .settings__category::-webkit-scrollbar {
129 width: 5px;
130 height: 5px;
131 }
132 .settings__category::-webkit-scrollbar-track {
133 background-color: var(--main-alt);
134 opacity: 0.1;
135 border-radius: var(--item-radius);
136 }
137 .settings__category::-webkit-scrollbar-thumb {
138 background: var(--foreground);
139 border-radius: var(--item-radius);
140 }
141 .settings__inner-title {
142 flex: 0 0 100%;
143 font-size: calc(var(--font-size) * 1.2);
144 font-weight: 700;
145 }
146 .settings__item-title {
147 flex: 0 0 100%;
148 margin: 8px 0;
149 font-weight: 700;
150 }
151 .settings__item,
152 .settings__item-option {
153 position: relative;
154 flex: 1 0 32%;
155 display: flex;
156 align-items: center;
157 gap: 4px;
158 }
159 .settings__item--full-width {
160 flex: 1 1 100%;
161 }
162 .settings__item--color {
163 flex: 0 0 32%;
164 flex-direction: column;
165 align-items: stretch;
166 }
167 .settings__item--radio {
168 flex: 0 0 100%;
169 display: flex;
170 flex-wrap: wrap;
171 }
172 .settings__item--textarea {
173 flex-direction: column;
174 align-items: stretch;
175 padding: 5px;
176 }
177 .settings__item--color > label,
178 .settings__item--full-width.settings__item--text > label,
179 .settings__item--full-width.settings__item--textarea > label {
180 flex: 0 0 auto;
181 white-space: nowrap;
182 }
183 .settings__item--text > input,
184 .settings__item--textarea > textarea {
185 flex: 1 1 auto;
186 width: auto;
187 padding: 2px 4px;
188 box-sizing: border-box;
189 font-family: var(--font);
190 font-size: calc(var(--font-size) * 0.9);
191 background-color: var(--white);
192 border: 0;
193 outline: none;
194 border-radius: 4px;
195 transition: box-shadow 160ms var(--transition-easing), opacity 160ms var(--transition-easing);
196 }
197 .settings__item--textarea > textarea {
198 resize: vertical;
199 }
200 .settings__item--color > input,
201 .settings__item--full-width.settings__item--text > input,
202 .settings__item--full-width.settings__item--textarea > textarea {
203 flex: 1 1 100%;
204 }
205 .settings__item--text > input:hover,
206 .settings__item--textarea > textarea:hover {
207 box-shadow: var(--hover-ring);
208 }
209 .settings__item--text > input:focus,
210 .settings__item--textarea > textarea:focus {
211 box-shadow: var(--focus-ring);
212 }
213 .settings__item--color > input {
214 padding-left: 24px;
215 }
216 .settings__item-color-pill {
217 position: absolute;
218 bottom: 1px;
219 left: 2px;
220 height: 14px;
221 width: 14px;
222 border-radius: 2px;
223 border: 1px solid gray;
224 }
225 .settings__item > label > em {
226 padding: 2px 3px;
227 font-size: calc(var(--font-size) - 2px);
228 color: var(--foreground);
229 background-color: var(--minor);
230 border-radius: 2px;
231 }
232 .settings__documentation {
233 width: 100%;
234 margin-top: 5px;
235 padding: 10px;
236 color: var(--white);
237 background-color: var(--main-alt);
238 font-weight: 700;
239 border-radius: 5px;
240 }
241 .settings__documentation-icon {
242 display: inline-block;
243 width: 18px;
244 height: 18px;
245 margin-right: 8px;
246 margin-top: -2px;
247 vertical-align: middle;
248 fill: currentColor;
249 }
250 .settings__documentation a {
251 color: currentColor;
252 }
253 .settings__infos {
254 width: 100%;
255 margin-top: 5px;
256 padding: 10px;
257 color: var(--foreground);
258 background-color: var(--minor);
259 border-radius: 5px;
260 }
261 .settings__infos-title {
262 margin-bottom: 7px;
263 font-size: calc(var(--font-size) * 1.1);
264 font-weight: 700;
265 }
266 .settings__info {
267 font-style: italic;
268 }
269 .settings__bottom {
270 display: flex;
271 align-items: center;
272 justify-content: flex-end;
273 margin-top: 10px;
274 }
275 .settings__pending-changes {
276 margin: 0 10px;
277 }
278 .settings__refresh-button,
279 .settings__import-button,
280 .settings__export-button {
281 padding: 7px 10px;
282 font-family: var(--font);
283 font-size: calc(var(--font-size) * 0.9);
284 border-radius: var(--item-radius);
285 border: 0;
286 cursor: pointer;
287 user-select: none;
288 -webkit-user-select: none;
289 transition: box-shadow 160ms var(--transition-easing), opacity 160ms var(--transition-easing);
290 }
291 .settings__import-button,
292 .settings__export-button {
293 margin-right: 10px;
294 color: var(--foreground);
295 background-color: var(--minor);
296 }
297 .settings__export-button {
298 margin-left: 10px;
299 }
300 .settings__refresh-button {
301 background-color: var(--green);
302 }
303 .settings__refresh-button:not(:disabled),
304 .settings__import-button:not(:disabled),
305 .settings__export-button:not(:disabled) {
306 box-shadow: var(--light-shadow);
307 }
308 .settings__refresh-button:not(:disabled):hover,
309 .settings__import-button:not(:disabled):hover,
310 .settings__export-button:not(:disabled):hover {
311 box-shadow: var(--light-shadow), var(--focus-ring);
312 }
313 .settings__refresh-button:disabled,
314 .settings__import-button:disabled,
315 .settings__export-button:disabled {
316 opacity: 0.5;
317 cursor: not-allowed;
318 }
319 .settings__import-export-label {
320 margin-right: auto;
321 }
322 .settings__widgets {
323 width: 100%;
324 }
325 .settings__widgets-breadcrumb {
326 height: 28px;
327 display: flex;
328 align-items: center;
329 gap: 6px;
330 padding: 2px 0 5px;
331 margin-bottom: 5px;
332 }
333 .settings__widgets-breadcrumb-title {
334 font-size: calc(var(--font-size) * 1.2);
335 font-weight: 700;
336 }
337 button.settings__widgets-breadcrumb-title {
338 padding: 0;
339 color: inherit;
340 font-family: inherit;
341 background-color: transparent;
342 text-decoration: underline;
343 cursor: pointer;
344 border: 0;
345 }
346 .settings__widgets-breadcrumb-current {
347 margin-bottom: -2px;
348 }
349 .settings__widgets-breadcrumb-back {
350 display: flex;
351 align-items: center;
352 margin-left: auto;
353 padding: 2px 10px;
354 background-color: var(--minor);
355 border: 1px solid var(--foreground-alt);
356 border-radius: var(--item-radius);
357 color: var(--foreground);
358 font-family: var(--font);
359 font-size: 13px;
360 font-weight: 500;
361 cursor: pointer;
362 white-space: nowrap;
363 box-sizing: border-box;
364 transition: color 160ms var(--transition-easing),
365 background-color 160ms var(--transition-easing),
366 box-shadow 160ms var(--transition-easing);
367 }
368 .settings__widgets-breadcrumb-back:hover {
369 box-shadow: var(--hover-ring);
370 }
371 .settings__widgets-breadcrumb-back-icon {
372 flex: 0 0 8px;
373 width: 8px;
374 height: 8px;
375 margin-right: 6px;
376 fill: currentColor;
377 }
378 .settings__widgets-list {
379 display: flex;
380 flex-direction: column;
381 gap: 6px;
382 }
383 .settings__widgets-item {
384 display: flex;
385 align-items: center;
386 gap: 10px;
387 padding: 10px;
388 background-color: var(--minor);
389 border-radius: var(--item-radius);
390 }
391 .settings__widgets-item:not(.settings__widgets-item--process) {
392 cursor: pointer;
393 }
394 .settings__widgets-item-icon {
395 flex: 0 0 10px;
396 width: 10px;
397 height: 10px;
398 margin-left: auto;
399 fill: currentcolor;
400 }
401 .settings__widget-settings {
402 display: flex;
403 flex-wrap: wrap;
404 gap: 6px;
405 }
406 ${userWidgetsCreatorStyles}
407 ${aerospaceDisplayManagerStyles}
408 `;