Skip to content

Commit d7ac691

Browse files
first commit
0 parents  commit d7ac691

22 files changed

+3981
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules

README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
2+
3+
## Getting Started
4+
5+
First, run the development server:
6+
7+
```bash
8+
npm run dev
9+
# or
10+
yarn dev
11+
# or
12+
pnpm dev
13+
# or
14+
bun dev
15+
```
16+
17+
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
18+
19+
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
20+
21+
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
22+
23+
## Learn More
24+
25+
To learn more about Next.js, take a look at the following resources:
26+
27+
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28+
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
29+
30+
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
31+
32+
## Deploy on Vercel
33+
34+
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
35+
36+
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.

app/globals.css

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
@tailwind base;
2+
@tailwind components;
3+
@tailwind utilities;
4+
5+
@layer utilities {
6+
.text-balance {
7+
text-wrap: balance;
8+
}
9+
}
10+
11+
@layer base {
12+
:root {
13+
--font-sans: var(--font-geist-sans);
14+
--font-mono: var(--font-geist-mono);
15+
--background: 0 0% 100%;
16+
--foreground: 0 0% 3.9%;
17+
--card: 0 0% 100%;
18+
--card-foreground: 0 0% 3.9%;
19+
--popover: 0 0% 100%;
20+
--popover-foreground: 0 0% 3.9%;
21+
--primary: 0 0% 9%;
22+
--primary-foreground: 0 0% 98%;
23+
--secondary: 0 0% 96.1%;
24+
--secondary-foreground: 0 0% 9%;
25+
--muted: 0 0% 96.1%;
26+
--muted-foreground: 0 0% 45.1%;
27+
--accent: 0 0% 96.1%;
28+
--accent-foreground: 0 0% 9%;
29+
--destructive: 0 84.2% 60.2%;
30+
--destructive-foreground: 0 0% 98%;
31+
--border: 0 0% 89.8%;
32+
--input: 0 0% 89.8%;
33+
--ring: 0 0% 3.9%;
34+
--chart-1: 12 76% 61%;
35+
--chart-2: 173 58% 39%;
36+
--chart-3: 197 37% 24%;
37+
--chart-4: 43 74% 66%;
38+
--chart-5: 27 87% 67%;
39+
--radius: 0.5rem;
40+
--sidebar-background: 0 0% 98%;
41+
--sidebar-foreground: 240 5.3% 26.1%;
42+
--sidebar-primary: 240 5.9% 10%;
43+
--sidebar-primary-foreground: 0 0% 98%;
44+
--sidebar-accent: 240 4.8% 95.9%;
45+
--sidebar-accent-foreground: 240 5.9% 10%;
46+
--sidebar-border: 220 13% 91%;
47+
--sidebar-ring: 217.2 91.2% 59.8%;
48+
}
49+
.dark {
50+
--background: 0 0% 3.9%;
51+
--foreground: 0 0% 98%;
52+
--card: 0 0% 3.9%;
53+
--card-foreground: 0 0% 98%;
54+
--popover: 0 0% 3.9%;
55+
--popover-foreground: 0 0% 98%;
56+
--primary: 0 0% 98%;
57+
--primary-foreground: 0 0% 9%;
58+
--secondary: 0 0% 14.9%;
59+
--secondary-foreground: 0 0% 98%;
60+
--muted: 0 0% 14.9%;
61+
--muted-foreground: 0 0% 63.9%;
62+
--accent: 0 0% 14.9%;
63+
--accent-foreground: 0 0% 98%;
64+
--destructive: 0 62.8% 30.6%;
65+
--destructive-foreground: 0 0% 98%;
66+
--border: 0 0% 14.9%;
67+
--input: 0 0% 14.9%;
68+
--ring: 0 0% 83.1%;
69+
--chart-1: 220 70% 50%;
70+
--chart-2: 160 60% 45%;
71+
--chart-3: 30 80% 55%;
72+
--chart-4: 280 65% 60%;
73+
--chart-5: 340 75% 55%;
74+
--sidebar-background: 240 5.9% 10%;
75+
--sidebar-foreground: 240 4.8% 95.9%;
76+
--sidebar-primary: 224.3 76.3% 48%;
77+
--sidebar-primary-foreground: 0 0% 100%;
78+
--sidebar-accent: 240 3.7% 15.9%;
79+
--sidebar-accent-foreground: 240 4.8% 95.9%;
80+
--sidebar-border: 240 3.7% 15.9%;
81+
--sidebar-ring: 217.2 91.2% 59.8%;
82+
}
83+
}
84+
85+
@layer base {
86+
* {
87+
@apply border-border;
88+
}
89+
body {
90+
@apply bg-background text-foreground;
91+
}
92+
}

app/layout.tsx

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import type { Metadata } from "next"
2+
import { Geist, Geist_Mono } from "next/font/google"
3+
4+
const geistSans = Geist({
5+
subsets: ["latin"],
6+
variable: "--font-sans",
7+
})
8+
const geistMono = Geist_Mono({
9+
subsets: ["latin"],
10+
variable: "--font-mono",
11+
})
12+
13+
export const metadata: Metadata = {
14+
title: "Create Next App",
15+
description: "Generated by create next app",
16+
generator: 'v0.app'
17+
}
18+
19+
export default function RootLayout({
20+
children,
21+
}: Readonly<{
22+
children: React.ReactNode
23+
}>) {
24+
return (
25+
<html lang="en">
26+
<body className={`${geistSans.variable} ${geistMono.variable} font-sans antialiased`}>{children}</body>
27+
</html>
28+
)
29+
}
30+
31+
32+
import './globals.css'

app/page.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { Button } from "@/components/ui/button"
2+
3+
export default function Page() {
4+
return (
5+
<div className="flex min-h-svh items-center justify-center">
6+
<div className="flex flex-col items-center gap-2">
7+
<h1 className="text-2xl font-bold">Hello World</h1>
8+
<div className="text-sm">
9+
Get started by editing{" "}
10+
<code className="rounded bg-black/[.05] px-1 py-0.5 font-semibold dark:bg-white/[.06]">app/page.tsx</code>
11+
</div>
12+
<Button size="sm" className="mt-4">
13+
Button
14+
</Button>
15+
</div>
16+
</div>
17+
)
18+
}

components.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"$schema": "https://ui.shadcn.com/schema.json",
3+
"style": "new-york",
4+
"rsc": true,
5+
"tsx": true,
6+
"tailwind": {
7+
"config": "",
8+
"css": "app/globals.css",
9+
"baseColor": "neutral",
10+
"cssVariables": true,
11+
"prefix": ""
12+
},
13+
"aliases": {
14+
"components": "@/components",
15+
"utils": "@/lib/utils",
16+
"ui": "@/components/ui",
17+
"lib": "@/lib",
18+
"hooks": "@/hooks"
19+
},
20+
"iconLibrary": "lucide"
21+
}

components/theme-provider.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
'use client'
2+
3+
import * as React from 'react'
4+
import {
5+
ThemeProvider as NextThemesProvider,
6+
type ThemeProviderProps,
7+
} from 'next-themes'
8+
9+
export function ThemeProvider({ children, ...props }: ThemeProviderProps) {
10+
return <NextThemesProvider {...props}>{children}</NextThemesProvider>
11+
}

components/ui/button.tsx

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import * as React from 'react'
2+
import { Slot } from '@radix-ui/react-slot'
3+
import { cva, type VariantProps } from 'class-variance-authority'
4+
5+
import { cn } from '@/lib/utils'
6+
7+
const buttonVariants = cva(
8+
'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
9+
{
10+
variants: {
11+
variant: {
12+
default: 'bg-primary text-primary-foreground hover:bg-primary/90',
13+
destructive:
14+
'bg-destructive text-destructive-foreground hover:bg-destructive/90',
15+
outline:
16+
'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
17+
secondary:
18+
'bg-secondary text-secondary-foreground hover:bg-secondary/80',
19+
ghost: 'hover:bg-accent hover:text-accent-foreground',
20+
link: 'text-primary underline-offset-4 hover:underline',
21+
},
22+
size: {
23+
default: 'h-10 px-4 py-2',
24+
sm: 'h-9 rounded-md px-3',
25+
lg: 'h-11 rounded-md px-8',
26+
icon: 'h-10 w-10',
27+
},
28+
},
29+
defaultVariants: {
30+
variant: 'default',
31+
size: 'default',
32+
},
33+
},
34+
)
35+
36+
export interface ButtonProps
37+
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
38+
VariantProps<typeof buttonVariants> {
39+
asChild?: boolean
40+
}
41+
42+
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
43+
({ className, variant, size, asChild = false, ...props }, ref) => {
44+
const Comp = asChild ? Slot : 'button'
45+
return (
46+
<Comp
47+
className={cn(buttonVariants({ variant, size, className }))}
48+
ref={ref}
49+
{...props}
50+
/>
51+
)
52+
},
53+
)
54+
Button.displayName = 'Button'
55+
56+
export { Button, buttonVariants }

lib/utils.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { clsx, type ClassValue } from 'clsx'
2+
import { twMerge } from 'tailwind-merge'
3+
4+
export function cn(...inputs: ClassValue[]) {
5+
return twMerge(clsx(inputs))
6+
}

next.config.mjs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/** @type {import('next').NextConfig} */
2+
const nextConfig = {
3+
typescript: {
4+
ignoreBuildErrors: true,
5+
},
6+
images: {
7+
unoptimized: true,
8+
},
9+
10+
eslint: {
11+
ignoreDuringBuilds: true,
12+
},
13+
}
14+
15+
export default nextConfig

0 commit comments

Comments
 (0)