summaryrefslogtreecommitdiff
path: root/frontend/src/pages/AuthPages.svelte
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-18 08:26:37 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-18 08:26:37 +0800
commit60640dfa981e419cf86413c924fd26822bd42327 (patch)
treecab175f9fa975c68db82287f06a13a1dc3af8048 /frontend/src/pages/AuthPages.svelte
parent06a7b1668b44f111eca5d08bc8c2c9d41d8e617e (diff)
downloadstrategy-lab-60640dfa981e419cf86413c924fd26822bd42327.tar.gz
feat(frontend): 布局/认证/项目页迁移 shadcn 并修复 375px 溢出
[变更性质] 本提交为 UI 迁移与移动端布局修复,产品功能不变。 [新增功能] Leader 第 2 轮验收的失败项:AuthPages 在 375px 视口横向溢出 47px, 原因为 .auth-card 固定 400px 宽度。 [实现方案] AuthPages:.auth-wrap 改为 flex 包裹,.auth-card 改用 width:min(400px,100%),三档视口下登录/注册/重置均零溢出。 Layout.svelte 重写为 shadcn Button(退出按钮)+ Tailwind 主题变量, 同时保留 .layout/.content/.navlink/.brand 等 legacy class 以维持 mobileCss.test.ts 的断言语义。ProjectsPage 迁移 shadcn Card/Table 等 (保留 p-name 链接语义),新增 projectsPageLoad.test.ts 回归项目列表 加载失败时的错误呈现。 [影响范围] frontend/src/components/Layout.svelte、pages/AuthPages.svelte、 pages/ProjectsPage.svelte;视觉验证覆盖 375/768/1440 全零溢出。
Diffstat (limited to 'frontend/src/pages/AuthPages.svelte')
-rw-r--r--frontend/src/pages/AuthPages.svelte11
1 files changed, 8 insertions, 3 deletions
diff --git a/frontend/src/pages/AuthPages.svelte b/frontend/src/pages/AuthPages.svelte
index 9e56be2..6221368 100644
--- a/frontend/src/pages/AuthPages.svelte
+++ b/frontend/src/pages/AuthPages.svelte
@@ -166,14 +166,19 @@
<style>
.auth-wrap {
min-height: 100vh;
- display: grid;
- place-items: center;
+ display: flex;
+ align-items: center;
+ justify-content: center;
padding: 1.5rem;
+ /* grid place-items center sizes the implicit track to the card's fixed
+ width so max-width:100% never engaged (375px probe: 47px doc overflow);
+ flex + min() keeps the resolved card width inside the padded viewport */
+ min-width: 0;
background:
radial-gradient(700px 350px at 85% -60px, rgba(13, 148, 136, 0.08), transparent),
var(--bg);
}
- .auth-card { width: 400px; max-width: 100%; padding: 1.6rem; }
+ .auth-card { width: min(400px, 100%); padding: 1.6rem; }
.auth-brand { margin-bottom: 1.1rem; }
.mark {
display: inline-block;