Customization

Customize the shadcn admin dashboard template by updating theme config, design tokens, navigation, branding, routes, and demo content.

Theme config

The main theme defaults are controlled from src/configs/themeConfig.ts. Update this file when you want to change the default template name, home route, theme preset, font, radius, scale, layout, or sidebar behavior.

Theme config options

OptionValuesPurpose
templateNameStringControls the product name shown in template surfaces.
homePageUrlRoute pathDefines the default page users should land on after entering the app.
settingsCookieNameStringSets the cookie key used to persist customizer settings.
modesystem, light, darkSets the default color mode before the user changes it.
themePresetdefault, caffeine, claude, corporate, ghibli-studio, marvel, material-design, modern-minimal, nature, perplexity, slack, pastel-dreamsControls the default theme preset used by the admin UI.
fontgeist, inter, roboto, nunito-sans, lora, geist-mono, space-grotesk, josefin-sans, poppins, open-sans, montserrat, raleway, ubuntu, noto-sans, archivo variantsControls the default font family used across the template.
radiusnone, sm, md, lgControls the default component border radius.
scalesm, md, lgControls the default UI density and sizing scale.
layoutcompact, fullControls whether page content uses a constrained or full-width layout.
sidebarVariantdefault, inset, floatingControls the visual style of the dashboard sidebar.
sidebarCollapsibleoffcanvas, icon, noneControls how the sidebar collapses on supported layouts.
sidebarOpentrue, falseSets whether the sidebar is open by default.

Changing the default theme

  • Get CSS variables for your theme from /utils/themePresets.ts and update src/app/globals.css to change the default theme preset.
  • Change font, radius, and scale when you want a different default visual style.
  • Change layout, sidebarVariant, sidebarCollapsible, and sidebarOpen when you want to adjust the default dashboard shell.

Common customization areas

AreaWhere to updateWhat changes
Themesrc/configs/themeConfig.ts and src/app/globals.cssDefault theme settings, theme presets, radius, scale, chart colors, sidebar tokens, light mode, and dark mode.
Navigationsrc/configs/navConfig.tsxSidebar groups, links, icons, external links, and nested menu items.
BrandingLogo, favicon, metadata, auth pagesApp name, visual identity, social preview text, and auth page brand surfaces.
Pagessrc/app and src/viewsRoutes, page layouts, sections, and feature-specific UI.
Command palettesrc/assets/data/search.tsQuick navigation results and searchable admin actions.

Recommended order

  1. Update brand logo, favicon, and metadata.
  2. Update themeConfig defaults for template name, home route, theme preset, font, layout, and sidebar.
  3. Remove dashboard pages, apps, and demos your product does not need.
  4. Update sidebar navigation and command palette entries.
  5. Replace mock data with your own data layer after the UI structure is stable.

Adding a new page

  1. Create a new view folder inside src/views/new-page.
  2. Create a matching route inside src/app/(pages)/new-page/page.tsx.
  3. Import the view in the /new-page route.
  4. Add the menu item to src/configs/navConfig.tsx.
  5. Optionally add in src/assets/data/search.ts for the command palette.