Replace unicode left arrow with SVG icon in admin nav logo

This commit is contained in:
Pontoporeia
2026-03-31 16:57:41 +02:00
parent a88e5562f8
commit f3f1e0e5fc
4 changed files with 45 additions and 31 deletions

View File

@@ -1,5 +1,8 @@
# TODO # TODO
## Done
- [x] Replace unicode left arrow (←) with SVG arrow icon in admin nav logo
## Fixes ## Fixes
- [x] Fix CSV import UNIQUE constraint crash: skip rows whose identifier already exists in DB - [x] Fix CSV import UNIQUE constraint crash: skip rows whose identifier already exists in DB
- [x] Auto-migrate both test.db and posterg.db on `just serve` via scripts/migrate.sh - [x] Auto-migrate both test.db and posterg.db on `just serve` via scripts/migrate.sh

View File

@@ -24,13 +24,18 @@ html, body {
min-height: 100vh; min-height: 100vh;
background: var(--admin-bg); background: var(--admin-bg);
color: var(--admin-text); color: var(--admin-text);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, font-family:
"Helvetica Neue", Arial, sans-serif; -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
Arial, sans-serif;
} }
/* Admin nav (dark version of site-nav) */ /* Admin nav (dark version of site-nav) */
.admin-nav { .admin-nav {
background: linear-gradient(to bottom, var(--admin-purple) 0%, rgba(149, 87, 181, 0.0) 100%); background: linear-gradient(
to bottom,
var(--admin-purple) 0%,
rgba(149, 87, 181, 0.0) 100%
);
padding: 0.55rem 1.5rem; padding: 0.55rem 1.5rem;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -612,36 +617,36 @@ html, body {
border: 1px solid #333; border: 1px solid #333;
border-radius: 4px; border-radius: 4px;
padding: 1rem 1.25rem; padding: 1rem 1.25rem;
margin: .5rem 0 1rem; margin: 0.5rem 0 1rem;
background: rgba(255,255,255,.02); background: rgba(255, 255, 255, 0.02);
} }
.admin-fieldset-legend { .admin-fieldset-legend {
font-size: .82rem; font-size: 0.82rem;
font-weight: 600; font-weight: 600;
letter-spacing: .04em; letter-spacing: 0.04em;
text-transform: uppercase; text-transform: uppercase;
color: var(--admin-text-muted); color: var(--admin-text-muted);
padding: 0 .5rem; padding: 0 0.5rem;
} }
.admin-jury-row { .admin-jury-row {
display: flex; display: flex;
align-items: center; align-items: center;
gap: .75rem; gap: 0.75rem;
flex-wrap: wrap; flex-wrap: wrap;
} }
.admin-jury-list { .admin-jury-list {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: .5rem; gap: 0.5rem;
} }
.admin-jury-entry { .admin-jury-entry {
display: flex; display: flex;
align-items: center; align-items: center;
gap: .75rem; gap: 0.75rem;
flex-wrap: wrap; flex-wrap: wrap;
} }
@@ -654,8 +659,8 @@ html, body {
border: 1px solid #555; border: 1px solid #555;
color: var(--admin-text-muted); color: var(--admin-text-muted);
border-radius: 3px; border-radius: 3px;
padding: .2rem .45rem; padding: 0.2rem 0.45rem;
font-size: .8rem; font-size: 0.8rem;
cursor: pointer; cursor: pointer;
line-height: 1; line-height: 1;
} }
@@ -668,23 +673,23 @@ html, body {
.admin-inline-form { .admin-inline-form {
display: flex; display: flex;
align-items: center; align-items: center;
gap: .4rem; gap: 0.4rem;
flex-wrap: wrap; flex-wrap: wrap;
} }
.admin-input--inline { .admin-input--inline {
padding: .28rem .5rem; padding: 0.28rem 0.5rem;
font-size: .82rem; font-size: 0.82rem;
} }
.admin-select--inline { .admin-select--inline {
padding: .28rem .5rem; padding: 0.28rem 0.5rem;
font-size: .82rem; font-size: 0.82rem;
} }
.admin-btn--sm { .admin-btn--sm {
padding: .28rem .65rem; padding: 0.28rem 0.65rem;
font-size: .8rem; font-size: 0.8rem;
} }
.admin-btn--warning { .admin-btn--warning {
@@ -712,9 +717,9 @@ html, body {
background: #1a1a2e; background: #1a1a2e;
border: 1px solid #333; border: 1px solid #333;
border-radius: 4px; border-radius: 4px;
padding: .65rem 1rem; padding: 0.65rem 1rem;
margin-bottom: 1.5rem; margin-bottom: 1.5rem;
font-size: .88rem; font-size: 0.88rem;
color: var(--admin-text-muted); color: var(--admin-text-muted);
} }
@@ -727,13 +732,13 @@ html, body {
/* Visibility / access badges */ /* Visibility / access badges */
.status-access { .status-access {
display: inline-block; display: inline-block;
font-size: .7rem; font-size: 0.7rem;
padding: .1rem .4rem; padding: 0.1rem 0.4rem;
border-radius: 3px; border-radius: 3px;
margin-top: .2rem; margin-top: 0.2rem;
background: #333; background: #333;
color: #aaa; color: #aaa;
letter-spacing: .03em; letter-spacing: 0.03em;
} }
.status-access--Libre, .status-access--Libre,

View File

@@ -32,8 +32,9 @@ body {
} }
body { body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, font-family:
"Helvetica Neue", Arial, sans-serif; -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
Arial, sans-serif;
background: var(--white); background: var(--white);
color: var(--black); color: var(--black);
} }
@@ -51,12 +52,17 @@ a:hover {
NAV BAR (shared across all public pages) NAV BAR (shared across all public pages)
============================================================ */ ============================================================ */
.site-nav { .site-nav {
background: linear-gradient(to bottom, var(--purple) 0%, rgba(149, 87, 181, 0.0) 100%); background: linear-gradient(
padding: 0.55rem 1.5rem; to bottom,
var(--purple) 0%,
rgba(149, 87, 181, 0.0) 100%
);
padding: 1rem 1.5rem;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
flex-shrink: 0; flex-shrink: 0;
/* height: 3ch; */
} }
.site-nav__logo { .site-nav__logo {

View File

@@ -24,7 +24,7 @@
<a href="#main-content" class="skip-link">Aller au contenu principal</a> <a href="#main-content" class="skip-link">Aller au contenu principal</a>
<nav class="admin-nav" aria-label="Navigation admin"> <nav class="admin-nav" aria-label="Navigation admin">
<a href="/" class="admin-nav__logo" target="_blank" rel="noopener noreferrer"> <a href="/" class="admin-nav__logo" target="_blank" rel="noopener noreferrer">
<span aria-hidden="true">&#8592; </span>Posterg<span class="sr-only"> (site public, nouvel onglet)</span> <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 256 256" style="vertical-align:middle;margin-right:0.4em"><path d="M208,72H128V32a8,8,0,0,0-13.66-5.66l-96,96a8,8,0,0,0,0,11.32l96,96A8,8,0,0,0,128,224V184h80a16,16,0,0,0,16-16V88A16,16,0,0,0,208,72Zm0,96H120a8,8,0,0,0-8,8v28.69L35.31,128,112,51.31V80a8,8,0,0,0,8,8h88Z"></path></svg>Posterg<span class="sr-only"> (site public, nouvel onglet)</span>
</a> </a>
<?php <?php
$currentPage = basename($_SERVER['PHP_SELF']); $currentPage = basename($_SERVER['PHP_SELF']);