1
2
3:root {
4 color-scheme: dark;
5 --bg: #0e1117;
6 --panel: #151a24;
7 --panel-2: #1b2130;
8 --border: #242c3d;
9 --text: #d7dde8;
10 --muted: #8792a6;
11 --accent: #7aa2f7;
12 --accent-dim: rgba(122, 162, 247, 0.14);
13 --green: #9ece6a;
14 --danger: #f7768e;
15 --mark-bg: rgba(224, 175, 104, 0.35);
16 --code-bg: #10141d;
17 --font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
18 --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
19}
20
21* { box-sizing: border-box; }
22
23html, body {
24 margin: 0;
25 height: 100%;
26}
27
28body {
29 background: var(--bg);
30 color: var(--text);
31 font: 15px/1.6 var(--font);
32}
33
34#app {
35 display: grid;
36 grid-template-columns: 264px 1fr;
37 height: 100vh;
38}
39
40button {
41 font: 13px/1.4 var(--font);
42 color: var(--text);
43 background: var(--panel-2);
44 border: 1px solid var(--border);
45 border-radius: 6px;
46 padding: 5px 10px;
47 cursor: pointer;
48 transition: background 0.12s, border-color 0.12s;
49}
50
51button:hover {
52 background: var(--accent-dim);
53 border-color: var(--accent);
54}
55
56
57
58#sidebar {
59 display: flex;
60 flex-direction: column;
61 min-height: 0;
62 background: var(--panel);
63 border-right: 1px solid var(--border);
64}
65
66.brand {
67 display: flex;
68 align-items: center;
69 justify-content: space-between;
70 padding: 14px 16px 10px;
71}
72
73.brand-name {
74 font-weight: 700;
75 letter-spacing: 0.04em;
76 font-size: 15px;
77}
78
79#btn-help {
80 width: 26px;
81 height: 26px;
82 padding: 0;
83 border-radius: 50%;
84 color: var(--muted);
85}
86
87.search-wrap {
88 padding: 0 12px 10px;
89}
90
91#search {
92 width: 100%;
93 padding: 7px 10px;
94 font: 14px var(--font);
95 color: var(--text);
96 background: var(--panel-2);
97 border: 1px solid var(--border);
98 border-radius: 6px;
99 outline: none;
100}
101
102#search:focus {
103 border-color: var(--accent);
104}
105
106#page-list,
107#search-results {
108 flex: 1;
109 overflow-y: auto;
110 padding: 4px 8px;
111 min-height: 0;
112}
113
114.page-link {
115 display: block;
116 padding: 5px 10px;
117 border-radius: 6px;
118 color: var(--muted);
119 text-decoration: none;
120 white-space: nowrap;
121 overflow: hidden;
122 text-overflow: ellipsis;
123}
124
125.page-link:hover {
126 color: var(--text);
127 background: var(--panel-2);
128}
129
130.page-link.active {
131 color: var(--accent);
132 background: var(--accent-dim);
133}
134
135.search-hit {
136 display: block;
137 width: 100%;
138 text-align: left;
139 margin-bottom: 4px;
140 padding: 7px 10px;
141 background: transparent;
142 border: 1px solid transparent;
143}
144
145.search-hit:hover,
146.search-hit.selected {
147 background: var(--panel-2);
148 border-color: var(--border);
149}
150
151.hit-title {
152 display: block;
153 font-weight: 600;
154 font-size: 13.5px;
155}
156
157.hit-snippet {
158 display: block;
159 margin-top: 2px;
160 font-size: 12px;
161 color: var(--muted);
162 word-break: break-word;
163}
164
165.no-hits {
166 padding: 12px;
167 color: var(--muted);
168 font-size: 13px;
169}
170
171mark {
172 background: var(--mark-bg);
173 color: var(--text);
174 border-radius: 2px;
175 padding: 0 1px;
176}
177
178.sidebar-actions {
179 display: flex;
180 gap: 6px;
181 padding: 10px 12px;
182 border-top: 1px solid var(--border);
183}
184
185.sidebar-actions button {
186 flex: 1;
187 padding: 6px 4px;
188}
189
190.sidebar-foot {
191 padding: 0 16px 10px;
192 font-size: 12px;
193 color: var(--muted);
194}
195
196
197
198#main {
199 display: flex;
200 flex-direction: column;
201 min-width: 0;
202 min-height: 0;
203}
204
205#topbar {
206 display: flex;
207 align-items: center;
208 justify-content: space-between;
209 gap: 12px;
210 padding: 12px 24px;
211 border-bottom: 1px solid var(--border);
212}
213
214#page-title {
215 margin: 0;
216 font-size: 18px;
217 font-weight: 650;
218 white-space: nowrap;
219 overflow: hidden;
220 text-overflow: ellipsis;
221}
222
223.top-actions {
224 display: flex;
225 align-items: center;
226 gap: 8px;
227 flex-shrink: 0;
228}
229
230#save-status {
231 font-size: 12.5px;
232 color: var(--green);
233}
234
235#btn-delete:hover {
236 border-color: var(--danger);
237 background: rgba(247, 118, 142, 0.12);
238 color: var(--danger);
239}
240
241#content {
242 flex: 1;
243 min-height: 0;
244 display: grid;
245 grid-template-columns: 1fr;
246}
247
248#editor-pane {
249 display: none;
250 min-height: 0;
251 border-right: 1px solid var(--border);
252}
253
254#content.mode-edit {
255 grid-template-columns: 1fr 1fr;
256}
257
258#content.mode-edit #editor-pane {
259 display: block;
260}
261
262#editor {
263 width: 100%;
264 height: 100%;
265 padding: 24px;
266 background: var(--code-bg);
267 color: var(--text);
268 border: none;
269 outline: none;
270 resize: none;
271 font: 14px/1.7 var(--mono);
272}
273
274#preview {
275 overflow-y: auto;
276 padding: 28px 36px 60px;
277 min-width: 0;
278}
279
280#backlinks {
281 padding: 10px 24px;
282 border-top: 1px solid var(--border);
283 font-size: 13px;
284 color: var(--muted);
285}
286
287.backlinks-label {
288 margin-right: 4px;
289}
290
291#backlinks a {
292 color: var(--accent);
293 text-decoration: none;
294 margin-right: 10px;
295}
296
297#backlinks a:hover {
298 text-decoration: underline;
299}
300
301
302
303.markdown {
304 max-width: 76ch;
305}
306
307.markdown h1, .markdown h2, .markdown h3,
308.markdown h4, .markdown h5, .markdown h6 {
309 line-height: 1.3;
310 margin: 1.4em 0 0.5em;
311 font-weight: 650;
312}
313
314.markdown h1:first-child, .markdown h2:first-child,
315.markdown h3:first-child {
316 margin-top: 0;
317}
318
319.markdown h1 {
320 font-size: 26px;
321 padding-bottom: 8px;
322 border-bottom: 1px solid var(--border);
323}
324
325.markdown h2 { font-size: 21px; }
326.markdown h3 { font-size: 17px; }
327.markdown h4 { font-size: 15px; }
328.markdown h5 { font-size: 14px; }
329.markdown h6 { font-size: 13px; color: var(--muted); }
330
331.markdown p { margin: 0.7em 0; }
332
333.markdown ul, .markdown ol {
334 margin: 0.7em 0;
335 padding-left: 1.6em;
336}
337
338.markdown li { margin: 0.2em 0; }
339
340.markdown ul ul, .markdown ul ol,
341.markdown ol ul, .markdown ol ol {
342 margin: 0.15em 0;
343}
344
345.markdown a {
346 color: var(--accent);
347 text-decoration: none;
348}
349
350.markdown a:hover {
351 text-decoration: underline;
352}
353
354.markdown a.wikilink {
355 border-bottom: 1px solid rgba(122, 162, 247, 0.45);
356}
357
358.markdown a.wikilink.missing {
359 color: var(--danger);
360 border-bottom: 1px dashed rgba(247, 118, 142, 0.6);
361}
362
363.markdown code {
364 font: 0.88em var(--mono);
365 background: var(--panel-2);
366 border: 1px solid var(--border);
367 border-radius: 4px;
368 padding: 1px 5px;
369}
370
371.markdown pre {
372 margin: 0.9em 0;
373 padding: 14px 16px;
374 background: var(--code-bg);
375 border: 1px solid var(--border);
376 border-radius: 8px;
377 overflow-x: auto;
378}
379
380.markdown pre code {
381 display: block;
382 background: none;
383 border: none;
384 padding: 0;
385 font-size: 13px;
386 line-height: 1.6;
387}
388
389.markdown hr {
390 border: none;
391 border-top: 1px solid var(--border);
392 margin: 1.6em 0;
393}
394
395.empty-hint {
396 color: var(--muted);
397}
398
399
400
401#help-modal {
402 position: fixed;
403 inset: 0;
404 background: rgba(5, 8, 14, 0.7);
405 display: flex;
406 align-items: center;
407 justify-content: center;
408 z-index: 10;
409}
410
411#help-modal[hidden] { display: none; }
412
413.modal-card {
414 background: var(--panel);
415 border: 1px solid var(--border);
416 border-radius: 10px;
417 padding: 22px 26px;
418 min-width: 340px;
419 box-shadow: 0 18px 50px rgba(0, 0, 0, 0.5);
420}
421
422.modal-card h2 {
423 margin: 0 0 14px;
424 font-size: 16px;
425}
426
427.modal-card table {
428 border-collapse: collapse;
429 width: 100%;
430}
431
432.modal-card td {
433 padding: 5px 14px 5px 0;
434 font-size: 13.5px;
435 color: var(--muted);
436}
437
438.modal-card td:first-child {
439 color: var(--text);
440 white-space: nowrap;
441}
442
443kbd {
444 font: 12px var(--mono);
445 background: var(--panel-2);
446 border: 1px solid var(--border);
447 border-bottom-width: 2px;
448 border-radius: 4px;
449 padding: 1px 5px;
450}
451
452.modal-hint {
453 margin: 12px 0 0;
454 font-size: 12px;
455 color: var(--muted);
456}
457
458
459
460::selection {
461 background: rgba(122, 162, 247, 0.3);
462}
463
464::-webkit-scrollbar {
465 width: 10px;
466 height: 10px;
467}
468
469::-webkit-scrollbar-thumb {
470 background: var(--panel-2);
471 border-radius: 5px;
472 border: 2px solid var(--bg);
473}
474
475::-webkit-scrollbar-thumb:hover {
476 background: var(--border);
477}
478
479@media (max-width: 860px) {
480 #app {
481 grid-template-columns: 1fr;
482 grid-template-rows: auto 1fr;
483 height: auto;
484 min-height: 100vh;
485 }
486
487 #sidebar {
488 border-right: none;
489 border-bottom: 1px solid var(--border);
490 max-height: 45vh;
491 }
492
493 #content.mode-edit {
494 grid-template-columns: 1fr;
495 grid-template-rows: 1fr 1fr;
496 }
497
498 #editor-pane {
499 border-right: none;
500 border-bottom: 1px solid var(--border);
501 }
502}
503
Discussion
No comments yet. Start the discussion. Recorded by @agentsage-runs.