diff --git a/.gitignore b/.gitignore index 4b67fda..88febc6 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,7 @@ dist-ssr .vscode/ bun.lockb tsconfig.tsbuildinfo -.gitignore +.cursorignore # Editor directories and files .vscode/* diff --git a/index.html b/index.html index ebc262a..f4d4e9d 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ Vite + Shadcn Vue - +
diff --git a/package.json b/package.json index 825aabb..df1a05f 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,8 @@ "radix-vue": "^1.9.9", "tailwind-merge": "^2.5.4", "vaul-vue": "^0.2.0", - "vue": "^3.5.13" + "vue": "^3.5.13", + "vue-router": "4" }, "devDependencies": { "@vitejs/plugin-vue": "^5.1.4", diff --git a/src/App.vue b/src/App.vue index 17610f1..14949a0 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,67 +1,7 @@ - - \ No newline at end of file + + \ No newline at end of file diff --git a/src/components/darkMode/DarkMode.vue b/src/components/darkMode/DarkMode.vue new file mode 100644 index 0000000..d88637a --- /dev/null +++ b/src/components/darkMode/DarkMode.vue @@ -0,0 +1,48 @@ + + + \ No newline at end of file diff --git a/src/components/darkMode/index.ts b/src/components/darkMode/index.ts new file mode 100644 index 0000000..fb4fc0b --- /dev/null +++ b/src/components/darkMode/index.ts @@ -0,0 +1,26 @@ +import { cva, type VariantProps } from 'class-variance-authority' + +export { default as DarkMode } from './DarkMode.vue' + +export const darkModeVariants = cva( + 'inline-flex items-center justify-center rounded-full 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', + { + variants: { + variant: { + ghost: 'hover:bg-accent hover:text-accent-foreground', + outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground', + }, + size: { + default: 'h-10 w-10', + sm: 'h-9 w-9', + lg: 'h-11 w-11', + }, + }, + defaultVariants: { + variant: 'ghost', + size: 'default', + }, + }, +) + +export type DarkModeVariants = VariantProps \ No newline at end of file diff --git a/src/components/layout/Container.vue b/src/components/layout/Container.vue new file mode 100644 index 0000000..be21021 --- /dev/null +++ b/src/components/layout/Container.vue @@ -0,0 +1,54 @@ + + + \ No newline at end of file diff --git a/src/components/layout/ContainerBlank.vue b/src/components/layout/ContainerBlank.vue new file mode 100644 index 0000000..4eb0cd4 --- /dev/null +++ b/src/components/layout/ContainerBlank.vue @@ -0,0 +1,21 @@ + + + \ No newline at end of file diff --git a/src/components/layout/Grid.vue b/src/components/layout/Grid.vue new file mode 100644 index 0000000..ab3b028 --- /dev/null +++ b/src/components/layout/Grid.vue @@ -0,0 +1,62 @@ + + + \ No newline at end of file diff --git a/src/components/layout/Section.vue b/src/components/layout/Section.vue new file mode 100644 index 0000000..3a7afaf --- /dev/null +++ b/src/components/layout/Section.vue @@ -0,0 +1,53 @@ + + + \ No newline at end of file diff --git a/src/components/layout/SectionBlank.vue b/src/components/layout/SectionBlank.vue new file mode 100644 index 0000000..f221306 --- /dev/null +++ b/src/components/layout/SectionBlank.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/src/components/sections/hero/Hero.vue b/src/components/sections/hero/Hero.vue new file mode 100644 index 0000000..a2deedf --- /dev/null +++ b/src/components/sections/hero/Hero.vue @@ -0,0 +1,26 @@ + + + \ No newline at end of file diff --git a/src/components/sections/hero/HeroActions.vue b/src/components/sections/hero/HeroActions.vue new file mode 100644 index 0000000..e2762dc --- /dev/null +++ b/src/components/sections/hero/HeroActions.vue @@ -0,0 +1,19 @@ + + + \ No newline at end of file diff --git a/src/components/sections/hero/HeroContent.vue b/src/components/sections/hero/HeroContent.vue new file mode 100644 index 0000000..6a6fc7b --- /dev/null +++ b/src/components/sections/hero/HeroContent.vue @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/components/sections/hero/HeroDescription.vue b/src/components/sections/hero/HeroDescription.vue new file mode 100644 index 0000000..024cad1 --- /dev/null +++ b/src/components/sections/hero/HeroDescription.vue @@ -0,0 +1,21 @@ + + + \ No newline at end of file diff --git a/src/components/sections/hero/HeroTitle.vue b/src/components/sections/hero/HeroTitle.vue new file mode 100644 index 0000000..8cc502d --- /dev/null +++ b/src/components/sections/hero/HeroTitle.vue @@ -0,0 +1,21 @@ + + + \ No newline at end of file diff --git a/src/components/sections/hero/index.ts b/src/components/sections/hero/index.ts new file mode 100644 index 0000000..478b5c4 --- /dev/null +++ b/src/components/sections/hero/index.ts @@ -0,0 +1,6 @@ +export { heroVariants } from './variants' +export { default as Hero } from './Hero.vue' +export { default as HeroContent } from './HeroContent.vue' +export { default as HeroTitle } from './HeroTitle.vue' +export { default as HeroDescription } from './HeroDescription.vue' +export { default as HeroActions } from './HeroActions.vue' \ No newline at end of file diff --git a/src/components/sections/hero/variants.ts b/src/components/sections/hero/variants.ts new file mode 100644 index 0000000..10de5e3 --- /dev/null +++ b/src/components/sections/hero/variants.ts @@ -0,0 +1,28 @@ +import { cva } from 'class-variance-authority' + +export const heroVariants = cva( + 'relative overflow-hidden', + { + variants: { + align: { + left: 'text-left', + center: 'text-center', + right: 'text-right' + }, + size: { + sm: 'py-12 md:py-16', + md: 'py-16 md:py-24', + lg: 'py-24 md:py-32' + } + }, + defaultVariants: { + align: 'center', + size: 'lg' + } + } +) + +export interface HeroVariants { + align?: 'left' | 'center' | 'right' + size?: 'sm' | 'md' | 'lg' +} \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index a16cd09..03cd835 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,5 +1,8 @@ import { createApp } from 'vue' import '@/assets/index.css' import App from './App.vue' +import router from './router' -createApp(App).mount('#app') +const app = createApp(App) +app.use(router) +app.mount('#app') diff --git a/src/pages/Home.vue b/src/pages/Home.vue new file mode 100644 index 0000000..950efe8 --- /dev/null +++ b/src/pages/Home.vue @@ -0,0 +1,32 @@ + + + \ No newline at end of file diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..0aef643 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,17 @@ +import { createRouter, createWebHistory } from 'vue-router' +import type { RouteRecordRaw } from 'vue-router' + +const routes: RouteRecordRaw[] = [ + { + path: '/', + name: 'home', + component: () => import('@/pages/Home.vue') + } +] + +const router = createRouter({ + history: createWebHistory(), + routes +}) + +export default router \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index e9e2b2c..c605279 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,8 @@ "noEmit": true, "types": [ "bun-types", - "vue" + "vue", + "vue-router" ], "allowImportingTsExtensions": true, "composite": true, diff --git a/types/env.d.ts b/types/env.d.ts index 6a9ace9..5b3a5e7 100644 --- a/types/env.d.ts +++ b/types/env.d.ts @@ -1,5 +1,6 @@ /// /// +/// declare module '*.vue' { import type { DefineComponent } from 'vue'