default.css
Raw
1@import "normalize.css";
2@import "theme.css";
3
4body {
5 display: flex;
6 align-items: center;
7 flex-direction: column;
8 min-height: 100vh;
9
10 padding: 3rem;
11 box-sizing: border-box;
12 max-width: 80rem;
13 /* Center the page. Sakura's body sets `margin: auto`, but it now loads in a
14 separate <link> before this file's `@import "normalize.css"` (which resets
15 `margin: 0`), so we re-assert it here rather than depend on sheet order. */
16 margin-inline: auto;
17}
18
19a {
20 text-wrap: nowrap;
21}
22
23hr {
24 width: 100%;
25}
26
27h1 {
28 margin-bottom: 4rem;
29}
30
31form {
32 display: flex;
33 flex-direction: column;
34 gap: 0.5rem;
35 margin-bottom: 1.5rem;
36 min-width: 35rem;
37 width: 100%;
38
39 input {
40 flex-grow: 1;
41 }
42
43 input[type="checkbox"] {
44 flex-grow: 0;
45 margin-bottom: 0.5rem;
46 }
47
48 input[type="radio"] {
49 flex-grow: 0;
50 }
51
52 div {
53 display: flex;
54 flex-direction: row;
55 align-items: center;
56 gap: 1rem;
57 }
58}
59
60select {
61 overflow: auto;
62 flex-grow: 1;
63}
64
65img {
66 margin-bottom: 0;
67}
68
69#server-limits {
70 align-self: flex-start;
71
72 ul {
73 margin: 0.25rem 0 1rem;
74 }
75
76 li {
77 margin: 0;
78 }
79}
80
81.help-icon {
82 width: 2rem;
83 height: 2rem;
84 filter: var(--help-icon-filter);
85 margin-left: 0.5rem;
86}
87
88input[type="reset"] {
89 max-width: 25rem;
90 align-self: center;
91 order: -2;
92}
93
94/* The file input lives last in the DOM (so the multipart upload sends the other
95 fields first) but belongs right below the reset button visually. */
96#file {
97 order: -1;
98}
99
100dialog {
101 background-color: var(--app-bg);
102 color: var(--app-fg);
103 border-color: var(--app-accent);
104
105 form {
106 display: flex;
107 flex-direction: column;
108 align-items: center;
109 }
110}
111