clerk-custom-auth-ui-nextjs

📁 nicolas-angelo/custom-skills 📅 8 days ago
1
总安装量
1
周安装量
#47654
全站排名
安装命令
npx skills add https://github.com/nicolas-angelo/custom-skills --skill clerk-custom-auth-ui-nextjs

Agent 安装分布

amp 1
opencode 1
kimi-cli 1
github-copilot 1
claude-code 1

Skill 文档

Sign-In-Or-Up with Intercepting Route Modals

One <SignIn withSignUp /> component handles both sign-in and sign-up. No dedicated sign-up page required.

References

Reference What it covers
references/sign-in-or-up-flow.md CRITICAL – withSignUp prop, SignInCard component, env vars
references/auth-modal.md HIGH – Intercepting route modal pattern, parallel routes, fallback page

Mental Model

User clicks "Sign In" link
  ├── Soft navigation → intercepting route → modal overlay
  └── Hard navigation (direct URL) → dedicated (auth) page

Both render the same <SignInCard /> component. The modal wraps it in a <Dialog>. The dedicated page centers it on screen. One component, two contexts.

Key Decisions

  1. withSignUp on <SignIn> eliminates the need for a separate /sign-up route entirely
  2. Intercepting routes (.) show sign-in as a modal on soft nav while preserving the background page
  3. @modal parallel route in root layout renders alongside children — both are always present
  4. <Show when="signed-out"> gate prevents the modal from rendering when already authenticated

File Tree

app/
├── layout.tsx                          # Accepts { children, modal } — renders both
├── @modal/
│   ├── default.tsx                     # Returns null (required for parallel routes)
│   └── (.)sign-in/
│       └── [[...sign-in]]/
│           ├── page.tsx                # Wraps SignInCard in <Show> + <Modal>
│           └── modal.tsx               # Dialog component with router.back() on close
└── (auth)/
    ├── layout.tsx                      # Centered container layout
    └── sign-in/
        └── [[...sign-in]]/
            └── page.tsx                # Renders <SignInCard /> directly
components/
└── sign-in-card.tsx                    # Single source of truth for <SignIn> config

Docs