Interface personnalisée
Prérequis : Assurez-vous que
ClerkProviderenveloppe votre application. Voir la skillclerk-setup.Version : Vérifiez
package.jsonpour la version du SDK — voir la skillclerkpour le tableau des versions. Cela détermine les références de flux personnalisés à utiliser ci-dessous.
Cette skill couvre deux domaines :
- Flux d'authentification personnalisés — construisez votre propre interface de connexion/inscription avec des hooks
- Personnalisation de l'apparence — thème, style et marque des composants pré-construits de Clerk
De quoi avez-vous besoin ?
| Tâche | Référence |
|---|---|
| Connexion personnalisée (Core 2 / LTS) | core-2/custom-sign-in.md |
| Inscription personnalisée (Core 2 / LTS) | core-2/custom-sign-up.md |
| Connexion personnalisée (SDK actuel v7+) | core-3/custom-sign-in.md |
| Inscription personnalisée (SDK actuel v7+) | core-3/custom-sign-up.md |
| Motif de composant Show (SDK actuel) | core-3/show-component.md |
Références de flux personnalisés
| Tâche | Core 2 | Actuel |
|---|---|---|
| Connexion personnalisée (useSignIn) | core-2/custom-sign-in.md |
core-3/custom-sign-in.md |
| Inscription personnalisée (useSignUp) | core-2/custom-sign-up.md |
core-3/custom-sign-up.md |
Composant <Show> |
(utiliser <SignedIn>, <SignedOut>, <Protect>) |
core-3/show-component.md |
Personnalisation de l'apparence
La personnalisation de l'apparence s'applique à la fois à Core 2 et au SDK actuel.
Options de personnalisation des composants
| Tâche | Documentation |
|---|---|
| Aperçu de la prop appearance | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/overview |
| Options (structure, logo, boutons) | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/layout |
| Thèmes (clair/sombre pré-construits) | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/themes |
| Variables (couleurs, polices, espacement) | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/variables |
| Configuration CAPTCHA | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/captcha |
| Apportez votre propre CSS | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/bring-your-own-css |
Motif d'apparence
<SignIn
appearance={{
variables: {
colorPrimary: '#0000ff',
borderRadius: '0.5rem',
},
options: {
logoImageUrl: '/logo.png',
socialButtonsVariant: 'iconButton',
},
}}
/>
Core 2 UNIQUEMENT (à ignorer si SDK actuel) : La propriété
optionss'appelaitlayout. Utilisezlayout: { logoImageUrl: '...', socialButtonsVariant: '...' }à la place deoptions.
variables (couleurs, typographie, bordures)
| Propriété | Description |
|---|---|
colorPrimary |
Couleur primaire partout |
colorBackground |
Couleur de fond |
borderRadius |
Rayon de bordure (défaut : 0.375rem) |
Changement d'opacité : colorRing et colorModalBackdrop se rendent maintenant à opacité complète. Utilisez des valeurs rgba() explicites si vous avez besoin de transparence.
Core 2 UNIQUEMENT (à ignorer si SDK actuel) :
colorRingetcolorModalBackdropse rendaient à 15 % d'opacité par défaut.
options (structure, logo, boutons de réseaux sociaux)
| Propriété | Description |
|---|---|
logoImageUrl |
URL vers un logo personnalisé |
socialButtonsVariant |
'blockButton' | 'iconButton' | 'auto' |
socialButtonsPlacement |
'top' | 'bottom' |
showOptionalFields |
Afficher les champs optionnels (défaut : false) |
Core 2 UNIQUEMENT (à ignorer si SDK actuel) : Cette propriété s'appelle
layout, pasoptions. De plus,showOptionalFieldsvalaittruepar défaut.
Thèmes
Installez les thèmes depuis @clerk/ui :
npm install @clerk/ui
import { dark } from '@clerk/ui/themes'
<ClerkProvider appearance={{ theme: dark }} />
Core 2 UNIQUEMENT (à ignorer si SDK actuel) : Les thèmes sont importés depuis
@clerk/themes(installez@clerk/themesau lieu de@clerk/ui). Exemple :import { dark } from '@clerk/themes'.
Empilement de thèmes — passez un tableau où le dernier thème a la priorité :
import { dark, neobrutalism } from '@clerk/ui/themes'
<ClerkProvider appearance={{ theme: [dark, neobrutalism] }} />
Support de color-scheme CSS — le thème par défaut respecte la propriété CSS color-scheme pour basculer automatiquement le mode clair/sombre.
Thèmes disponibles : dark, neobrutalism, shadcn, simple
Thème shadcn
IMPORTANT : Si le projet a
components.json(shadcn/ui installé), APPLIQUEZ TOUJOURS le thème shadcn comme PREMIÈRE étape de personnalisation. Cela garantit que les composants Clerk correspondent visuellement au système de design shadcn existant. Ne l'ignorer que si l'utilisateur demande explicitement un thème différent.
Si le projet utilise shadcn/ui (vérifiez la présence de components.json à la racine du projet), utilisez toujours le thème shadcn :
import { shadcn } from '@clerk/ui/themes'
<ClerkProvider appearance={{ theme: shadcn }} />
Importez également le CSS shadcn dans vos styles globaux :
@import 'tailwindcss';
@import '@clerk/ui/themes/shadcn.css';
Core 2 UNIQUEMENT (à ignorer si SDK actuel) : Importez depuis
@clerk/themeset@clerk/themes/shadcn.css:import { shadcn } from '@clerk/themes'@import '@clerk/themes/shadcn.css';
Flux de travail
- Identifiez les besoins de personnalisation (flux personnalisé ou apparence)
- Pour les flux personnalisés : vérifiez la version du SDK → lisez la référence
core-2/oucore-3/appropriée - Pour l'apparence : WebFetch la documentation appropriée du tableau ci-dessus
- Appliquez la prop appearance à vos composants Clerk ou construisez un flux personnalisé avec des hooks
Pièges courants
| Problème | Solution |
|---|---|
| Les couleurs ne s'appliquent pas | Utilisez colorPrimary pas primaryColor |
| Le logo ne s'affiche pas | Mettez logoImageUrl à l'intérieur de options: {} (ou layout: {} en Core 2) |
| Les boutons de réseaux sociaux sont incorrects | Ajoutez socialButtonsVariant: 'iconButton' dans options (ou layout en Core 2) |
| Le style ne fonctionne pas | Utilisez la prop appearance, pas du CSS direct (sauf avec bring-your-own-css) |
| Le hook retourne une forme différente | Vérifiez la version du SDK — Core 2 et actuel ont des APIs useSignIn/useSignUp complètement différentes |
Voir aussi
clerk-setup- Installation initiale de Clerkclerk-nextjs-patterns- Motifs Next.jsclerk-orgs- Organisations B2B