summaryrefslogtreecommitdiff
path: root/public/stylesheets
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-13 23:33:11 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-13 23:33:11 +0200
commit8eab68f2c5a3c126e2fec2ecdfa7ace87ce0937b (patch)
treef446ebc26a7707c7b64a937aa51a155df146c80a /public/stylesheets
parent42714c697273a7117c6b355fab26c8c35e336ad1 (diff)
parentcdf5d9941ca866d437612d2f863eac6eb0b3db12 (diff)
Merge branch 'erdgeist-revive-events'
Diffstat (limited to 'public/stylesheets')
-rw-r--r--public/stylesheets/admin.css1150
-rw-r--r--public/stylesheets/ccc.css24
2 files changed, 937 insertions, 237 deletions
diff --git a/public/stylesheets/admin.css b/public/stylesheets/admin.css
index c9ef173..f1f4c05 100644
--- a/public/stylesheets/admin.css
+++ b/public/stylesheets/admin.css
@@ -1,4 +1,6 @@
1/* Layout */ 1/* ============================================================
2 Base elements
3 ============================================================ */
2 4
3body { 5body {
4 font-family: Helvetica, Arial, sans-serif; 6 font-family: Helvetica, Arial, sans-serif;
@@ -6,9 +8,16 @@ body {
6 margin: 0px; 8 margin: 0px;
7} 9}
8 10
11/* Plain link visibility: a light, desaturated squiggly underline
12 signals "clickable" at rest without the weight of a solid line. */
9a { 13a {
10 color: #000000; 14 color: #000000;
11 text-decoration: none; 15 text-decoration: underline;
16 -webkit-text-decoration-style: wavy;
17 text-decoration-style: wavy;
18 text-decoration-color: #b0b0b0;
19 text-decoration-thickness: 1px;
20 text-underline-offset: 2px;
12} 21}
13 22
14a:hover { 23a:hover {
@@ -19,29 +28,117 @@ th {
19 text-transform: lowercase; 28 text-transform: lowercase;
20} 29}
21 30
31td {
32 padding-top: 10px;
33 padding-bottom: 5px;
34 padding-right: 10px;
35}
36/* table#revisions td only overrides padding-right, so its rows still
37 depend on this rule for vertical padding. table.node_table td resets
38 padding-top/bottom to 0 explicitly and does not depend on it. */
39
40input[type=text], textarea {
41 font-size: 1rem;
42 font-family: Helvetica;
43 border: 1px solid #989898;
44}
45
46select {
47 font-size: 1rem;
48 border: 1px solid #989898;
49}
50
51summary {
52 cursor: pointer;
53}
54
55summary:hover {
56 background-color: #f7f7f7;
57}
58
59input[type=password] {
60 border: 1px solid #989898;
61}
62
63input[type=radio] {
64 border: 1px solid #989898;
65}
66
67/* ============================================================
68 Layout
69 ============================================================ */
70
71@media(min-width:1016px) {
72 #wrapper {
73 margin: 0 125px;
74 }
75 .node_action_bar.node_action_bar_save {
76 margin-left: 120px;
77 }
78
79 .standalone_action_bar {
80 margin-left: -125px;
81 }
82}
83@media(max-width:1015px) {
84 #wrapper {
85 margin: 0;
86 width: 100%;
87 box-sizing: border-box;
88 }
89
90 #sitemap details details {
91 margin-left: 0.75rem;
92 padding-left: 0.5rem;
93 }
94}
95
22#metadata, 96#metadata,
23#content { 97#content {
24 margin-left: 5px; 98 margin-left: 5px;
25} 99}
26 100
27@media(min-width:1016px) { 101#metadata_details summary {
28#wrapper { 102 margin-bottom: 1em;
29 margin: 0 125px;
30} 103}
104
105.right { text-align: right; }
106.clear_left { clear: left; }
107
108/* ============================================================
109 Navigation
110 ============================================================ */
111
112#navigation {
113 position: relative;
114 margin-top: 10px;
31} 115}
32@media(max-width:1015px) { 116
33#wrapper { 117.admin_content_spacer {
34 margin: 0; 118 clear: both;
35 width: 100%; 119 margin-bottom: 40px;
36 box-sizing: border-box;
37} 120}
121
122.node_action_bar {
123 display: flex;
124 flex-wrap: wrap;
125 align-items: center;
126 gap: 0.75rem;
127 margin: 1rem 0 1.5rem;
128 padding-bottom: 1rem;
129 border-bottom: 1px solid #e8e8e8;
38} 130}
39 131
132/* ============================================================
133 Flash / notices
134 ============================================================ */
40 135
41#flash { 136#flash {
42 height: 12px; 137 height: auto;
43 line-height: 20px; 138 line-height: 20px;
44 margin-top: 40px; 139 padding: 6px 10px;
140 border-left: 3px solid #969696;
141 background-color: #f1f1f1;
45 margin-bottom: 20px; 142 margin-bottom: 20px;
46 margin-left: 5px; 143 margin-left: 5px;
47} 144}
@@ -52,7 +149,6 @@ th {
52 text-transform: lowercase; 149 text-transform: lowercase;
53} 150}
54 151
55
56#flash img { 152#flash img {
57 height: 12px; 153 height: 12px;
58 width: 12px; 154 width: 12px;
@@ -68,62 +164,87 @@ span#flash_error, span.warning {
68 padding-bottom: 1px; 164 padding-bottom: 1px;
69} 165}
70 166
71/* Pagination */ 167span.warning a {
168 color: inherit;
169 text-decoration: underline;
170}
72 171
73div.pagination { 172.error_messages {
74 padding-top: 5px; 173 border-left: 3px solid #cc0000;
75 padding-bottom: 15px; 174 background-color: #fdecea;
175 padding: 6px 10px;
176 margin-bottom: 1rem;
76} 177}
77 178
78div.pagination span.current, div.pagination a:hover { 179.error_messages ul {
79 color: #ff9600; 180 margin: 0;
181 padding-left: 1.25rem;
80} 182}
81 183
82/* Styles */ 184/* ============================================================
185 Pagination
186 ============================================================ */
83 187
84.right { 188div.pagination {
85 text-align: right; 189 padding-top: 5px;
190 padding-bottom: 15px;
191 display: flex;
192 align-items: center;
193 gap: 0.35rem;
86} 194}
87 195
88.clear_left { 196div.pagination a,
89 clear: left; 197div.pagination em.current,
198div.pagination span.gap {
199 display: inline-flex;
200 align-items: center;
201 justify-content: center;
202 min-width: 1.75rem;
203 height: 1.75rem;
204 padding: 0 0.4rem;
205 border-radius: 4px;
206 font-style: normal;
90} 207}
91 208
92#navigation { 209div.pagination a:hover {
93 position: relative; 210 color: #ff9600;
94 margin-top: 10px;
95} 211}
96 212
97#navigation div { 213div.pagination em.current {
98 float: left; 214 background-color: #ff9600;
215 color: #ffffff;
216 font-weight: bold;
99} 217}
100 218
101#navigation a:hover { 219div.pagination span.gap {
102 color: #ffffff; 220 color: #969696;
103 background-color: #000000;
104} 221}
105 222
106#main_navigation a, 223div.pagination .previous_page.disabled,
107#sub_navigation a, 224div.pagination .next_page.disabled {
108#metadata a, 225 color: #969696;
109input[type=submit], 226 cursor: not-allowed;
110#overview_toggle a {
111 letter-spacing: 1px;
112 padding-left: 5px;
113 padding-right: 5px;
114 padding-top: 1px;
115 padding-bottom: 1px;
116 text-transform: lowercase;
117} 227}
118 228
119/* button_to forms: render submit inputs as plain links */ 229/* ============================================================
230 Buttons
231 ============================================================ */
232
233/* button_to forms: render submit inputs/buttons as plain links,
234 orange on hover; .destructive variant is red. */
120form.button_to { 235form.button_to {
121 display: inline; 236 display: inline;
122 margin: 0; 237 margin: 0;
123 padding: 0; 238 padding: 0;
124} 239}
125 240
126form.button_to input[type="submit"] { 241form.button_to input[type="submit"],
242form.button_to button[type="submit"] {
243 display: inline-flex;
244 align-items: center;
245 gap: 0.5rem;
246 -webkit-appearance: none;
247 appearance: none;
127 background: none; 248 background: none;
128 border: none; 249 border: none;
129 padding: 0; 250 padding: 0;
@@ -131,80 +252,231 @@ form.button_to input[type="submit"] {
131 font: inherit; 252 font: inherit;
132 color: inherit; 253 color: inherit;
133 cursor: pointer; 254 cursor: pointer;
134 text-decoration: none 255 text-decoration: none;
135} 256}
136 257
137form.button_to input[type="submit"]:hover { 258form.button_to.state_changing input[type="submit"],
259form.button_to.state_changing button[type="submit"] {
260 color: #0d47a1;
261 background-color: #e3f2fd;
262}
263
264form.button_to.state_changing input[type="submit"]:hover,
265form.button_to.state_changing button[type="submit"]:hover {
138 color: #ffffff; 266 color: #ffffff;
139 background-color: #ff9600; 267 background-color: #1565c0;
140} 268}
141 269
142#admin_wizard { 270form.button_to.destructive input[type="submit"],
143 margin-bottom: 2rem; 271form.button_to.destructive button[type="submit"] {
272 color: #cc0000;
273 background-color: #fdecea;
144} 274}
145 275
146#page_submit a, 276form.button_to.destructive input[type="submit"]:hover,
147.admin_wizard_button a { 277form.button_to.destructive button[type="submit"]:hover {
148 color: white !important; 278 color: #ffffff;
279 background-color: #cc0000;
149} 280}
150 281
151#page_submit, 282form.button_to.computation input[type="submit"],
152.admin_wizard_button { 283form.button_to.computation button[type="submit"] {
153 display: inline-block; 284 color: #00838f;
154 font-size: 1rem; 285 background-color: #e0f2f1;
155 font-weight: bold;
156 padding: 0.5rem;
157 margin-bottom: 0.5rem;
158 background-color: green;
159} 286}
160 287
161#page_submit:hover, 288form.button_to.computation input[type="submit"]:hover,
162.admin_wizard_button:hover { 289form.button_to.computation button[type="submit"]:hover {
163 background-color: lime !important; 290 color: #ffffff;
291 background-color: #00838f;
164} 292}
165 293
166#sub_navigation a { 294form.button_to.computation input[type="submit"]:disabled,
167 color: #969696; 295form.button_to.computation button[type="submit"]:disabled {
296 opacity: 0.4;
297 cursor: not-allowed;
298 pointer-events: none;
168} 299}
169 300
170#sub_navigation a:hover, #metadata a:hover { 301/* Native (non-button_to) submit buttons -- Create/Save/Publish forms.
171 color: #ffffff; 302 Lower specificity than form.button_to's own rule, so button_to forms
172 background-color: #ff9600; 303 are correctly unaffected. If a button_to output ever loses its class
304 wrapper, it will silently fall through to this bordered style instead
305 of rendering as a plain link -- worth knowing, not necessarily fixing. */
306input[type="submit"] {
307 -webkit-appearance: none;
308 appearance: none;
309 background: none;
310 border: 1px solid #000000;
311 border-radius: 2px;
312 padding: 4px 12px;
313 font: inherit;
314 font-weight: bold;
315 color: inherit;
316 cursor: pointer;
317 text-decoration: none;
173} 318}
174 319
175#sub_navigation a.selected { 320input[type="submit"]:hover {
176 color: #ffffff; 321 color: #ffffff;
177 background-color: #ff9600; 322 background-color: #000000;
178} 323}
179 324
180#navigation a.selected, #metadata a.selected, #overview_toggle a.selected { 325/* ============================================================
181 color: #ffffff; 326 Admin dashboard
327 ============================================================ */
328
329#main_navigation {
330 display: flex;
331 align-items: center;
332 gap: 0.5rem;
333}
334
335#main_navigation a,
336#main_navigation form.button_to button {
337 display: inline-flex;
338 text-decoration: none;
339 align-items: center;
340 background-color: #f7f7f7;
341 justify-content: center;
342 width: 2rem;
343 height: 2rem;
344 padding: 0;
345 border-radius: 2px;
346}
347
348#main_navigation a:hover,
349#main_navigation form.button_to button:hover {
182 background-color: #000000; 350 background-color: #000000;
351 color: #ffffff;
352}
353
354#main_navigation svg,
355.action_button svg,
356form.button_to svg {
357 width: 1.25rem;
358 height: 1.25rem;
359}
360
361#dashboard_search {
362 margin-bottom: 1.5rem;
363}
364
365#dashboard_search input[type=text] {
366 width: 100%;
367 box-sizing: border-box;
368 padding: 10px 14px;
369 font-size: 1.1rem;
370 border-radius: 2px;
371}
372
373.button_row {
374 display: flex;
375 flex-wrap: wrap;
376 gap: 0.75rem;
377 align-items: center;
378}
379
380.button_row .action_button,
381.node_search_form .action_button {
382 margin-bottom: 0;
383}
384
385#dashboard_signposts {
386 margin-bottom: 2rem;
387}
388
389#dashboard_housekeeping h3 {
390 margin-bottom: 0.75rem;
391}
392
393#dashboard_widgets {
394 display: flex;
395 flex-wrap: wrap;
396 gap: 1.5rem;
397 margin-bottom: 2rem;
398}
399
400.dashboard_widget {
401 flex: 1 1 300px;
402 border: 1px solid #e8e8e8;
403 border-radius: 6px;
404 padding: 0.5rem 0.75rem;
405}
406
407.dashboard_widget h3 {
408 margin-top: 0;
183} 409}
184 410
185/* Nodes */ 411.dashboard_widget ul {
412 list-style: none;
413 margin: 0 0 0.75rem;
414 padding: 0;
415}
416
417.dashboard_widget li {
418 display: flex;
419 justify-content: space-between;
420 align-items: flex-start;
421 gap: 1rem;
422 padding: 0.35rem 0;
423 border-bottom: 1px solid #f1f1f1;
424}
186 425
187table.node_table { 426.dashboard_widget_meta {
427 white-space: nowrap;
428 color: #969696;
429 font-size: 0.85rem;
430}
431
432/* ============================================================
433 Tables
434 ============================================================ */
435
436/* Generic fallback header row. Shadowed by table.node_table's own
437 tr.header (2rem) and duplicated (same values) by table#revisions's
438 own tr.header below. Applies as-is to #menu_item_list,
439 div#draft_list table, and table.user_table, none of which define
440 their own tr.header. */
441table tr.header {
442 height: 20px;
443 text-align: left;
444}
445
446table.node_table ,
447table.assets_table,
448table.user_table,
449table.events_table {
188 border-collapse: collapse; 450 border-collapse: collapse;
189} 451}
190 452
191table.node_table tr { 453table.node_table tr {
192 min-height: 2rem;
193 border-bottom: 1px solid #000000; 454 border-bottom: 1px solid #000000;
194} 455}
195 456
457table.assets_table tr,
458table.user_table tr,
459table.events_table tr {
460 border-bottom: 1px solid #e8e8e8;
461}
462
196table.node_table th.node_id, 463table.node_table th.node_id,
197table.node_table th.revision, 464table.node_table th.revision {
198table.node_table th.title {
199 min-width: 4rem; 465 min-width: 4rem;
200} 466}
201 467
468/* th.title's min-width is set to 4rem above and 12rem here -- the
469 later, equally-specific rule wins, so th.title ends up at 12rem and
470 the 4rem entry for it above is dead. Likely a copy/paste leftover. */
202table.node_table th.editor, 471table.node_table th.editor,
203table.node_table th.title { 472table.node_table th.title {
204 min-width: 12rem; 473 min-width: 12rem;
205} 474}
206 475
207table.node_table tr.header { 476table.node_table tr.header,
477table.assets_table tr.header,
478table.user_table tr.header,
479table.events_table tr.header {
208 height: 2rem; 480 height: 2rem;
209 text-align: left; 481 text-align: left;
210} 482}
@@ -217,193 +489,389 @@ table.node_table td {
217 min-width: 2rem; 489 min-width: 2rem;
218} 490}
219 491
492table.assets_table td,
493table.user_table td,
494table.events_table td {
495 padding-top: 8px;
496 padding-bottom: 8px;
497 padding-right: 25px;
498 padding-left: 0px;
499 min-width: 2rem;
500}
501
220table.node_table .node_id { 502table.node_table .node_id {
221 padding-left: 10px; 503 padding-left: 10px;
222 padding-right: 15px; 504 padding-right: 15px;
223} 505}
224 506
225table.node_table tr.header:hover { 507table.node_table .actions {
226 background-color: #ffffff; 508 text-transform: lowercase;
227} 509}
228 510
229table.node_table tr:hover { 511table.node_table tr.header:hover,
230 background-color: #f1f1f1; 512table.assets_table tr.header:hover,
513table.user_table tr.header:hover,
514table.events_table tr.header:hover {
515 background-color: #ffffff;
231} 516}
232 517
233table.node_table .actions { 518table.node_table tr:hover,
234 text-transform: lowercase; 519table.assets_table tr:hover,
520table.user_table tr:hover,
521table.events_table tr:hover {
522 background-color: #f1f1f1;
235} 523}
236 524
237#admin_sitemap_table .node_id:before { 525#admin_sitemap_table .node_id:before {
238 content: "• "; 526 content: "• ";
239} 527}
240 528
241/* Revisions */ 529table.revisions_table {
242
243table#revisions {
244 border-collapse: collapse; 530 border-collapse: collapse;
245} 531}
246 532
247table#revisions td { 533table.revisions_table thead {
248 padding-right: 25px; 534 position: sticky;
535 top: 0;
536 z-index: 1;
249} 537}
250 538
251table#revisions td.title { 539table.revisions_table th,
540table.revisions_table td {
541 padding: 0.4rem 0.75rem;
542 text-align: left;
543}
544
545table.revisions_table thead tr.header,
546table.revisions_table thead tr.diff_sticky_bar {
547 background-color: #ffffff;
548}
549
550table.revisions_table .diff_sticky_bar td {
551 padding-top: 0.5rem;
552 padding-bottom: 0.5rem;
553 border-bottom: 1px solid #e8e8e8;
554}
555
556#diff_selection_label {
557 margin-left: 0.75rem;
558 color: #969696;
559}
560table.revisions_table td.title {
252 width: 450px; 561 width: 450px;
253} 562}
254 563
255table#revisions td.date { 564table.revisions_table td.date {
256 width: 175px; 565 width: 175px;
257} 566}
258 567
259table#revisions tr.header:hover { 568table.revisions_table tr:not(.header):not(.no_hover) {
569 border-bottom: 1px solid #e8e8e8;
570}
571
572table.revisions_table tr.header:hover {
260 background-color: #ffffff; 573 background-color: #ffffff;
261} 574}
262 575
263table#revisions tr.no_hover:hover { 576table.revisions_table tr.no_hover:hover {
264 background-color: #ffffff; 577 background-color: #ffffff;
265} 578}
266 579
267table#revisions tr:hover { 580table.revisions_table tr:hover {
268 background-color: #f1f1f1; 581 background-color: #f1f1f1;
269} 582}
270 583
271table#revisions tr.header { 584.events_table .rrule_text {
272 height: 20px; 585 display: inline-block;
273 text-align: left; 586 max-width: 300px;
587 overflow-wrap: break-word;
274} 588}
275 589
276table#revisions tr { 590.events_table .truncate {
277 height: 45px 591 display: inline-block;
592 max-width: 200px;
593 overflow: hidden;
594 text-overflow: ellipsis;
595 white-space: nowrap;
596 vertical-align: bottom;
278} 597}
279 598
280/* Page Editor */ 599#diffview del {
600 background: #ffd7d5;
601 color: #82071e;
602 text-decoration: line-through;
603 padding: 0 2px;
604 border-radius: 2px;
605}
281 606
282input[type=text], textarea { 607#diffview ins {
283 font-size: 1rem; 608 background: #ccffd8;
284 font-family: Helvetica; 609 color: #055d20;
285 border: 1px solid #989898; 610 text-decoration: none;
611 padding: 0 2px;
612 border-radius: 2px;
286} 613}
287 614
288select { 615#diffview .diff_side_by_side {
289 font-size: 1rem; 616 display: flex;
290 border: 1px solid #989898; 617 gap: 1rem;
291} 618}
292 619
293input[type=text]#tag_list, 620#diffview .diff_column {
294input[type=text]#node_staged_slug, 621 flex: 1;
295input#move_to_search_term {
296 padding: 5px;
297} 622}
298 623
299input[type=password] { 624#diffview del.diff_structural,
300 border: 1px solid #989898; 625#diffview ins.diff_structural {
626 cursor: help;
301} 627}
302 628
303input[type=submit] { 629.diff_unchanged {
304 border: none; 630 color: #969696;
305 padding-top: 0px; 631 font-style: italic;
306 padding-bottom: 1px;
307 background-color: #ffffff;
308} 632}
309 633
310input[type=submit]:hover { 634.diff_set_list {
311 border: none; 635 list-style: none;
312 color: #ffffff; 636 padding-left: 0;
313 background-color: #ff9600; 637 margin: 0;
314} 638}
315 639
316input[type=radio] { 640/* ============================================================
317 border: 1px solid #989898; 641 Translation compare view (page_translations#show)
642 ============================================================ */
643
644.translation_compare {
645 display: flex;
646 flex-direction: column;
647 gap: 1.5rem;
318} 648}
319 649
320div#login_form input[type=text], div#login_form input[type=password] { 650@media(min-width:1016px) {
321 width: 150px; 651 .translation_compare {
652 flex-direction: row;
653 gap: 2rem;
654 }
655
656 .translation_compare_column {
657 flex: 1;
658 min-width: 0;
659 }
322} 660}
323 661
662table.user_table td.user_login {
663 padding-right: 30px;
664}
665
666/* ============================================================
667 Node display (nodes#show / nodes#new)
668 ============================================================ */
324 669
325@media(min-width:1016px) { 670@media(min-width:1016px) {
326input#tag_list, 671 div.node_description {
327input#node_staged_slug, 672 float: left;
328input#move_to_search_term { 673 width: 110px;
329 width: 690px; 674 min-height: 2rem;
675 text-align: right;
676 text-transform: lowercase;
677 vertical-align: top;
678 }
679
680 div.node_content {
681 margin-left: 120px;
682 min-height: 2rem;
683 display: block;
684 margin-bottom: 1rem;
685 }
330} 686}
687@media(max-width:1015px) {
688 div.node_description {
689 min-height: 2rem;
690 width: 30em;
691 text-transform: lowercase;
692 vertical-align: top;
693 }
331 694
332input[type=text]#page_title { 695 div.node_content {
333 width: 690px; 696 min-height: 2rem;
334 font-size: 1rem; 697 margin-bottom: 1rem;
335 padding-top: 6px; 698 }
336 padding-bottom: 4px; 699}
337 padding-left: 5px; 700
338 padding-right: 5px; 701.node_content.node_info_group {
702 border: 1px solid #e8e8e8;
703 border-radius: 6px;
704 padding: 0.5rem 0.75rem;
705}
706
707.node_info_group .disabled_action {
708 display: inline-block;
709 border: 1px solid #c0c0c0;
710 border-radius: 2px;
711 padding: 4px 12px;
339 font-weight: bold; 712 font-weight: bold;
713 color: #969696;
714 cursor: not-allowed;
340} 715}
341 716
342textarea#page_abstract { 717.node_info_group_items {
343 width: 690px; 718 display: flex;
344 height: 150px; 719 flex-wrap: wrap;
345 padding: 5px; 720 gap: 0.5rem 2rem;
346} 721}
347 722
348#page_editor textarea#page_body { 723.node_info_item {
349 width: 700px; 724 min-width: 140px;
350 height: 600px;
351} 725}
352 726
353#page_editor #metadata, #page_editor #content, #admin_overview { 727.node_info_label {
354 margin-left: -125px; 728 display: block;
729 font-weight: normal;
730 color: #969696;
731 font-size: 0.85rem;
732 text-transform: lowercase;
355} 733}
356 734
735.node_info_group ul {
736 margin: 0;
737 padding-left: 1.25rem;
357} 738}
358 739
359/* Mobile */ 740.node_info_group li {
360@media(max-width:1015px) { 741 margin-bottom: 0.25rem;
361input#tag_list,
362input#node_staged_slug,
363input#move_to_search_term {
364 box-sizing: border-box;
365 width: 100%;
366} 742}
367 743
368#page_editor #content, 744.node_content.node_status {
369#page_editor #metadata { 745 border: 2px solid #000000;
370 padding-right: 5px; 746 background-color: #fafafa;
371} 747}
372 748
373#page_editor textarea#page_body { 749.node_status .node_info_group_items:first-child {
750 margin-bottom: 0.75rem;
751}
752
753.node_status .node_info_group_items + .node_info_group_items {
754 margin-top: 0.5rem;
755 margin-bottom: 0.5rem;
756}
757
758.node_status .field_hint {
759 margin-top: 0.5rem;
760 display: block;
761}
762
763.action_button,
764form.button_to input[type="submit"],
765form.button_to button[type="submit"] {
766 padding: 4px 12px;
767 line-height: 1.2;
374 box-sizing: border-box; 768 box-sizing: border-box;
375 width: 800px;
376 height: 50rem;
377} 769}
378 770
379#page_editor textarea#page_abstract { 771form.button_to input[type="submit"],
772form.button_to button[type="submit"] {
773 border: 1px solid transparent;
774 border-radius: 2px;
775}
776
777.field_hint {
778 display: block;
779 margin-top: 2px;
780 font-size: 0.75rem;
781 color: #969696;
782 padding-bottom: 4px;
783}
784
785.action_button + .field_hint {
786 display: inline;
787 margin-left: 0.5rem;
788 margin-top: 0;
789}
790
791.revisions_full_history_link {
792 margin-bottom: 0;
793}
794
795.node_search_form {
796 display: flex;
797 align-items: center;
798 gap: 0.5rem;
799 margin-bottom: 0.75rem;
800}
801
802.node_search_form input[type=text] {
803 padding: 4px 12px;
380 box-sizing: border-box; 804 box-sizing: border-box;
381 height: 8rem; 805 height: 2.25rem;
382 width: 100%; 806 width: 22rem;
807 border-radius: 2px;
383} 808}
384 809
385input[type=text]#page_title { 810.node_search_form .action_button {
811 height: 2.25rem;
386 box-sizing: border-box; 812 box-sizing: border-box;
387 width: 100%;
388 font-size: 2rem;
389 padding-top: 6px;
390 padding-bottom: 4px;
391 padding-left: 5px;
392 font-weight: bold;
393} 813}
394 814
395input[type=text], textarea { 815/* Layout only -- the at-rest visibility (wavy underline) for these
396 font-size: 1.5rem; 816 links comes from the scoped rule in Base elements above. */
817.add_child_links {
818 margin-top: 0.5rem;
397} 819}
398select { 820
399 font-size: 1.5rem; 821.add_child_links a {
822 white-space: nowrap;
400} 823}
401 824
402#metadata ul#image_box { 825.sitemap_node {
403 width: 100% !important; 826 padding-bottom: 0.5rem;
827 margin-bottom: 0.5rem;
828 border-bottom: 1px solid #ececec;
404} 829}
830
831.sitemap_node h4 {
832 margin: 0;
833}
834
835.sitemap_node .field_hint {
836 display: block;
837 margin: 2px 0 0;
405} 838}
406 839
840.sitemap_node p {
841 margin: 2px 0 0;
842}
843
844#sitemap details details {
845 margin-left: 1.5rem;
846 border-left: 1px solid #e8e8e8;
847 padding-left: 0.75rem;
848}
849
850#sitemap summary {
851 padding: 4px 0;
852}
853
854#sitemap details:not([open]) > summary {
855 color: #ff9600;
856 font-weight: bold;
857}
858
859.aligned_action_row {
860 display: flex;
861 flex-wrap: wrap;
862 align-items: start;
863 gap: 0.5rem;
864}
865
866.aligned_action_row .action_button,
867.aligned_action_row form.button_to {
868 margin-top: -5px;
869}
870
871/* ============================================================
872 Page editor / metadata forms
873 ============================================================ */
874
407#new_node { 875#new_node {
408 margin-left: -118px; 876 margin-left: -118px;
409} 877}
@@ -412,51 +880,158 @@ select {
412 width: 350px; 880 width: 350px;
413} 881}
414 882
415tr {} 883div#login_form input[type=text], div#login_form input[type=password] {
884 width: 150px;
885}
416 886
417td { 887input[type=text]#tag_list,
418 padding-top: 10px; 888input[type=text]#node_staged_slug,
419 padding-bottom: 5px; 889input#move_to_search_term {
420 padding-right: 10px; 890 padding: 5px;
421} 891}
422 892
423@media(min-width:1016px) { 893div#page_editor {
424div.node_description { 894 margin-top: 0px;
425 float: left; 895 margin-left: 10px;
426 width: 110px;
427 min-height: 2rem;
428 text-align: right;
429 text-transform: lowercase;
430 vertical-align: top;
431} 896}
432 897
433div.node_content { 898#page_editor a.action_button,
434 margin-left: 120px; 899.action_button {
435 min-height: 2rem; 900 display: inline-flex;
436 display: block; 901 align-items: center;
902 gap: 0.5rem;
903 -webkit-appearance: none;
904 appearance: none;
905 border: 1px solid #000000;
906 border-radius: 2px;
907 padding: 4px 12px;
908 font-weight: bold;
909 text-decoration: none;
910 color: #000000;
437 margin-bottom: 1rem; 911 margin-bottom: 1rem;
912 background: none;
913 cursor: pointer;
914 font: inherit;
438} 915}
439} 916
440@media(max-width:1015px) { 917#page_editor a.action_button:hover,
441div.node_description { 918.action_button:hover {
442 min-height: 2rem; 919 color: #ffffff;
443 width: 30em; 920 background-color: #000000;
444 text-transform: lowercase;
445 vertical-align: top;
446} 921}
447 922
448div.node_content { 923#page_editor input[type=text],
449 min-height: 2rem; 924#page_editor input[type=password],
450 margin-bottom: 1rem; 925#page_editor textarea {
926 padding: 5px;
451} 927}
452 928
929@media(min-width:1016px) {
930 input#tag_list,
931 input#menu_search_term,
932 input#menu_item_node_id,
933 input#menu_item_path,
934 input#menu_item_title,
935 input#node_staged_slug,
936 input#move_to_search_term {
937 width: 690px;
938 }
939
940 input[type=text]#page_title {
941 width: 690px;
942 font-size: 1rem;
943 padding-top: 6px;
944 padding-bottom: 4px;
945 padding-left: 5px;
946 padding-right: 5px;
947 font-weight: bold;
948 }
949
950 textarea#page_abstract {
951 width: 690px;
952 height: 150px;
953 padding: 5px;
954 }
955
956 #page_editor textarea#page_body {
957 width: 700px;
958 height: 600px;
959 }
960
961 #page_editor #metadata, #page_editor #content, #admin_overview {
962 margin-left: -125px;
963 }
964
965 #page_editor input[type=text],
966 #page_editor input[type=password],
967 #page_editor textarea {
968 width: 690px;
969 }
453} 970}
454 971
455div#page_editor { 972@media(max-width:1015px) {
456 margin-top: 0px; 973 input#tag_list,
457 margin-left: 10px; 974 input#node_staged_slug,
975 input#move_to_search_term {
976 box-sizing: border-box;
977 width: 100%;
978 }
979
980 #page_editor #content,
981 #page_editor #metadata {
982 padding-right: 5px;
983 }
984
985 /* Fixed 800px width will overflow narrow viewports despite
986 border-box -- every sibling rule in this block uses 100% instead.
987 Worth checking on an actual phone; looks unfinished rather than
988 intentional. Not changed here since it wasn't part of what you
989 asked to fix. */
990 #page_editor textarea#page_body {
991 box-sizing: border-box;
992 width: 800px;
993 height: 50rem;
994 }
995
996 #page_editor textarea#page_abstract {
997 box-sizing: border-box;
998 height: 8rem;
999 width: 100%;
1000 }
1001
1002 input[type=text]#page_title {
1003 box-sizing: border-box;
1004 width: 100%;
1005 font-size: 2rem;
1006 padding-top: 6px;
1007 padding-bottom: 4px;
1008 padding-left: 5px;
1009 font-weight: bold;
1010 }
1011
1012 #page_editor input[type=text],
1013 #page_editor input[type=password],
1014 #page_editor textarea {
1015 box-sizing: border-box;
1016 width: 100%;
1017 }
1018
1019 input[type=text], textarea {
1020 font-size: 1.5rem;
1021 }
1022 select {
1023 font-size: 1.5rem;
1024 }
1025
1026 #metadata ul#image_box {
1027 width: 100% !important;
1028 }
458} 1029}
459 1030
1031/* ============================================================
1032 Draft list (dashboard widget)
1033 ============================================================ */
1034
460div#draft_list { 1035div#draft_list {
461 border: 1px solid #000000; 1036 border: 1px solid #000000;
462 padding: 5px; 1037 padding: 5px;
@@ -472,32 +1047,61 @@ div#draft_list table tr.header:hover {
472 background-color: #ffffff; 1047 background-color: #ffffff;
473} 1048}
474 1049
1050div#draft_list table tr:hover {
1051 background-color: #f1f1f1;
1052}
1053
475div#draft_list table td.actions { 1054div#draft_list table td.actions {
476 text-transform: lowercase; 1055 text-transform: lowercase;
477 white-space: nowrap; 1056 white-space: nowrap;
478} 1057}
479 1058
1059/* Layout only -- the at-rest visibility (wavy underline) for these
1060 links comes from the scoped rule in Base elements above. */
480div#draft_list table td.actions a { 1061div#draft_list table td.actions a {
481 letter-spacing: 1px; 1062 letter-spacing: 1px;
482 padding-left: 5px; 1063 padding-left: 5px;
483 padding-right: 5px; 1064 padding-right: 5px;
484} 1065}
485 1066
486div#draft_list table tr:hover { 1067.search_results_list {
487 background-color: #f1f1f1; 1068 list-style: none;
1069 margin: 0;
1070 padding: 0;
488} 1071}
489 1072
490table tr.header { 1073.search_results_list li {
491 height: 20px; 1074 padding: 0.5rem 0;
492 text-align: left; 1075 border-bottom: 1px solid #f1f1f1;
1076}
1077
1078.search_tag_row {
1079 display: flex;
1080 flex-wrap: wrap;
1081 gap: 0.4rem;
1082 padding: 4px 4px 8px;
1083 border-bottom: 1px solid #e8e8e8;
493} 1084}
494 1085
1086.search_tag_pill {
1087 display: inline-block;
1088 padding: 2px 10px;
1089 border-radius: 999px;
1090 background-color: #f1f1f1;
1091 font-size: 0.85rem;
1092 text-decoration: none;
1093}
1094
1095/* ============================================================
1096 Search widgets
1097 ============================================================ */
1098
495#search_widget { 1099#search_widget {
496 position: absolute; 1100 position: absolute;
497 top: 20px; 1101 top: 2.75rem;
498 left: 50%; 1102 left: 0;
499 transform: translateX(-50%);
500 width: min(520px, 90vw); 1103 width: min(520px, 90vw);
1104 border-radius: 2px;
501 border: 1px solid #000000; 1105 border: 1px solid #000000;
502 -webkit-box-shadow: 3px 3px 5px #b1b1b1; 1106 -webkit-box-shadow: 3px 3px 5px #b1b1b1;
503 box-shadow: 3px 3px 5px #b1b1b1; 1107 box-shadow: 3px 3px 5px #b1b1b1;
@@ -507,23 +1111,27 @@ table tr.header {
507} 1111}
508 1112
509#search_widget input { 1113#search_widget input {
510 width: calc(100% - 70px); 1114 width: 100%;
1115 box-sizing: border-box;
1116 padding: 8px 12px;
1117 border-radius: 2px;
511 font-size: 18px; 1118 font-size: 18px;
512} 1119}
513 1120
514#search_results p { 1121.search_results p {
515 margin: 0; 1122 margin: 0;
516 padding: 4px 4px 0 4px; 1123 padding: 4px 4px 0 4px;
517 border-bottom: 1px solid #e8e8e8; 1124 border-bottom: 1px solid #e8e8e8;
518} 1125}
519 1126
520#search_results p a { 1127.search_results p a {
1128 text-decoration: none;
521 display: block; 1129 display: block;
522 font-weight: bold; 1130 font-weight: bold;
523 font-size: 0.95rem; 1131 font-size: 0.95rem;
524} 1132}
525 1133
526#search_results p span.result_path { 1134.search_results p span.result_path {
527 display: block; 1135 display: block;
528 margin-top: 2px; 1136 margin-top: 2px;
529 font-size: 0.75rem; 1137 font-size: 0.75rem;
@@ -532,7 +1140,7 @@ table tr.header {
532 padding-bottom: 4px; 1140 padding-bottom: 4px;
533} 1141}
534 1142
535#search_results p.search_more { 1143.search_results p.search_more {
536 margin: 0; 1144 margin: 0;
537 padding: 6px 4px; 1145 padding: 6px 4px;
538 font-size: 0.8rem; 1146 font-size: 0.8rem;
@@ -541,13 +1149,19 @@ table tr.header {
541 border-bottom: none; 1149 border-bottom: none;
542} 1150}
543 1151
544table#content th.description { 1152.search_results p.search_group_label {
545 width: 100px; 1153 margin: 8px 0 2px;
1154 padding: 0;
1155 border-bottom: none;
1156 font-size: 0.75rem;
1157 color: #969696;
1158 text-transform: lowercase;
1159 font-weight: normal;
546} 1160}
547 1161
548table#content th.content { 1162/* ============================================================
549 width: 690px; 1163 Menu items (navigation editor)
550} 1164 ============================================================ */
551 1165
552#menu_item_list { 1166#menu_item_list {
553 border-collapse: collapse; 1167 border-collapse: collapse;
@@ -565,6 +1179,10 @@ table#content th.content {
565 height: 20px; 1179 height: 20px;
566} 1180}
567 1181
1182#menu_item_list td.menu_item_title {
1183 width: 200px;
1184}
1185
568#menu_item_list td.menu_sort_handle div { 1186#menu_item_list td.menu_sort_handle div {
569 background-color: #989898; 1187 background-color: #989898;
570 height: 26px; 1188 height: 26px;
@@ -583,14 +1201,14 @@ table#content th.content {
583 cursor: grab; 1201 cursor: grab;
584} 1202}
585 1203
586#menu_item_list td.menu_item_title { 1204.ui-state-highlight td {
587 width: 200px;
588}
589
590.ui-state-highlight td{
591 height: 20px; 1205 height: 20px;
592} 1206}
593 1207
1208/* ============================================================
1209 Image box / browser
1210 ============================================================ */
1211
594#metadata ul#image_box { 1212#metadata ul#image_box {
595 box-sizing: border-box; 1213 box-sizing: border-box;
596 margin: 0; 1214 margin: 0;
@@ -616,7 +1234,77 @@ div#image_browser ul li {
616 list-style-type: none; 1234 list-style-type: none;
617} 1235}
618 1236
619table.user_list td.user_login { 1237.thumbnail_list {
620 padding-right: 30px; 1238 display: flex;
1239 flex-wrap: wrap;
1240 gap: 0.75rem;
1241 list-style: none;
1242 margin: 0 0 0.75rem;
1243 padding: 0;
1244}
1245
1246.thumbnail_list li {
1247 position: relative;
1248 display: flex;
1249 align-items: center;
1250 gap: 0.25rem;
1251 border: 1px solid #e8e8e8;
1252 border-radius: 6px;
1253 padding: 4px;
1254}
1255
1256.thumbnail_list img {
1257 display: block;
1258 width: 60px;
1259 height: 60px;
1260 object-fit: cover;
1261 border-radius: 4px;
1262}
1263
1264.related_asset_handle {
1265 display: flex;
1266 color: #969696;
1267 cursor: grab;
1268}
1269
1270.related_asset_handle svg {
1271 width: 1rem;
1272 height: 1rem;
1273}
1274
1275.related_asset_remove {
1276 display: flex;
1277 align-items: center;
1278 justify-content: center;
1279 background: none;
1280 border: none;
1281 padding: 2px;
1282 cursor: pointer;
1283 color: #969696;
1284}
1285
1286.related_asset_remove svg {
1287 width: 0.9rem;
1288 height: 0.9rem;
1289}
1290
1291.related_asset_remove:hover {
1292 color: #cc0000;
1293}
1294
1295.related_asset_result {
1296 display: flex;
1297 align-items: center;
1298 gap: 0.5rem;
1299 padding: 4px;
1300 border-bottom: 1px solid #e8e8e8;
1301 text-decoration: none;
1302}
1303
1304.related_asset_result img {
1305 width: 40px;
1306 height: 40px;
1307 object-fit: cover;
1308 border-radius: 4px;
621} 1309}
622 1310
diff --git a/public/stylesheets/ccc.css b/public/stylesheets/ccc.css
index 30eb8dd..fe2144f 100644
--- a/public/stylesheets/ccc.css
+++ b/public/stylesheets/ccc.css
@@ -216,7 +216,7 @@ div#frontpage_calendar {
216 } 216 }
217} 217}
218 218
219div#frontpage_calendar h2, div#tags h2, div#featured_articles h2, div.main_navigation h2 { 219div#frontpage_calendar h2, div#tags h2, div#featured_articles h2, div#open_erfas_today h2, div.main_navigation h2 {
220 border-top: 2px solid; 220 border-top: 2px solid;
221 border-bottom: 2px solid; 221 border-bottom: 2px solid;
222 font-size: 1.1em; 222 font-size: 1.1em;
@@ -234,6 +234,18 @@ div#frontpage_calendar h2 {
234 margin-top: 0; 234 margin-top: 0;
235} 235}
236 236
237div#open_erfas_today li {
238 margin-top: 8px;
239 margin-bottom: 8px;
240 line-height: 1.25;
241}
242
243div#open_erfas_today .event_time {
244 font-style: italic;
245 font-family: Georgia;
246 color: color-mix(in srgb, CanvasText, #808080);
247}
248
237@media(max-width:1016px) { 249@media(max-width:1016px) {
238 div#tags li { 250 div#tags li {
239 list-style-type: none; 251 list-style-type: none;
@@ -248,7 +260,7 @@ div#frontpage_calendar h2 {
248} 260}
249 261
250@media(min-width:1016px) { 262@media(min-width:1016px) {
251 div#frontpage_calendar h2, div#tags h2, div#featured_articles h2 { 263 div#frontpage_calendar h2, div#tags h2, div#featured_articles h2, div#open_erfas_today h2 {
252 font-size: 1rem; 264 font-size: 1rem;
253 } 265 }
254 266
@@ -260,9 +272,9 @@ div#frontpage_calendar h2 {
260 272
261} 273}
262 274
263div#frontpage_calendar ul, div#tags ul, div#featured_articles ul { 275div#frontpage_calendar ul, div#tags ul, div#featured_articles ul, div#open_erfas_today ul {
264 padding: 0px; 276 padding: 0px;
265 font-size: 1rem; 277 font-size: 0.9rem;
266 line-height: 1.5em; 278 line-height: 1.5em;
267} 279}
268 280
@@ -278,11 +290,11 @@ div#frontpage_calendar li {
278 margin-bottom: 20px; 290 margin-bottom: 20px;
279} 291}
280 292
281div#frontpage_calendar li, div#tags li, div#featured_articles li { 293div#frontpage_calendar li, div#tags li, div#featured_articles li, div#open_erfas_today li {
282 list-style-type: none; 294 list-style-type: none;
283} 295}
284 296
285div#frontpage_calendar li a, div#tags li a, div#featured_articles li a { 297div#frontpage_calendar li a, div#tags li a, div#featured_articles li a, div#open_erfas_today li a {
286 text-decoration: none; 298 text-decoration: none;
287 color: color-mix(in srgb, CanvasText, #808080 25%); 299 color: color-mix(in srgb, CanvasText, #808080 25%);
288} 300}