mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-07-02 08:58:36 +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
127 lines
3.0 KiB
Plaintext
127 lines
3.0 KiB
Plaintext
---
|
||
title: Gatsby
|
||
description: Install and configure Gatsby.
|
||
---
|
||
|
||
<Callout className="mb-6 border-blue-600 bg-blue-50 dark:border-blue-900 dark:bg-blue-950 [&_code]:bg-blue-100 dark:[&_code]:bg-blue-900">
|
||
**Update:** We have added full support for React 19 and Tailwind v4 in the
|
||
`canary` release. See the docs for [Tailwind v4](/docs/tailwind-v4) for more
|
||
information.
|
||
</Callout>
|
||
|
||
<Steps>
|
||
|
||
### Create project
|
||
|
||
Start by creating a new Gatsby project using `create-gatsby`:
|
||
|
||
```bash
|
||
npm init gatsby
|
||
```
|
||
|
||
### Configure your Gatsby project to use TypeScript and Tailwind CSS
|
||
|
||
You will be asked a few questions to configure your project:
|
||
|
||
```txt showLineNumbers
|
||
✔ What would you like to call your site?
|
||
· your-app-name
|
||
✔ What would you like to name the folder where your site will be created?
|
||
· your-app-name
|
||
✔ Will you be using JavaScript or TypeScript?
|
||
· TypeScript
|
||
✔ Will you be using a CMS?
|
||
· Choose whatever you want
|
||
✔ Would you like to install a styling system?
|
||
· Tailwind CSS
|
||
✔ Would you like to install additional features with other plugins?
|
||
· Choose whatever you want
|
||
✔ Shall we do this? (Y/n) · Yes
|
||
```
|
||
|
||
### Edit tsconfig.json file
|
||
|
||
Add the following code to the `tsconfig.json` file to resolve paths:
|
||
|
||
```ts {4-9} showLineNumbers
|
||
{
|
||
"compilerOptions": {
|
||
// ...
|
||
"baseUrl": ".",
|
||
"paths": {
|
||
"@/*": [
|
||
"./src/*"
|
||
]
|
||
}
|
||
// ...
|
||
}
|
||
}
|
||
```
|
||
|
||
### Create gatsby-node.ts file
|
||
|
||
Create a `gatsby-node.ts` file at the root of your project if it doesn’t already exist, and add the code below to the `gatsby-node` file so your app can resolve paths:
|
||
|
||
```ts
|
||
import * as path from "path"
|
||
|
||
export const onCreateWebpackConfig = ({ actions }) => {
|
||
actions.setWebpackConfig({
|
||
resolve: {
|
||
alias: {
|
||
"@/components": path.resolve(__dirname, "src/components"),
|
||
"@/lib/utils": path.resolve(__dirname, "src/lib/utils"),
|
||
},
|
||
},
|
||
})
|
||
}
|
||
```
|
||
|
||
### Run the CLI
|
||
|
||
Run the `shadcn` init command to setup your project:
|
||
|
||
```bash
|
||
npx shadcn@latest init
|
||
```
|
||
|
||
### Configure components.json
|
||
|
||
You will be asked a few questions to configure `components.json`:
|
||
|
||
```txt showLineNumbers
|
||
Would you like to use TypeScript (recommended)? no / yes
|
||
Which style would you like to use? › Default
|
||
Which color would you like to use as base color? › Slate
|
||
Where is your global CSS file? › › ./src/styles/globals.css
|
||
Do you want to use CSS variables for colors? › no / yes
|
||
Where is your tailwind.config.js located? › tailwind.config.js
|
||
Configure the import alias for components: › @/components
|
||
Configure the import alias for utils: › @/lib/utils
|
||
Are you using React Server Components? › no
|
||
```
|
||
|
||
### That's it
|
||
|
||
You can now start adding components to your project.
|
||
|
||
```bash
|
||
npx shadcn@latest add button
|
||
```
|
||
|
||
The command above will add the `Button` component to your project. You can then import it like this:
|
||
|
||
```tsx {1,6} showLineNumbers
|
||
import { Button } from "@/components/ui/button"
|
||
|
||
export default function Home() {
|
||
return (
|
||
<div>
|
||
<Button>Click me</Button>
|
||
</div>
|
||
)
|
||
}
|
||
```
|
||
|
||
</Steps>
|