Skip to content

Commit 19c58ac

Browse files
committed
refactor: ♻️ minor updates
1 parent 4242d9d commit 19c58ac

File tree

1 file changed

+163
-92
lines changed

1 file changed

+163
-92
lines changed

pages/projects.vue

Lines changed: 163 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,141 +1,190 @@
11
<script setup lang="ts">
2-
32
useHead({
4-
title: 'Projects'
5-
})
3+
title: "Projects",
4+
});
65
76
interface Projects {
8-
year: string
9-
title: string
10-
place?: string
11-
url: string,
12-
techStack: string[]
13-
github: boolean,
7+
year: string;
8+
title: string;
9+
place?: string;
10+
url: string;
11+
techStack: string[];
12+
github: boolean;
1413
}
1514
1615
const projects = ref<Projects[]>([
1716
{
18-
year: '2023',
19-
title: 'Vue3-Compare-Image',
20-
url: 'vue3-compare-image.vercel.app',
21-
techStack: ['Typescript', 'unbuild', 'Vue', 'HTML', 'CSS'],
22-
github: false
17+
year: "2023",
18+
title: "Vue3-Compare-Image",
19+
url: "vue3-compare-image.vercel.app",
20+
techStack: ["Typescript", "unbuild", "Vue", "HTML", "CSS"],
21+
github: false,
2322
},
2423
{
25-
year: '2023',
26-
title: 'Haft Studio Website',
27-
place: 'Haft Studio',
28-
url: 'haftstudio-website.vercel.app',
29-
techStack: ['Vuetify', 'UnoCSS', 'Typescript', 'Vue'],
30-
github: false
24+
year: "2023",
25+
title: "Haft Studio Website",
26+
place: "Haft Studio",
27+
url: "haftstudio-website.vercel.app",
28+
techStack: ["Vuetify", "UnoCSS", "Typescript", "Vue"],
29+
github: false,
3130
},
3231
{
33-
year: '2023',
34-
title: 'ProManager Landingpage',
35-
url: 'pro-manager.vercel.app',
36-
techStack: ['Vue', 'Typescript', 'Vuetify', 'SCSS'],
37-
github: false
32+
year: "2023",
33+
title: "ProManager Landingpage",
34+
url: "pro-manager.vercel.app",
35+
techStack: ["Vue", "Typescript", "Vuetify", "SCSS"],
36+
github: false,
3837
},
3938
{
40-
year: '2023',
41-
title: 'ProManager webapp',
42-
url: 'pro-manager.vercel.app',
43-
techStack: ['UnoCSS', 'Vue', 'Typescript', 'Mirage', 'SCSS', 'Vuetify'],
44-
github: false
39+
year: "2023",
40+
title: "ProManager webapp",
41+
url: "pro-manager.vercel.app",
42+
techStack: ["UnoCSS", "Vue", "Typescript", "Mirage", "SCSS", "Vuetify"],
43+
github: false,
4544
},
4645
{
47-
year: '2023',
48-
title: 'Promanger Backend',
49-
url: 'promanager-backend',
50-
techStack: ['Python', 'Django', 'Django Rest Framework', 'JWT', 'Postgresql', 'Redis', 'Channels'],
46+
year: "2023",
47+
title: "Promanger Backend",
48+
url: "promanager-backend",
49+
techStack: [
50+
"Python",
51+
"Django",
52+
"Django Rest Framework",
53+
"JWT",
54+
"Postgresql",
55+
"Redis",
56+
"Channels",
57+
],
5158
github: true,
5259
},
5360
{
54-
year: '2023',
55-
title: 'Personal Portfolio',
56-
url: 'zedjarvis.github.io',
57-
techStack: ['Nuxt.js 3', 'Tailwind CSS', 'Three.js', 'Typescript'],
58-
github: false
61+
year: "2023",
62+
title: "Personal Portfolio",
63+
url: "zedjarvis.github.io",
64+
techStack: ["Nuxt.js 3", "Tailwind CSS", "Three.js", "Typescript"],
65+
github: false,
5966
},
6067
{
61-
year: '2023',
62-
title: 'Vuetify 3 Starter template',
63-
url: 'vuetify3-starter-template',
64-
techStack: ['Vuetify', 'Typescript'],
68+
year: "2023",
69+
title: "Vuetify 3 Starter template",
70+
url: "vuetify3-starter-template",
71+
techStack: ["Vuetify", "Typescript"],
6572
github: true,
6673
},
6774
{
68-
year: '2022',
69-
title: 'Myles Tours and Travels',
70-
url: 'myles_tours_and_travel_safaris',
71-
techStack: ['JQuery', 'HTML', 'CSS', 'Django'],
75+
year: "2022",
76+
title: "Myles Tours and Travels",
77+
url: "myles_tours_and_travel_safaris",
78+
techStack: ["JQuery", "HTML", "CSS", "Django"],
7279
github: true,
7380
},
7481
{
75-
year: '2021',
76-
title: 'Rollindustries',
77-
url: 'rollindustries',
78-
techStack: ['Django', 'Jinja2', 'Heroku'],
82+
year: "2021",
83+
title: "Rollindustries",
84+
url: "rollindustries",
85+
techStack: ["Django", "Jinja2", "Heroku"],
7986
github: true,
8087
},
8188
{
82-
year: '2021',
83-
title: 'Django Blog',
84-
url: 'blog',
85-
techStack: ['DJango', 'HTML', 'CSS'],
89+
year: "2021",
90+
title: "Django Blog",
91+
url: "blog",
92+
techStack: ["DJango", "HTML", "CSS"],
8693
github: true,
8794
},
8895
{
89-
year: '2021',
90-
title: 'Ifarming',
91-
url: 'ifarming',
92-
techStack: ['Django', 'HTML', 'CSS'],
96+
year: "2021",
97+
title: "Ifarming",
98+
url: "ifarming",
99+
techStack: ["Django", "HTML", "CSS"],
93100
github: true,
94101
},
95102
{
96-
year: '2020',
97-
title: 'Personal Portfolio v1',
98-
url: 'landingpage',
99-
techStack: ['Django', 'heroku'],
103+
year: "2020",
104+
title: "Personal Portfolio v1",
105+
url: "landingpage",
106+
techStack: ["Django", "heroku"],
100107
github: true,
101-
}
102-
])
108+
},
109+
]);
103110
</script>
104111

105112
<template>
106113
<div class="lg:py-24 font-space">
107-
<NuxtLink to="/" class="group mb-2 inline-flex items-center font-semibold leading-tight text-teal-300">
108-
<UIcon name="i-carbon-arrow-left" class="mr-1 h-4 w-4 transition-transform group-hover:-translate-x-2" />
114+
<NuxtLink
115+
to="/"
116+
class="group mb-2 inline-flex items-center font-semibold leading-tight text-teal-300"
117+
>
118+
<UIcon
119+
name="i-carbon-arrow-left"
120+
class="mr-1 h-4 w-4 transition-transform group-hover:-translate-x-2"
121+
/>
109122
Cedrouseroll Omondi
110123
</NuxtLink>
111-
<h1 class="text-4xl font-bold tracking-tight text-slate-200 sm:text-5xl">All Projects</h1>
124+
<h1 class="text-4xl font-bold tracking-tight text-slate-200 sm:text-5xl">
125+
All Projects
126+
</h1>
112127
<table id="content" class="mt-12 w-full border-collapse text-left">
113-
<thead class="sticky top-0 z-10 border-b border-slate-300/10 bg-[#002937]/75 px-6 py-5 backdrop-blur">
128+
<thead
129+
class="sticky top-0 z-10 border-b border-slate-300/10 bg-[#002937]/75 px-6 py-5 backdrop-blur"
130+
>
114131
<tr>
115132
<th class="py-4 pr-8 text-sm font-semibold text-slate-200">Year</th>
116-
<th class="py-4 pr-8 text-sm font-semibold text-slate-200">Project</th>
117-
<th class="hidden py-4 pr-8 text-sm font-semibold text-slate-200 lg:table-cell">Made at</th>
118-
<th class="hidden py-4 pr-8 text-sm font-semibold text-slate-200 lg:table-cell">Built with</th>
119-
<th class="hidden py-4 pr-8 text-sm font-semibold text-slate-200 sm:table-cell">Link</th>
133+
<th class="py-4 pr-8 text-sm font-semibold text-slate-200">
134+
Project
135+
</th>
136+
<th
137+
class="hidden py-4 pr-8 text-sm font-semibold text-slate-200 lg:table-cell"
138+
>
139+
Made at
140+
</th>
141+
<th
142+
class="hidden py-4 pr-8 text-sm font-semibold text-slate-200 lg:table-cell"
143+
>
144+
Built with
145+
</th>
146+
<th
147+
class="hidden py-4 pr-8 text-sm font-semibold text-slate-200 sm:table-cell"
148+
>
149+
Link
150+
</th>
120151
</tr>
121152
</thead>
122153
<tbody>
123-
<tr v-for="(project, i) in projects" :key="i" class="border-b border-slate-300/10 last:border-none">
154+
<tr
155+
v-for="(project, i) in projects"
156+
:key="i"
157+
class="border-b border-slate-300/10 last:border-none"
158+
>
124159
<td class="py-4 pr-4 align-top text-sm">
125160
<div class="translate-y-px">{{ project.year }}</div>
126161
</td>
127-
<td class="py-4 pr-4 align-top font-semibold leading-snug text-slate-200">
162+
<td
163+
class="py-4 pr-4 align-top font-semibold leading-snug text-slate-200"
164+
>
128165
<div>
129166
<div class="block sm:hidden">
130-
<a class="inline-flex items-baseline font-medium leading-tight text-slate-200 focus-visible:text-teal-300 hover:text-slate-200 sm:hidden group/link text-base"
131-
:href="`https://${project.url}`" target="_blank" rel="noreferrer" :aria-label="project.title">
132-
<span class="inline-block">{{ project.title }}<svg xmlns="http://www.w3.org/2000/svg"
133-
viewBox="0 0 20 20" fill="currentColor"
167+
<a
168+
class="inline-flex items-baseline font-medium leading-tight text-slate-200 focus-visible:text-teal-300 hover:text-slate-200 sm:hidden group/link text-base"
169+
:href="`https://${project.url}`"
170+
target="_blank"
171+
rel="noreferrer"
172+
:aria-label="project.title"
173+
>
174+
<span class="inline-block"
175+
>{{ project.title
176+
}}<svg
177+
xmlns="http://www.w3.org/2000/svg"
178+
viewBox="0 0 20 20"
179+
fill="currentColor"
134180
class="inline-block h-4 w-4 shrink-0 transition-transform group-hover/link:-translate-y-1 group-hover/link:translate-x-1 group-focus-visible/link:-translate-y-1 group-focus-visible/link:translate-x-1 motion-reduce:transition-none ml-1 translate-y-px"
135-
aria-hidden="true">
136-
<path fill-rule="evenodd"
181+
aria-hidden="true"
182+
>
183+
<path
184+
fill-rule="evenodd"
137185
d="M5.22 14.78a.75.75 0 001.06 0l7.22-7.22v5.69a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75h-7.5a.75.75 0 000 1.5h5.69l-7.22 7.22a.75.75 0 000 1.06z"
138-
clip-rule="evenodd"></path>
186+
clip-rule="evenodd"
187+
></path>
139188
</svg>
140189
</span>
141190
</a>
@@ -144,33 +193,55 @@ const projects = ref<Projects[]>([
144193
</div>
145194
</td>
146195
<td class="hidden py-4 pr-4 align-top text-sm lg:table-cell">
147-
<div class="translate-y-px whitespace-nowrap">{{ project.place }}</div>
196+
<div class="translate-y-px whitespace-nowrap">
197+
{{ project.place }}
198+
</div>
148199
</td>
149200
<td class="hidden py-4 pr-4 align-top lg:table-cell">
150201
<ul class="flex -translate-y-1.5 flex-wrap">
151-
<li v-for="(text, i) in project.techStack" :key="i" class="my-1 mr-1.5">
202+
<li
203+
v-for="(text, i) in project.techStack"
204+
:key="i"
205+
class="my-1 mr-1.5"
206+
>
152207
<Pill :text="text" />
153208
</li>
154209
</ul>
155210
</td>
156211
<td class="hidden py-4 align-top sm:table-cell">
157212
<ul class="translate-y-1">
158213
<li class="mb-1 flex items-center">
159-
<a v-if="project.github" :href="`https://github.com/zedjarvis/${project.url}`"
160-
class="flex items-center font-medium leading-tight text-sm text-slate-400 hover:text-slate-200 focus-visible:text-teal-300 group/link">
214+
<a
215+
v-if="project.github"
216+
:href="`https://github.com/zedjarvis/${project.url}`"
217+
class="flex items-center font-medium leading-tight text-sm text-slate-400 hover:text-slate-200 focus-visible:text-teal-300 group/link"
218+
>
161219
GitHub
162220
<i class="ml-2 text-[18px] i-carbon-logo-github"></i>
163221
</a>
164-
<a v-else
222+
<a
223+
v-else
165224
class="inline-flex items-baseline font-medium leading-tight text-sm text-slate-400 hover:text-slate-200 focus-visible:text-teal-300 group/link"
166-
:href="`https://${project.url}`" target="_blank" rel="noreferrer" :aria-label="project.title">
225+
:href="`https://${project.url}`"
226+
target="_blank"
227+
rel="noreferrer"
228+
:aria-label="project.title"
229+
>
167230
<span>
168-
<span>{{ project.url }}<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor"
231+
<span
232+
>{{ project.url
233+
}}<svg
234+
xmlns="http://www.w3.org/2000/svg"
235+
viewBox="0 0 20 20"
236+
fill="currentColor"
169237
class="inline-block h-4 w-4 shrink-0 transition-transform group-hover/link:-translate-y-1 group-hover/link:translate-x-1 group-focus-visible/link:-translate-y-1 group-focus-visible/link:translate-x-1 motion-reduce:transition-none ml-0.5"
170-
aria-hidden="true">
171-
<path fill-rule="evenodd"
238+
aria-hidden="true"
239+
>
240+
<path
241+
fill-rule="evenodd"
172242
d="M5.22 14.78a.75.75 0 001.06 0l7.22-7.22v5.69a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75h-7.5a.75.75 0 000 1.5h5.69l-7.22 7.22a.75.75 0 000 1.06z"
173-
clip-rule="evenodd"></path>
243+
clip-rule="evenodd"
244+
></path>
174245
</svg>
175246
</span>
176247
</span>

0 commit comments

Comments
 (0)