diff --git a/portal-ui/index.html b/portal-ui/index.html index 2d63180..b51323f 100644 --- a/portal-ui/index.html +++ b/portal-ui/index.html @@ -7,8 +7,9 @@ content="width=device-width,initial-scale=1.0, maximum-scale=1.0,minimum-scale=1.0" /> - asio + type="image/svg+xml" + href="/favicon.svg" /> + 智绘影音
diff --git a/portal-ui/src/assets/styles/base.less b/portal-ui/src/assets/styles/base.less index 88e72d7..9216cfe 100644 --- a/portal-ui/src/assets/styles/base.less +++ b/portal-ui/src/assets/styles/base.less @@ -23,25 +23,30 @@ body { position: relative; } +body[arco-theme='dark'] { + color: #e5e7eb; + background-color: #121826; +} + // firefox 滚动条样式 * { - scrollbar-color: rgba(144, 147, 153, 0.5) #0f0f12; + scrollbar-color: rgba(77, 137, 255, 0.35) #121826; } /*滚动条整体样式*/ ::-webkit-scrollbar { - background-color: #0f0f12; + background-color: #121826; } /*滚动条里面小方块*/ ::-webkit-scrollbar-thumb { - background-color: red; - border: 3px solid #0f0f12; + background-color: rgba(77, 137, 255, 0.35); + border: 3px solid #121826; } /*滚动条里面轨道*/ ::-webkit-scrollbar-track { - background: #0f0f12; + background: #121826; } :focus { @@ -67,11 +72,22 @@ body { // 正常页面切换动画 .page-enter-active { - animation: page-in 0.3s; + animation: page-in 0.35s ease-out; } .page-leave-active { - animation: page-in 0.3s reverse; + animation: page-in 0.28s ease-in reverse; +} + +/* 路由视图淡入淡出(与 appMain 中 portal-page 过渡配合) */ +.portal-page-enter-active, +.portal-page-leave-active { + transition: opacity 0.32s ease; +} + +.portal-page-enter-from, +.portal-page-leave-to { + opacity: 0; } @keyframes page-in { @@ -195,11 +211,11 @@ fieldset { padding: 20px 10px; font-size: 14px; font-weight: bold; - color: #fd8000; + color: #f59e0b; } .page-error { - color: red; + color: #ef4444; font-size: 20px; padding: 30px; } @@ -240,33 +256,51 @@ input:-webkit-autofill { width: 100vw !important; height: 100vh !important; z-index: 100 !important; - background: #fff; + background: #121826; padding: 12px !important; } .arco-modal-simple { - background: #0f0f12; - border-radius: 10px; - border: 2px solid #e6217a; + background: #1a1f2e; + border-radius: 12px; + border: none; + box-shadow: + inset 0 0 0 1px rgba(77, 137, 255, 0.12), + 0 4px 20px rgba(0, 0, 0, 0.35); .arco-modal-title { - color: #fff; + color: #e5e7eb; } .arco-modal-body { - color: #fff; + color: #e5e7eb; } .arco-modal-footer { .arco-btn-secondary { - color: #ffffff; - background-color: #1a1a1a; - border: 1px solid #1a1a1a; + color: #e5e7eb; + background-color: #252b3a; + border: 1px solid rgba(77, 137, 255, 0.15); &:hover { - background-color: #262626; + background-color: rgba(77, 137, 255, 0.14); + box-shadow: 0 0 12px rgba(77, 137, 255, 0.25); } } } } +/* 主按钮 hover:轻微提亮 + 外发光 */ +.arco-btn-primary:not(.arco-btn-disabled):hover { + filter: brightness(1.06); + box-shadow: 0 0 12px rgba(77, 137, 255, 0.4); +} + +/* 输入类 focus 同色系发光边框 */ +.arco-input-wrapper:focus-within:not(.arco-input-disabled), +.arco-textarea-wrapper:focus-within:not(.arco-textarea-disabled), +.arco-select-view:focus-within:not(.arco-select-view-disabled) { + border-color: rgb(var(--primary-6)) !important; + box-shadow: 0 0 0 2px rgba(77, 137, 255, 0.22) !important; +} + @media (max-width: 576px) { .arco-modal-simple { width: calc(100% - 20px); diff --git a/portal-ui/src/assets/styles/var.less b/portal-ui/src/assets/styles/var.less index d4a8e20..bb1c571 100644 --- a/portal-ui/src/assets/styles/var.less +++ b/portal-ui/src/assets/styles/var.less @@ -1,10 +1,40 @@ +/* portal-ui 暗色科技主题 — 设计令牌(与 Arco 暗色模式协同) */ + body { - // 背景色 - 浅 - --mf-color-bg-3: #f8f8fa; + --portal-bg-page: #121826; + --portal-bg-card: #1a1f2e; + --portal-bg-sub: #252b3a; + --portal-text: #e5e7eb; + --portal-text-2: #9ca3af; + --portal-text-disabled: #6b7280; + --portal-primary: #4d89ff; + --portal-accent: #9d6bff; + --portal-success: #10b981; + --portal-warning: #f59e0b; + --portal-danger: #ef4444; + --portal-glow-border: rgba(77, 137, 255, 0.1); + --portal-shadow-soft: 0 4px 20px rgba(0, 0, 0, 0.3); + --portal-shadow-glow: 0 0 12px rgba(77, 137, 255, 0.4); + --mf-color-bg-3: #f8f8fa; --his-border-color: rgb(166, 124, 82, 0.3); } body[arco-theme='dark'] { - // 背景色 - 浅 - --mf-color-bg-3: #17171a; -} \ No newline at end of file + --mf-color-bg-3: #252b3a; + /* Arco 语义色贴近本主题层级 */ + --color-bg-1: #121826; + --color-bg-2: #1a1f2e; + --color-bg-3: #252b3a; + --color-bg-4: #2e3548; + --color-bg-5: #363d52; + --color-fill-1: rgba(255, 255, 255, 0.04); + --color-fill-2: rgba(255, 255, 255, 0.06); + --color-fill-3: rgba(255, 255, 255, 0.08); + --color-border-1: rgba(77, 137, 255, 0.12); + --color-border-2: rgba(77, 137, 255, 0.18); + --color-border-3: rgba(77, 137, 255, 0.25); + --color-text-1: #e5e7eb; + --color-text-2: #9ca3af; + --color-text-3: #9ca3af; + --color-text-4: #6b7280; +} diff --git a/portal-ui/src/components/Forbidden.vue b/portal-ui/src/components/Forbidden.vue index 884e5ce..6b73a0d 100644 --- a/portal-ui/src/components/Forbidden.vue +++ b/portal-ui/src/components/Forbidden.vue @@ -81,9 +81,9 @@ export default { overflow: hidden; // width: 428px; // height: 258px; - // background: linear-gradient(0deg, #271433 0%, #e6217a 49%); + // background: linear-gradient(160deg, #121826 0%, #1a1f2e 100%); // border-radius: 20px; - // border: 2px solid #e6217a; + // border: none; box-shadow: inset 0 0 0 1px rgba(77,137,255,0.1); // top: 45% !important; // transform: translateY(-45%) !important; diff --git a/portal-ui/src/components/Preview.vue b/portal-ui/src/components/Preview.vue index 2026e48..bd03df9 100644 --- a/portal-ui/src/components/Preview.vue +++ b/portal-ui/src/components/Preview.vue @@ -41,9 +41,12 @@ export default {