GitHub

TanStack Start

How to install SolidUI Neobrutalism theme for TanStack Start project

Create New TanStack Router App#

Start by creating a new TanStack Router app using create-tsrouter-app. Use --interactive and --framework Solid parameters to create a new Solid.js project. Select Solid-UI and Start template when prompted:

Terminal window
What add-ons would you like for your project?
Form
Sentry
Solid-UI (Add Solid-UI to your application.)
Start (Add TanStack Start for SSR, API endpoints, and more.)
Store
T3Env
TanStack Query

Update dependencies#

Edit Styles#

src/styles.css
@import "tailwindcss";
@import "tw-animate-css";
@plugin "@kobalte/tailwindcss";
@custom-variant dark (&:is(.dark *));
:root {
--background: oklch(0.93 0.03 256);
--foreground: oklch(0.28 0.09 268);
--primary: oklch(0.72 0.19 260);
--primary-foreground: oklch(0.28 0.09 268);
--secondary-background: oklch(100% 0 0);
--border: oklch(0.28 0.09 268);
--ring: oklch(0.28 0.09 268);
--overlay: oklch(0.28 0.09 268 / 0.8);
--shadow: 4px 4px 0px 0px var(--border);
--shadow-destructive: 4px 4px 0px 0px oklch(0 0 0);
--chart-1: oklch(0.646 0.222 41.116);
--chart-2: oklch(0.6 0.118 184.704);
--chart-3: oklch(0.398 0.07 227.392);
--chart-4: oklch(0.828 0.189 84.429);
--chart-5: oklch(0.769 0.188 70.08);
--chart-active-dot: oklch(0.28 0.09 268);
--info: oklch(0.95 0.024 236.81);
--info-foreground: oklch(0.68 0.148143 238.1044);
--success: oklch(0.95 0.0506 162.83);
--success-foreground: oklch(0.69 0.1481 162.37);
--warning: oklch(0.96 0.0569 95.61);
--warning-foreground: oklch(0.71 0.186 48.13);
--error: oklch(0.93 0.0314 17.73);
--error-foreground: oklch(0.64 0.2082 25.38);
--muted: oklch(0.97 0 0);
--muted-foreground: oklch(0.556 0 0);
}
.dark {
--background: oklch(0.28 0.09 268);
--foreground: oklch(0.97 0.01 255);
--primary: oklch(0.62 0.19 260);
--primary-foreground: oklch(0.28 0.09 268);
--secondary-background: oklch(0.28 0.09 268);
--border: oklch(0.97 0.01 255);
--ring: oklch(0.97 0.01 255);
--overlay: oklch(0.28 0.09 268 / 0.8);
--shadow: 4px 4px 0px 0px var(--border);
--shadow-destructive: 4px 4px 0px 0px oklch(0 0 0);
--chart-1: oklch(0.488 0.243 264.376);
--chart-2: oklch(0.696 0.17 162.48);
--chart-3: oklch(0.769 0.188 70.08);
--chart-4: oklch(0.627 0.265 303.9);
--chart-5: oklch(0.645 0.246 16.439);
--chart-active-dot: oklch(100% 0 0);
--info: oklch(0.28 0.0875 267.91);
--info-foreground: oklch(0.68 0.148143 238.1044);
--success: oklch(0.26 0.0487 172.54);
--success-foreground: oklch(0.69 0.1481 162.37);
--warning: oklch(0.29 0.0638 53.82);
--warning-foreground: oklch(0.71 0.186 48.13);
--error: oklch(0.26 0.0886 26.05);
--error-foreground: oklch(0.64 0.2082 25.38);
--muted: oklch(0.269 0 0);
--muted-foreground: oklch(0.708 0 0);
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary-background: var(--secondary-background);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-border: var(--border);
--color-overlay: var(--overlay);
--color-ring: var(--ring);
--color-chart-1: var(--chart-1);
--color-chart-2: var(--chart-2);
--color-chart-3: var(--chart-3);
--color-chart-4: var(--chart-4);
--color-chart-5: var(--chart-5);
--color-info: var(--info);
--color-info-foreground: var(--info-foreground);
--color-success: var(--success);
--color-success-foreground: var(--success-foreground);
--color-warning: var(--warning);
--color-warning-foreground: var(--warning-foreground);
--color-error: var(--error);
--color-error-foreground: var(--error-foreground);
--spacing-box-shadow-x: 4px;
--spacing-box-shadow-y: 4px;
--spacing-reverse-box-shadow-x: -4px;
--spacing-reverse-box-shadow-y: -4px;
--radius-base: 5px;
--shadow-shadow: var(--shadow);
--shadow-destructive: var(--shadow-destructive);
--animate-caret-blink: caret-blink 1s infinite;
@keyframes caret-blink {
0%,
70%,
100% {
opacity: 1;
}
20%,
50% {
opacity: 0;
}
}
}
@layer base {
body {
@apply bg-background text-foreground;
}
}

Create A components.json File#

components.json
{
"$schema": "https://ui.shadcn.com/schema.json",
"tailwind": {
"css": "src/styles.css",
"config": "",
"baseColor": "slate",
"cssVariables": true
},
"aliases": {
"utils": "~/lib/utils",
"components": "~/components"
},
"style": "default",
"rsc": false,
"tsx": true
}

Change the Tailwind CSS file path and aliases according to your project structure.

That’s it!#

Now you can start adding components to your app.