Coloriginz Design Systemshadcn custom registry

@col/auth-split

Versie: 1.0.0 Toegevoegd: 2026-08-03

Herkomst

Geëxtraheerd uit growerportal2/src/app/login/login-content.tsx. Die app koos een ander inlogscherm dan de onboarding-portal: geen foto áchter een kaart, maar een tweekolommen-indeling met het formulier links en de foto rechts.

Beide zijn goed, en het was zonde om er één van te laten liggen. Sindsdien heeft dit design system twee inlogschermen waaruit je kiest.

Waarvoor

De ene helft van het scherm is het formulier, de andere een foto. Kies dit wanneer het formulier rustig en goed leesbaar moet zijn: de tekst staat op de gewone achtergrond, niet op een afbeelding.

Kies @col/auth-shell wanneer het beeld de sfeer moet zetten — daar ligt de foto over het volle scherm met een donkere laag ertussen, en staat de inhoud in een kaart daarbovenop.

AuthSplit AuthShell
Foto naast de inhoud achter de inhoud
Inhoud kaal op de achtergrond in een kaart
Leesbaarheid hoog, geen beeld onder de tekst vraagt een donkere laag
Sfeer ingetogen het beeld draagt
Op mobiel foto verdwijnt foto blijft, vult het scherm

Gebruik het niet voor korte tussenschermen zoals "e-mail verstuurd". Een halve foto naast drie regels tekst voelt leeg; AuthShell met een kaart past daar beter.

Wat je app moet leveren

Prop Type Betekenis
backgroundImage string Pad of URL van de foto. Verplicht.
imageSide 'left' | 'right'? Aan welke kant de foto staat. Default 'right'.
maxWidth string? Tailwind max-width van de formulierkolom. Default 'max-w-sm'.
notice ReactNode? Tekst in een balk bovenaan, bijvoorbeeld "Testomgeving". Zonder deze prop is er geen balk.
className string? Extra classes op de buitenste container.
children ReactNode? De inhoud van de formulierkolom: logo, koppen, velden, knoppen.

Het component levert de indeling, niet de inhoud. Het logo, de taalkiezer, de koppen en de velden zet je zelf in children — zo houd je de vrijheid om per app een andere volgorde of andere velden te kiezen.

Voorbeeld:

<AuthSplit backgroundImage="/brand/backgrounds/default.jpg" notice={isTest ? 'Testomgeving' : undefined}>
  <div className="mb-10 flex items-center justify-between">
    <BrandLogo src={logo} alt="Logo" variant="plain" size="h-9" />
    <LanguageSwitcher />
  </div>
  <h1 className="text-2xl font-semibold tracking-tight">Welkom terug</h1>
  <p className="mt-2 text-sm text-muted-foreground">Log in om verder te gaan</p>
  <form className="mt-8 space-y-5">…</form>
</AuthSplit>

Bestanden

Bestand Landt in Soort
auth-split.tsx components/auth/ beheerd

Geen upstream shadcn-afhankelijkheden, geen cssVars.

Gebruikt door

App Sinds versie Opmerkingen
— — Nog geen consumers. growerportal2 is de bron van dit patroon en draait nog op zijn eigen kopie; die kan hierop over wanneer het uitkomt.

Bewuste keuzes

Bekende beperkingen