К основному содержанию
скилл CX Codex

clerk-custom-ui — скилл для Claude Code: что делает и как установить

Скилл по Clerk: агент собирает свою форму входа на хуках useSignIn и useSignUp либо перекрашивает готовые компоненты под бренд.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add clerk/skills --skill clerk-custom-ui -a claude-code
Открыть на GitHub

Что делает clerk-custom-ui

Скилл ведёт агента по двум веткам работы с Clerk: собрать собственный экран входа и регистрации на хуках useSignIn и useSignUp или настроить внешний вид готовых компонентов. Внутри SKILL.md лежит таблица задач со ссылками на справочники core-2/ и core-3/, поэтому сначала агент смотрит версию SDK в package.json, а потом открывает нужный файл. Документацию Clerk он подтягивает через WebFetch по мере надобности.

Темы приезжают из пакета @clerk/ui: dark, neobrutalism, shadcn, simple. Можно передать массив, и последняя тема в списке выигрывает. Цвета, шрифты и радиусы задаются через appearance.variables, логотип и вид соцкнопок — через appearance.options. Отдельная таблица разбирает частые промахи: colorPrimary вместо primaryColor, logoImageUrl брошен на верхний уровень вместо options.

Сначала придётся обернуть приложение в ClerkProvider; за этим скилл отправляет в clerk-setup. Если в корне проекта лежит components.json, он велит ставить тему shadcn первой же правкой и подключать @clerk/ui/themes/shadcn.css в глобальные стили: без этого формы выпадут из вашей дизайн-системы. На Core 2 те же настройки зовутся layout вместо options, а темы импортируются из @clerk/themes — перепутать ветки легко, так что версию SDK стоит проверить до первой правки.

Какие задачи решает

  • собрать свою форму входа вместо готового компонента <SignIn />
  • перекрасить компоненты Clerk в цвета бренда
  • поставить тему shadcn, чтобы формы совпали с дизайн-системой
  • вынести логотип и иконки соцсетей в нужное место формы
  • разобраться, почему useSignIn возвращает не тот объект после обновления SDK

Примеры запросов агенту

  • Сделай кастомную форму регистрации на useSignUp вместо готового компонента Clerk.
  • Примени тему shadcn к компонентам Clerk, в проекте уже стоит shadcn/ui.
  • Поменяй colorPrimary и радиусы у <SignIn />, логотип возьми из /logo.png.

Как установить clerk-custom-ui

1Через Skills CLI (Vercel)

npx skills add clerk/skills --skill clerk-custom-ui -a claude-code

2Вручную: положить файлы

~/.claude/skills/clerk-custom-ui/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/clerk-custom-ui/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о clerk-custom-ui

Как установить clerk-custom-ui в Claude Code?

Выполните npx skills add clerk/skills --skill clerk-custom-ui -a claude-code. Файл скилла окажется по пути ~/.claude/skills/clerk-custom-ui/SKILL.md.

Что делает clerk-custom-ui?

Помогает агенту собрать собственную форму входа или регистрации на хуках Clerk и настроить внешний вид готовых компонентов: темы, цвета, шрифты, логотип.

Чем отличается работа с Core 2 и текущим SDK?

В Core 2 настройки структуры лежат в layout, темы импортируются из @clerk/themes, а хуки возвращают другой результат. Скилл сначала смотрит версию в package.json и открывает справочник core-2/ или core-3/.

Исходный текст

SKILL.md · MIT
---
name: clerk-custom-ui
description: Custom authentication flows and component appearance - hooks (useSignIn,
  useSignUp), themes, colors, fonts, CSS. Use for custom sign-in/sign-up flows, appearance
  styling, visual customization, branding.
allowed-tools: WebFetch
license: MIT
metadata:
  author: clerk
  version: 2.3.0
---

# Custom UI

> **Prerequisite**: Ensure `ClerkProvider` wraps your app. See `clerk-setup` skill.
>
> **Version**: Check `package.json` for the SDK version — see `clerk` skill for the version table. This determines which custom flow references to use below.

This skill covers two areas:
1. **Custom authentication flows** — build your own sign-in/sign-up UI with hooks
2. **Appearance customization** — theme, style, and brand Clerk's pre-built components

## What Do You Need?

| Task | Reference |
|------|-----------|
| Custom sign-in (Core 2 / LTS) | core-2/custom-sign-in.md |
| Custom sign-up (Core 2 / LTS) | core-2/custom-sign-up.md |
| Custom sign-in (Current SDK v7+) | core-3/custom-sign-in.md |
| Custom sign-up (Current SDK v7+) | core-3/custom-sign-up.md |
| Show component pattern (Current SDK) | core-3/show-component.md |

## Custom Flow References

| Task | Core 2 | Current |
|------|--------|---------|
| Custom sign-in (useSignIn) | `core-2/custom-sign-in.md` | `core-3/custom-sign-in.md` |
| Custom sign-up (useSignUp) | `core-2/custom-sign-up.md` | `core-3/custom-sign-up.md` |
| `<Show>` component | *(use `<SignedIn>`, `<SignedOut>`, `<Protect>`)* | `core-3/show-component.md` |

---

## Appearance Customization

Appearance customization applies to both Core 2 and the current SDK.

### Component Customization Options

| Task | Documentation |
|------|---------------|
| Appearance prop overview | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/overview |
| Options (structure, logo, buttons) | https://clerk.com/docs/nextjs/guides/customizing-clerk/appearance-prop/options |
| 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 |

### Appearance Pattern

```typescript
<SignIn
  appearance={{
    variables: {
      colorPrimary: '#0000ff',
      borderRadius: '0.5rem',
    },
    options: {
      logoImageUrl: '/logo.png',
      socialButtonsVariant: 'iconButton',
    },
  }}
/>
```

> **Core 2 ONLY (skip if current SDK):** The `options` property was named `layout`. Use `layout: { logoImageUrl: '...', socialButtonsVariant: '...' }` instead of `options`.

### variables (colors, typography, borders)

| Property | Description |
|----------|-------------|
| `colorPrimary` | Primary color throughout |
| `colorBackground` | Background color |
| `borderRadius` | Border radius (default: `0.375rem`) |

**Opacity change:** `colorRing` and `colorModalBackdrop` now render at full opacity. Use explicit `rgba()` values if you need transparency.

> **Core 2 ONLY (skip if current SDK):** `colorRing` and `colorModalBackdrop` rendered at 15% opacity by default.

### options (structure, logo, social buttons)

| Property | Description |
|----------|-------------|
| `logoImageUrl` | URL to custom logo |
| `socialButtonsVariant` | `'blockButton'` \| `'iconButton'` \| `'auto'` |
| `socialButtonsPlacement` | `'top'` \| `'bottom'` |
| `showOptionalFields` | Show optional fields (default: `false`) |

> **Core 2 ONLY (skip if current SDK):** This property is called `layout`, not `options`. Also, `showOptionalFields` defaulted to `true`.

### Themes

Install themes from `@clerk/ui`:

```bash
npm install @clerk/ui
```

```typescript
import { dark } from '@clerk/ui/themes'

<ClerkProvider appearance={{ theme: dark }} />
```

> **Core 2 ONLY (skip if current SDK):** Themes are imported from `@clerk/themes` (install `@clerk/themes` instead of `@clerk/ui`). Example: `import { dark } from '@clerk/themes'`.

**Theme stacking** — pass an array where the last theme takes precedence:

```typescript
import { dark, neobrutalism } from '@clerk/ui/themes'

<ClerkProvider appearance={{ theme: [dark, neobrutalism] }} />
```

**CSS `color-scheme` support** — the default theme respects the CSS `color-scheme` property for automatic light/dark mode toggling.

**Available themes:** `dark`, `neobrutalism`, `shadcn`, `simple`

#### shadcn Theme

> **IMPORTANT:** If the project has `components.json` (shadcn/ui installed), ALWAYS apply the shadcn theme as the FIRST customization step. This ensures Clerk components visually match the existing shadcn design system. Skip this only if the user explicitly requests a different theme.

**If the project uses shadcn/ui** (check for `components.json` in the project root), **always use the shadcn theme**:

```typescript
import { shadcn } from '@clerk/ui/themes'

<ClerkProvider appearance={{ theme: shadcn }} />
```

Also import shadcn CSS in your global styles:
```css
@import 'tailwindcss';
@import '@clerk/ui/themes/shadcn.css';
```

> **Core 2 ONLY (skip if current SDK):** Import from `@clerk/themes` and `@clerk/themes/shadcn.css`:
> ```typescript
> import { shadcn } from '@clerk/themes'
> ```
> ```css
> @import '@clerk/themes/shadcn.css';
> ```

## Workflow

1. Identify customization needs (custom flow or appearance)
2. For custom flows: check SDK version → read appropriate `core-2/` or `core-3/` reference
3. For appearance: WebFetch the appropriate documentation from table above
4. Apply appearance prop to your Clerk components or build custom flow with hooks

## Common Pitfalls

| Issue | Solution |
|-------|----------|
| Colors not applying | Use `colorPrimary` not `primaryColor` |
| Logo not showing | Put `logoImageUrl` inside `options: {}` (or `layout: {}` in Core 2) |
| Social buttons wrong | Add `socialButtonsVariant: 'iconButton'` in `options` (or `layout` in Core 2) |
| Styling not working | Use appearance prop, not direct CSS (unless with bring-your-own-css) |
| Hook returns different shape | Check SDK version — Core 2 and current have completely different `useSignIn`/`useSignUp` APIs |

## See Also

- `clerk-setup` - Initial Clerk install
- `clerk-nextjs-patterns` - Next.js patterns
- `clerk-orgs` - B2B organizations

© clerk · MIT · clerk/skills

Похожие скиллы

Всё по теме «Фронтенд и UI» →
clerk-nextjs-skills gocallum Подключает аутентификацию Clerk в Next.js 16 с App Router: proxy.ts, переменные окружения, защита маршрутов и MCP-сервер. CX Codex +1 436установок clerk-authentication Mindrally Правила подключения Clerk в Next.js: middleware, хуки, защита серверных действий и маршрутов API. Пригодится, когда проект уже на Clerk и нужен порядок в проверках доступа. CX Codex +1 683установок clerk sanjeed5 Правило для Cursor задаёт жёсткие требования к аутентификации Clerk: PKCE, серверные проверки, короткие токены. Пригодится, когда в проекте уже есть Clerk и нужен порядок в безопасности. ★ 3 579звёзд репо auth официальный Vercel Labs Помогает подключить Clerk, Descope или Auth0 к Next.js и настроить вход, регистрацию и защиту маршрутов. CX Codex GP ChatGPT 8установок aceternity-ui Claude Skills Maintainers Скилл подключает к агенту библиотеку Aceternity UI: больше 100 анимированных компонентов React для Next.js с Tailwind. Пригодится, когда нужен hero-блок, параллакс или 3D-эффект. CX Codex +1 1 500установок magic-ui magicuidesign Скилл magic-ui учит Claude Code работать с компонентами Magic UI в React и Next.js: выбирать анимации, ставить через shadcn-реестр и проверять доступность. CX Codex +1 1 200установок

Из того же набора19

clerk-setup Настраивает аутентификацию Clerk через официальный CLI или создаёт новый проект с готовой авторизацией. Помогает подключить провайдера без ручной правки конфигов. CX Codex +1 56 600установок clerk-nextjs-patterns Скилл обучает ИИ-агента паттернам аутентификации Clerk в Next.js: от серверных функций до кэширования. Пригодится при настройке middleware, Server Actions и защите роутов. CX Codex +1 53 400установок clerk-webhooks Учит агента писать обработчики вебхуков Clerk с проверкой подписи и разбором событий: пользователи, сессии, организации, биллинг, платежи. CX Codex +1 52 800установок clerk-orgs Скилл помогает подключить организации Clerk для командных пространств: настроить роли, приглашения и доступ к данным по организациям. Нужен для B2B- и многопользовательских приложений. CX Codex +1 50 700установок clerk-testing Проводит агента по настройке E2E-тестов входа через Clerk в Playwright или Cypress и держит тестовые ключи отдельно от продакшн-конфига. CX Codex +1 46 300установок clerk-cli Скилл учит агента работать с бинарником clerk вместо ручных curl: пользователи, организации, сессии, вебхуки, деплой. CX Codex +1 33 800установок clerk Разбирает запрос про Clerk и отправляет к нужному скиллу: настройка, CLI, паттерны фреймворков, биллинг, вебхуки. CX Codex +1 30 000установок clerk-react-patterns Скилл помогает настроить аутентификацию в React SPA на базе @clerk/react. Пригодится при сборке проектов на Vite или Create React App с закрытыми маршрутами. CX Codex +1 19 700установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой