feat(frontend): align single post page 1:1 with Zibll

Restore Zibll float dual-column shell, fix single settings DTO key mapping,
reorder article footer/actions, and match author bar, prev/next, title/body
typography, and limit-height expand UX.
This commit is contained in:
2026-07-13 08:26:36 +08:00
parent a651bd6d2d
commit 5ae1a9ad93
12 changed files with 626 additions and 218 deletions
+59
View File
@@ -0,0 +1,59 @@
/* Single page shell — Zibll float dual-column (scoped to body.single) */
body.single .container {
position: relative;
}
body.single .content-wrap {
float: left;
width: 100%;
}
/* Clear floats after main dual-column shell */
body.single main.container::after {
content: "";
display: table;
clear: both;
}
/* Default: no sidebar full width */
body.single.container--no-sidebar .content-layout,
body.single .container--no-sidebar .content-layout,
body.single main.container--no-sidebar .content-layout {
margin-right: 0;
}
/* Zibll site-layout-2: content left, sidebar right (311px) */
@media (min-width: 992px) {
body.single:not(.no-sidebar) main.container:not(.container--no-sidebar) .content-layout {
margin-right: calc(var(--sidebar-width, 311px) + 15px);
}
body.single:not(.no-sidebar) main.container:not(.container--no-sidebar) > .sidebar {
float: left;
width: var(--sidebar-width, 311px);
margin-left: calc(0px - var(--sidebar-width, 311px));
position: relative;
}
}
@media (max-width: 991.98px) {
body.single main.container > .sidebar {
display: none;
}
body.single main.container .content-layout {
margin-right: 0 !important;
}
}
/* Sidebar widgets spacing */
body.single .sidebar .zib-widget,
body.single .sidebar .widget {
margin-bottom: 15px;
}
body.single .sidebar .posts-nav-box.toc-widget {
position: sticky;
top: calc(var(--nav-height, 60px) + 16px);
}