-
-
-
\ 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 @@
+
+
+
+
+
+
+
+
+ Build your next
+ Landing Page
+ with Shadcn Vue
+
+
+ Beautiful and accessible components that you can copy and paste into your apps.
+
+
+
+
+
+
+
+
+
+
\ 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'