diff --git a/index.html b/index.html index 5553b65..82bf4be 100644 --- a/index.html +++ b/index.html @@ -13,6 +13,9 @@ --warning: #FAAD14; --danger: #FF4D4F; --purple: #722ED1; + --green: #52C41A; + --green-light: #f6ffed; + --green-border: #b7eb8f; --text-primary: #1a1a2e; --text-secondary: #5a607f; --text-placeholder: #999999; @@ -22,7 +25,6 @@ --radius-sm: 6px; --radius-md: 10px; --radius-lg: 16px; - --radius-xl: 20px; --shadow-sm: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.06); --shadow-md: 0 4px 16px rgba(22,119,255,0.10), 0 2px 6px rgba(0,0,0,0.06); --shadow-lg: 0 10px 30px rgba(22,119,255,0.15), 0 4px 10px rgba(0,0,0,0.06); @@ -31,27 +33,20 @@ body { background: var(--background); font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', 'Segoe UI', sans-serif; color: var(--text-primary); min-height: 100vh; } /* ===== Header ===== */ -.header { position: relative; background: linear-gradient(135deg, #0b3d91 0%, var(--primary) 40%, #4facfe 100%); color: #fff; padding: 44px 48px 28px; overflow: hidden; } +.header { position: relative; background: linear-gradient(135deg, #0b3d91 0%, var(--primary) 40%, #4facfe 100%); color: #fff; padding: 40px 48px 20px; overflow: hidden; } .header::before { content: ''; position: absolute; top: -60px; right: -40px; width: 260px; height: 260px; background: radial-gradient(circle, rgba(255,255,255,0.12) 0%, transparent 70%); border-radius: 50%; } .header::after { content: ''; position: absolute; bottom: -80px; left: 20%; width: 360px; height: 360px; background: radial-gradient(circle, rgba(255,255,255,0.06) 0%, transparent 70%); border-radius: 50%; } -.header__inner { position: relative; z-index: 1; max-width: 1400px; margin: 0 auto; } -.header__top { display: flex; align-items: flex-start; justify-content: space-between; } +.header__inner { position: relative; z-index: 1; max-width: 1400px; margin: 0 auto; text-align: center; } .header__title { font-size: 28px; font-weight: 800; letter-spacing: 1px; text-shadow: 0 2px 8px rgba(0,0,0,0.15); } -.header__sub { font-size: 14px; color: rgba(255,255,255,0.7); margin-top: 8px; font-weight: 400; } -.header__stats { display: flex; gap: 14px; margin-top: 22px; flex-wrap: wrap; } -.stat-badge { background: rgba(255,255,255,0.15); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,0.2); border-radius: 24px; padding: 8px 20px; font-size: 13px; font-weight: 500; display: flex; align-items: center; gap: 8px; transition: background .2s; } -.stat-badge:hover { background: rgba(255,255,255,0.25); } -.stat-badge__dot { width: 10px; height: 10px; border-radius: 50%; box-shadow: 0 0 6px currentColor; } -.stat-badge__dot--web { background: #69b1ff; color: #69b1ff; } -.stat-badge__dot--app { background: #95de64; color: #95de64; } -.stat-badge__dot--emergency { background: #ffc069; color: #ffc069; } -/* ===== Tab 导航 ===== */ -.tab-nav { display: flex; align-items: center; gap: 6px; background: var(--card-bg); padding: 12px 48px; position: sticky; top: 0; z-index: 10; box-shadow: 0 2px 12px rgba(0,0,0,0.06); } -.tab-nav__item { padding: 9px 22px; font-size: 14px; font-weight: 500; color: var(--text-secondary); cursor: pointer; border-radius: 24px; transition: all .25s ease; user-select: none; display: flex; align-items: center; gap: 8px; border: 1.5px solid transparent; } -.tab-nav__item:hover { color: var(--primary); background: var(--primary-light); } -.tab-nav__item--active { color: #fff; background: var(--primary); border-color: var(--primary); box-shadow: 0 2px 8px rgba(22,119,255,0.3); } -.tab-nav__item--active .tab-nav__badge { background: rgba(255,255,255,0.25); color: #fff; } -.tab-nav__badge { font-size: 11px; padding: 2px 8px; border-radius: 10px; background: var(--primary-light); color: var(--primary); font-weight: 600; transition: all .25s; } +.header__sub { font-size: 14px; color: rgba(255,255,255,0.7); margin-top: 8px; } + +/* ===== Tab 导航(嵌入 Header 底部) ===== */ +.tab-nav { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 20px 48px 0; position: relative; z-index: 1; } +.tab-nav__item { padding: 10px 28px; font-size: 15px; font-weight: 600; color: rgba(255,255,255,0.7); cursor: pointer; border-radius: 28px; transition: all .25s ease; user-select: none; display: flex; align-items: center; gap: 8px; border: 1.5px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.08); backdrop-filter: blur(6px); } +.tab-nav__item:hover { color: #fff; background: rgba(255,255,255,0.18); border-color: rgba(255,255,255,0.4); } +.tab-nav__item--active { color: var(--primary-dark); background: #fff; border-color: #fff; box-shadow: 0 4px 16px rgba(0,0,0,0.15); } +.tab-nav__item--active .tab-nav__badge { background: var(--primary); color: #fff; } +.tab-nav__badge { font-size: 11px; padding: 2px 9px; border-radius: 10px; background: rgba(255,255,255,0.2); color: rgba(255,255,255,0.9); font-weight: 700; transition: all .25s; } .tab-nav__icon { width: 18px; height: 18px; flex-shrink: 0; } /* ===== 内容区 ===== */ @@ -61,13 +56,14 @@ body { background: var(--background); font-family: -apple-system, BlinkMacSystem @keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } } /* ===== 模块网格 ===== */ -.module-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 20px; } +.module-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; } +.module-grid--center { justify-content: center; display: flex; flex-wrap: wrap; gap: 20px; } +.module-grid--center .module-card { width: 320px; flex-shrink: 0; } /* ===== 角色分组 ===== */ -.role-group { margin-bottom: 28px; } +.role-group { margin-bottom: 28px; text-align: center; } .role-group:last-child { margin-bottom: 0; } .role-group__title { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; color: var(--text-primary); margin-bottom: 16px; padding: 6px 16px 6px 12px; background: var(--card-bg); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); } -.role-group__title:first-child { margin-top: 0; } .role-icon { width: 22px; height: 22px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 13px; color: #fff; flex-shrink: 0; } .role-icon--expert { background: linear-gradient(135deg, #1677FF, #4facfe); } .role-icon--assistant { background: linear-gradient(135deg, #722ED1, #b37feb); } @@ -77,185 +73,173 @@ body { background: var(--background); font-family: -apple-system, BlinkMacSystem .role-icon--admin { background: linear-gradient(135deg, #eb2f96, #ff85c0); } .role-icon--shared { background: linear-gradient(135deg, #13c2c2, #5cdbd3); } -/* ===== 模块卡片 ===== */ -.module-card { position: relative; background: var(--card-bg); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 22px 22px 22px 26px; transition: all .25s ease; border: 1px solid var(--border); overflow: hidden; } -.module-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: 4px 0 0 4px; background: var(--primary); transition: width .2s; } -.module-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); border-color: rgba(22,119,255,0.2); } -.module-card:hover::before { width: 5px; } -.module-card--empty { opacity: 0.6; border-style: dashed; border-color: #d0d5dd; } -.module-card--empty::before { background: #d0d5dd; } -.module-card--empty:hover { opacity: 0.75; transform: translateY(-1px); box-shadow: var(--shadow-md); border-color: #d0d5dd; } -.module-card__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; } -.module-card__name { font-size: 15px; font-weight: 700; color: var(--text-primary); } -.module-card__count { font-size: 12px; color: var(--text-secondary); margin-left: 8px; font-weight: 400; } -.module-card__tag { font-size: 11px; padding: 3px 10px; border-radius: 12px; font-weight: 600; letter-spacing: 0.3px; } -.module-card__tag--ready { background: #f6ffed; color: #389e0d; border: 1px solid #b7eb8f; } -.module-card__tag--pending { background: #fffbe6; color: #d48806; border: 1px solid #ffe58f; } -.module-card__empty-hint { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-placeholder); } -.module-card__empty-hint svg { flex-shrink: 0; } +/* ===== 呼吸灯动画 ===== */ +@keyframes breathe { + 0%, 100% { border-color: rgba(82,196,26,0.35); box-shadow: 0 0 0 0 rgba(82,196,26,0); } + 50% { border-color: rgba(82,196,26,0.7); box-shadow: 0 0 12px 2px rgba(82,196,26,0.18); } +} -/* ===== 页面链接 ===== */ -.page-links { display: flex; flex-wrap: wrap; gap: 8px; } -.page-link { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 500; color: var(--primary-dark); background: linear-gradient(135deg, #e8f4ff, #f0f7ff); padding: 5px 14px; border-radius: 16px; text-decoration: none; transition: all .2s ease; border: 1px solid rgba(22,119,255,0.12); } -.page-link:hover { background: linear-gradient(135deg, #bae0ff, #d6ebff); border-color: rgba(22,119,255,0.25); transform: translateY(-1px); box-shadow: 0 2px 6px rgba(22,119,255,0.12); } -.page-link svg { flex-shrink: 0; } -.page-link--dialog { color: #ad4e00; background: linear-gradient(135deg, #fff7e6, #fff9ed); border-color: rgba(250,173,20,0.2); } -.page-link--dialog:hover { background: linear-gradient(135deg, #ffe7ba, #fff1cc); border-color: rgba(250,173,20,0.35); box-shadow: 0 2px 6px rgba(250,173,20,0.15); } +/* ===== 模块卡片 ===== */ +.module-card { position: relative; background: var(--card-bg); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 20px; transition: all .25s ease; border: 1.5px solid var(--border); cursor: pointer; z-index: 1; } +.module-card--pop-open { z-index: 200; } +.module-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); } +.module-card--ready { border-color: var(--green-border); animation: breathe 3s ease-in-out infinite; } +.module-card--ready:hover { border-color: var(--green); animation: none; box-shadow: 0 8px 24px rgba(82,196,26,0.2); } +.module-card--empty { opacity: 0.55; border-style: dashed; border-color: #d0d5dd; cursor: default; } +.module-card--empty:hover { transform: none; box-shadow: var(--shadow-sm); } +.module-card__header { display: flex; align-items: center; justify-content: space-between; } +.module-card__name { font-size: 15px; font-weight: 700; color: var(--text-primary); } +.module-card__tag { position: relative; font-size: 11px; padding: 3px 10px; border-radius: 12px; font-weight: 600; letter-spacing: 0.3px; } +.module-card__tag--ready { background: var(--green-light); color: #389e0d; border: 1px solid var(--green-border); cursor: pointer; transition: all .15s; } +.module-card__tag--ready:hover { background: #d9f7be; transform: scale(1.05); } +.module-card__tag--pending { background: #fffbe6; color: #d48806; border: 1px solid #ffe58f; } +.module-card__empty-hint { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-placeholder); margin-top: 10px; } + +/* ===== 悬浮页面列表 ===== */ +.page-popover { display: none; position: absolute; top: 100%; right: 0; margin-top: 6px; background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: 0 8px 30px rgba(0,0,0,0.15); padding: 8px 0; z-index: 100; min-width: 200px; max-height: 320px; overflow-y: auto; animation: popIn .2s ease; } +.page-popover--visible { display: block; } +@keyframes popIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } } +.page-popover__title { font-size: 12px; color: var(--text-placeholder); padding: 4px 14px 8px; border-bottom: 1px solid var(--border); margin-bottom: 4px; } +.page-popover__item { display: flex; align-items: center; gap: 8px; padding: 7px 14px; font-size: 13px; color: var(--text-primary); text-decoration: none; transition: background .15s; } +.page-popover__item:hover { background: var(--primary-light); color: var(--primary-dark); } +.page-popover__item svg { flex-shrink: 0; } +.page-popover__item--dialog { color: #ad4e00; } +.page-popover__item--dialog:hover { background: #fff7e6; color: #ad4e00; }
-
-
-
健康长庆升级 · 高保真交互原型
-
点击模块卡片中的页面链接,即可跳转预览对应原型
-
-
-
+
健康长庆升级 · 高保真交互原型
+
点击模块卡片跳转至对应模块主页,点击页数徽章查看全部页面
+
- -
-