Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions src/app/sign-in/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,9 @@ export default function SignInPage() {
}}
/>

<p className="mt-4 text-center text-sm">
<Link href="/forgot-password" className="link-primary">
Forgot password?
</Link>
</p>
{/* "Forgot password?" moved INTO the form, onto the Remember-Me row
where the convention puts it (#374). It was stranded here below the
submit button, costing a 46px line of its own. */}

<div className="divider my-6">OR</div>

Expand Down
28 changes: 27 additions & 1 deletion src/components/auth/SignInForm/SignInForm.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
'use client';

import React, { useRef, useState } from 'react';
import Link from 'next/link';
import { useAuth } from '@/contexts/AuthContext';
import CaptchaWidget, {
type CaptchaWidgetHandle,
Expand Down Expand Up @@ -310,7 +311,24 @@ export default function SignInForm({
</div>
</div>

<div>
{/* #374. This row was a classless `<div>` sitting 168px LEFT of the
inputs with a 310x31 empty rectangle beside it, while "Forgot
password?" was stranded below the submit button over in
`sign-in/page.tsx`, costing a 46px line of its own.

The row spans the FULL 448px column rather than being indented to the
280px input column behind a label-width spacer. That was tried first,
because the ticket's "also in scope" note asks for a spacer cell — and
measuring it showed the two controls do not fit: Remember Me (138px)
+ Forgot password (162px) = 300px against 280px, so they wrapped onto
separate lines and gave back the row this change exists to reclaim.
Full width fits them with room to spare, and is what the ticket's own
mock draws.

`flex-wrap` is still load-bearing at the narrow end: 300px clears the
448px and 382px columns, but NOT the 288px column below 430px, nor
the `x-large` accessibility font setting. */}
<div className="flex flex-wrap items-center justify-between gap-x-4 gap-y-3">
<label
htmlFor="remember-me"
className="label cursor-pointer justify-start gap-3"
Expand All @@ -326,6 +344,14 @@ export default function SignInForm({
/>
<span>Remember Me</span>
</label>
{/* Conventionally belongs on this row, not below the submit button.
`min-h-11` keeps the 44px touch target the mobile gate requires. */}
<Link
href="/forgot-password"
className="link link-primary min-h-11 content-center text-sm"
>
Forgot password?
</Link>
</div>

{error && (
Expand Down
Loading