feat(login): glass morphism overhaul, bookSlug fix, Cloudflare E2E tests - #1028
Conversation
- Fix bookSlug validation: make optional in AccessRequestSchema and RecoveryRequestSchema to accept empty/missing values gracefully - Glass morphism UI: radial gradient background, glass-card class on login cards, Instrument Serif typography, accent bars - Input polish: softer borders (border-border/60), muted placeholders - Admin login parity: same glass treatment, cleaner headers - Cloudflare E2E tests: login flow, password toggle, hero rendering, empty bookSlug handling, health endpoint, admin login
|
✅ Health of changed files: 4.8 (unchanged) 📋 At a glance Files & modules (2)
✅ Health gate: passed 📌 Before you merge
🔎 More signals (3)🗺️ Change map flowchart LR
subgraph PR ["Changed in this PR (2 modules)"]
m_apps["apps (17 files)"]:::changed
m_packages["packages (2 files)"]:::changed
end
classDef changed fill:#dbeafe,stroke:#1d4ed8,color:#1e3a5f
classDef warn fill:#fef3c7,stroke:#b45309,color:#78350f
classDef guard fill:#dcfce7,stroke:#15803d,color:#14532d
Solid arrows: code that imports the changed files (22 direct dependents, from the last indexed snapshot). Dashed: history/tests. 🔥 Hotspots touched (5)
2 more
🔗 Hidden coupling (3 files)
👀 Suggested reviewers @d-oit 📊 See the full report for this PR |
Deploying do-epub-studio with
|
| Latest commit: |
946c992
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://937e091f.do-epub-studio.pages.dev |
| Branch Preview URL: | https://feat-login-visual-overhaul.do-epub-studio.pages.dev |
🚀 Performance Report🛠️ CI & Workflow
⚡ Turbo Task Performance
Cache Hit Ratio: 0% (0/7 tasks) 🧪 Test Stability
|
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 24 |
| Duplication | 10 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
…n build Lightning CSS strips the unprefixed backdrop-filter from @layer components in globals.css. Tailwind's backdrop-blur-lg utility includes both prefixed and unprefixed versions, ensuring the frosted glass effect works in production builds.
… anchors GOAP-253 / ADR-253 on top of the glass morphism overhaul: - LoginForm: role=status notice + disabled submit when /login has no ?book= param (demo login unaffected); server MISSING_BOOK guard stays as backstop - i18n: login.noBookContext added to all 14 locale catalogs (parity test) - E2E: cloudflare-login.spec.ts migrated from Tailwind class selectors to data-testid anchors (login/admin card, hero, mobile info) - build: restoreStandardBackdropFilter() Vite plugin — lightningcss was dropping standard backdrop-filter, leaving only -webkit- (invisible glass in Firefox); removed redundant backdrop-blur-lg utilities that overrode .glass-card's saturate(150%) - tests: Button mock forwards disabled; submit-flow tests pinned to ?book=; three new guard tests (1310 web tests green)
Code Review & Roast — GOAP-253 passVerdict: approve-after-fixes. Fixes landed in f5bdb43. Solid CI discipline and a genuinely better error code, but two real bugs shipped under the polish. Details by severity. 🔥 Must-fix (found, fixed in f5bdb43)M1 — Production glass blur was Firefox-invisible, and the "fix" was a placebo.
M2 — Dead-end submit state. ✅ Should-fix (also done)
🧹 Nit pile (not blocking)
👏 Credit where due
Repo context noted during review
GOAP-253 execution record: |
Summary
backdrop-filter: blur(16px)), radial gradient backgrounds, Instrument Serif typography, and decorative accent barsAccessRequestSchemaandRecoveryRequestSchemanow accept optional/emptybookSlug— the Zodmin(1)error when navigating to/loginwithout?book=is resolvedborder-border/60), muted placeholders, refined password toggle hover statecloudflare-login.spec.tswith 14 tests covering reader/admin login flows, password toggle, glass morphism rendering, hero sections, empty bookSlug handling, and Cloudflare health endpointFiles Changed
schemaauth.ts(bookSlug optional)sharedschemas.test.tsuiinput.tsx(border, placeholder, toggle polish)webLoginPage.tsx,LoginHero.tsx,LoginMobileInfo.tsx,LoginCardHeader.tsx,AdminLoginPage.tsx,AdminLoginHero.tsx,app-identity-parity.test.tsxworkeraccess.ts(bookSlug guard)testscloudflare-login.spec.ts(new)Verification
CLOUDFLARE_PREVIEW_URLenv var