Skip to main content

Clerk Changelog

shadcn/ui theme compatibility

Category
Product
Published

Introducing a new Clerk theme based on shadcn/ui that styles Clerk's components according to your shadcn/ui theme.

Clerk components now support a dedicated shadcn/ui theme that automatically matches your application's existing shadcn/ui theme configuration. Built on the new CSS variables support, this theme ensures Clerk's authentication UI feels native to your shadcn/ui-based applications.

Installation

To install the shadcn theme, run the following command to install the @clerk/themes package:

terminal
npm install @clerk/themes
terminal
yarn add @clerk/themes
terminal
pnpm add @clerk/themes
terminal
bun add @clerk/themes

Then pass the shadcn theme to the ClerkProvider component as the baseTheme property:

app/layout.tsx
import { shadcn } from '@clerk/themes'

export default function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode
}>) {
  return (
    <ClerkProvider
      appearance={{
        baseTheme: shadcn,
      }}
    >
      <html lang="en">
        <body>{children}</body>
      </html>
    </ClerkProvider>
  )
}

For more information on Clerk themes, see the themes documentation.

Contributor
Alex Carpenter

Share this article

Dark Mode for the Clerk Dashboard

Category
Dashboard
Published

It's the Clerk Dashboard but darker.

Experience the Clerk Dashboard in Dark Mode. Your eyes will thank you.

To set your preference, head to your avatar icon in the top-right of the dashboard, select "Manage Account" and then head to the Preferences tab.

Contributor
Austin Calvelage

Share this article

Clerk CSS variables support

Category
Product
Published

Clerk now supports theming via Clerk CSS variables.

Following last week's update that enabled CSS variables in Clerk's appearance system, you can now customize the theme of Clerk components by defining Clerk CSS variables in your application's stylesheets, no CSS-in-JS required!

Define Clerk variables through CSS variables like so:

styles.css
:root {
  --clerk-color-primary: #6d47ff; /* colorPrimary */
}

For more details on the supported variables, see the variables properties documentation.

Included in this release, we've also taken the opportunity to improve the naming of our variables and add additional variables to make theming more flexible.

Deprecated variables

The following properties are deprecated as of July 15th, 2025 and will be removed in the next major version of Clerk. We recommend migrating to the new properties as soon as possible.

DeprecatedNew
colorTextcolorForeground
colorTextOnPrimaryBackgroundcolorPrimaryForeground
colorTextSecondarycolorMutedForeground
spacingUnitspacing
colorInputTextcolorInputForeground
colorInputBackgroundcolorInput

New variables

VariableDescription
colorRingThe color of the ring when an interactive element is focused.
colorMutedThe background color for elements of lower importance, eg: a muted background.
colorShadowThe base shadow color used in the components.
colorBorderThe base border color used in the components.
colorModalBackdropThe background color of the modal backdrop.

For more details, including important details about browser compatibility considerations, see the Clerk CSS variables documentation.

Contributors
Tom Milewski
Alex Carpenter

Share this article

Clerk is now available on the Vercel Marketplace

Category
Integrations
Published

Configure and integrate Clerk directly through the Vercel Marketplace.

Clerk is now available on the Vercel Marketplace in its new Authentication category. With one-click setup, automatic environment variable sync, and unified billing through Vercel, it's easier than ever to integrate Clerk into your Vercel projects.

With the marketplace integration you can:

  • Leverage all of Clerk's existing features, such as the B2B SaaS suite and Clerk Billing
  • Create a Clerk account and spin up Clerk applications directly from the Vercel dashboard
  • Sync your Clerk API keys into your Vercel project's environment variables
  • Manage billing through your existing Vercel account

Get started with Clerk on the Vercel Marketplace.

Tip

Deploy an example Next.js application and install the Clerk integration with our template.

Deploy to Vercel
Contributors
Bryce Kalow
Kevin Wang
Nikos Douvlis

Share this article

Organization Invitation Sorting

Category
API
Published

We’ve added support for ordering organization invitations when listing them via the /organizations/{organization_id}/invitations endpoint, allowing sorting by creation date or email address in ascending or descending order using the new optional order_by parameter.

Ordering Options

  • +created_at - Sort by creation date in ascending order
  • -created_at - Sort by creation date in descending order (default)
  • +email_address - Sort by email address in ascending order
  • -email_address - Sort by email address in descending order

For more information, see our Backend API documentation.

Contributor
Tom Milewski

Share this article

Model your app's features right inside of Clerk

We’re excited to introduce a new top-level Feature construct for your applications.

Features are utilized inside of our Billing product, like inside your <PricingTable /> implementations, as well as within your app's roles & permissions where you can easily attach permissions to features for authorization checks using our has(), protect(), and <Protect> helpers.

Introducing top-level Features. Plus redesigned Roles & Permissions feature showcase

As part of this update, we’ve also redesigned the Roles & Permissions page in the Clerk Dashboard, making it easier to manage user roles and their associated system or feature permissions.

Introducing top-level Features. Plus redesigned Roles & Permissions feature showcase

Manage your app’s feature definitions in the Feature Management section of the Dashboard starting today, or as part of your Roles & Permissions configuration.

Contributors
Alex Carpenter
Iago Dahlem
Maurício Antunes
Nicolas Lopes

Share this article