Interface personnalisée
Prérequis : Assurez-vous que
ClerkProviderenveloppe votre application. Consultez la skillclerk-setup.Version : Vérifiez
package.jsonpour la version du SDK — consultez 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 — créez votre propre interface de connexion/inscription avec des hooks
- Personnalisation de l'apparence — thème, style et marque des composants préconstruit 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 d'affichage de composant (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> |
(utilisez <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 propriété 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/options |
| Thèmes (clair/sombre préconstruit) | 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 (ignorez 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 (par défaut : 0.375rem) |
Changement d'opacité : colorRing et colorModalBackdrop s'affichent désormais à opacité complète. Utilisez des valeurs rgba() explicites si vous avez besoin de transparence.
Core 2 UNIQUEMENT (ignorez si SDK actuel) :
colorRingetcolorModalBackdrops'affichaient à 15 % d'opacité par défaut.
options (structure, logo, boutons sociaux)
| Propriété | Description |
|---|---|
logoImageUrl |
URL du logo personnalisé |
socialButtonsVariant |
'blockButton' | 'iconButton' | 'auto' |
socialButtonsPlacement |
'top' | 'bottom' |
showOptionalFields |
Afficher les champs optionnels (par défaut : false) |
Core 2 UNIQUEMENT (ignorez si SDK actuel) : Cette propriété s'appelle
layout, nonoptions. De plus,showOptionalFieldsétaittruepar 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 (ignorez 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 CSS color-scheme — le thème par défaut respecte la propriété CSS color-scheme pour le basculement automatique 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 sautez cette étape 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 (ignorez 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 appropriée
core-2/oucore-3/ - Pour l'apparence : récupérez la documentation appropriée du tableau ci-dessus
- Appliquez la propriété appearance à vos composants Clerk ou créez un flux personnalisé avec des hooks
Pièges courants
| Problème | Solution |
|---|---|
| Les couleurs ne s'appliquent pas | Utilisez colorPrimary pas primaryColor |
| Le logo n'apparaît pas | Mettez logoImageUrl à l'intérieur de options: {} (ou layout: {} dans Core 2) |
| Les boutons sociaux sont incorrects | Ajoutez socialButtonsVariant: 'iconButton' dans options (ou layout dans Core 2) |
| Le style ne fonctionne pas | Utilisez la propriété appearance, pas du CSS direct (sauf avec bring-your-own-css) |
| Hook retourne une forme différente | Vérifiez la version du SDK — Core 2 et l'SDK 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