diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-07-12 23:43:25 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-07-12 23:43:25 +0200 |
| commit | bcfc2b5901caeaabdf3efa745441a339568b671a (patch) | |
| tree | 345292b436c777713581d1e4cbd7ac43cbb9e3f2 | |
| parent | 848ce18303f927bfadaf0965a769cae2c62492a0 (diff) | |
Style the new dashboard; consolidate duplicated button/link CSS
New rules for the icon nav, search bar, signpost/housekeeping button
rows, and the two dashboard widgets. Generalizes .action_button from
an anchor-only selector to cover any element, needed once Filter and
Search became real buttons rather than submit_tag inputs coincidentally
sharing similar values with the generic input[type=submit] fallback.
Also folds three hand-copied duplicates of the wavy-underline "plain
link" treatment (#flash a, div.pagination a, #menu_item_list td a)
into the one shared rule they were always copies of -- two of the
three had already silently drifted by missing the -webkit-prefixed
property, the actual cost of copying instead of sharing rather than a
hypothetical one.
| -rw-r--r-- | public/stylesheets/admin.css | 156 |
1 files changed, 111 insertions, 45 deletions
diff --git a/public/stylesheets/admin.css b/public/stylesheets/admin.css index ade3a62..c1cc456 100644 --- a/public/stylesheets/admin.css +++ b/public/stylesheets/admin.css | |||
| @@ -25,7 +25,11 @@ a:hover { | |||
| 25 | body content, node listing tables, the child-creation shortcuts on | 25 | body content, node listing tables, the child-creation shortcuts on |
| 26 | nodes#show, and the dashboard draft list's Show/Revisions links. */ | 26 | nodes#show, and the dashboard draft list's Show/Revisions links. */ |
| 27 | #page_editor a, | 27 | #page_editor a, |
| 28 | .dashboard_widget a, | ||
| 28 | #sitemap a, | 29 | #sitemap a, |
| 30 | #flash a, | ||
| 31 | div.pagination a, | ||
| 32 | #menu_item_list td a, | ||
| 29 | table.node_table a, | 33 | table.node_table a, |
| 30 | table.assets_table a, | 34 | table.assets_table a, |
| 31 | table.events_table a, | 35 | table.events_table a, |
| @@ -191,15 +195,6 @@ input[type=radio] { | |||
| 191 | margin-left: 5px; | 195 | margin-left: 5px; |
| 192 | } | 196 | } |
| 193 | 197 | ||
| 194 | #flash a { | ||
| 195 | text-decoration: underline; | ||
| 196 | -webkit-text-decoration-style: wavy; | ||
| 197 | text-decoration-style: wavy; | ||
| 198 | text-decoration-color: #b0b0b0; | ||
| 199 | text-decoration-thickness: 1px; | ||
| 200 | text-underline-offset: 2px; | ||
| 201 | } | ||
| 202 | |||
| 203 | #flash span { | 198 | #flash span { |
| 204 | letter-spacing: 1px; | 199 | letter-spacing: 1px; |
| 205 | margin-right: 10px; | 200 | margin-right: 10px; |
| @@ -263,14 +258,6 @@ div.pagination span.gap { | |||
| 263 | font-style: normal; | 258 | font-style: normal; |
| 264 | } | 259 | } |
| 265 | 260 | ||
| 266 | div.pagination a { | ||
| 267 | text-decoration: underline; | ||
| 268 | text-decoration-style: wavy; | ||
| 269 | text-decoration-color: #b0b0b0; | ||
| 270 | text-decoration-thickness: 1px; | ||
| 271 | text-underline-offset: 2px; | ||
| 272 | } | ||
| 273 | |||
| 274 | div.pagination a:hover { | 261 | div.pagination a:hover { |
| 275 | color: #ff9600; | 262 | color: #ff9600; |
| 276 | } | 263 | } |
| @@ -385,31 +372,108 @@ input[type="submit"]:hover { | |||
| 385 | } | 372 | } |
| 386 | 373 | ||
| 387 | /* ============================================================ | 374 | /* ============================================================ |
| 388 | Wizard buttons | 375 | Admin dashboard |
| 389 | ============================================================ */ | 376 | ============================================================ */ |
| 390 | 377 | ||
| 391 | #admin_wizard { | 378 | #main_navigation { |
| 379 | display: flex; | ||
| 380 | align-items: center; | ||
| 381 | gap: 0.5rem; | ||
| 382 | } | ||
| 383 | |||
| 384 | #main_navigation a, | ||
| 385 | #main_navigation form.button_to button { | ||
| 386 | display: inline-flex; | ||
| 387 | align-items: center; | ||
| 388 | background-color: #f7f7f7; | ||
| 389 | justify-content: center; | ||
| 390 | width: 2rem; | ||
| 391 | height: 2rem; | ||
| 392 | padding: 0; | ||
| 393 | border-radius: 2px; | ||
| 394 | } | ||
| 395 | |||
| 396 | #main_navigation a:hover, | ||
| 397 | #main_navigation form.button_to button:hover { | ||
| 398 | background-color: #000000; | ||
| 399 | color: #ffffff; | ||
| 400 | } | ||
| 401 | |||
| 402 | #main_navigation svg, | ||
| 403 | .action_button svg { | ||
| 404 | width: 1.25rem; | ||
| 405 | height: 1.25rem; | ||
| 406 | } | ||
| 407 | |||
| 408 | #dashboard_search { | ||
| 409 | margin-bottom: 1.5rem; | ||
| 410 | } | ||
| 411 | |||
| 412 | #dashboard_search input[type=text] { | ||
| 413 | width: 100%; | ||
| 414 | box-sizing: border-box; | ||
| 415 | padding: 10px 14px; | ||
| 416 | font-size: 1.1rem; | ||
| 417 | border-radius: 2px; | ||
| 418 | } | ||
| 419 | |||
| 420 | .button_row { | ||
| 421 | display: flex; | ||
| 422 | flex-wrap: wrap; | ||
| 423 | gap: 0.75rem; | ||
| 424 | align-items: center; | ||
| 425 | } | ||
| 426 | |||
| 427 | .button_row .action_button, | ||
| 428 | .node_search_form .action_button { | ||
| 429 | margin-bottom: 0; | ||
| 430 | } | ||
| 431 | |||
| 432 | #dashboard_signposts { | ||
| 392 | margin-bottom: 2rem; | 433 | margin-bottom: 2rem; |
| 393 | } | 434 | } |
| 394 | 435 | ||
| 395 | #page_submit, | 436 | #dashboard_housekeeping h3 { |
| 396 | .admin_wizard_button { | 437 | margin-bottom: 0.75rem; |
| 397 | display: inline-block; | 438 | } |
| 398 | font-size: 1rem; | 439 | |
| 399 | font-weight: bold; | 440 | #dashboard_widgets { |
| 400 | padding: 0.5rem; | 441 | display: flex; |
| 401 | margin-bottom: 0.5rem; | 442 | flex-wrap: wrap; |
| 402 | background-color: green; | 443 | gap: 1.5rem; |
| 444 | margin-bottom: 2rem; | ||
| 445 | } | ||
| 446 | |||
| 447 | .dashboard_widget { | ||
| 448 | flex: 1 1 300px; | ||
| 449 | border: 1px solid #e8e8e8; | ||
| 450 | border-radius: 6px; | ||
| 451 | padding: 0.5rem 0.75rem; | ||
| 452 | } | ||
| 453 | |||
| 454 | .dashboard_widget h3 { | ||
| 455 | margin-top: 0; | ||
| 456 | } | ||
| 457 | |||
| 458 | .dashboard_widget ul { | ||
| 459 | list-style: none; | ||
| 460 | margin: 0 0 0.75rem; | ||
| 461 | padding: 0; | ||
| 403 | } | 462 | } |
| 404 | 463 | ||
| 405 | #page_submit a, | 464 | .dashboard_widget li { |
| 406 | .admin_wizard_button a { | 465 | display: flex; |
| 407 | color: white !important; | 466 | justify-content: space-between; |
| 467 | align-items: flex-start; | ||
| 468 | gap: 1rem; | ||
| 469 | padding: 0.35rem 0; | ||
| 470 | border-bottom: 1px solid #f1f1f1; | ||
| 408 | } | 471 | } |
| 409 | 472 | ||
| 410 | #page_submit:hover, | 473 | .dashboard_widget_meta { |
| 411 | .admin_wizard_button:hover { | 474 | white-space: nowrap; |
| 412 | background-color: lime !important; | 475 | color: #969696; |
| 476 | font-size: 0.85rem; | ||
| 413 | } | 477 | } |
| 414 | 478 | ||
| 415 | /* ============================================================ | 479 | /* ============================================================ |
| @@ -721,7 +785,7 @@ table.user_table td.user_login { | |||
| 721 | display: block; | 785 | display: block; |
| 722 | } | 786 | } |
| 723 | 787 | ||
| 724 | a.action_button, | 788 | .action_button, |
| 725 | form.button_to input[type="submit"], | 789 | form.button_to input[type="submit"], |
| 726 | form.button_to button[type="submit"] { | 790 | form.button_to button[type="submit"] { |
| 727 | padding: 4px 12px; | 791 | padding: 4px 12px; |
| @@ -768,6 +832,11 @@ form.button_to button[type="submit"] { | |||
| 768 | border-radius: 2px; | 832 | border-radius: 2px; |
| 769 | } | 833 | } |
| 770 | 834 | ||
| 835 | .node_search_form .action_button { | ||
| 836 | height: 2.25rem; | ||
| 837 | box-sizing: border-box; | ||
| 838 | } | ||
| 839 | |||
| 771 | /* Layout only -- the at-rest visibility (wavy underline) for these | 840 | /* Layout only -- the at-rest visibility (wavy underline) for these |
| 772 | links comes from the scoped rule in Base elements above. */ | 841 | links comes from the scoped rule in Base elements above. */ |
| 773 | .add_child_links { | 842 | .add_child_links { |
| @@ -840,8 +909,10 @@ div#page_editor { | |||
| 840 | } | 909 | } |
| 841 | 910 | ||
| 842 | #page_editor a.action_button, | 911 | #page_editor a.action_button, |
| 843 | a.action_button { | 912 | .action_button { |
| 844 | display: inline-block; | 913 | display: inline-flex; |
| 914 | align-items: center; | ||
| 915 | gap: 0.5rem; | ||
| 845 | -webkit-appearance: none; | 916 | -webkit-appearance: none; |
| 846 | appearance: none; | 917 | appearance: none; |
| 847 | border: 1px solid #000000; | 918 | border: 1px solid #000000; |
| @@ -851,10 +922,13 @@ a.action_button { | |||
| 851 | text-decoration: none; | 922 | text-decoration: none; |
| 852 | color: #000000; | 923 | color: #000000; |
| 853 | margin-bottom: 1rem; | 924 | margin-bottom: 1rem; |
| 925 | background: none; | ||
| 926 | cursor: pointer; | ||
| 927 | font: inherit; | ||
| 854 | } | 928 | } |
| 855 | 929 | ||
| 856 | #page_editor a.action_button:hover, | 930 | #page_editor a.action_button:hover, |
| 857 | a.action_button:hover { | 931 | .action_button:hover { |
| 858 | color: #ffffff; | 932 | color: #ffffff; |
| 859 | background-color: #000000; | 933 | background-color: #000000; |
| 860 | } | 934 | } |
| @@ -1104,14 +1178,6 @@ div#draft_list table td.actions a { | |||
| 1104 | cursor: grab; | 1178 | cursor: grab; |
| 1105 | } | 1179 | } |
| 1106 | 1180 | ||
| 1107 | #menu_item_list td a { | ||
| 1108 | text-decoration: underline; | ||
| 1109 | text-decoration-style: wavy; | ||
| 1110 | text-decoration-color: #b0b0b0; | ||
| 1111 | text-decoration-thickness: 1px; | ||
| 1112 | text-underline-offset: 2px; | ||
| 1113 | } | ||
| 1114 | |||
| 1115 | .ui-state-highlight td { | 1181 | .ui-state-highlight td { |
| 1116 | height: 20px; | 1182 | height: 20px; |
| 1117 | } | 1183 | } |
