.claude/skills/clerk-custom-ui/SKILL.md
Customize Clerk component appearance - themes, layout, colors, fonts, CSS. Use for appearance styling, visual customization, branding.
npx skillsauth add oaknational/oak-open-curriculum-ecosystem clerk-custom-uiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Prerequisite: Ensure
ClerkProviderwraps your app. Seesetup/.
| Task | Documentation | | ---------------------------------- | ----------------------------------------------------------------------------------------- | | Appearance prop overview | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/overview | | Layout (structure, logo, buttons) | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/layout | | Themes (pre-built dark/light) | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/themes | | Variables (colors, fonts, spacing) | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/variables | | CAPTCHA configuration | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/captcha | | Bring your own CSS | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/bring-your-own-css |
<SignIn
appearance={{
variables: {
colorPrimary: '#0000ff',
borderRadius: '0.5rem',
},
layout: {
logoImageUrl: '/logo.png',
socialButtonsVariant: 'iconButton',
},
}}
/>
| Property | Description |
| ----------------- | ----------------------------------- |
| colorPrimary | Primary color throughout |
| colorBackground | Background color |
| borderRadius | Border radius (default: 0.375rem) |
| Property | Description |
| ------------------------ | --------------------------------------------- |
| logoImageUrl | URL to custom logo |
| socialButtonsVariant | 'blockButton' | 'iconButton' | 'auto' |
| socialButtonsPlacement | 'top' | 'bottom' |
If the project has components.json (shadcn/ui installed), use the shadcn theme:
import { shadcn } from '@clerk/themes'
<ClerkProvider
appearance={{
theme: shadcn,
}}
/>
Also import shadcn CSS in your global.css:
@import 'tailwindcss';
@import '@clerk/themes/shadcn.css';
| Issue | Solution |
| -------------------- | -------------------------------------------------------------------- |
| Colors not applying | Use colorPrimary not primaryColor |
| Logo not showing | Put logoImageUrl inside layout: {} |
| Social buttons wrong | Add socialButtonsVariant: 'iconButton' in layout |
| Styling not working | Use appearance prop, not direct CSS (unless with bring-your-own-css) |
tools
When and how to use git worktrees for isolated work.
documentation
TSDoc and documentation workflow for canonical source comments, README updates, and ADR touchpoints.
development
Structured debugging workflow: reproduce, isolate, hypothesise, verify, fix, regression test.
data-ai
Load the shared thorough start-right workflow from `.agent/skills/start-right-thorough/shared/start-right-thorough.md`.