style: unify form element styles in common.css, redesign focus rings, refactor public search bar, tweak admin section

This commit is contained in:
Pontoporeia
2026-05-08 17:57:39 +02:00
parent 77fd282e29
commit 862ed02136
13 changed files with 355 additions and 376 deletions

View File

@@ -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;