Skip to content

Commit 444e549

Browse files
committed
add projects
1 parent 78b1da8 commit 444e549

2 files changed

Lines changed: 111 additions & 2 deletions

File tree

app/components/ProjectsSection.vue

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
<script setup lang="ts">
2+
const projects = [
3+
{
4+
title: 'Hotelyar',
5+
description: 'Premier hotel booking platform with comprehensive search and reservation capabilities.',
6+
link: 'https://hotelyar.com',
7+
icon: 'lucide:hotel',
8+
tags: ['Vue', 'Nuxt', 'Booking',],
9+
},
10+
{
11+
title: 'Woodcoder',
12+
description: 'Educational platform and community resources for developers and coding enthusiasts.',
13+
link: 'http://woodcoder.com',
14+
icon: 'lucide:code-2',
15+
tags: ['Education', 'Community',],
16+
},
17+
{
18+
title: 'Bootimar',
19+
description: 'Travel services provider offering unique flight booking and tour experiences.',
20+
link: 'https://bootimar.com',
21+
icon: 'lucide:plane',
22+
tags: ['Travel', 'Services',],
23+
},
24+
{
25+
title: 'Enzo UI',
26+
description: 'A modern, responsive, and accessible UI component library built for speed.',
27+
link: 'https://enzo-ui.vercel.app',
28+
icon: 'lucide:layout-template',
29+
tags: ['UI Library', 'Open Source',],
30+
},
31+
]
32+
</script>
33+
34+
<template>
35+
<section
36+
id="projects"
37+
data-slot="panel"
38+
class="screen-line-before screen-line-after border-x border-edge"
39+
>
40+
<header
41+
data-slot="panel-header"
42+
class="screen-line-after px-4"
43+
>
44+
<h2
45+
data-slot="panel-title"
46+
class="text-3xl font-semibold"
47+
>
48+
Projects
49+
</h2>
50+
</header>
51+
<div
52+
data-slot="panel-body"
53+
class="grid grid-cols-1 sm:grid-cols-2"
54+
>
55+
<a
56+
v-for="(project, i) in projects"
57+
:key="i"
58+
:href="project.link"
59+
target="_blank"
60+
rel="noopener noreferrer"
61+
class="group flex flex-col gap-3 p-4 border border-border hover:bg-accent/50 hover:border-accent-foreground/20 transition-all"
62+
>
63+
<div class="flex items-start justify-between">
64+
<div class="size-10 flex items-center justify-center rounded-md border border-border bg-muted/30">
65+
<UIcon
66+
:name="project.icon"
67+
class="size-5 text-foreground"
68+
/>
69+
</div>
70+
<UIcon
71+
name="lucide:arrow-up-right"
72+
class="size-4 text-muted-foreground transition-transform group-hover:-translate-y-0.5 group-hover:translate-x-0.5"
73+
/>
74+
</div>
75+
76+
<div>
77+
<h3 class="font-medium text-foreground group-hover:underline underline-offset-4 mb-1">
78+
{{ project.title }}
79+
</h3>
80+
<p class="text-sm text-muted-foreground line-clamp-2">
81+
{{ project.description }}
82+
</p>
83+
</div>
84+
85+
<div class="mt-auto pt-2 flex gap-2">
86+
<UBadge
87+
v-for="tag in project.tags"
88+
:key="tag"
89+
color="neutral"
90+
variant="soft"
91+
size="xs"
92+
>
93+
{{ tag }}
94+
</UBadge>
95+
</div>
96+
</a>
97+
</div>
98+
</section>
99+
</template>

app/pages/index.vue

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,11 @@
111111
<AboutSection />
112112
</div>
113113
<Divider />
114-
<div class="container">
115-
<SocialSection />
114+
<div
115+
class="container"
116+
id="projects"
117+
>
118+
<ProjectsSection />
116119
</div>
117120
<Divider />
118121
<div class="container">
@@ -128,5 +131,12 @@
128131
<div class="container">
129132
<StackSection />
130133
</div>
134+
<Divider />
135+
<div
136+
class="container"
137+
id="contact"
138+
>
139+
<SocialSection />
140+
</div>
131141
</div>
132142
</template>

0 commit comments

Comments
 (0)