style.css
⎇
Raw
1* {
2 box-sizing: border-box;
3 margin: 0;
4 padding: 0;
5 color: var(--text-color);
6 accent-color: var(--color-d);
7}
8
9@font-face {
10 font-display: swap;
11 font-family: ark-latin;
12 src: url("ark-pixel-16px-proportional-latin.woff2") format("woff2");
13}
14
15html,
16button,
17select {
18 font-family: ark-latin, sans-serif;
19 font-size: 16px;
20 line-height: 1.5rem;
21}
22
23:root {
24 --color-a: oklch(0.41 0.0178 201.81);
25 --color-b: oklch(0.62 0.0664 60.49);
26 --color-c: oklch(0.33 0.0144 217.83);
27 --color-c-highlight: oklch(from var(--color-c) 0.45 c h);
28 --color-d: oklch(0.67 0.1326 259.65);
29 --text-color: oklch(0.87 0 0);
30 --min-width: 350px;
31}
32
33button,
34select,
35option {
36 display: flex;
37 place-items: center;
38 padding: 0.25rem 0.5rem;
39 border: none;
40 background-color: var(--color-d);
41 color: oklch(0.26 0 0);
42
43 &:hover {
44 background-color: oklch(from var(--color-d) 0.85 c h);
45 }
46}
47
48select:disabled {
49 background-color: var(--color-d);
50 color: oklch(0.5 0 0);
51 &:hover {
52 background-color: var(--color-d);
53 }
54}
55
56button {
57 cursor: pointer;
58 &:disabled {
59 cursor: default;
60 }
61}
62
63svg {
64 flex-shrink: 0;
65}
66
67button:has(> svg) {
68 padding: 0;
69 background: none;
70 &:hover {
71 background: none;
72 }
73}
74
75html {
76 min-width: var(--min-width);
77 min-height: 600px;
78 background-image: url("data:image/svg+xml,<svg id='patternId' width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='100' height='82' patternTransform='scale(2) rotate(0)'><rect x='0' y='0' width='100%' height='100%' fill='%23404e4fff'/><path d='M74.4-14.6l-24 41.1h48l-24-41.1zm0 82l-24 41.1h48l-24-41.1z' stroke-width='1' stroke='none' fill='%23a37c5cff'/><path d='M0 0l24 41.1L48 0H0zm-1.6 26.5l-24 41.1h48l-24-41.1zm100 0l-24 41.1h48l-24-41.1z' stroke-width='1' stroke='none' fill='%232c373aff'/><path d='M24 41.1l24 41.1 24-41.1H24z' stroke-width='1' stroke='none' fill='%23726f69ff'/></pattern></defs><rect width='800%' height='800%' transform='translate(0,0)' fill='url(%23a)'/></svg>");
79}
80
81html,
82body,
83#root,
84.app-container {
85 height: 100%;
86}
87
88.app-container {
89 display: flex;
90 flex-direction: column;
91 max-width: 1200px;
92 margin: 0 auto;
93 background-color: var(--color-a);
94 box-shadow: 0 0 40px rgba(0, 0, 0, 0.8);
95
96 & > .app-header {
97 display: flex;
98 gap: 1.5rem;
99 justify-content: space-between;
100 align-items: center;
101 padding: 1rem;
102 border-bottom: 1px solid var(--color-c);
103 & > .app-buttons {
104 display: flex;
105 flex-wrap: wrap;
106 gap: 1.5rem;
107 justify-content: end;
108 & > .offline-button {
109 text-wrap: nowrap;
110 width: min-content;
111 }
112 & > div {
113 display: flex;
114 gap: 1.5rem;
115 }
116 }
117 }
118
119 & > .main-content {
120 position: relative; /* for the loading screen in the file browser*/
121 display: flex;
122 flex: 1;
123 overflow: hidden;
124 }
125}
126
127.title {
128 font-size: 1.5rem;
129 font-weight: bold;
130}
131
132@media (min-width: 601px) {
133 .filebrowser-toggle {
134 display: none;
135 }
136}
137
138.spacer {
139 flex-grow: 1;
140}
141
142input {
143 background: none;
144 border: 1px solid var(--color-c);
145 padding: 0.25rem;
146}
147