mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 16:19:19 +02:00
style: unify form element styles in common.css, redesign focus rings, refactor public search bar, tweak admin section
This commit is contained in:
18
TODO.md
18
TODO.md
@@ -109,3 +109,21 @@
|
||||
- [x] All `$required = true` callers in `form.php`, `fieldset-tfe-info.php`, `fieldset-academic.php`, `fieldset-licence-explanation.php`, `fieldset-files.php` changed to `!$adminMode`
|
||||
- [x] Hardcoded `required` HTML attributes in `fieldset-tfe-info.php` (synopsis, objet radios), `fieldset-licence-explanation.php` (access type radios), `jury-fieldset.php` (promoteur, lecteurs interne/externe) gated on `!$adminMode`
|
||||
- [x] Dynamic JS `ulbInput.required` in jury fieldset also gated
|
||||
# TODO
|
||||
|
||||
- [x] Make all heading font sizes the same (slightly smaller than current h1) in common.css
|
||||
- [x] Remove individual font-size overrides from other CSS files so they inherit
|
||||
- [x] Standardise header nav structure: admin uses nav-left/nav-right like public
|
||||
- [x] Unify font-size for all nav links (logo + nav links all use var(--step--1))
|
||||
- [x] Clean up redundant CSS rules (.nav-logo, .nav-left-links)
|
||||
- [x] Update admin.css selectors to match new header structure
|
||||
- [x] Bump nav font-size to var(--step-0)
|
||||
- [x] Add small inverted top gradient to admin body
|
||||
- [x] Commit
|
||||
- [x] Cap home page cards grid to max 3 columns (was auto-fill, now repeat(3, 1fr) with 2→1 column breakpoints)
|
||||
- [x] Remove Modifier link from admin header when on edit page
|
||||
- [x] Move admin nav links to right side, keep only logo on left
|
||||
- [x] Remove Mots-clés from admin header, add as button in dashboard toolbar; use grid layout (title|stats, search|buttons)
|
||||
- [x] Group admin toolbar buttons: + Ajouter + Mots-clés stacked above Import/Export
|
||||
- [x] Stack admin filters vertically: search+button row above dropdowns row
|
||||
- [x] Standardise form inputs/selects/textareas in common.css: padding, --radius var, 2px accent border on focus
|
||||
|
||||
@@ -16,16 +16,10 @@
|
||||
white-space: nowrap;
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
.admin-body header nav > a,
|
||||
.admin-body header nav ul {
|
||||
.admin-body header nav .nav-left,
|
||||
.admin-body header nav .nav-right-links {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.admin-body header nav,
|
||||
.admin-body header nav ul,
|
||||
.admin-body header nav li {
|
||||
list-style: none;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.admin-body header nav ul [data-nav-logout] a {
|
||||
opacity: 0.6;
|
||||
@@ -40,7 +34,7 @@
|
||||
}
|
||||
|
||||
/* Public-site link icon in admin nav */
|
||||
.admin-body header nav > a svg {
|
||||
.admin-body header nav .nav-logo svg {
|
||||
vertical-align: middle;
|
||||
margin-right: 0.4em;
|
||||
}
|
||||
@@ -57,14 +51,17 @@
|
||||
overflow-y: auto;
|
||||
padding: var(--space-l) var(--space-l) var(--space-2xl);
|
||||
width: 100%;
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(149, 87, 181, 0.18) 0%,
|
||||
rgba(0, 0, 0, 0) 6%
|
||||
);
|
||||
}
|
||||
|
||||
.admin-body main > h1,
|
||||
.admin-list-header > h1 {
|
||||
font-size: var(--step-2);
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.08em;
|
||||
margin: 0 0 var(--space-l) 0;
|
||||
}
|
||||
|
||||
@@ -115,7 +112,7 @@
|
||||
|
||||
.toast {
|
||||
padding: var(--space-s) var(--space-m);
|
||||
border-radius: 8px;
|
||||
border-radius: var(--radius);
|
||||
font-size: var(--step-0);
|
||||
border-left: 4px solid;
|
||||
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.25);
|
||||
@@ -170,7 +167,7 @@
|
||||
.admin-stat {
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-2xs) var(--space-s);
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
@@ -201,7 +198,7 @@
|
||||
gap: var(--space-s);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-2xs) var(--space-s);
|
||||
margin-bottom: var(--space-m);
|
||||
font-size: var(--step--1);
|
||||
@@ -245,23 +242,6 @@
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.admin-filters input[type="text"],
|
||||
.admin-filters select {
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
font-size: var(--step--1);
|
||||
font-family: inherit;
|
||||
padding: var(--space-3xs) var(--space-xs);
|
||||
background: transparent;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.admin-filters input[type="text"]:focus,
|
||||
.admin-filters select:focus {
|
||||
outline: none;
|
||||
border-color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.admin-filters-btn {
|
||||
/* deprecated alias for .btn--primary; kept for backward-compat */
|
||||
}
|
||||
@@ -278,7 +258,7 @@
|
||||
padding: var(--space-2xs) var(--space-s);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
margin-bottom: var(--space-s);
|
||||
font-size: var(--step--1);
|
||||
}
|
||||
@@ -326,7 +306,7 @@
|
||||
.status-badge {
|
||||
display: inline-block;
|
||||
padding: var(--space-3xs) var(--space-2xs);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
font-size: var(--step--2);
|
||||
font-weight: 500;
|
||||
letter-spacing: 0.04em;
|
||||
@@ -346,7 +326,7 @@
|
||||
display: inline-block;
|
||||
font-size: var(--step--2);
|
||||
padding: var(--space-3xs) var(--space-3xs);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
background: var(--bg-tertiary);
|
||||
color: var(--text-secondary);
|
||||
letter-spacing: 0.03em;
|
||||
@@ -411,14 +391,13 @@
|
||||
/* ── Thesis info sections (thanks page) ─────────────────────────────────── */
|
||||
.admin-body main > section:not([aria-labelledby^="settings-"]) {
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 6px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-m);
|
||||
margin-bottom: var(--space-m);
|
||||
}
|
||||
|
||||
.admin-body main > section:not([aria-labelledby^="settings-"]) h2 {
|
||||
margin: 0 0 var(--space-s);
|
||||
font-size: var(--step-1);
|
||||
border-bottom: 1px solid var(--border-primary);
|
||||
padding-bottom: var(--space-2xs);
|
||||
}
|
||||
@@ -449,7 +428,6 @@
|
||||
}
|
||||
|
||||
.admin-body main > section[aria-labelledby^="settings-"] > h2 {
|
||||
font-size: var(--step-1);
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.06em;
|
||||
text-transform: uppercase;
|
||||
@@ -490,7 +468,7 @@
|
||||
/* ── Account status block ───────────────────────────────────────────────── */
|
||||
.admin-account-status {
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-s) var(--space-m);
|
||||
margin-bottom: var(--space-l);
|
||||
display: flex;
|
||||
@@ -514,7 +492,7 @@
|
||||
font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
|
||||
font-size: var(--step--2);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-3xs) var(--space-3xs);
|
||||
color: var(--text-secondary);
|
||||
background: var(--bg-secondary);
|
||||
@@ -529,7 +507,7 @@
|
||||
/* ── Danger zone (account page) ─────────────────────────────────────────── */
|
||||
.admin-danger-zone {
|
||||
border: 1px solid var(--danger-border-muted);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-m) var(--space-m);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -553,7 +531,7 @@
|
||||
.admin-login-box {
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-l);
|
||||
width: 100%;
|
||||
max-width: 380px;
|
||||
@@ -561,7 +539,6 @@
|
||||
|
||||
.admin-login-box h2 {
|
||||
margin: 0 0 var(--space-m);
|
||||
font-size: var(--step-0);
|
||||
font-weight: 500;
|
||||
text-align: center;
|
||||
}
|
||||
@@ -597,7 +574,7 @@
|
||||
background: var(--success-muted-bg);
|
||||
border: 1px solid var(--success);
|
||||
border-left: 3px solid var(--success);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-xs) var(--space-s);
|
||||
font-size: var(--step--1);
|
||||
margin: 0;
|
||||
@@ -607,7 +584,7 @@
|
||||
background: var(--accent-muted);
|
||||
border: 1px solid var(--error);
|
||||
border-left: 3px solid var(--error);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-xs) var(--space-s);
|
||||
font-size: var(--step--1);
|
||||
margin-bottom: var(--space-s);
|
||||
@@ -712,39 +689,55 @@
|
||||
max-height: 100px;
|
||||
object-fit: cover;
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
display: block;
|
||||
margin-top: var(--space-2xs);
|
||||
}
|
||||
|
||||
/* ── List page toolbar (title + filters + stats + import, one row) ───────── */
|
||||
.admin-list-toolbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-m);
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto;
|
||||
gap: var(--space-m) var(--space-l);
|
||||
margin-bottom: var(--space-m);
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.admin-list-toolbar h1 {
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.admin-list-toolbar .admin-stats {
|
||||
justify-self: end;
|
||||
}
|
||||
|
||||
.admin-list-toolbar .admin-filters {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--space-xs);
|
||||
margin-bottom: 0;
|
||||
flex-wrap: wrap;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.admin-list-toolbar .admin-filters input[type="text"] {
|
||||
.admin-list-toolbar .admin-filters__search {
|
||||
display: flex;
|
||||
gap: var(--space-xs);
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.admin-list-toolbar .admin-filters__search input[type="text"] {
|
||||
min-width: 10rem;
|
||||
flex: 1 1 10rem;
|
||||
}
|
||||
|
||||
.admin-list-toolbar .admin-filters select {
|
||||
.admin-list-toolbar .admin-filters__dropdowns {
|
||||
display: flex;
|
||||
gap: var(--space-xs);
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.admin-list-toolbar .admin-filters__dropdowns select {
|
||||
min-width: 7rem;
|
||||
flex: 1 1 7rem;
|
||||
}
|
||||
@@ -754,10 +747,16 @@
|
||||
}
|
||||
|
||||
.admin-list-toolbar__right {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--space-xs);
|
||||
}
|
||||
|
||||
.admin-btn-group {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-s);
|
||||
flex-shrink: 0;
|
||||
gap: var(--space-xs);
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
/* ── Dialog ───────────────────────────────────────────────────────────── */
|
||||
@@ -776,7 +775,6 @@
|
||||
}
|
||||
|
||||
.admin-dialog__header h2 {
|
||||
font-size: var(--step-0);
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.06em;
|
||||
text-transform: uppercase;
|
||||
@@ -792,7 +790,7 @@
|
||||
color: var(--text-tertiary);
|
||||
padding: var(--space-3xs);
|
||||
line-height: 1;
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
transition: color 0.15s;
|
||||
}
|
||||
|
||||
@@ -853,7 +851,7 @@
|
||||
font-size: var(--step--2);
|
||||
font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-xs);
|
||||
background: var(--bg-secondary);
|
||||
}
|
||||
@@ -876,7 +874,7 @@
|
||||
margin-bottom: var(--space-m);
|
||||
font-size: var(--step--1);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
background: var(--bg-secondary);
|
||||
}
|
||||
|
||||
@@ -980,7 +978,7 @@
|
||||
font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
|
||||
font-size: var(--step--2);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-3xs);
|
||||
color: var(--text-secondary);
|
||||
background: var(--bg-secondary);
|
||||
@@ -1002,19 +1000,14 @@
|
||||
.param-form input[type="password"] {
|
||||
width: 100%;
|
||||
max-width: 380px;
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-bottom: 1px solid var(--border-primary);
|
||||
font-size: var(--step--1);
|
||||
font-family: inherit;
|
||||
padding: var(--space-3xs) 0;
|
||||
border-radius: 0;
|
||||
transition: border-color 0.15s;
|
||||
padding: var(--space-3xs) 0;
|
||||
}
|
||||
|
||||
.param-form input[type="password"]:focus {
|
||||
outline: none;
|
||||
border-bottom-color: var(--accent-primary);
|
||||
border-bottom: 2px solid var(--accent-primary);
|
||||
}
|
||||
|
||||
.param-form > button {
|
||||
@@ -1097,12 +1090,6 @@
|
||||
.param-smtp-test-row input[type="email"] {
|
||||
width: 100%;
|
||||
padding: var(--space-xs) var(--space-s);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
background: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
font-size: var(--step--1);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.param-smtp-test-row input[type="email"]:focus {
|
||||
outline: 2px solid var(--accent-primary);
|
||||
@@ -1146,28 +1133,18 @@
|
||||
.param-grid input[type="email"],
|
||||
.param-grid select {
|
||||
width: 100%;
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-bottom: 1px solid var(--border-primary);
|
||||
font-size: var(--step--1);
|
||||
font-family: inherit;
|
||||
padding: var(--space-3xs) 0;
|
||||
border-radius: 0;
|
||||
transition: border-color 0.15s;
|
||||
padding: var(--space-3xs) 0;
|
||||
}
|
||||
.param-grid input:focus,
|
||||
.param-grid select:focus {
|
||||
outline: none;
|
||||
border-bottom-color: var(--accent-primary);
|
||||
border-bottom: 2px solid var(--accent-primary);
|
||||
}
|
||||
.param-grid select {
|
||||
cursor: pointer;
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
|
||||
background-repeat: no-repeat;
|
||||
background-position: right 0 center;
|
||||
padding-right: 1.2rem;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
.param-fieldset-inline legend {
|
||||
padding: 0 var(--space-xs);
|
||||
@@ -1190,7 +1167,7 @@
|
||||
/* ── Settings page sections — legacy aliases (kept for any remaining use) ─ */
|
||||
.admin-settings-section {
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 6px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-m) var(--space-l);
|
||||
margin-bottom: var(--space-l);
|
||||
}
|
||||
@@ -1213,7 +1190,7 @@
|
||||
gap: var(--space-s);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-xs) var(--space-m);
|
||||
font-size: var(--step--1);
|
||||
}
|
||||
@@ -1234,7 +1211,7 @@
|
||||
|
||||
.admin-account-status {
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-s) var(--space-m);
|
||||
margin-bottom: var(--space-l);
|
||||
display: flex;
|
||||
@@ -1258,7 +1235,7 @@
|
||||
font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
|
||||
font-size: var(--step--2);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-3xs) var(--space-3xs);
|
||||
color: var(--text-secondary);
|
||||
background: var(--bg-secondary);
|
||||
@@ -1272,7 +1249,7 @@
|
||||
|
||||
.admin-danger-zone {
|
||||
border: 1px solid var(--danger-border-muted);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-m) var(--space-m);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -1299,7 +1276,7 @@
|
||||
gap: var(--space-m);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-xs) var(--space-m);
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -1388,7 +1365,7 @@
|
||||
min-height: 2.75rem;
|
||||
padding: 0 var(--space-2xs);
|
||||
border: 1px solid var(--border-secondary);
|
||||
border-radius: 10px;
|
||||
border-radius: var(--radius);
|
||||
color: var(--text-primary);
|
||||
font-size: var(--step--1);
|
||||
text-decoration: none;
|
||||
@@ -1434,7 +1411,7 @@
|
||||
gap: var(--space-m);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-xs) var(--space-m);
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -1531,7 +1508,7 @@
|
||||
.fhb-sortable-panel,
|
||||
.fhb-form-preview-panel {
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 6px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-s);
|
||||
background: var(--bg-secondary);
|
||||
}
|
||||
@@ -1581,7 +1558,7 @@
|
||||
background: var(--bg-primary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-left: 4px solid var(--accent-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-2xs) var(--space-xs);
|
||||
cursor: default;
|
||||
transition: box-shadow 0.15s, border-color 0.15s;
|
||||
@@ -1670,7 +1647,7 @@
|
||||
|
||||
.fhb-fieldset-preview {
|
||||
border: 1px solid var(--border-secondary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-xs);
|
||||
background: var(--bg-primary);
|
||||
}
|
||||
@@ -1700,7 +1677,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-2xs);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-3xs) var(--space-xs);
|
||||
font-size: var(--step--2);
|
||||
border: 1px dashed var(--border-primary);
|
||||
@@ -1731,6 +1708,6 @@
|
||||
font-weight: 600;
|
||||
color: var(--accent-primary);
|
||||
background: var(--accent-muted);
|
||||
border-radius: 2px;
|
||||
border-radius: var(--radius);
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
@@ -158,24 +158,10 @@
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.prose h1,
|
||||
.prose h2,
|
||||
.prose h3 {
|
||||
font-family: var(--font-display);
|
||||
font-weight: 400;
|
||||
.prose :where(h1, h2, h3) {
|
||||
margin: 1.5em 0 0.5em 0;
|
||||
}
|
||||
|
||||
.prose h1 {
|
||||
font-size: var(--step-3);
|
||||
}
|
||||
.prose h2 {
|
||||
font-size: var(--step-2);
|
||||
}
|
||||
.prose h3 {
|
||||
font-size: var(--step-1);
|
||||
}
|
||||
|
||||
.prose a {
|
||||
color: var(--accent-primary);
|
||||
text-decoration: underline;
|
||||
@@ -204,7 +190,7 @@
|
||||
font-size: 0.88em;
|
||||
background: var(--bg-tertiary);
|
||||
padding: 0.1em 0.3em;
|
||||
border-radius: 2px;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
|
||||
@@ -48,14 +48,7 @@ header {
|
||||
);
|
||||
|
||||
.nav-logo {
|
||||
font-family: var(--font-display);
|
||||
letter-spacing: 0.12em;
|
||||
text-transform: uppercase;
|
||||
color: var(--accent-foreground);
|
||||
text-decoration: none;
|
||||
text-shadow:
|
||||
0 0 16px var(--header-shadow-strong),
|
||||
0 0 32px var(--header-shadow-soft);
|
||||
}
|
||||
|
||||
.nav-left {
|
||||
@@ -66,7 +59,6 @@ header {
|
||||
|
||||
.nav-left-links,
|
||||
.nav-right-links {
|
||||
font-family: var(--font-display);
|
||||
display: flex;
|
||||
gap: var(--space-l);
|
||||
align-items: center;
|
||||
@@ -80,7 +72,7 @@ header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
font-size: var(--step-2);
|
||||
font-size: var(--step-0);
|
||||
|
||||
a {
|
||||
font-family: var(--font-display);
|
||||
@@ -88,6 +80,9 @@ header {
|
||||
text-transform: uppercase;
|
||||
color: var(--accent-foreground);
|
||||
text-decoration: none;
|
||||
text-shadow:
|
||||
0 0 16px var(--header-shadow-strong),
|
||||
0 0 32px var(--header-shadow-soft);
|
||||
}
|
||||
|
||||
ul {
|
||||
@@ -100,21 +95,9 @@ header {
|
||||
}
|
||||
|
||||
ul a {
|
||||
font-size: var(--step--1);
|
||||
letter-spacing: 0.12em;
|
||||
text-transform: uppercase;
|
||||
color: var(--accent-foreground);
|
||||
text-decoration: none;
|
||||
transition: opacity 0.15s;
|
||||
}
|
||||
|
||||
a,
|
||||
ul a {
|
||||
text-shadow:
|
||||
0 0 16px var(--header-shadow-strong),
|
||||
0 0 32px var(--header-shadow-soft);
|
||||
}
|
||||
|
||||
ul a:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
@@ -260,7 +243,6 @@ header {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: var(--space-s) var(--space-s);
|
||||
font-size: var(--step-1);
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@@ -300,6 +282,21 @@ main * {
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
HEADINGS — global scale, shared by admin + public pages
|
||||
All headings use the same font size (slightly smaller than
|
||||
the previous h1). Individual page overrides for size have
|
||||
been removed so everything inherits from here.
|
||||
============================================================ */
|
||||
|
||||
:where(h1, h2, h3, h4, h5, h6) {
|
||||
font-family: var(--font-display);
|
||||
font-size: var(--step-2);
|
||||
font-weight: 400;
|
||||
margin: 0 0 var(--space-l) 0;
|
||||
line-height: 1.15;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
SEARCH BAR (shared)
|
||||
============================================================ */
|
||||
@@ -310,37 +307,37 @@ main * {
|
||||
background: linear-gradient(180deg, var(--gradient-4) 0%, #ffffffee 100%);
|
||||
}
|
||||
|
||||
.header-search-wrap form[role="search"] {
|
||||
.header-search-form {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.header-search-input-wrap {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-2xs);
|
||||
padding: var(--space-3xs) var(--space-s);
|
||||
border: 1px solid var(--accent-primary);
|
||||
border-radius: 10px;
|
||||
background: var(--bg-primary);
|
||||
width: 100%;
|
||||
color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.header-search-wrap form[role="search"] svg {
|
||||
color: var(--text-tertiary);
|
||||
flex-shrink: 0;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
.header-search-icon {
|
||||
position: absolute;
|
||||
left: var(--space-s);
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
stroke: var(--accent-primary);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.header-search-wrap form[role="search"] input {
|
||||
flex: 1;
|
||||
border: none;
|
||||
font-size: var(--step--1);
|
||||
.header-search-input-wrap input {
|
||||
width: 100%;
|
||||
padding: var(--space-xs) var(--space-s) var(--space-xs) var(--space-xl);
|
||||
border: 1px solid var(--accent-primary);
|
||||
border-radius: var(--radius);
|
||||
background: var(--bg-primary);
|
||||
font-size: var(--step-0);
|
||||
color: var(--text-primary);
|
||||
background: transparent;
|
||||
padding: var(--space-3xs) 0;
|
||||
font-family: inherit;
|
||||
}
|
||||
|
||||
.header-search-wrap form[role="search"] input::placeholder {
|
||||
.header-search-input-wrap input::placeholder {
|
||||
color: var(--accent-primary);
|
||||
}
|
||||
|
||||
@@ -380,10 +377,12 @@ main * {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
/* Consistent keyboard-focus outline for all interactive elements */
|
||||
/* Consistent keyboard-focus ring for all interactive elements */
|
||||
:focus-visible {
|
||||
outline: 2px solid var(--accent-primary);
|
||||
outline-offset: 2px;
|
||||
outline: none;
|
||||
box-shadow: 0 0 0 2px var(--accent-primary);
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-3xs) var(--space-xs);
|
||||
}
|
||||
|
||||
/* Respect user motion preferences */
|
||||
@@ -396,10 +395,61 @@ main * {
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
FORM ELEMENTS — base input / select / textarea / button
|
||||
============================================================ */
|
||||
|
||||
label {
|
||||
display: block;
|
||||
margin-bottom: var(--space-3xs);
|
||||
}
|
||||
|
||||
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="color"]),
|
||||
select,
|
||||
textarea {
|
||||
font-family: inherit;
|
||||
font-size: var(--step--1);
|
||||
padding: var(--space-2xs) var(--space-xs);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: var(--radius);
|
||||
background: transparent;
|
||||
color: var(--text-primary);
|
||||
transition: border-color 0.15s;
|
||||
}
|
||||
|
||||
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="color"]):focus,
|
||||
select:focus,
|
||||
textarea:focus {
|
||||
outline: none;
|
||||
border: 2px solid var(--accent-primary);
|
||||
}
|
||||
|
||||
input::placeholder,
|
||||
textarea::placeholder {
|
||||
color: var(--text-tertiary);
|
||||
font-size: var(--step--1);
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: vertical;
|
||||
min-height: 80px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
select {
|
||||
cursor: pointer;
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
|
||||
background-repeat: no-repeat;
|
||||
background-position: right 0.5rem center;
|
||||
padding-right: 1.5rem;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
BUTTONS — shared .btn base class
|
||||
Targets both <a> and <button>, always has a background.
|
||||
border-radius: 10px; padding: var(--space-xs)
|
||||
border-radius: var(--radius); padding: var(--space-xs)
|
||||
============================================================ */
|
||||
|
||||
.btn {
|
||||
@@ -408,7 +458,7 @@ main * {
|
||||
justify-content: center;
|
||||
gap: var(--space-3xs);
|
||||
padding: var(--space-xs);
|
||||
border-radius: 10px;
|
||||
border-radius: var(--radius);
|
||||
font-size: var(--step--1);
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
@@ -573,7 +623,7 @@ main * {
|
||||
fieldset {
|
||||
/*background: var(--bg-secondary);*/
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-m);
|
||||
margin: 0;
|
||||
}
|
||||
@@ -624,7 +674,7 @@ td {
|
||||
|
||||
dialog {
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 6px;
|
||||
border-radius: var(--radius);
|
||||
background: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
padding: 0;
|
||||
@@ -649,5 +699,5 @@ details > summary::-webkit-details-marker {
|
||||
border-radius: 15px;
|
||||
}
|
||||
audio::-webkit-media-controls-enclosure {
|
||||
border-radius: 10px;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
padding: var(--space-m);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 8px;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.access-req-stat-number {
|
||||
@@ -63,7 +63,7 @@
|
||||
.access-req-empty {
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 8px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-xl);
|
||||
text-align: center;
|
||||
color: var(--text-secondary);
|
||||
@@ -79,7 +79,7 @@
|
||||
.access-req-card {
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 8px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-m);
|
||||
transition: box-shadow 0.2s;
|
||||
}
|
||||
@@ -97,7 +97,6 @@
|
||||
}
|
||||
|
||||
.access-req-card__thesis h3 {
|
||||
font-size: var(--step-1);
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin: 0 0 var(--space-3xs) 0;
|
||||
@@ -171,7 +170,7 @@
|
||||
.access-req-card__admin-notes {
|
||||
background: var(--bg-primary);
|
||||
padding: var(--space-s);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
font-size: var(--step--1);
|
||||
line-height: 1.6;
|
||||
}
|
||||
@@ -237,14 +236,7 @@
|
||||
/* Dialog textarea/label enhancements */
|
||||
.admin-dialog textarea {
|
||||
width: 100%;
|
||||
font-family: inherit;
|
||||
font-size: var(--step--1);
|
||||
padding: var(--space-2xs);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
background: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
resize: vertical;
|
||||
margin: var(--space-s) 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
/* ── Inputs, selects, textareas ─────────────────────────────────────────── */
|
||||
/* ── Inputs, selects, textareas (admin forms use bottom-border style) ──── */
|
||||
.admin-form
|
||||
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not(
|
||||
[type="hidden"]
|
||||
@@ -42,16 +42,10 @@
|
||||
.admin-inline-form input[type="number"],
|
||||
.admin-inline-form select {
|
||||
width: 100%;
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-bottom: 1px solid var(--border-primary);
|
||||
font-size: var(--step--1);
|
||||
font-family: inherit;
|
||||
padding: var(--space-3xs) 0;
|
||||
border-radius: 0;
|
||||
transition: border-color 0.15s;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
padding: var(--space-3xs) 0;
|
||||
}
|
||||
|
||||
.admin-form
|
||||
@@ -62,28 +56,16 @@
|
||||
.admin-form textarea:focus,
|
||||
.admin-inline-form input:focus,
|
||||
.admin-inline-form select:focus {
|
||||
outline: none;
|
||||
border-bottom-color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.admin-form input::placeholder,
|
||||
.admin-form textarea::placeholder {
|
||||
font-size: var(--step--1);
|
||||
color: var(--text-tertiary);
|
||||
border-bottom: 2px solid var(--accent-primary);
|
||||
}
|
||||
|
||||
.admin-form textarea {
|
||||
resize: vertical;
|
||||
min-height: 100px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
/* Select custom arrow */
|
||||
/* Select custom arrow overrides for bottom-border style */
|
||||
.admin-form select,
|
||||
.admin-inline-form select {
|
||||
cursor: pointer;
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
|
||||
background-repeat: no-repeat;
|
||||
background-position: right 0 center;
|
||||
padding-right: 1.2rem;
|
||||
}
|
||||
@@ -133,7 +115,7 @@
|
||||
background: transparent;
|
||||
border: 1px dashed var(--border-primary);
|
||||
padding: var(--space-3xs) var(--space-2xs);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
cursor: pointer;
|
||||
font-family: inherit;
|
||||
}
|
||||
@@ -272,10 +254,6 @@
|
||||
|
||||
.thesis-add-header h1 {
|
||||
margin: 0;
|
||||
font-size: var(--step-1);
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.06em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.mode-toggle {
|
||||
@@ -284,7 +262,7 @@
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-3xs) var(--space-xs);
|
||||
transition: color 0.15s, border-color 0.15s;
|
||||
}
|
||||
@@ -317,7 +295,7 @@
|
||||
.flash-warning,
|
||||
.flash-success {
|
||||
padding: var(--space-xs) var(--space-s);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
font-size: var(--step--1);
|
||||
margin-bottom: var(--space-s);
|
||||
border-left: 3px solid;
|
||||
@@ -348,7 +326,7 @@
|
||||
padding: var(--space-3xs) var(--space-xs);
|
||||
background: var(--blue-muted-bg);
|
||||
border: 1px solid var(--blue-muted-border, var(--border-primary));
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
font-size: var(--step--2);
|
||||
margin-bottom: var(--space-xs);
|
||||
}
|
||||
@@ -372,7 +350,6 @@
|
||||
|
||||
.licence-info h3 {
|
||||
margin-top: var(--space-m);
|
||||
font-size: var(--step-0);
|
||||
}
|
||||
|
||||
.licence-degree {
|
||||
@@ -380,12 +357,11 @@
|
||||
padding: var(--space-s);
|
||||
background: var(--bg-primary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.licence-degree h4 {
|
||||
margin: 0 0 var(--space-2xs);
|
||||
font-size: var(--step--1);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
@@ -400,7 +376,6 @@
|
||||
}
|
||||
|
||||
.licence-generalites h3 {
|
||||
font-size: var(--step-0);
|
||||
margin-bottom: var(--space-xs);
|
||||
}
|
||||
|
||||
@@ -428,12 +403,11 @@
|
||||
text-align: center;
|
||||
background: var(--bg-primary);
|
||||
border: 2px solid var(--error);
|
||||
border-radius: 8px;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.share-error h1 {
|
||||
color: var(--error);
|
||||
font-size: var(--step-1);
|
||||
margin-bottom: var(--space-s);
|
||||
}
|
||||
|
||||
@@ -449,7 +423,7 @@
|
||||
background: var(--text-primary);
|
||||
color: var(--bg-primary);
|
||||
text-decoration: none;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
transition: opacity 0.15s;
|
||||
}
|
||||
|
||||
@@ -473,17 +447,6 @@
|
||||
width: 100%;
|
||||
padding: var(--space-xs);
|
||||
margin: var(--space-2xs) 0 var(--space-s);
|
||||
font-size: var(--step--1);
|
||||
font-family: inherit;
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
background: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.password-gate input[type="password"]:focus {
|
||||
outline: none;
|
||||
border-color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.password-gate button {
|
||||
@@ -515,7 +478,7 @@
|
||||
padding: var(--space-3xs) var(--space-xs);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
min-width: 0;
|
||||
max-width: 260px;
|
||||
}
|
||||
@@ -524,7 +487,7 @@
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
object-fit: cover;
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@@ -571,7 +534,7 @@
|
||||
background: transparent;
|
||||
border: 1px dashed var(--border-primary);
|
||||
padding: var(--space-3xs) var(--space-2xs);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
cursor: pointer;
|
||||
font-family: inherit;
|
||||
width: 100%;
|
||||
@@ -612,7 +575,7 @@
|
||||
padding: var(--space-3xs) var(--space-xs);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
@@ -708,7 +671,7 @@
|
||||
padding: var(--space-3xs) var(--space-xs);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
@@ -758,7 +721,7 @@ a.admin-file-name:hover {
|
||||
padding: 1px 5px;
|
||||
background: var(--bg-primary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
color: var(--text-secondary);
|
||||
white-space: nowrap;
|
||||
}
|
||||
@@ -791,7 +754,7 @@ a.admin-file-name:hover {
|
||||
padding: var(--space-xs) var(--space-s);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.recap-file-thumb-link {
|
||||
@@ -802,7 +765,7 @@ a.admin-file-name:hover {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
object-fit: cover;
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
display: block;
|
||||
}
|
||||
|
||||
@@ -843,7 +806,7 @@ a.recap-file-name:hover {
|
||||
padding: 1px 6px;
|
||||
background: var(--bg-primary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
color: var(--text-secondary);
|
||||
white-space: nowrap;
|
||||
}
|
||||
@@ -868,7 +831,6 @@ a.recap-file-name:hover {
|
||||
}
|
||||
|
||||
.recap-section h2 {
|
||||
font-size: var(--step-0);
|
||||
font-weight: 600;
|
||||
margin: 0 0 var(--space-s);
|
||||
letter-spacing: 0.04em;
|
||||
@@ -917,7 +879,6 @@ a.recap-file-name:hover {
|
||||
|
||||
.thanks-success h1,
|
||||
.thanks-error h1 {
|
||||
font-size: var(--step-3);
|
||||
margin: 0;
|
||||
letter-spacing: 0.06em;
|
||||
}
|
||||
@@ -981,7 +942,6 @@ a.recap-file-name:hover {
|
||||
}
|
||||
|
||||
.retry-email-section h2 {
|
||||
font-size: var(--step-0);
|
||||
font-weight: 600;
|
||||
margin: 0;
|
||||
letter-spacing: 0.04em;
|
||||
@@ -1017,7 +977,7 @@ a.recap-file-name:hover {
|
||||
.retry-email-form input[type="email"] {
|
||||
padding: var(--space-xs) var(--space-s);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
font-size: var(--step-0);
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
|
||||
@@ -15,32 +15,32 @@
|
||||
|
||||
.cards-container {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: var(--space-s);
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: var(--space-xs) var(--space-s) var(--space-m);
|
||||
}
|
||||
|
||||
@media (min-width: 1400px) {
|
||||
.cards-container {
|
||||
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.cards-container {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.cards-container {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
/* Each card = list item containing a block <a> link */
|
||||
.card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
cursor: pointer;
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 8px;
|
||||
border-radius: var(--radius);
|
||||
background: var(--bg-primary);
|
||||
overflow: hidden;
|
||||
transition:
|
||||
@@ -186,7 +186,7 @@
|
||||
text-decoration: none;
|
||||
padding: var(--space-3xs) var(--space-2xs);
|
||||
background: var(--accent-muted);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
font-size: var(--step--1);
|
||||
}
|
||||
|
||||
@@ -219,7 +219,7 @@
|
||||
min-height: 2.75rem;
|
||||
padding: 0 var(--space-2xs);
|
||||
border: 1px solid var(--border-secondary);
|
||||
border-radius: 10px;
|
||||
border-radius: var(--radius);
|
||||
color: var(--text-primary);
|
||||
font-size: var(--step--1);
|
||||
text-decoration: none;
|
||||
|
||||
@@ -14,10 +14,12 @@
|
||||
/* ---- 6-column index layout ---- */
|
||||
.repertoire-index {
|
||||
display: grid;
|
||||
grid-template-columns: 0.7fr 1.2fr 1.4fr 0.9fr 1.4fr 1fr;
|
||||
grid-template-columns: repeat(6, minmax(15vw, min-content));
|
||||
grid-template-rows: auto 1fr;
|
||||
gap: 0;
|
||||
gap: var(--space-s);
|
||||
justify-content: space-between;
|
||||
padding: 0;
|
||||
margin: 0 var(--space-s);
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
@@ -73,7 +75,7 @@
|
||||
font-size: var(--step--2);
|
||||
letter-spacing: 0.1em;
|
||||
text-transform: uppercase;
|
||||
color: var(--text-secondary);
|
||||
color: var(--text-primary);
|
||||
font-weight: 400;
|
||||
margin: 0;
|
||||
padding: var(--space-xs) var(--space-2xs) var(--space-3xs);
|
||||
@@ -105,6 +107,7 @@
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: var(--step-0);
|
||||
font-weight: normal;
|
||||
color: var(--text-primary);
|
||||
line-height: 1.4;
|
||||
cursor: pointer;
|
||||
@@ -138,7 +141,7 @@
|
||||
/* Years column — big bold numbers */
|
||||
.repertoire-col[data-col="years"] .rep-entry {
|
||||
font-size: var(--step-3);
|
||||
font-weight: 700;
|
||||
font-weight: normal;
|
||||
line-height: 1.1;
|
||||
letter-spacing: -0.02em;
|
||||
padding: var(--space-3xs) 0;
|
||||
@@ -259,7 +262,7 @@
|
||||
.search-filter-select {
|
||||
font-size: var(--step--1);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-3xs) var(--space-2xs);
|
||||
background: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
@@ -268,7 +271,7 @@
|
||||
}
|
||||
|
||||
.search-filter-select:focus {
|
||||
border-color: var(--accent-primary);
|
||||
border: 2px solid var(--accent-primary);
|
||||
}
|
||||
|
||||
.search-apply-btn {
|
||||
@@ -299,7 +302,7 @@
|
||||
min-height: 2.75rem;
|
||||
padding: 0 var(--space-2xs);
|
||||
border: 1px solid var(--border-secondary);
|
||||
border-radius: 10px;
|
||||
border-radius: var(--radius);
|
||||
color: var(--text-primary);
|
||||
font-size: var(--step--1);
|
||||
text-decoration: none;
|
||||
@@ -349,7 +352,7 @@
|
||||
background: var(--bg-primary, #fff);
|
||||
border: 1px solid var(--border-primary, #ddd);
|
||||
box-shadow: 0 4px 20px rgba(0,0,0,.13);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
overflow: hidden;
|
||||
pointer-events: auto;
|
||||
max-height: 80vh;
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
.sys-status-section {
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 6px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-s) var(--space-m);
|
||||
margin-bottom: var(--space-m);
|
||||
}
|
||||
@@ -46,7 +46,7 @@
|
||||
background: none;
|
||||
border: 1px solid var(--border-primary);
|
||||
color: var(--text-secondary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
font-size: var(--step--2);
|
||||
font-family: inherit;
|
||||
padding: var(--space-3xs) var(--space-2xs);
|
||||
@@ -80,7 +80,7 @@
|
||||
.srv-card {
|
||||
background: var(--bg-primary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 5px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-s) var(--space-m);
|
||||
}
|
||||
.srv-card__header {
|
||||
@@ -138,7 +138,7 @@
|
||||
.php-item {
|
||||
background: var(--bg-primary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-3xs) var(--space-xs);
|
||||
}
|
||||
.php-item__key {
|
||||
@@ -157,14 +157,14 @@
|
||||
/* ── Disk bar ──────────────────────────────────────────────────────────── */
|
||||
.disk-bar-wrap {
|
||||
background: var(--border-primary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
height: 6px;
|
||||
margin-top: var(--space-2xs);
|
||||
overflow: hidden;
|
||||
}
|
||||
.disk-bar {
|
||||
height: 100%;
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
width: var(--disk-pct, 0%);
|
||||
background: var(--disk-color, var(--accent-green));
|
||||
transition: width .3s;
|
||||
@@ -198,7 +198,7 @@
|
||||
rgba(0,0,0,0.03) 6px,
|
||||
rgba(0,0,0,0.03) 12px
|
||||
);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
animation: sys-panel-shimmer 1s linear infinite;
|
||||
background-size: 200% 200%;
|
||||
}
|
||||
@@ -220,13 +220,7 @@
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
.log-toolbar select {
|
||||
background: var(--bg-primary);
|
||||
border: 1px solid var(--border-primary);
|
||||
color: var(--text-primary);
|
||||
border-radius: 4px;
|
||||
padding: var(--space-3xs) var(--space-xs);
|
||||
font-size: var(--step--1);
|
||||
font-family: inherit;
|
||||
}
|
||||
.log-toolbar select:focus { outline: 2px solid var(--accent-primary); }
|
||||
|
||||
@@ -244,7 +238,7 @@
|
||||
.log-unavailable {
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-m);
|
||||
color: var(--text-secondary);
|
||||
font-size: var(--step--1);
|
||||
@@ -268,7 +262,7 @@
|
||||
.log-output {
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-s);
|
||||
overflow-x: auto;
|
||||
font-family: ui-monospace, "SFMono-Regular", Consolas, "Courier New", monospace;
|
||||
@@ -282,7 +276,7 @@
|
||||
display: block;
|
||||
white-space: pre;
|
||||
padding: var(--space-3xs) var(--space-3xs);
|
||||
border-radius: 2px;
|
||||
border-radius: var(--radius);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.log-line + .log-line { border-top: 1px solid var(--border-primary); }
|
||||
@@ -302,7 +296,7 @@
|
||||
.log-count-badge {
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
font-size: var(--step--2);
|
||||
padding: var(--space-3xs) var(--space-2xs);
|
||||
color: var(--text-secondary);
|
||||
@@ -342,7 +336,7 @@
|
||||
font-weight: 400;
|
||||
font-family: ui-monospace, monospace;
|
||||
padding: var(--space-3xs) var(--space-3xs);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
margin-left: var(--space-xs);
|
||||
vertical-align: middle;
|
||||
line-height: 1.6;
|
||||
@@ -364,7 +358,7 @@
|
||||
font-size: var(--step--2);
|
||||
font-family: ui-monospace, monospace;
|
||||
padding: var(--space-3xs) var(--space-2xs);
|
||||
border-radius: 3px;
|
||||
border-radius: var(--radius);
|
||||
margin-left: var(--space-2xs);
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
@@ -37,15 +37,9 @@
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
/* Title (h1) — primary heading, very large */
|
||||
/* Title (h1) — inherits global scale from common.css */
|
||||
.tfe-title {
|
||||
font-family: var(--font-display);
|
||||
font-size: var(--step-3);
|
||||
font-weight: 400;
|
||||
color: var(--text-primary);
|
||||
margin: 0;
|
||||
line-height: 1.15;
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
/* Metadata description list — target <dl> directly inside article > header */
|
||||
@@ -111,14 +105,14 @@ article dl dd a {
|
||||
aside figure {
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
border-radius: 8px;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
aside figure img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
border-radius: 8px;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
aside figure embed,
|
||||
@@ -165,7 +159,7 @@ aside figcaption {
|
||||
padding: var(--space-s) var(--space-m);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-primary);
|
||||
border-radius: 6px;
|
||||
border-radius: var(--radius);
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
@@ -219,7 +213,7 @@ aside figcaption {
|
||||
.tfe-restricted-access {
|
||||
background: var(--surface);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 8px;
|
||||
border-radius: var(--radius);
|
||||
padding: var(--space-m);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -260,25 +254,14 @@ aside figcaption {
|
||||
|
||||
.tfe-access-request-form input[type="email"],
|
||||
.tfe-access-request-form textarea {
|
||||
font-family: inherit;
|
||||
font-size: var(--step--1);
|
||||
padding: var(--space-2xs) var(--space-3xs);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 4px;
|
||||
border-color: var(--border);
|
||||
background: var(--background);
|
||||
color: var(--text-primary);
|
||||
transition: border-color 0.2s;
|
||||
}
|
||||
|
||||
.tfe-access-request-form input[type="email"]:focus,
|
||||
.tfe-access-request-form textarea:focus {
|
||||
outline: none;
|
||||
border-color: var(--accent);
|
||||
}
|
||||
|
||||
.tfe-access-request-form textarea {
|
||||
resize: vertical;
|
||||
min-height: 80px;
|
||||
border: 2px solid var(--accent);
|
||||
}
|
||||
|
||||
.tfe-btn-request-access {
|
||||
@@ -298,7 +281,7 @@ aside figcaption {
|
||||
.tfe-access-message {
|
||||
font-size: var(--step--1);
|
||||
padding: var(--space-2xs);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius);
|
||||
margin-top: var(--space-3xs);
|
||||
}
|
||||
|
||||
|
||||
@@ -101,6 +101,9 @@
|
||||
--border-primary: #dddddd;
|
||||
--border-secondary: #cccccc;
|
||||
|
||||
/* Border radius */
|
||||
--radius: 10px;
|
||||
|
||||
/* Status */
|
||||
--success: #5cd69d;
|
||||
--error: #f25a5a;
|
||||
|
||||
@@ -79,64 +79,74 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
<div class="admin-list-toolbar">
|
||||
<h1>Liste des TFE</h1>
|
||||
|
||||
<dl class="admin-stats">
|
||||
<div class="admin-stat">
|
||||
<dt class="admin-stat__label">Total</dt>
|
||||
<dd class="admin-stat__number"><?= $stats['total'] ?></dd>
|
||||
</div>
|
||||
<div class="admin-stat">
|
||||
<dt class="admin-stat__label">Publiés</dt>
|
||||
<dd class="admin-stat__number"><?= $stats['published'] ?></dd>
|
||||
</div>
|
||||
<div class="admin-stat">
|
||||
<dt class="admin-stat__label">Attente</dt>
|
||||
<dd class="admin-stat__number"><?= $stats['pending'] ?></dd>
|
||||
</div>
|
||||
</dl>
|
||||
|
||||
<form class="admin-filters" method="get" action="/admin/">
|
||||
<input type="text" name="search" placeholder="Titre, auteur..."
|
||||
value="<?= htmlspecialchars($searchQuery) ?>">
|
||||
<select name="year">
|
||||
<option value="">Année</option>
|
||||
<?php foreach ($years as $y): ?>
|
||||
<option value="<?= $y ?>" <?= $yearFilter == $y ? 'selected' : '' ?>><?= $y ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<select name="orientation">
|
||||
<option value="">Orientation</option>
|
||||
<?php foreach ($orientations as $o): ?>
|
||||
<option value="<?= $o['id'] ?>" <?= $orientationFilter == $o['id'] ? 'selected' : '' ?>>
|
||||
<?= htmlspecialchars($o['name']) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<select name="ap">
|
||||
<option value="">AP</option>
|
||||
<?php foreach ($apPrograms as $ap): ?>
|
||||
<option value="<?= $ap['id'] ?>" <?= $apFilter == $ap['id'] ? 'selected' : '' ?>>
|
||||
<?= htmlspecialchars($ap['name']) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<button type="submit" class="btn btn--primary admin-filters-btn">Filtrer</button>
|
||||
<?php if ($searchQuery || $yearFilter || $orientationFilter || $apFilter): ?>
|
||||
<button type="button" class="btn btn--secondary admin-filters-reset"
|
||||
onclick="window.location='/admin/'">✕ Réinitialiser</button>
|
||||
<?php endif; ?>
|
||||
<div class="admin-filters__search">
|
||||
<input type="text" name="search" placeholder="Titre, auteur..."
|
||||
value="<?= htmlspecialchars($searchQuery) ?>">
|
||||
<button type="submit" class="btn btn--primary admin-filters-btn">Filtrer</button>
|
||||
<?php if ($searchQuery || $yearFilter || $orientationFilter || $apFilter): ?>
|
||||
<button type="button" class="btn btn--secondary admin-filters-reset"
|
||||
onclick="window.location='/admin/'">✕ Réinitialiser</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="admin-filters__dropdowns">
|
||||
<select name="year">
|
||||
<option value="">Année</option>
|
||||
<?php foreach ($years as $y): ?>
|
||||
<option value="<?= $y ?>" <?= $yearFilter == $y ? 'selected' : '' ?>><?= $y ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<select name="orientation">
|
||||
<option value="">Orientation</option>
|
||||
<?php foreach ($orientations as $o): ?>
|
||||
<option value="<?= $o['id'] ?>" <?= $orientationFilter == $o['id'] ? 'selected' : '' ?>>
|
||||
<?= htmlspecialchars($o['name']) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<select name="ap">
|
||||
<option value="">AP</option>
|
||||
<?php foreach ($apPrograms as $ap): ?>
|
||||
<option value="<?= $ap['id'] ?>" <?= $apFilter == $ap['id'] ? 'selected' : '' ?>>
|
||||
<?= htmlspecialchars($ap['name']) ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="admin-list-toolbar__right">
|
||||
<dl class="admin-stats">
|
||||
<div class="admin-stat">
|
||||
<dt class="admin-stat__label">Total</dt>
|
||||
<dd class="admin-stat__number"><?= $stats['total'] ?></dd>
|
||||
</div>
|
||||
<div class="admin-stat">
|
||||
<dt class="admin-stat__label">Publiés</dt>
|
||||
<dd class="admin-stat__number"><?= $stats['published'] ?></dd>
|
||||
</div>
|
||||
<div class="admin-stat">
|
||||
<dt class="admin-stat__label">Attente</dt>
|
||||
<dd class="admin-stat__number"><?= $stats['pending'] ?></dd>
|
||||
</div>
|
||||
</dl>
|
||||
<a href="/admin/add.php" class="btn btn--primary btn--sm">Ajouter un TFE</a>
|
||||
<button type="button" class="btn btn--primary btn--sm" id="import-dialog-btn"
|
||||
onclick="document.getElementById('import-dialog').showModal()">
|
||||
Importer un CSV
|
||||
</button>
|
||||
<a href="/admin/actions/export-csv.php" class="btn btn--primary btn--sm">
|
||||
Exporter CSV
|
||||
</a>
|
||||
<a href="/admin/actions/export-files.php" class="btn btn--primary btn--sm">
|
||||
Exporter fichiers
|
||||
</a>
|
||||
<div class="admin-btn-group">
|
||||
<a href="/admin/add.php" class="btn btn--primary btn--sm">+ Ajouter un TFE</a>
|
||||
<a href="/admin/tags.php" class="btn btn--primary btn--sm">Mots-clés</a>
|
||||
</div>
|
||||
<div class="admin-btn-group">
|
||||
<button type="button" class="btn btn--primary btn--sm" id="import-dialog-btn"
|
||||
onclick="document.getElementById('import-dialog').showModal()">
|
||||
Importer un CSV
|
||||
</button>
|
||||
<a href="/admin/actions/export-csv.php" class="btn btn--primary btn--sm">
|
||||
Exporter CSV
|
||||
</a>
|
||||
<a href="/admin/actions/export-files.php" class="btn btn--primary btn--sm">
|
||||
Exporter fichiers
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -12,13 +12,14 @@ $_thesisId = $_GET['id'] ?? null;
|
||||
<?php if ($_isAdmin): ?>
|
||||
|
||||
<nav aria-label="Navigation admin">
|
||||
<a href="/" target="_blank" rel="noopener noreferrer">
|
||||
<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 256 256"><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>XAMXAM<span class="sr-only"> (site public, nouvel onglet)</span>
|
||||
</a>
|
||||
<ul>
|
||||
<div class="nav-left">
|
||||
<a href="/" target="_blank" rel="noopener noreferrer" class="nav-logo">
|
||||
<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 256 256"><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>XAMXAM<span class="sr-only"> (site public, nouvel onglet)</span>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="nav-right-links">
|
||||
<li><a href="/admin/" <?= $_currentPage === 'index.php' ? 'aria-current="page"' : '' ?>>Liste des TFE</a></li>
|
||||
<li><a href="/admin/contenus.php" <?= in_array($_currentPage, ['contenus.php', 'contenus-edit.php']) ? 'aria-current="page"' : '' ?>>Contenus</a></li>
|
||||
<li><a href="/admin/tags.php" <?= $_currentPage === 'tags.php' ? 'aria-current="page"' : '' ?>>Mots-clés</a></li>
|
||||
<li><a href="/admin/acces.php" <?= in_array($_currentPage, ['acces.php', 'file-access.php', 'acces-etudiante.php']) ? 'aria-current="page"' : '' ?>>
|
||||
Accès
|
||||
<?php if (isset($pendingCount) && $pendingCount > 0): ?>
|
||||
@@ -26,8 +27,8 @@ $_thesisId = $_GET['id'] ?? null;
|
||||
<?php endif; ?>
|
||||
</a></li>
|
||||
<li><a href="/admin/parametres.php" <?= in_array($_currentPage, ['parametres.php', 'system.php', 'status.php', 'logs.php']) ? 'aria-current="page"' : '' ?>>Paramètres</a></li>
|
||||
<?php if ($_thesisId && in_array($_currentPage, ['edit.php', 'recapitulatif.php'])): ?>
|
||||
<li><a href="/admin/edit.php?id=<?= intval($_thesisId) ?>" <?= $_currentPage === 'edit.php' ? 'aria-current="page"' : '' ?>>Modifier</a></li>
|
||||
<?php if ($_thesisId && $_currentPage === 'recapitulatif.php'): ?>
|
||||
<li><a href="/admin/edit.php?id=<?= intval($_thesisId) ?>">Modifier</a></li>
|
||||
<?php endif; ?>
|
||||
<?php if ($_isAdmin && AdminAuth::hasPassword()): ?>
|
||||
<li data-nav-logout><a href="/admin/logout.php" aria-label="Déconnexion"><svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 256 256"><path d="M120,216a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H56V208h56A8,8,0,0,1,120,216Zm109.66-93.66-40-40a8,8,0,0,0-11.32,11.32L204.69,120H112a8,8,0,0,0,0,16h92.69l-26.35,26.34a8,8,0,0,0,11.32,11.32l40-40A8,8,0,0,0,229.66,122.34Z"></path></svg><span class="sr-only">Déconnexion</span></a></li>
|
||||
@@ -90,21 +91,23 @@ $searchBarValue = $searchBarValue ?? $_GET['query'] ?? '';
|
||||
?>
|
||||
<div class="header-search-wrap">
|
||||
<form method="GET" action="/search"
|
||||
role="search" aria-label="Recherche">
|
||||
role="search" aria-label="Recherche" class="header-search-form">
|
||||
<label for="site-search-input" class="sr-only">Recherche</label>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
|
||||
aria-hidden="true" focusable="false">
|
||||
<circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/>
|
||||
</svg>
|
||||
<input
|
||||
id="site-search-input"
|
||||
type="text"
|
||||
name="query"
|
||||
placeholder="Recherche..."
|
||||
value="<?= htmlspecialchars($searchBarValue) ?>"
|
||||
autocomplete="off"
|
||||
>
|
||||
<div class="header-search-input-wrap">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
|
||||
aria-hidden="true" focusable="false" class="header-search-icon">
|
||||
<circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/>
|
||||
</svg>
|
||||
<input
|
||||
id="site-search-input"
|
||||
type="text"
|
||||
name="query"
|
||||
placeholder="Recherche..."
|
||||
value="<?= htmlspecialchars($searchBarValue) ?>"
|
||||
autocomplete="off"
|
||||
>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
Reference in New Issue
Block a user