mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-22 04:05:48 +00:00
* feat(v4): update home page * fix * fix: cards * feat(v4): charts page * feat: update pages * feat: colors * fix * feat: add docs * feat: mdx work * fix * fix * fix: sidebar * fix: lint * feat: updates * feat: update components * feat: fix docs * fix: responsive * feat: implement cmdk * fix: update navigation menu demo * fix: code style * fix: themes * feat: implement blocks page * fix: docs config * refactor * fix: outputFileTracingIncludes * fix * fix: output * fix * fix: registry * refactor: move docs * debug: docs * debug * revert * fix: mjs * deps: pin fumadocs * debug * fix: downgrade next * fix: index page * refactor: move mdx components * fix: remove copy button * fix * was it zod * yes it was * remove copy page * fix: color page * fix: colors page * fix: meta colors * fix: copy button * feat: sync registry * fix: registry build script * feat: update port * feat: clean up examples * fix * fix: mobile nav * fix: blur for mobile * fix: sidebar nav * feat: update examples * fix: build scripts * feat: update components * feat: restyle * fix: types * fix: styles * fix: margins * fix: screenshots * fix * feat: update theme * fix: charts nav * fix: image * feat: optimize images * fix: menu * fix: card * fix: border * check * feat: implement charts page * fix: charts * fix: og images * feat: extend touch * fix: static * fix: sizing * fix: mobile screenshots * fix: page nav * fix * feat: update favicon * fix: theme selector * fix: feedback * fix: sink * docs: update * fix: styles * chore: update registry * fix: command * fix * fix: minor updates * fix: typography on smaller devices * fix: format * fix: remove unused icon * feat: update favicon * fix: typography * docs: typography page * fix: steps
133 lines
2.7 KiB
Plaintext
133 lines
2.7 KiB
Plaintext
---
|
|
title: TanStack Start
|
|
description: Install and configure shadcn/ui for TanStack Start.
|
|
---
|
|
|
|
<Steps>
|
|
|
|
### Create project
|
|
|
|
Start by creating a new TanStack Start project by following the [Build a Project from Scratch](https://tanstack.com/start/latest/docs/framework/react/build-from-scratch) guide on the TanStack Start website.
|
|
|
|
**Do not add Tailwind yet. We'll install Tailwind v4 in the next step.**
|
|
|
|
### Add Tailwind
|
|
|
|
Install `tailwindcss` and its dependencies.
|
|
|
|
```bash
|
|
npm install tailwindcss @tailwindcss/postcss postcss
|
|
```
|
|
|
|
### Create postcss.config.ts
|
|
|
|
Create a `postcss.config.ts` file at the root of your project.
|
|
|
|
```ts title="postcss.config.ts" showLineNumbers
|
|
export default {
|
|
plugins: {
|
|
"@tailwindcss/postcss": {},
|
|
},
|
|
}
|
|
```
|
|
|
|
### Create `app/styles/app.css`
|
|
|
|
Create an `app.css` file in the `app/styles` directory and import `tailwindcss`
|
|
|
|
```css title="app/styles/app.css"
|
|
@import "tailwindcss" source("../");
|
|
```
|
|
|
|
### Import `app.css`
|
|
|
|
```tsx title="app/routes/__root.tsx" showLineNumbers {5,21-26} showLineNumbers
|
|
import type { ReactNode } from "react"
|
|
import { createRootRoute, Outlet } from "@tanstack/react-router"
|
|
import { Meta, Scripts } from "@tanstack/start"
|
|
|
|
import appCss from "@/styles/app.css?url"
|
|
|
|
export const Route = createRootRoute({
|
|
head: () => ({
|
|
meta: [
|
|
{
|
|
charSet: "utf-8",
|
|
},
|
|
{
|
|
name: "viewport",
|
|
content: "width=device-width, initial-scale=1",
|
|
},
|
|
{
|
|
title: "TanStack Start Starter",
|
|
},
|
|
],
|
|
links: [
|
|
{
|
|
rel: "stylesheet",
|
|
href: appCss,
|
|
},
|
|
],
|
|
}),
|
|
component: RootComponent,
|
|
})
|
|
```
|
|
|
|
### Edit tsconfig.json file
|
|
|
|
Add the following code to the `tsconfig.json` file to resolve paths.
|
|
|
|
```ts title="tsconfig.json" showLineNumbers {9-12}
|
|
{
|
|
"compilerOptions": {
|
|
"jsx": "react-jsx",
|
|
"moduleResolution": "Bundler",
|
|
"module": "ESNext",
|
|
"target": "ES2022",
|
|
"skipLibCheck": true,
|
|
"strictNullChecks": true,
|
|
"baseUrl": ".",
|
|
"paths": {
|
|
"@/*": ["./app/*"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Run the CLI
|
|
|
|
Run the `shadcn` init command to setup your project:
|
|
|
|
```bash
|
|
npx shadcn@canary init
|
|
```
|
|
|
|
This will create a `components.json` file in the root of your project and configure CSS variables inside `app/styles/app.css`.
|
|
|
|
### That's it
|
|
|
|
You can now start adding components to your project.
|
|
|
|
```bash
|
|
npx shadcn@canary add button
|
|
```
|
|
|
|
The command above will add the `Button` component to your project. You can then import it like this:
|
|
|
|
```tsx title="app/routes/index.tsx" showLineNumbers {1,6}
|
|
import { Button } from "@/components/ui/button"
|
|
|
|
function Home() {
|
|
const router = useRouter()
|
|
const state = Route.useLoaderData()
|
|
|
|
return (
|
|
<div>
|
|
<Button>Click me</Button>
|
|
</div>
|
|
)
|
|
}
|
|
```
|
|
|
|
</Steps>
|