Scert/frontend/src/views/Dashboard/DashboardLayout.css
xuans 3d2a5a3ab9
Some checks are pending
Build and Release / Build Release Package (tar.gz, amd64, linux) (push) Waiting to run
Build and Release / Build Release Package (tar.gz, arm64, linux) (push) Waiting to run
Build and Release / Build Release Package (zip, amd64, windows) (push) Waiting to run
style: 优化整体页面布局限制最大宽度并居中大卡片
2026-10-19 20:17:37 +08:00

262 lines
4.4 KiB
CSS

.page-shell {
display: grid;
grid-template-rows: auto minmax(0, 1fr);
gap: 0;
width: 100%;
max-width: 100%;
height: 100dvh;
padding: 16px 20px 20px;
box-sizing: border-box;
overflow: hidden;
background: #f1f5f9;
}
.topbar {
gap: 16px;
padding: 24px 24px 16px;
border-bottom: 1px solid #f0f4f9;
background: #ffffff;
}
.topbar h1 {
font-size: 26px;
letter-spacing: -0.03em;
}
.topbar .eyebrow {
margin-bottom: 6px;
}
.topbar-actions {
gap: 8px;
}
.topbar-actions > button {
padding: 9px 13px;
font-size: 13px;
}
.dashboard-messages:empty {
display: none;
}
.page-shell:not(:has(.dashboard-messages > p)) {
grid-template-rows: minmax(0, 1fr);
}
.dashboard-messages p {
margin: 0;
}
.dashboard-messages p + p {
margin-top: 8px;
}
.dashboard-workspace {
box-sizing: border-box;
display: grid;
grid-template-columns: minmax(0, 1fr) 200px;
grid-template-areas: "main submenu";
gap: 0;
width: 100%;
max-width: 1240px;
margin: 0 auto;
border: 1px solid #e2e8f0;
border-radius: 14px;
background: #ffffff;
box-shadow: 0 4px 20px -2px rgba(15, 23, 42, 0.06);
overflow: hidden;
min-height: 0;
}
.dashboard-content {
grid-area: main;
min-width: 0;
min-height: 0;
overflow: auto;
overscroll-behavior: contain;
scrollbar-width: none;
-ms-overflow-style: none;
border-radius: 0;
}
.dashboard-content::-webkit-scrollbar {
display: none;
width: 0;
height: 0;
}
.dashboard-content:focus-visible {
outline: 2px solid #315aaa;
outline-offset: -2px;
}
.dashboard-content > .panel,
.dashboard-content .panel,
.dashboard-content :deep(.user-management),
.dashboard-content :deep(.project-management),
.dashboard-content :deep(.dns-accounts-panel),
.dashboard-content :deep(.panel) {
box-sizing: border-box;
width: 100%;
margin: 0;
min-height: 100%;
padding: 24px;
border: none !important;
box-shadow: none !important;
border-radius: 0 !important;
background: transparent;
}
.overview-section {
display: flex;
flex-direction: column;
gap: 16px;
min-height: 100%;
}
.overview-section > .overview-panel {
flex: 1;
margin: 0;
padding: 24px;
}
.overview-details-grid {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.overview-detail-card {
padding: 16px 18px;
border-radius: 14px;
}
.overview-detail-card strong {
margin-top: 8px;
font-size: 20px;
overflow-wrap: anywhere;
}
.panel-heading h2 {
font-size: 22px;
}
.overview-summary-card strong {
font-size: 18px;
}
.overview-status {
white-space: normal;
}
.domain-row {
grid-template-columns: minmax(0, 1fr) auto;
gap: 14px;
}
.domain-row .row-actions {
grid-column: 1 / -1;
justify-content: flex-end;
flex-wrap: wrap;
}
.domain-main,
.domain-meta,
.domain-expiry {
min-width: 0;
overflow-wrap: anywhere;
}
.record-list {
max-height: max(240px, calc(100dvh - 300px));
}
@media (max-width: 1100px) {
.dashboard-workspace {
grid-template-columns: minmax(0, 1fr) 200px;
gap: 0;
}
.operation-columns {
grid-template-columns: 1fr;
}
.record-list {
max-height: 260px;
}
.overview-summary-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.overview-summary-card:last-child {
grid-column: 1 / -1;
}
.overview-domain-row {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.overview-domain-main {
grid-column: 1 / -1;
}
}
@media (max-width: 760px) {
.page-shell {
display: flex;
flex-direction: column;
height: auto;
min-height: 100dvh;
padding: 0;
overflow: visible;
}
.topbar {
align-items: flex-start;
flex-direction: column;
}
.topbar-actions {
justify-content: flex-start;
}
.dashboard-workspace {
grid-template-columns: 1fr;
grid-template-areas:
"main"
"submenu";
}
.dashboard-content {
overflow: visible;
}
.dashboard-content > .panel,
.dashboard-content :deep(.user-management),
.dashboard-content :deep(.project-management),
.dashboard-content :deep(.dns-accounts-panel),
.overview-section > .overview-panel {
padding: 18px;
}
.overview-summary-grid,
.overview-domain-row {
grid-template-columns: 1fr;
}
.overview-domain-heading,
.overview-pagination {
align-items: flex-start;
flex-direction: column;
}
.overview-pagination-actions {
width: 100%;
justify-content: space-between;
}
.overview-details-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}