Skip to content

Commit 316085b

Browse files
committed
style(auth): improve login form typography and checkbox hierarchy
- Enlarge title and tighten tracking; distinguish labels from helper text - Use muted styling for remember-username row; harmonize checkbox border
1 parent a7309e7 commit 316085b

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

src/components/auth/login-form.tsx

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,15 @@ export function LoginForm() {
170170
<div className="mx-auto w-full max-w-md">
171171
{/* Login Form Card */}
172172
<div className="rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm sm:p-8">
173-
<h2 className="mb-6 text-center text-2xl font-bold">{t('login')}</h2>
173+
<h2 className="mb-8 text-center text-3xl font-bold tracking-tight text-foreground">
174+
{t('login')}
175+
</h2>
174176
<form onSubmit={handleSubmit} className="flex flex-col gap-6">
175177
{/* Username Input with @ prefix */}
176178
<div className="flex flex-col gap-2">
177-
<Label htmlFor="username" className="text-base">{t('username')}</Label>
179+
<Label htmlFor="username" className="text-sm font-semibold text-foreground">
180+
{t('username')}
181+
</Label>
178182
<div className="relative">
179183
<span className="absolute inset-y-0 left-3 flex items-center text-muted-foreground pointer-events-none">
180184
@
@@ -195,7 +199,9 @@ export function LoginForm() {
195199

196200
{/* Private Key Input */}
197201
<div className="flex flex-col gap-2">
198-
<Label htmlFor="password" className="text-base">{t('privateKey')}</Label>
202+
<Label htmlFor="password" className="text-sm font-semibold text-foreground">
203+
{t('privateKey')}
204+
</Label>
199205
<Input
200206
id="password"
201207
name="password"
@@ -206,20 +212,24 @@ export function LoginForm() {
206212
placeholder={t('secretPlaceholder')}
207213
disabled={isLoading || isPending}
208214
/>
209-
<p className="text-sm text-muted-foreground">
215+
<p className="text-xs leading-relaxed text-muted-foreground">
210216
{t('secretHelper')}
211217
</p>
212218
</div>
213219

214220
{/* Save Login Option */}
215-
<div className="flex items-center gap-2">
221+
<div className="flex items-start gap-3">
216222
<Checkbox
217223
id="keepLoggedIn"
218224
checked={rememberUsername}
219225
onCheckedChange={(value) => setRememberUsername(value === true)}
220226
disabled={isLoading || isPending}
227+
className="peer mt-0.5 border-muted-foreground/50 data-[state=unchecked]:bg-background"
221228
/>
222-
<Label htmlFor="keepLoggedIn" className="cursor-pointer font-normal text-base">
229+
<Label
230+
htmlFor="keepLoggedIn"
231+
className="cursor-pointer text-sm font-normal leading-snug text-muted-foreground peer-disabled:cursor-not-allowed"
232+
>
223233
{t('rememberUsername')}
224234
</Label>
225235
</div>

0 commit comments

Comments
 (0)