DEV Community

skidee
skidee

Posted on

How to use Shadcn with React (JavaScript, No TypeScript)

  • create a react project using vite:

    npm create vite@latest 

    (choose React and then JavaScript in options)

  • we'll use tailwind 3.4.1 coz tailwind v4 is not properly compatible with shadcn yet:

    npm install -D tailwindcss@3.4.1 postcss autoprefixer` 
  • initialize tailwind config:

    npx tailwindcss init -p 
  • at the top of index.css add these directives:

    @tailwind base; @tailwind components; @tailwind utilities; 
  • edit tailwind.config.js and make it look like this:

    /** @type {import('tailwindcss').Config} */ export default { content: ["./index.html", "./src/**/*.{ts,tsx,js,jsx}"], theme: { extend: {}, }, plugins: [], } 
  • create a jsconfig.json file in root directory of project and paste this:

    { "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["./src/*"] } } } 
  • install shadcn

    npx shadcn@latest init 

    (i chose “new york”, then “zinc” and then “use —force” option)

    checkout the difference between Default and New York theme in shadcn and colors it provides.

  • edit the vite.config.json:

    import path from "path" import react from "@vitejs/plugin-react" import { defineConfig } from "vite" export default defineConfig({ plugins: [react()], resolve: { alias: { "@": path.resolve(__dirname, "./src"), }, }, }) 
  • now u can install shadcn components and use them

    select “use —force” whenever u install a component

    preview:

    Image description

  • example usage:

    src/App.jsx :

    import './App.css' import { Button } from './components/ui/button' function App() { return ( <> <Button variant="default">Button</Button> </> ) } export default App 

    Image description

That’s how you install and use Shadcn in a React project (JavaScript only, No TypeScript). Whether you were searching for "How to use Shadcn with React (JavaScript, No TypeScript)" or "Set up Shadcn in a React project without TypeScript," this guide covers everything you need to get started.

Top comments (0)