Files
DataGovernanceDashboard/res/css/indexV2.base.css
T
2026-06-22 10:48:35 +08:00

321 lines
7.4 KiB
CSS

:root {
--bg: #031b34;
--bg-deep: #001327;
--panel: rgba(9, 55, 91, 0.86);
--panel-strong: rgba(13, 74, 115, 0.92);
--panel-soft: rgba(18, 91, 132, 0.42);
--line: rgba(93, 191, 255, 0.32);
--line-strong: rgba(99, 213, 255, 0.64);
--text: #e8f7ff;
--muted: #92b9d1;
--blue: #5d93ff;
--cyan: #49d6ff;
--green: #5ee1b5;
--yellow: #ffc857;
--orange: #ff8b3d;
--red: #ff5c66;
--shadow: 0 18px 50px rgba(0, 8, 20, 0.42);
--radius: 18px;
--font: "Microsoft YaHei", "Source Han Sans SC", "PingFang SC", sans-serif;
--num: "DIN Alternate", "Bahnschrift", "Microsoft YaHei", sans-serif;
}
* {
box-sizing: border-box;
}
html,
body {
width: 100vw;
height: 100vh;
margin: 0;
background:
radial-gradient(circle at 14% 8%, rgba(29, 126, 177, 0.38), transparent 30%),
radial-gradient(circle at 86% 12%, rgba(31, 95, 155, 0.28), transparent 34%),
linear-gradient(180deg, #02152b 0%, #062b4a 48%, #031b34 100%);
color: var(--text);
font-family: var(--font);
overflow: hidden;
}
button,
input,
select {
font-family: inherit;
}
.screen {
position: absolute;
left: 0;
top: 0;
width: 1920px;
height: 1080px;
min-height: 1080px;
margin: 0;
padding: 14px 18px 18px;
overflow: hidden;
isolation: isolate;
transform-origin: left top;
}
.screen::before {
content: "";
position: absolute;
inset: 0;
z-index: -2;
background-image:
linear-gradient(rgba(89, 185, 255, 0.06) 1px, transparent 1px),
linear-gradient(90deg, rgba(89, 185, 255, 0.05) 1px, transparent 1px);
background-size: 100% 28px, 28px 100%;
opacity: 0.8;
pointer-events: none;
}
.screen::after {
content: "";
position: absolute;
inset: auto 0 0;
height: 38vh;
z-index: -1;
background: linear-gradient(180deg, transparent, rgba(0, 11, 23, 0.62));
pointer-events: none;
}
.topbar {
display: grid;
grid-template-columns: 1fr auto;
gap: 14px;
align-items: start;
margin-bottom: 8px;
}
.title-zone {
display: flex;
align-items: center;
gap: 16px;
min-width: 0;
}
.brand-mark {
position: relative;
width: 52px;
height: 52px;
border-radius: 16px;
background:
linear-gradient(135deg, rgba(85, 214, 255, 0.96), rgba(45, 110, 255, 0.72)),
linear-gradient(180deg, rgba(255, 255, 255, 0.36), transparent);
box-shadow: 0 0 30px rgba(73, 214, 255, 0.34), inset 0 0 18px rgba(255, 255, 255, 0.18);
overflow: hidden;
flex: 0 0 auto;
}
.brand-mark::before,
.brand-mark::after {
content: "";
position: absolute;
border-radius: 999px;
background: rgba(255, 255, 255, 0.86);
}
.brand-mark::before {
width: 30px;
height: 8px;
left: 14px;
top: 16px;
box-shadow: 0 14px 0 rgba(255, 255, 255, 0.76), 0 28px 0 rgba(255, 255, 255, 0.56);
}
.brand-mark::after {
width: 8px;
height: 8px;
right: 13px;
top: 16px;
box-shadow: 0 14px 0 rgba(255, 255, 255, 0.76), 0 28px 0 rgba(255, 255, 255, 0.56);
}
.title-text {
min-width: 0;
}
.eyebrow {
color: var(--cyan);
font-size: 13px;
letter-spacing: 0.18em;
text-transform: uppercase;
margin-bottom: 4px;
}
h1 {
margin: 0;
font-size: clamp(26px, 2.6vw, 42px);
line-height: 1.1;
letter-spacing: 0.04em;
text-shadow: 0 0 22px rgba(83, 202, 255, 0.44);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.purpose {
margin-top: 6px;
color: var(--muted);
font-size: 13px;
line-height: 1.5;
}
.header-actions {
display: grid;
gap: 8px;
justify-items: end;
}
.top-meta-row {
display: flex;
align-items: center;
gap: 10px;
justify-content: flex-end;
}
.source-download {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 36px;
padding: 8px 14px;
border: 1px solid rgba(83, 191, 255, 0.42);
border-radius: 14px;
color: #e7f8ff;
background: linear-gradient(180deg, rgba(27, 140, 208, 0.86), rgba(10, 90, 145, 0.86));
box-shadow: 0 0 18px rgba(73, 214, 255, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.14);
font-size: 13px;
font-weight: 900;
text-decoration: none;
white-space: nowrap;
}
.source-download:hover {
filter: brightness(1.12);
}
.time-card {
display: flex;
align-items: center;
gap: 14px;
padding: 8px 12px;
border: 1px solid var(--line);
border-radius: 14px;
background: rgba(4, 28, 52, 0.72);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
color: var(--muted);
font-size: 13px;
}
.time-card strong {
color: var(--text);
font-family: var(--num);
letter-spacing: 0.04em;
}
.toggle-row {
display: flex;
gap: 10px;
justify-content: flex-end;
align-items: center;
}
.dimension-toggle,
.system-toggle,
.view-switch {
display: inline-flex;
padding: 4px;
border: 1px solid rgba(80, 165, 235, 0.28);
border-radius: 14px;
background: rgba(3, 20, 39, 0.74);
box-shadow: inset 0 1px 12px rgba(0, 0, 0, 0.18);
}
.dimension-toggle button,
.system-toggle button,
.view-switch button {
border: 0;
border-radius: 10px;
padding: 8px 14px;
color: #a9cbe0;
background: transparent;
cursor: pointer;
font-size: 14px;
font-weight: 700;
transition: 0.18s ease;
}
.dimension-toggle button.active,
.system-toggle button.active,
.view-switch button.active {
color: white;
background: linear-gradient(180deg, #1b8cd0, #0a5a91);
box-shadow: 0 0 18px rgba(73, 214, 255, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
.dimension-toggle button:hover,
.system-toggle button:hover,
.view-switch button:hover {
color: white;
}
.crumb-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
margin: 8px 0 10px;
}
.breadcrumbs {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
color: var(--muted);
font-size: 13px;
}
.crumb {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 11px;
border: 1px solid rgba(87, 184, 255, 0.2);
border-radius: 999px;
background: rgba(6, 35, 62, 0.64);
}
.crumb.clickable {
cursor: pointer;
color: #bfeaff;
}
.crumb.clickable:hover {
border-color: var(--line-strong);
color: white;
}
.quick-actions {
display: flex;
gap: 10px;
align-items: center;
}
.ghost-btn {
border: 1px solid rgba(83, 191, 255, 0.34);
color: #c7e9ff;
background: rgba(8, 43, 76, 0.62);
border-radius: 12px;
padding: 9px 13px;
cursor: pointer;
font-weight: 700;
}
.ghost-btn:hover {
background: rgba(18, 93, 142, 0.72);
}