style: normalize headers, overtype editor rounded corners, remove duplicate cover preview, thesis-add-header grid layout, subtitle below header with top gradient

This commit is contained in:
Pontoporeia
2026-05-08 19:24:24 +02:00
parent 7ccadbb224
commit 21c2b55bfb
23 changed files with 1855 additions and 1531 deletions

View File

@@ -16,7 +16,6 @@
white-space: nowrap;
scrollbar-width: thin;
}
.admin-body header nav .nav-left,
.admin-body header nav .nav-right-links {
flex-shrink: 0;
}
@@ -1480,7 +1479,7 @@
}
/* ═══════════════════════════════════════════════════════════════════════════
Form Help Blocks — drag-and-drop builder (contenus.php)
Form Help Blocks — static structure view (contenus.php)
═══════════════════════════════════════════════════════════════════════════ */
.fhb-hint {
@@ -1489,225 +1488,250 @@
margin-bottom: var(--space-m);
}
.fhb-layout {
/* ── Structure container ───────────────────────────────────────────────────── */
.fhb-structure {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--space-m);
align-items: start;
grid-template-columns: 1fr;
gap: var(--space-xs);
max-width: 100%;
margin-top: var(--space-m);
}
@media (max-width: 800px) {
.fhb-layout {
grid-template-columns: 1fr;
}
}
/* ── Fieldset cards (static reference) ─────────────────────────────────────── */
/* ── Panels ─────────────────────────────────────────────────────────────── */
.fhb-sortable-panel,
.fhb-form-preview-panel {
.fhb-fieldset-card {
border: 1px solid var(--border-primary);
border-radius: var(--radius);
padding: var(--space-s);
padding: var(--space-xs) var(--space-s);
background: var(--bg-secondary);
}
.fhb-panel-title {
.fhb-fieldset-card-legend {
font-size: var(--step-0);
font-weight: 600;
margin: 0 0 var(--space-3xs) 0;
letter-spacing: 0.03em;
}
.fhb-panel-desc {
font-size: var(--step--2);
color: var(--text-secondary);
margin: 0 0 var(--space-xs) 0;
}
/* ── Saving indicator ─────────────────────────────────────────────────────── */
.fhb-saving {
display: none;
align-items: center;
gap: var(--space-2xs);
font-size: var(--step--1);
color: var(--accent-primary);
padding: var(--space-2xs) 0;
}
.fhb-saving.htmx-request {
display: flex;
}
/* ── Draggable block cards ─────────────────────────────────────────────────── */
.fhb-sortable {
display: flex;
flex-direction: column;
gap: var(--space-2xs);
padding: 0;
margin: 0;
}
.fhb-block-card {
display: flex;
align-items: center;
gap: var(--space-xs);
background: var(--bg-primary);
border: 1px solid var(--border-primary);
border-left: 4px solid var(--accent-primary);
border-radius: var(--radius);
padding: var(--space-2xs) var(--space-xs);
cursor: default;
transition: box-shadow 0.15s, border-color 0.15s;
}
.fhb-block-card:hover {
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
border-color: var(--accent-primary);
}
.fhb-drag-handle {
font-size: 1.2em;
color: var(--text-tertiary);
cursor: grab;
flex-shrink: 0;
line-height: 1;
user-select: none;
padding: 2px 4px;
}
.fhb-drag-handle:active {
cursor: grabbing;
}
.fhb-block-info {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 2px;
}
.fhb-block-label {
font-size: var(--step--1);
font-weight: 500;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.fhb-block-preview {
font-size: var(--step--2);
color: var(--text-secondary);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.fhb-block-empty {
font-size: var(--step--2);
color: var(--text-tertiary);
font-style: italic;
}
.fhb-edit-btn {
flex-shrink: 0;
font-size: var(--step--2) !important;
padding: 2px var(--space-xs) !important;
}
/* ── SortableJS state classes ─────────────────────────────────────────────── */
.fhb-ghost {
opacity: 0.35;
background: var(--accent-muted);
border-color: var(--accent-primary);
}
.fhb-chosen {
box-shadow: 0 4px 16px rgba(149, 87, 181, 0.25);
border-color: var(--accent-primary);
}
.fhb-dragging {
opacity: 0.9;
box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}
/* ── Form structure preview (right panel) ─────────────────────────────────── */
.fhb-form-preview {
display: flex;
flex-direction: column;
gap: var(--space-2xs);
}
.fhb-fieldset-preview {
border: 1px solid var(--border-secondary);
border-radius: var(--radius);
padding: var(--space-xs);
background: var(--bg-primary);
}
.fhb-fieldset-legend {
font-size: var(--step--1);
font-weight: 600;
color: var(--text-primary);
margin-bottom: var(--space-3xs);
padding-bottom: var(--space-3xs);
border-bottom: 1px solid var(--border-primary);
}
.fhb-fieldset-inputs {
.fhb-fieldset-card-inputs {
margin: 0;
padding: 0 0 0 var(--space-s);
list-style: disc;
list-style: none;
display: flex;
flex-wrap: wrap;
gap: var(--space-3xs) var(--space-m);
}
.fhb-fieldset-inputs li {
.fhb-fieldset-card-inputs li {
font-size: var(--step--2);
color: var(--text-secondary);
line-height: 1.6;
}
.fhb-anchor {
display: flex;
align-items: center;
gap: var(--space-2xs);
border-radius: var(--radius);
padding: var(--space-3xs) var(--space-xs);
font-size: var(--step--2);
border: 1px dashed var(--border-primary);
background: transparent;
}
.fhb-anchor--filled {
border-color: var(--accent-primary);
background: var(--accent-muted);
color: var(--accent-secondary);
}
.fhb-anchor--empty {
.fhb-fieldset-card-inputs li::before {
content: '· ';
color: var(--text-tertiary);
}
.fhb-anchor-icon {
flex-shrink: 0;
font-style: normal;
/* ── Help block wrapper ────────────────────────────────────────────────────── */
.fhb-block-wrapper {
/* container for the fhb-inline, one per help block */
}
.fhb-anchor-label {
flex: 1;
}
/* ── Inline help block (collapsed state) ───────────────────────────────────── */
.fhb-anchor-pos {
font-size: var(--step--2);
font-weight: 600;
color: var(--accent-primary);
background: var(--accent-muted);
.fhb-inline {
display: grid;
grid-template-columns: 1fr auto;
gap: var(--space-s);
align-items: center;
border: 1px solid var(--border-primary);
border-left: 4px solid var(--accent-primary);
border-radius: var(--radius);
padding: 0 4px;
padding: var(--space-xs) var(--space-s);
background: var(--bg-primary);
transition: opacity 0.15s;
}
.fhb-inline:hover {
opacity: 0.85;
}
/* Disabled state — one line only, content hidden */
.fhb-inline--disabled {
border-left-color: var(--text-tertiary);
opacity: 0.55;
}
.fhb-inline--disabled:hover {
opacity: 0.75;
}
.fhb-inline--disabled .fhb-md-preview,
.fhb-inline--disabled .fhb-inline-empty {
display: none;
}
/* Editing state */
.fhb-inline--editing {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: auto 1fr auto;
border-color: var(--accent-primary);
box-shadow: 0 4px 16px rgba(149, 87, 181, 0.15);
padding: var(--space-s);
min-height: 50vh;
}
.fhb-inline--editing .fhb-inline-form {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: auto auto 1fr auto;
height: 100%;
}
/* ── Left side: name + content ─────────────────────────────────────────────── */
.fhb-inline-body {
min-width: 0;
}
.fhb-inline-name {
font-size: var(--step--1);
font-weight: 600;
color: var(--accent-secondary);
margin-bottom: var(--space-3xs);
}
/* ── Small rendered Markdown preview ──────────────────────────────────────── */
.fhb-md-preview {
font-size: var(--step--2);
color: var(--text-secondary);
line-height: 1.45;
max-height: 6em;
overflow: hidden;
}
.fhb-md-preview p {
margin: 0;
}
.fhb-md-preview p + p {
margin-top: var(--space-3xs);
}
.fhb-md-preview ul,
.fhb-md-preview ol {
margin: var(--space-3xs) 0;
padding-left: var(--space-s);
}
.fhb-md-preview li {
margin-bottom: 0;
}
.fhb-md-preview strong { font-weight: 600; }
.fhb-md-preview em { font-style: italic; }
.fhb-md-preview code {
font-size: 0.9em;
background: var(--bg-secondary);
padding: 0 var(--space-4xs);
border-radius: 3px;
}
.fhb-inline-empty {
font-size: var(--step--2);
color: var(--text-tertiary);
font-style: italic;
}
/* ── Right side: edit button + live dot ───────────────────────────────────── */
.fhb-inline-actions {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: var(--space-2xs);
flex-shrink: 0;
}
.fhb-toggle-form {
margin: 0;
line-height: 0;
}
/* Live dot — green when on, red when off */
.fhb-dot {
display: block;
width: 18px;
height: 18px;
border-radius: 50%;
border: none;
cursor: pointer;
padding: 0;
transition: opacity 0.15s;
}
.fhb-dot:hover {
opacity: 0.7;
}
.fhb-dot--on {
background: #2d6a4f;
}
.fhb-dot--off {
background: #c0392b;
}
/* ── Editor form ──────────────────────────────────────────────────────────── */
.fhb-edit-name-row {
margin-bottom: var(--space-xs);
}
.fhb-edit-label {
display: block;
font-size: var(--step--2);
font-weight: 500;
color: var(--text-primary);
margin-bottom: var(--space-3xs);
}
.fhb-name-input {
width: 100%;
max-width: 400px;
padding: var(--space-2xs) var(--space-xs);
border: 1px solid var(--border-primary);
border-radius: var(--radius);
font-size: var(--step--1);
font-family: var(--font-body);
}
.fhb-name-input:focus {
outline: none;
border-color: var(--accent-primary);
box-shadow: 0 0 0 2px var(--accent-muted);
}
.fhb-overtype-editor .--type-container {
border-radius: var(--radius);
}
.fhb-edit-buttons {
display: grid;
grid-auto-flow: column;
grid-auto-columns: max-content;
gap: var(--space-xs);
margin-top: var(--space-xs);
}
.fhb-inline-form {
margin-top: var(--space-xs);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long