├── .eslintrc.json ├── .gitignore ├── LICENSE ├── README.md ├── app ├── favicon.ico ├── fonts │ ├── GeistMonoVF.woff │ └── GeistVF.woff ├── globals.css ├── layout.js └── page.js ├── components.json ├── components ├── common │ ├── footer.jsx │ └── header.jsx ├── theme-provider.jsx ├── theme-switcher.jsx └── ui │ ├── accordion.jsx │ ├── alert-dialog.jsx │ ├── alert.jsx │ ├── aspect-ratio.jsx │ ├── avatar.jsx │ ├── badge.jsx │ ├── breadcrumb.jsx │ ├── button.jsx │ ├── calendar.jsx │ ├── card.jsx │ ├── carousel.jsx │ ├── chart.jsx │ ├── checkbox.jsx │ ├── collapsible.jsx │ ├── command.jsx │ ├── context-menu.jsx │ ├── dialog.jsx │ ├── drawer.jsx │ ├── dropdown-menu.jsx │ ├── form.jsx │ ├── hover-card.jsx │ ├── input-otp.jsx │ ├── input.jsx │ ├── label.jsx │ ├── menubar.jsx │ ├── navigation-menu.jsx │ ├── pagination.jsx │ ├── popover.jsx │ ├── progress.jsx │ ├── radio-group.jsx │ ├── resizable.jsx │ ├── scroll-area.jsx │ ├── select.jsx │ ├── separator.jsx │ ├── sheet.jsx │ ├── skeleton.jsx │ ├── slider.jsx │ ├── sonner.jsx │ ├── switch.jsx │ ├── table.jsx │ ├── tabs.jsx │ ├── textarea.jsx │ ├── toast.jsx │ ├── toaster.jsx │ ├── toggle-group.jsx │ ├── toggle.jsx │ └── tooltip.jsx ├── hooks └── use-toast.js ├── jsconfig.json ├── lib └── utils.js ├── next.config.mjs ├── package-lock.json ├── package.json ├── postcss.config.mjs ├── tailwind.config.js └── yarn.lock /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Tapas Adhikary 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NextShad 2 | 3 | A template repository that helps you to get started with your Next.js and ShadCN projects with one click! 4 | 5 | ![image](https://github.com/user-attachments/assets/f0e47dbf-2745-44e9-98b8-b41b5002e6d1) 6 | 7 | ## Usages 8 | This repository contains the Next.js APP Router scaffolding along with all shadcn configurations and components. You can use this repository in a couple of ways: 9 | 10 | 1. Just fork it and use it as your own. 11 | 2. Create a repository by clicking on the `Use this template` button at the top-right of the page. 12 | 13 | 14 | ## Getting Started 15 | 16 | - First install the dependencies using `npm install` or equivalents like yarn, pnpm, or byn. 17 | 18 | - Then, run the development server: 19 | 20 | ```bash 21 | npm run dev 22 | # or 23 | yarn dev 24 | # or 25 | pnpm dev 26 | # or 27 | bun dev 28 | ``` 29 | 30 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 31 | 32 | You can start editing the page by modifying `app/page.js`. The page auto-updates as you edit the file. 33 | 34 | ## 🫶 Support 35 | > Liked my work? You can show your support with a STAR(⭐). I am an independent educator who creates meaningful projects to teach programming. You can support me further by [sponsoring me on GitHub](https://github.com/sponsors/atapas). 36 | -------------------------------------------------------------------------------- /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atapas/nextshad/374f6507887f10ec86dc9e3fdb802327cca8845a/app/favicon.ico -------------------------------------------------------------------------------- /app/fonts/GeistMonoVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atapas/nextshad/374f6507887f10ec86dc9e3fdb802327cca8845a/app/fonts/GeistMonoVF.woff -------------------------------------------------------------------------------- /app/fonts/GeistVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atapas/nextshad/374f6507887f10ec86dc9e3fdb802327cca8845a/app/fonts/GeistVF.woff -------------------------------------------------------------------------------- /app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer base { 6 | :root { 7 | --background: 0 0% 100%; 8 | --foreground: 240 10% 3.9%; 9 | --card: 0 0% 100%; 10 | --card-foreground: 240 10% 3.9%; 11 | --popover: 0 0% 100%; 12 | --popover-foreground: 240 10% 3.9%; 13 | --primary: 240 5.9% 10%; 14 | --primary-foreground: 0 0% 98%; 15 | --secondary: 240 4.8% 95.9%; 16 | --secondary-foreground: 240 5.9% 10%; 17 | --muted: 240 4.8% 95.9%; 18 | --muted-foreground: 240 3.8% 46.1%; 19 | --accent: 240 4.8% 95.9%; 20 | --accent-foreground: 240 5.9% 10%; 21 | --destructive: 0 84.2% 60.2%; 22 | --destructive-foreground: 0 0% 98%; 23 | --border: 240 5.9% 90%; 24 | --input: 240 5.9% 90%; 25 | --ring: 240 10% 3.9%; 26 | --chart-1: 12 76% 61%; 27 | --chart-2: 173 58% 39%; 28 | --chart-3: 197 37% 24%; 29 | --chart-4: 43 74% 66%; 30 | --chart-5: 27 87% 67%; 31 | --radius: 0.5rem; 32 | } 33 | .dark { 34 | --background: 240 10% 3.9%; 35 | --foreground: 0 0% 98%; 36 | --card: 240 10% 3.9%; 37 | --card-foreground: 0 0% 98%; 38 | --popover: 240 10% 3.9%; 39 | --popover-foreground: 0 0% 98%; 40 | --primary: 0 0% 98%; 41 | --primary-foreground: 240 5.9% 10%; 42 | --secondary: 240 3.7% 15.9%; 43 | --secondary-foreground: 0 0% 98%; 44 | --muted: 240 3.7% 15.9%; 45 | --muted-foreground: 240 5% 64.9%; 46 | --accent: 240 3.7% 15.9%; 47 | --accent-foreground: 0 0% 98%; 48 | --destructive: 0 62.8% 30.6%; 49 | --destructive-foreground: 0 0% 98%; 50 | --border: 240 3.7% 15.9%; 51 | --input: 240 3.7% 15.9%; 52 | --ring: 240 4.9% 83.9%; 53 | --chart-1: 220 70% 50%; 54 | --chart-2: 160 60% 45%; 55 | --chart-3: 30 80% 55%; 56 | --chart-4: 280 65% 60%; 57 | --chart-5: 340 75% 55%; 58 | } 59 | } 60 | 61 | body { 62 | overflow: hidden; 63 | } 64 | 65 | -------------------------------------------------------------------------------- /app/layout.js: -------------------------------------------------------------------------------- 1 | import localFont from "next/font/local"; 2 | import "./globals.css"; 3 | 4 | import { ThemeProvider } from "@/components/theme-provider"; 5 | 6 | import { Header } from "@/components/common/header"; 7 | import { Footer } from "@/components/common/footer"; 8 | 9 | const geistSans = localFont({ 10 | src: "./fonts/GeistVF.woff", 11 | variable: "--font-geist-sans", 12 | weight: "100 900", 13 | }); 14 | const geistMono = localFont({ 15 | src: "./fonts/GeistMonoVF.woff", 16 | variable: "--font-geist-mono", 17 | weight: "100 900", 18 | }); 19 | 20 | export const metadata = { 21 | title: "NextShad", 22 | description: "A template repository with the Next.js + ShandCN Scaffolding created for anyone who doesn't want to go through the instillation repeatedly.", 23 | }; 24 | 25 | export default function RootLayout({ children }) { 26 | return ( 27 | 28 | 31 | 37 |
38 |
39 | {children} 40 |
41 |