Present architecture as a plain click-to-enlarge image
Verify and deploy Tabularium / verify-and-deploy (push) Successful in 5m3s

This commit is contained in:
2026-10-27 21:17:12 +08:00
parent 36840ef1d4
commit 0a4057ac2a
6 changed files with 141 additions and 224 deletions
+89 -146
View File
@@ -1341,166 +1341,109 @@ button {
border-radius: 0;
}
/* The topology stays a reproducible SVG; React only supplies the viewer. */
.architecture-figure {
display: block;
border: 1px solid var(--line);
border-radius: 10px;
overflow: hidden;
margin: 28px 0;
}
.figure-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 12px 16px;
background: #f5f8f3;
font:
11px ui-monospace,
monospace;
color: #6c806f;
}
.figure-toolbar button {
color: var(--green);
border: 1px solid #d7e3d4;
padding: 5px 10px;
border-radius: 5px;
background: white;
}
.figure-preview {
/* Inline diagrams behave like ordinary article images with click-to-enlarge. */
.architecture-preview {
display: block;
width: 100%;
background: #fcfdfb;
margin: 28px 0;
padding: 0;
border: 0;
background: transparent;
cursor: zoom-in;
}
.prose .figure-preview img {
.prose .architecture-preview img {
display: block;
width: 100%;
padding: 0;
margin: 0;
border: 0;
border-radius: 0;
}
.figure-caption {
display: block;
padding: 10px 16px;
font-size: 11px;
color: #758576;
border-top: 1px solid var(--line);
}
.figure-dialog {
padding: 0;
width: 96vw;
max-width: 1900px;
height: 94dvh;
max-height: 94dvh;
border: 1px solid #dce5d9;
border-radius: 12px;
margin: auto;
overflow: hidden;
background: #fcfdfb;
box-shadow: 0 20px 100px #18312530;
}
.figure-dialog::backdrop {
background: #1e322e66;
backdrop-filter: blur(4px);
}
.figure-dialog[open] {
display: flex;
flex-direction: column;
}
.figure-viewer-toolbar {
display: flex;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
padding: 12px 18px;
background: #fff;
border-bottom: 1px solid var(--line);
align-items: center;
}
.figure-viewer-toolbar strong {
font-size: 14px;
font-weight: 600;
color: var(--ink);
}
.figure-viewer-toolbar small {
color: #a68b52;
font-size: 11px;
margin-left: 5px;
}
.figure-controls {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px;
font-size: 11px;
color: #647c67;
}
.figure-controls button,
.figure-controls a {
min-height: 32px;
min-width: 32px;
padding: 4px 9px;
border: 1px solid #dae4d6;
border-radius: 5px;
background: #fff;
font-weight: 400;
text-decoration: none;
}
.figure-controls button:disabled {
opacity: 0.35;
cursor: default;
}
.figure-controls > span {
min-width: 62px;
text-align: center;
}
.figure-pan {
overflow: auto;
flex: 1;
min-height: 0;
overscroll-behavior: contain;
padding: 8px;
}
.prose .figure-pan img {
display: block;
max-width: none;
height: auto;
margin: 0 auto;
margin: 0;
padding: 0;
border: 0;
border-radius: 0;
background: #fcfdfb;
background: transparent;
}
.figure-viewer-hint {
margin: 0 !important;
padding: 10px 18px;
border-top: 1px solid var(--line);
background: #fff;
color: #798d79;
font-size: 10px !important;
line-height: 1.7 !important;
.image-lightbox {
width: 100vw;
height: 100dvh;
max-width: none;
max-height: none;
margin: 0;
padding: 0;
border: 0;
background: transparent;
overflow: hidden;
}
.image-lightbox::backdrop {
background: rgba(245, 247, 244, 0.97);
}
.image-lightbox-stage {
width: 100%;
height: 100%;
display: flex;
overflow: auto;
overscroll-behavior: contain;
padding: 32px;
}
.image-lightbox-picture {
display: block;
flex-shrink: 0;
margin: auto;
padding: 0;
border: 0;
background: transparent;
cursor: zoom-in;
}
.prose .image-lightbox-picture img {
display: block;
width: auto;
height: auto;
max-width: calc(100vw - 64px);
max-height: calc(100dvh - 64px);
margin: 0;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
}
.image-lightbox-picture.original-size {
cursor: zoom-out;
}
.prose .image-lightbox-picture.original-size img {
width: 2000px;
max-width: none;
max-height: none;
}
.image-lightbox-close {
position: fixed;
z-index: 1;
top: 12px;
right: 12px;
display: grid;
place-items: center;
width: 40px;
height: 40px;
padding: 0;
border: 0;
border-radius: 50%;
background: rgba(255, 255, 255, 0.9);
color: #52655a;
font:
28px/1 ui-sans-serif,
system-ui,
sans-serif;
}
.image-lightbox-close:hover {
background: #edf2ec;
}
@media (max-width: 560px) {
.figure-viewer-toolbar {
padding: 10px;
gap: 8px;
.image-lightbox-stage {
padding: 16px;
}
.figure-controls {
gap: 5px;
.prose .image-lightbox-picture img {
max-width: calc(100vw - 32px);
max-height: calc(100dvh - 32px);
}
.figure-controls button,
.figure-controls a {
min-height: 36px;
}
.figure-toolbar {
padding: 10px;
font-size: 10px;
}
.figure-caption {
font-size: 10px;
padding: 10px;
.prose .image-lightbox-picture.original-size img {
max-width: none;
max-height: none;
}
}