[STU-163] Tailwind v4 + shadcn/ui redesign with singular login#41
Conversation
…[STU-163] Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Caution Review failedPull request was closed or merged during review No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
WalkthroughRemoves intent-driven, role-specific routing and hinting from login, replaces it with static role notes and lucide icons, refactors LoginForm to shared UI primitives, modernizes the landing page to Tailwind + icon components, and deletes large legacy landing/login CSS blocks. ChangesLogin and Landing Page Modernization
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
⚔️ Resolve merge conflicts
Comment |
|
Deployment failed with the following error: Learn More: https://vercel.com/khalid-proj?upgradeToPro=build-rate-limit |
BAWES
left a comment
There was a problem hiding this comment.
Staff Engineer Review — APPROVE WITH REBASE NOTE
Well-executed redesign. ~900 lines of dead CSS removed, replaced with Tailwind v4 utility classes and shadcn/ui components. The singular login simplification is clean and correct.
What's good
- CSS reduction: 236 dead rule blocks (~900 lines) removed from styles.css. The remaining CSS is now concentrated on workspace/OS components that haven't been migrated yet.
- Component adoption: shadcn/ui Button, Input, Card, CardContent, and Label used consistently across landing, login, and LoginForm.
- Singular login: Removing
login/[role]/page.tsx,loginHints,isRoleimport, andhintprop from LoginForm — all correct.portalContent.tsalready points all hrefs to/login. - Accessibility:
min-height: 40px → 44pxon buttons,htmlFor/idpairing on form labels, aria-labels preserved. - Dark mode: The
[data-theme="dark"]gradient overrides at the bottom of styles.css remain intact — dark mode should still work. - Responsive:
max-sm:,max-lg:breakpoint variants cover the existing@media (max-width: 680px)and@media (max-width: 1040px)breakpoints from the old CSS.
Minor notes (non-blocking)
-
Label component (
src/components/ui/label.tsx): This is a simplified version withoutforwardRefor@radix-ui/react-label. It follows the same pattern as the existingButtonandInputcomponents (custom, lighter than full shadcn/ui radix wrappers). Consistent with project conventions — no issue. -
Decorative hero stage (page.tsx line ~320): Still uses
index === 1 ? "PDF" : "Live". This is a decorative mockup, not data-driven, so it's low risk. However, PR #39 fixes this pattern in the same file. Rebase note below.
Rebase required before merge
PR #39 changes the same file (src/app/page.tsx) — specifically the portalIcons typing and the index-based rendering logic. Merge order: #39 → rebase #41. After rebase, verify:
- The lucide-react
portalIconstyping (Record<(typeof portalRoles)[number], React.ComponentType<{ className?: string }>>) is preserved - The
{label, status}pattern from #39 is carried into the decorative stage section
Verification
- CI: all green ✓
- Branch naming:
feature/STU-163-*✓ - Commits: 2, both conventional ✓
Add role="alert" to server-rendered error banners and client-side form error. Wire aria-describedby on form to error id for screen reader announcement. Add autoFocus on email input when validation fails for keyboard focus. Landing page already has aria-hidden, hidden icons, native focusables. Co-Authored-By: Paperclip <noreply@paperclip.ing>
…-176 rebase
Replace index === 1 ? "PDF" : "Live" with explicit {label, status} objects
so reordering the array cannot silently break rendering.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
e8b2a07 to
e0d9aa4
Compare
|
Rebased onto main (which now includes the squashed STU-176 fix from PR #39). Changes during rebase:
CI gate run locally: tsc + build pass. |
Summary
/login/[role]) and allintent/hint/loginHintscode — singular login per board directive/loginTest plan
/login/candidateetc. returns 404 (per-role routes removed)npm run test:allCloses STU-163
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
Summary by CodeRabbit
New Features
Improvements