feat(auth): glassmorphism card + clearer register CTA

Give the login/register card a proper glassmorphism look (new .auth-glass:
more transparent so the clouds blur through, bright glassy edge, soft layered
shadow) while keeping a slate tint so the white form text stays legible.

Make the "no account? register" CTA stand out over the bright sky: a dark
frosted glass pill with an arrow, and dark slate prompt text with a soft white
halo instead of the washed-out white.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
keyhan
2026-06-22 18:26:25 +03:30
parent 7275c29460
commit a58142cc4a
2 changed files with 30 additions and 5 deletions
+15
View File
@@ -229,6 +229,21 @@ html.lenis body {
inset 0 1px 0 rgba(255, 255, 255, 0.08); inset 0 1px 0 rgba(255, 255, 255, 0.08);
} }
/* Glassmorphism card for the auth screens: more transparent than the landing
panel so the clouds blur through, a bright glassy edge highlight and a soft
layered shadow — kept on a slate tint so the white form text stays legible
over the bright sky. (See hype4 glassmorphism generator for the language.) */
.auth-glass {
background: rgba(17, 25, 45, 0.32);
backdrop-filter: blur(22px) saturate(170%);
-webkit-backdrop-filter: blur(22px) saturate(170%);
border: 1px solid rgba(255, 255, 255, 0.30);
box-shadow:
0 12px 40px rgba(2, 6, 23, 0.45),
inset 0 1px 0 rgba(255, 255, 255, 0.40),
inset 0 -1px 0 rgba(255, 255, 255, 0.06);
}
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
.abrban-float, .abrban-float,
.abrban-scroll-hint, .abrban-scroll-hint,
+15 -5
View File
@@ -1,6 +1,7 @@
'use client'; 'use client';
import type { ReactNode } from 'react'; import type { ReactNode } from 'react';
import { ArrowLeft } from 'lucide-react';
import { Link } from '@/i18n/Link'; import { Link } from '@/i18n/Link';
import { useT } from '@/i18n/I18nProvider'; import { useT } from '@/i18n/I18nProvider';
import { LanguageSwitcher } from '@/i18n/LanguageSwitcher'; import { LanguageSwitcher } from '@/i18n/LanguageSwitcher';
@@ -58,15 +59,24 @@ export function AuthShell({
<p className="abrban-ink mt-2 text-white/85">{subtitle}</p> <p className="abrban-ink mt-2 text-white/85">{subtitle}</p>
</div> </div>
<div className="abrban-panel rounded-[1.75rem] p-6 sm:p-8">{children}</div> <div className="auth-glass rounded-[1.75rem] p-6 sm:p-8">{children}</div>
{altPrompt && altHref && altLabel && ( {altPrompt && altHref && altLabel && (
<p className="abrban-ink mt-6 text-center text-sm text-white/90"> <div className="mt-6 flex flex-wrap items-center justify-center gap-x-2 gap-y-2">
{altPrompt}{' '} <span
<Link href={altHref} className="font-bold text-primary-200 underline-offset-4 hover:text-white hover:underline"> className="text-base font-semibold text-slate-900"
style={{ textShadow: '0 1px 3px rgba(255,255,255,0.7)' }}
>
{altPrompt}
</span>
<Link
href={altHref}
className="inline-flex items-center gap-1.5 rounded-xl border border-white/45 bg-slate-900/45 px-4 py-2 text-sm font-bold text-white shadow-lg shadow-black/25 backdrop-blur-md transition hover:border-white/70 hover:bg-slate-900/65"
>
{altLabel} {altLabel}
<ArrowLeft className="h-4 w-4 ltr:rotate-180" />
</Link> </Link>
</p> </div>
)} )}
</div> </div>
</main> </main>