dd/resources/css/components/components.css
2026-07-04 19:01:35 +08:00

1467 lines
39 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.u-truncate {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* ==========================================================================
基础 Item / Meta
========================================================================== */
.mac-item {
display: flex;
align-items: center;
gap: 8px;
padding: 5px 10px;
color: var(--mac-text-muted);
font-size: 12px;
font-weight: 400;
border-radius: 4px;
cursor: pointer;
transition: all 0.1s ease;
user-select: none;
}
.mac-item:hover {
background-color: var(--mac-bg-active);
}
.mac-meta-title {
color: var(--mac-text-muted);
font-size: 10px;
padding-left: 7px;
margin: 10px 0 4px 0;
text-transform: uppercase;
letter-spacing: 0.6px;
}
.to-right {
margin-left: auto;
}
/* ==========================================================================
卡片与网格 (Cards & Grid)
========================================================================== */
.mac-card,
.mac-card-small {
background-color: var(--mac-bg-card);
border: 1px solid var(--mac-border-card);
border-radius: 4px;
padding: 14px;
margin-bottom: 16px;
box-shadow: var(--mac-shadow-card);
backdrop-filter: blur(20px);
width: 100%;
gap:8px;
}
.mac-card-small {
padding: 6px 8px;
margin-bottom: 10px;
}
.flex-column-g1 {
display: flex !important;
flex-direction: column !important;
gap: 4px !important;
}
.mac-dashboard-grid {
display: flex;
gap: 12px;
width: 100%;
margin-bottom: 16px;
}
.mac-dashboard-grid .mac-card {
flex: 1;
margin-bottom: 0;
}
.mac-card-header {
border-bottom: 1px solid var(--mac-border);
padding-bottom: 8px;
margin-bottom: 12px;
}
.mac-card-header.justify-between {
display: flex;
justify-content: space-between;
align-items: center;
}
.card-meta {
color: var(--mac-text-muted);
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.6px;
}
.card-value {
font-size: 18px;
font-weight: 700;
margin-top: 4px;
}
.mac-bar-container {
margin-bottom: 10px;
}
.mac-bar {
gap: 8px;
width: 100%;
}
.divider {
border-left: 1px solid var(--mac-border);
height: 12px;
margin: 0 4px;
}
/* ==========================================================================
数据表格 (Tables)
========================================================================== */
.mac-table-container {
width: 100%;
border: 1px solid var(--mac-border-card);
border-radius: 3px;
overflow-x: auto; /* 💎 核心:水平方向超出时自动出现滚动条 */
overflow-y: hidden; /* 隐藏垂直方向多余的溢出 */
-webkit-overflow-scrolling: touch;
background-color: var(--mac-bg-card);
}
.mac-table {
width: 100%;
border-collapse: collapse;
text-align: left;
font-size: 12px;
table-layout: auto;
}
.mac-table th {
background-color: var(--mac-bg-th);
padding: 8px 12px;
font-weight: 500;
border-bottom: 1px solid var(--mac-border);
color: var(--mac-text-secondary);
text-overflow: ellipsis;
white-space: nowrap;
}
.mac-table td {
padding: 8px 12px;
border-bottom: 1px solid var(--mac-border);
color: var(--mac-text-secondary);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.mac-table tr:last-child td {
border-bottom: none;
}
.mac-table td:last-child {
text-align: right;
}
.mac-table th:last-child {
text-align: right;
}
.mac-table-operation-btn {
margin-right: 10px;
}
.mac-table-operation-btn:last-child {
margin-right: 0;
}
.article-area {
/* resize: none;*/
/* overflow-y: hidden;*/
height: 800px;
width: 1000px;
line-height: 1.5;
/* transition: height 0.1s ease;*/
}
/*.mac-table tr:hover td {*/
/* background-color: var(--mac-bg-active);*/
/*}*/
/* ==========================================================================
表单元素 (Forms)
========================================================================== */
.mac-form-group {
margin-bottom: 12px;
display: flex;
flex-direction: column;
gap: 6px;
width: 100%;
}
.mac-label {
color: var(--mac-text-primary);
font-size: 12px;
font-weight: 500;
}
input[type="text"],
input[type="password"],
input[type="number"],
textarea {
display: block;
width: 100%;
background-color: var(--mac-bg-popover);
/* color: #ffffff;*/
border: 1px solid var(--mac-border-card);
padding: 6px 10px;
font-size: 12px;
font-family: inherit;
line-height: 1.4;
border-radius: 4px;
outline: none;
height: auto;
transition: border-color 0.15s ease;
}
textarea {
padding: 6px 10px !important;
resize: vertical;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none !important;
margin: 0 !important;
}
/* 针对 Firefox 内核的拦截机制 */
input[type="number"] {
-moz-appearance: textfield !important;
}
input[type="text"]:focus,
textarea:focus {
/* border-color: var(--mac-text-muted);*/
}
select {
display: block !important;
width: auto;
height: 30px !important;
appearance: none !important;
background-color: var(--mac-bg-popover) !important;
color: var(--mac-text-secondary) !important;
border: 1px solid var(--mac-border-card) !important;
padding-left: 10px !important;
padding-right: 22px !important;
font-size: 12px !important;
font-family: inherit !important;
border-radius: 4px !important;
outline: none !important;
cursor: pointer !important;
line-height: 28px !important;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 10 10'%3E%3Cpath fill='%23ffffff' opacity='0.6' d='M5 2l3 3H2zM5 8L2 5h6z'/%3E%3C/svg%3E") !important;
background-repeat: no-repeat !important;
background-position: right 8px center !important;
background-size: 8px !important;
}
/*textarea {*/
/* resize: vertical;*/
/*}*/
.form-row {
display: flex;
gap: 12px;
margin-bottom: 12px;
}
.form-actions {
display: flex;
gap: 8px;
justify-content: flex-end;
}
/* ==========================================================================
按钮组件 (Buttons)
========================================================================== */
/*.mac-btn-primary {*/
/* background: var(--mac-gradient-vitepress);*/
/* color: var(--mac-text-on-accent);*/
/* border: none;*/
/* padding: 6px 14px;*/
/* font-size: 12px;*/
/* font-weight: 600;*/
/* border-radius: 4px;*/
/* cursor: pointer;*/
/* box-shadow: 0 2px 8px rgba(168, 85, 247, 0.15);*/
/*}*/
/*.mac-btn-primary:hover {*/
/* opacity: 0.9;*/
/* box-shadow: 0 3px 12px rgba(168, 85, 247, 0.35);*/
/*}*/
.mac-btn-primary {
position: relative;
background: var(--mac-gradient-vitepress);
color: var(--mac-text-on-accent);
border: none;
padding: 6px 14px;
font-size: 12px;
font-weight: 600;
border-radius: 4px;
cursor: pointer;
box-shadow: none !important;
z-index: 1;
/* 🛡️ 物理抗震锁 */
transform: translateZ(0);
backface-visibility: hidden;
perspective: 1000px;
/* 🚀 按钮本体提亮的灵气引线:让亮度过渡极其丝滑 */
transition: filter 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
/* 🎯 战线一:鼠标经过时,按钮本体高规格提亮 */
.mac-btn-primary:hover {
/* 🍏 降维打击1.12 倍全局亮度微调!这比去手写复杂的 Hover 颜色高级十倍!
它会让你的 Vitepress 渐变色中所有亮部像素瞬间通电发光,视觉质感直接拉满! */
filter: brightness(1.12);
}
/* 🪐 阴影代理人:默认状态保持精致 */
.mac-btn-primary::before {
content: "";
position: absolute;
/* 💡 精致内敛控表:上下左右各往里缩进 3px让初始光源极度紧凑 */
top: 3px; left: 3px; right: 3px; bottom: 3px;
background: inherit;
border-radius: inherit;
/* 🛡️ 克制的物理参数8px 的小范围柔和模糊0.35 的朦胧亮度 */
filter: blur(8px);
opacity: 0.35;
z-index: -1;
/* 🛡️ 硬件加速抗震 */
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
/* 🚀 阴影自己的动态曲线:只过渡透明度,绝不过渡面积 */
transition: opacity 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
/* 🎯 战线二:鼠标经过时,阴影的处理(遵循圣旨:绝对克制) */
.mac-btn-primary:hover::before {
/* ❌ 彻底斩断原先的 transform: scale3d(1.08, 1.08, 1) 的膨胀逻辑!
阴影的物理面积在 hover 时绝对不放大哪怕 1 像素! */
/* 🍏 顺从提亮:因为按钮本体亮了,背后的光晕只需要极其克制地配合加深一点点(从 0.35 变 0.45
用来烘托本体的悬浮感,整体画面稳如泰山,绝无一丝轻浮的晃动或溢出! */
opacity: 0.45;
}
.mac-btn-secondary {
background-color: var(--mac-bg-panel);
color: var(--mac-text-primary);
border: 1px solid var(--mac-border);
padding: 6px 14px;
font-size: 12px;
border-radius: 4px;
cursor: pointer;
}
.mac-btn-secondary:hover {
background-color: var(--mac-bg-active);
}
.mac-input-small {
height: var(--mac-input-small) !important;
padding: 0px 6px !important;
font-size:12px;
border-radius: 2px !important;
}
.mac-input-medium {
height: var(--mac-input-medium) !important;
padding: 0px !important 10px !important;
font-size:12px;
border-radius: 4px !important;
}
/* ==========================================================================
导航辅助 (Breadcrumbs & Headers)
========================================================================== */
.mac-breadcrumbs {
display: flex;
align-items: center;
gap: 4px;
margin-bottom: 12px;
list-style: none;
font-size: 11px;
}
.mac-breadcrumb-item {
color: var(--mac-text-muted);
display: flex;
align-items: center;
gap: 4px;
}
.mac-breadcrumbs .mac-breadcrumb-item:not(:last-child)::after {
content: "/";
color: var(--mac-text-muted);
margin-left: 4px;
}
.mac-breadcrumb-item:last-child {
color: #ffffff;
}
.mac-page-header {
margin-bottom: 16px;
display: flex;
justify-content: space-between;
align-items: flex-end;
}
.mac-page-header p {
margin-top: 4px;
}
/* ==========================================================================
状态指示灯
========================================================================== */
.status-dot {
display: inline-block;
width: 5px;
height: 5px;
border-radius: 50%;
}
.status-dot.secure {
background-color: var(--mac-system-green) !important;
box-shadow: 0 0 6px rgba(0, 245, 155, 0.6) !important;
}
.status-dot.warning {
background-color: var(--mac-system-warning) !important;
box-shadow: 0 0 6px rgba(255, 184, 0, 0.6) !important;
}
.status-dot.danger {
background-color: var(--mac-system-danger) !important;
box-shadow: 0 0 6px rgba(255, 59, 48, 0.7) !important;
}
.code-text {
font-family: 'SF Mono', Monaco, monospace !important;
font-weight: 500;
}
/* ==========================================================================\
追加核心高标准组件样式
========================================================================== */
/* 1. 标签与徽章系统 (Badges & Tags) */
.mac-badge {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 2px 6px;
border-radius: 3px;
font-size: 11px;
font-weight: 500;
line-height: 1;
white-space: nowrap;
background-color: rgba(255, 255, 255, 0.05);
border: 1px solid var(--mac-border);
color: var(--mac-text-secondary);
}
.mac-badge.badge-theme { background-color: rgba(168, 85, 247, 0.15); border-color: rgba(168, 85, 247, 0.3); color: #c084fc; }
.mac-badge.badge-success { background-color: rgba(0, 245, 155, 0.1); border-color: rgba(0, 245, 155, 0.2); color: #00f59b; }
.mac-badge.badge-warning { background-color: rgba(255, 184, 0, 0.1); border-color: rgba(255, 184, 0, 0.2); color: #ffb800; }
.mac-badge.badge-danger { background-color: rgba(255, 59, 48, 0.1); border-color: rgba(255, 59, 48, 0.2); color: #ff6b8b; }
/* 2. 按钮状态矩阵扩充 */
/*.mac-btn-primary:disabled, .mac-btn-secondary:disabled {*/
/* opacity: 0.4 !important;*/
/* cursor: not-allowed !important;*/
/* box-shadow: none !important;*/
/*}*/
/*.mac-btn-danger {*/
/* background: linear-gradient(180px, #ff453a 0%, #ff3b30 100%) !important;*/
/* border: 1px solid #ff3b30 !important;*/
/* color: #ffffff !important;*/
/* text-shadow: 0 1px 2px rgba(0,0,0,0.3);*/
/*}*/
/*.mac-btn-danger:hover { filter: brightness(1.1); }*/
/* 3. 复杂输入框组合 (Input Groups) */
.mac-input-group {
display: flex;
align-items: center;
position: relative;
}
.mac-input-group .group-prefix {
position: absolute;
left: 8px;
color: var(--mac-text-muted);
font-size: 11px;
user-select: none;
}
.mac-input-group.has-prefix input {
padding-left: 28px !important;
}
/* 4. 进度条与性能计量条 (Progress & Metric Bars) */
.mac-progress-track {
width: 100%;
height: 4px;
background-color: rgba(255, 255, 255, 0.04);
border-radius: 2px;
overflow: hidden;
position: relative;
}
.mac-progress-bar {
height: 100%;
background-color: var(--mac-system-theme);
box-shadow: 0 0 8px var(--mac-gradient-vitepress);
transition: width 0.3s ease;
}
/* 5. 空状态与骨架防断流 (Empty State) */
.mac-empty-placeholder {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 40px 20px;
text-align: center;
border: 1px dashed rgba(255, 255, 255, 0.05);
border-radius: 4px;
}
.mac-empty-icon {
font-size: 24px;
margin-bottom: 8px;
opacity: 0.5;
}
/* 6. 高级上下文分流控制 (Context Menus / Dropdown Panel) */
.mac-dropdown-menu {
background-color: var(--mac-bg-subnav);
border: 1px solid var(--mac-border);
border-radius: 6px;
box-shadow: 0 4px 12px rgba(0,0,0,0.5);
padding: 4px;
min-width: 160px;
}
.mac-dropdown-item {
padding: 6px 10px;
font-size: 11px;
color: var(--mac-text-secondary);
border-radius: 4px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: space-between;
}
.mac-dropdown-item:hover {
background-color: var(--mac-bg-active);
color: #ffffff;
}
/* ==========================================================================\
🚀 终极硬核扩展组件库 (Ultimate Heavy-Duty Extension)
========================================================================== */
/* 1. 分段控制器 (Segmented Controls) - macOS 灵魂组件 */
.mac-segmented-control {
display: inline-flex;
background-color: rgba(0, 0, 0, 0.2);
border: 1px solid var(--mac-border);
border-radius: 6px;
padding: 2px;
user-select: none;
}
.mac-segment-item {
padding: 4px 12px;
font-size: 11px;
color: var(--mac-text-muted);
border-radius: 4px;
cursor: pointer;
font-weight: 500;
transition: all 0.12s cubic-bezier(0.4, 0, 0.2, 1);
}
.mac-segment-item:hover { color: var(--mac-text-secondary); }
.mac-segment-item.active {
background-color: var(--mac-bg-panel);
color: #ffffff;
box-shadow: 0 1px 3px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.05);
}
/* 2. 原生微型开关 (macOS Toggle Switch) */
.mac-switch-label {
display: inline-flex;
align-items: center;
gap: 8px;
cursor: pointer;
font-size: 12px;
color: var(--mac-text-secondary);
}
.mac-switch-input { display: none; }
.mac-switch-slider {
width: 28px;
height: 16px;
background-color: rgba(255, 255, 255, 0.1);
border-radius: 8px;
position: relative;
border: 1px solid var(--mac-border);
transition: background-color 0.2s ease;
}
.mac-switch-slider::after {
content: "";
position: absolute;
width: 12px;
height: 12px;
border-radius: 50%;
background-color: #ffffff;
top: 1px;
left: 1px;
box-shadow: 0 1px 2px rgba(0,0,0,0.4);
transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.mac-switch-input:checked + .mac-switch-slider {
background-color: var(--mac-system-theme);
border-color: rgba(168, 85, 247, 0.5);
}
.mac-switch-input:checked + .mac-switch-slider::after {
transform: translateX(12px);
}
/* 3. 未读计数胶囊与徽章 (Counters) */
.mac-counter {
font-size: 10px;
background-color: rgba(255, 255, 255, 0.06);
color: var(--mac-text-muted);
padding: 1px 5px;
border-radius: 10px;
font-weight: 600;
margin-left: auto;
}
.mac-item:hover .mac-counter, .mac-item.active .mac-counter {
color: #ffffff;
background-color: rgba(168, 85, 247, 0.3);
}
/* 4. 复杂过滤器检索条 (Filter Toolbars) */
.mac-filter-toolbar {
background-color: var(--mac-bg-subnav);
border: 1px solid var(--mac-border);
border-radius: 4px;
padding: 8px 12px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
margin-bottom: 16px;
flex-wrap: wrap;
}
/* 5. 极简暗黑时间轴 (Timeline / Audit Trails) */
.mac-timeline {
position: relative;
padding-left: 16px;
list-style: none;
margin: 0;
}
.mac-timeline::before {
content: "";
position: absolute;
left: 4px;
top: 4px;
bottom: 4px;
width: 1px;
background-color: var(--mac-border);
}
.mac-timeline-item {
position: relative;
padding-bottom: 12px;
font-size: 11px;
}
.mac-timeline-item::after {
content: "";
position: absolute;
left: -15px;
top: 4px;
width: 7px;
height: 7px;
border-radius: 50%;
background-color: var(--mac-border);
border: 2px solid var(--mac-bg-panel);
}
.mac-timeline-item.success::after { background-color: var(--mac-system-green); }
.mac-timeline-item.warning::after { background-color: var(--mac-system-warning); }
.mac-timeline-item.danger::after { background-color: var(--mac-system-danger); }
.mac-timeline-meta { color: var(--mac-text-muted); margin-bottom: 2px; display: flex; gap: 8px; }
/* 6. 模态窗刚性静态定位层(沙盒验证用) */
.mac-modal-backdrop-mock {
background-color: rgba(0, 0, 0, 0.4);
border: 1px solid var(--mac-border);
border-radius: 6px;
backdrop-filter: blur(4px);
padding: 16px;
box-shadow: 0 12px 36px rgba(0, 0, 0, 0.6);
}
/* ==========================================================================\
🔥 终极重载硬核扩展组件库 (Ultimate Heavy-Duty Extension System)
========================================================================== */
/* 1. 极致高密度属性审查器 (Property Inspector) */
.mac-property-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 8px;
background: rgba(0, 0, 0, 0.15);
padding: 10px;
border-radius: 4px;
border: 1px solid var(--mac-border);
}
.mac-property-item {
display: flex;
flex-direction: column;
gap: 2px;
}
.mac-property-label {
font-size: 10px;
color: var(--mac-text-muted);
text-transform: uppercase;
}
.mac-property-value {
font-size: 12px;
color: var(--mac-text-secondary);
}
/* 2. macOS Finder 风格嵌套树 (Hierarchy Component Tree) */
.mac-tree {
list-style: none;
padding-left: 0;
margin: 0;
}
.mac-tree-item {
display: flex;
align-items: center;
padding: 4px 6px;
border-radius: 3px;
cursor: pointer;
font-size: 11px;
}
.mac-tree-item:hover {
background-color: var(--mac-bg-active);
}
.mac-tree-item.selected {
background-color: rgba(168, 85, 247, 0.2);
color: #ffffff;
border: 1px solid rgba(168, 85, 247, 0.4);
}
.mac-tree-indent {
width: 14px;
height: 14px;
display: inline-block;
position: relative;
}
.mac-tree-indent::before {
content: "";
position: absolute;
left: 6px;
top: -4px;
bottom: 6px;
width: 1px;
background-color: rgba(255, 255, 255, 0.08);
}
/* 3. 伪代码编辑器视窗 (Mock Code Editor Component) */
.mac-editor-window {
background-color: #121011;
border: 1px solid var(--mac-border);
border-radius: 4px;
font-family: var(--mac-font-mono, monospace);
display: flex;
overflow: hidden;
}
.mac-editor-gutter {
background-color: rgba(255, 255, 255, 0.02);
border-right: 1px solid var(--mac-border);
padding: 10px 6px;
text-align: right;
color: rgba(255, 255, 255, 0.15);
user-select: none;
font-size: 11px;
line-height: 1.5;
}
.mac-editor-content {
padding: 10px;
overflow-x: auto;
flex: 1;
font-size: 11px;
line-height: 1.5;
color: var(--mac-text-secondary);
white-space: pre;
}
/* 4. 暗黑极光骨架屏脉冲动画 (Skeleton Pulse) */
.mac-skeleton {
background: linear-gradient(90deg, rgba(255,255,255,0.03) 25%, rgba(255,255,255,0.08) 50%, rgba(255,255,255,0.03) 75%);
background-size: 200% 100%;
animation: mac-pulse 1.5s infinite;
border-radius: 3px;
display: inline-block;
}
@keyframes mac-pulse {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
/* 5. 悬浮级通知弹窗中心 (System Toast Stack) */
.mac-toast-container {
position: fixed;
top: 36px;
right: 16px;
display: flex;
flex-direction: column;
gap: 8px;
z-index: 10000;
width: 280px;
}
.mac-toast {
background: rgba(30, 26, 27, 0.85);
border: 1px solid var(--mac-border);
backdrop-filter: blur(12px);
box-shadow: 0 10px 30px rgba(0,0,0,0.5);
border-radius: 6px;
padding: 10px 12px;
display: flex;
gap: 8px;
align-items: flex-start;
}
.mac-toast.toast-error { border-left: 3px solid var(--mac-system-danger); }
.mac-toast.toast-success { border-left: 3px solid var(--mac-system-green); }
/* 6. 大数值高光看板 (Statistic Hero Banner) */
.mac-stat-hero-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 16px;
margin-bottom: 16px;
}
.mac-stat-hero-card {
background: linear-gradient(135deg, rgba(255,255,255,0.02) 0%, rgba(255,255,255,0.00) 100%);
border: 1px solid var(--mac-border-card);
border-radius: 6px;
padding: 16px;
position: relative;
overflow: hidden;
}
.mac-stat-hero-card::before {
content: "";
position: absolute;
top: 0; left: 0; width: 100%; height: 2px;
background: linear-gradient(90deg, transparent, var(--mac-system-theme), transparent);
opacity: 0.3;
}
/* ==========================================================================\
🚀 全场景丰富度扩充组件(专门应对不同核心页面的布局特征)
========================================================================== */
/* 场景 A数据看板 —— 监控大盘专属极光状态条 */
.mac-signal-strip {
display: flex;
align-items: center;
gap: 16px;
background: linear-gradient(90deg, rgba(168, 85, 247, 0.05) 0%, transparent 100%);
padding: 10px 14px;
border-radius: 4px;
border-left: 3px solid var(--mac-system-theme);
margin-bottom: 16px;
}
/* 场景 B拓扑与配置 —— 属性对齐名片 */
.mac-meta-card {
background: rgba(0, 0, 0, 0.12);
border: 1px solid var(--mac-border);
border-radius: 4px;
padding: 12px;
}
.mac-meta-row {
display: flex;
justify-content: space-between;
padding: 6px 0;
font-size: 11px;
border-bottom: 1px dashed rgba(255, 255, 255, 0.03);
}
.mac-meta-row:last-child { border-bottom: none; }
/* 场景 C流水账单/审计 —— 财务级右对齐紧凑表格修饰 */
.mac-table-numeric {
font-family: var(--mac-font-mono, monospace);
text-align: right;
font-weight: 500;
}
/* 场景 D工单与用户管理 —— 紧凑型用户矩阵头像胶囊 */
.mac-avatar-badge {
display: inline-flex;
align-items: center;
gap: 6px;
background: rgba(255, 255, 255, 0.04);
padding: 2px 8px 2px 4px;
border-radius: 12px;
border: 1px solid var(--mac-border);
}
.mac-avatar-badge * {
transition: color 0.3s ease, filter 0.3s ease;
}
.mac-avatar-badge:hover * {
color:var(--mac-text-primary) !important;
/* filter: brightness(2.15);*/
cursor:pointer;
}
.mac-avatar-circle {
width: 16px;
height: 16px;
border-radius: 50%;
background: var(--mac-system-theme);
color: #fff;
font-size: 9px;
display: flex;
align-items: center;
justify-content: center;
font-weight: 600;
}
/* ==========================================================================
🚀 扩展工业级高密阶梯布局与重度交互防护
========================================================================== */
/* 1. 刚性全屏阻塞防错沙盒Modal/Layer Guard */
.mac-modal-backdrop {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background: rgba(15, 11, 12, 0.7);
backdrop-filter: blur(8px);
z-index: 9999;
display: flex; align-items: center; justify-content: center;
}
.mac-modal-window {
background: var(--mac-bg-panel);
border: 1px solid var(--mac-gradient-vitepress);
box-shadow: 0 20px 40px rgba(0,0,0,0.5), 0 0 12px rgba(168, 85, 247, 0.2);
border-radius: 6px; width: 480px; max-width: 90vw;
overflow: hidden; display: flex; flex-direction: column;
}
/* 2. 双向联动视窗分流器Split Deck */
.mac-split-deck {
display: flex; gap: 1px;
background: var(--mac-border);
border: 1px solid var(--mac-border-card);
border-radius: 4px; overflow: hidden;
}
.mac-deck-pane {
flex: 1; background: var(--mac-bg-main);
padding: 12px; min-width: 0;
}
.mac-deck-pane.pane-aside {
flex: 0 0 240px; background: rgba(0,0,0,0.1);
}
/* 3. 极低水位警告核心状态块Incident Block */
.mac-incident-block {
background: linear-gradient(135deg, rgba(255, 59, 48, 0.08) 0%, transparent 100%);
border: 1px solid rgba(255, 59, 48, 0.3);
border-left: 4px solid var(--mac-system-danger);
padding: 12px; border-radius: 4px; margin-bottom: 16px;
}
/* 4. 键值排编名片组High-Density Definition Key-Value */
.mac-kv-group {
display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px;
}
.mac-kv-item {
background: rgba(255,255,255,0.02); border: 1px solid var(--mac-border);
padding: 6px 10px; border-radius: 3px;
}
/* ==========================================================================
✨ 终极毛玻璃通知栈系统 (The Ultimate Translucent Toast Glass)
========================================================================== */
.mac-toast-container {
position: fixed;
top: 34px; /* 完美避开 22px 状态栏并留出 12px 刚性空隙 */
right: 16px;
z-index: 99999;
display: flex;
flex-direction: column;
gap: 10px;
width: 320px;
pointer-events: none;
}
.mac-toast-glass {
pointer-events: auto;
background: rgba(30, 26, 27, 0.55) !important; /* 深度结合 --mac-bg-main 调配的 55% 半透微醺底色 */
backdrop-filter: blur(24px) saturate(190%) !important; /* 强力高斯模糊与色彩饱和度双向泵入 */
-webkit-backdrop-filter: blur(24px) saturate(190%) !important;
border: 1px solid rgba(255, 255, 255, 0.09) !important; /* 原生级高光上边框/内衬线 */
border-radius: 6px !important;
padding: 12px 14px !important;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35),
0 1px 2px rgba(0, 0, 0, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.05) !important; /* 刚性内外双重阴影防塌陷 */
display: flex;
align-items: flex-start;
gap: 12px;
transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
animation: toast-slide-in 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
/* 状态左缘刚性微分流偏置 */
.mac-toast-glass.success { border-left: 3px solid var(--mac-system-green) !important; }
.mac-toast-glass.error { border-left: 3px solid var(--mac-system-danger) !important; }
.mac-toast-glass.warning { border-left: 3px solid var(--mac-system-warning) !important; }
/* 刚性滑入动画 */
@keyframes toast-slide-in {
from { transform: translateX(30px); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
}
/* ==========================================================================
🌌 基础设施级物理拓扑与冷热流道控制系统
========================================================================== */
/* 1. 刚性节点物理阵列骨架Grid Core Matrix */
.mac-node-matrix {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
gap: 12px;
margin-bottom: 16px;
}
.mac-node-unit {
background: rgba(255, 255, 255, 0.02);
border: 1px solid var(--mac-border-card);
border-radius: 6px;
padding: 10px;
position: relative;
transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.mac-node-unit.active {
border-color: rgba(168, 85, 247, 0.4);
background: linear-gradient(180deg, rgba(168, 85, 247, 0.03) 0%, transparent 100%);
box-shadow: 0 4px 12px rgba(168, 85, 247, 0.1);
}
.mac-node-unit.standby {
border-color: rgba(255, 255, 255, 0.05);
opacity: 0.6;
}
/* 2. 物理连线连接段Topological Pipeline Cable */
.mac-topo-cable {
height: 1px;
background: linear-gradient(90deg, var(--mac-system-theme) 0%, transparent 100%);
position: relative;
margin: 8px 0;
}
.mac-topo-cable::after {
content: "";
position: absolute;
width: 4px; height: 4px;
background: #ffffff;
border-radius: 50%;
top: -1.5px; left: 0;
box-shadow: 0 0 6px #ffffff;
animation: cable-flow 2s linear infinite;
}
@keyframes cable-flow {
0% { left: 0; opacity: 1; }
80% { opacity: 1; }
100% { left: 100%; opacity: 0; }
}
/* 3. 灰度冷热分流重型手柄域 (Heavy Switch Bay) */
.mac-shifter-bay {
display: flex;
background: rgba(0, 0, 0, 0.2);
border: 1px solid var(--mac-border);
border-radius: 6px;
padding: 4px;
gap: 4px;
}
.mac-shifter-lever {
flex: 1;
text-align: center;
padding: 8px 0;
font-size: 11px;
font-weight: 500;
color: var(--mac-text-muted);
cursor: pointer;
border-radius: 4px;
transition: all 0.15s ease;
}
.mac-shifter-lever.active-hot {
background: var(--mac-system-danger);
color: #ffffff;
font-weight: 600;
box-shadow: 0 2px 8px rgba(255, 59, 48, 0.4);
}
.mac-shifter-lever.active-cold {
background: var(--mac-system-theme);
color: #ffffff;
font-weight: 600;
box-shadow: 0 2px 8px rgba(168, 85, 247, 0.4);
}
/* 4. 微缩阶梯波形图Micro Step Volume Bar */
.mac-wave-steps {
display: flex;
align-items: flex-end;
gap: 2px;
height: 16px;
}
.mac-wave-bar {
width: 3px;
background: rgba(255, 255, 255, 0.1);
border-radius: 1px;
}
.mac-wave-bar.fill { background: var(--mac-system-green); }
.mac-wave-bar.warn { background: var(--mac-system-warning); }
/* ==========================================================================
🧱 工业级机械核心弹窗舱系统 (Nuclear Industrial Modal Bays)
========================================================================== */
.width-full {
width:100%;
}
.text-to-right {
text-align:right;
}
/* =============================
tom alert
==============================*/
/* type调色 */
/*.tom-alert > .tom-alert-inner {*/
/* border-color: var(--mac-color-danger) !important;*/
/*}*/
/*.tom-alert-danger .mac-btn-primary {*/
/* background-color: var(--mac-color-danger) !important;*/
/*}*/
.tom-alert-icon {
font-size: 56px !important;
}
.tom-alert {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background: rgba(15, 11, 12, 0.65) !important;
backdrop-filter: blur(16px) saturate(180%) !important;
-webkit-backdrop-filter: blur(16px) saturate(180%) !important;
z-index: 100000;
display: flex;
justify-content: center;
padding: 40px 20px; /* 🍏 适当加大上下 padding给 2000px 长图留出高规格的头尾呼吸感 */
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
outline: none;
}
.tom-alert-inner {
background: var(--mac-bg-panel);
border: 1px solid rgba(255, 255, 255, 0.08);
box-shadow: 0 30px 70px rgba(0, 0, 0, 0.6),
0 0 1px rgba(255, 255, 255, 0.1) inset;
border-radius: 6px !important;
overflow: hidden;
display: flex;
flex-direction: column;
margin: auto 0;
margin-bottom: 50vh;
flex-shrink: 0;
min-width:200px;
max-width: 80%;
}
.tom-alert.is-active {
opacity: 1;
pointer-events: auto;
}
.tom-alert-header {
background: rgba(0,0,0,0.15);
padding: 10px 14px;
border-bottom: 1px solid var(--mac-border);
display: flex;
justify-content: space-between;
align-items: center;
}
.tom-alert-body {
width: 100%;
padding: 10px;
display: flex;
flex-direction: column;
/* gap:6px;*/
}
.tom-alert-msg {
margin: 8px 8px 8px 8px;
}
.tom-alert-footer {
background: rgba(0,0,0,0.1);
padding: 10px 14px;
border-top: 1px solid var(--mac-border);
display: flex;
gap: 10px;
justify-content: center;
width: 100%;
box-sizing: border-box;
}
.tom-alert-footer > button {
flex: 1;
width: 0;
}
/*.tom-alert-footer > button {*/
/* flex: 1 1 300px;*/
/* max-width: 300px;*/
/* width: 100%;*/
/*}*/
.tom-modal {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background: rgba(15, 11, 12, 0.65) !important;
backdrop-filter: blur(16px) saturate(180%) !important;
-webkit-backdrop-filter: blur(16px) saturate(180%) !important;
z-index: 10000;
display: flex;
justify-content: center;
padding: 40px 20px;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
outline: none;
}
.tom-modal-inner {
/* height: 100vh;*/
background: var(--mac-bg-panel) !important;
border: 1px solid rgba(255, 255, 255, 0.08) !important;
box-shadow: 0 30px 70px rgba(0, 0, 0, 0.6),
0 0 1px rgba(255, 255, 255, 0.1) inset !important;
border-radius: 6px !important;
overflow: hidden;
display: flex;
flex-direction: column;
margin: auto 0;
flex-shrink: 0;
min-width: 200px;
}
.tom-modal.is-active {
opacity: 1;
pointer-events: auto;
}
.tom-modal-header {
background: rgba(0,0,0,0.15);
padding: 10px 14px;
border-bottom: 1px solid var(--mac-border);
display: flex;
justify-content: space-between;
align-items: center;
}
.tom-modal-header > a {
display: inline-block;
padding: 12px 15px;
margin: -12px -15px;
/* cursor: pointer;*/
/* text-decoration: none;*/
}
.tom-modal-body-flex {
padding: 10px;
display: flex;
flex-direction: column;
gap:6px;
/* display: grid;*/
/* grid-template-columns: max-content 1fr;*/
/* gap: 6px 0px;*/
/* align-items: center;*/
}
.tom-modal-body {
padding: 10px;
/* display: flex;*/
/* flex-direction: column;*/
/* gap:6px;*/
display: grid;
/* grid-template-columns: max-content 1fr;*/
grid-template-columns: max-content 1fr max-content;
gap: 6px 8px;
align-items: center;
}
.fr1-max {
grid-template-columns: max-content 1fr max-content !important;
}
.fr1 {
grid-template-columns: max-content 1fr !important;
}
.tom-modal-footer {
background: rgba(0,0,0,0.1);
padding: 10px 14px;
border-top: 1px solid var(--mac-border);
display: flex;
justify-content: flex-end;
}
/* 3. 刻度调节器滑道Vaccum Pipe Slider */
.mac-pipe-range {
-webkit-appearance: none;
width: 100%; height: 4px;
background: rgba(0, 0, 0, 0.4);
border-radius: 2px; outline: none;
margin: 12px 0;
}
.mac-pipe-range::-webkit-slider-thumb {
-webkit-appearance: none;
width: 10px; height: 14px;
background: var(--mac-system-theme) !important;
border-radius: 2px; cursor: pointer;
box-shadow: 0 0 8px var(--mac-system-theme);
border: 1px solid rgba(255,255,255,0.2);
}
/* 4. 机械咬合插槽组Interlock Slot Matrix */
.mac-slot-bin {
display: flex; gap: 6px; margin: 12px 0;
}
.mac-slot-pin {
flex: 1; height: 28px;
background: rgba(0, 0, 0, 0.2);
border: 1px solid var(--mac-border);
border-radius: 4px;
display: flex; align-items: center; justify-content: center;
font-family: monospace; font-size: 11px; color: var(--mac-text-muted);
cursor: pointer; transition: all 0.15s ease;
}
.mac-slot-pin.locked {
border-color: rgba(0, 245, 155, 0.4);
color: var(--mac-system-green);
background: linear-gradient(180deg, rgba(0, 245, 155, 0.04) 0%, transparent 100%);
text-shadow: 0 0 6px rgba(0, 245, 155, 0.3);
}
/* ==========================================================================
💾 高密数据切片控制总线与无缝交互弹窗
========================================================================== */
/* 1. 列表头部多维筛查舱 (Filter Bay) */
.mac-filter-deck {
background: rgba(0, 0, 0, 0.15);
border: 1px solid var(--mac-border);
border-radius: 4px;
padding: 10px 14px;
margin-bottom: 14px;
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: center;
}
/* 2. 刚性高阶密集数据表修饰 (Industrial High-Density Row) */
.mac-table tbody tr {
/* cursor: pointer;*/
transition: background-color 0.1s ease;
}
.mac-table tbody tr:hover {
background-color: var(--mac-bg-active) !important;
}
/* 3. 刚性翻页控制器胶囊 (Decoupled Pagination Capsule) */
.mac-pager-bar {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 14px;
padding: 0 4px;
gap: 8px;
}
.mac-pager-group {
display: flex;
gap: 4px;
}
.mac-pager-btn {
min-width: 24px; height: 22px;
background: rgba(255, 255, 255, 0.03);
border: 1px solid var(--mac-border);
border-radius: 3px;
color: var(--mac-text-muted);
font-family: monospace;
font-size: 11px;
display: flex; align-items: center; justify-content: center;
cursor: pointer; transition: all 0.1s ease;
}
.mac-pager-btn:hover:not(.disabled) {
border-color: rgba(168, 85, 247, 0.4);
color: #fff;
}
.mac-pager-btn.active {
background: var(--mac-system-theme) !important;
border-color: var(--mac-system-theme) !important;
color: #fff !important;
font-weight: 600;
box-shadow: 0 2px 6px rgba(168, 85, 247, 0.3);
}
.mac-pager-btn.disabled {
opacity: 0.3;
cursor: not-allowed;
}
/* 4. 排序箭头的刚性微分形态 */
.mac-sort-link {
color: inherit !important;
display: inline-flex;
align-items: center;
gap: 4px;
}
.mac-sort-arrow {
font-size: 9px;
color: var(--mac-text-muted);
transition: color 0.15s ease;
}
.mac-sort-link.active .mac-sort-arrow {
color: var(--mac-system-theme);
}