Skip to content

Commit 4d119b9

Browse files
committed
refactor: ♻️ minor updates
1 parent f131250 commit 4d119b9

File tree

5 files changed

+209
-106
lines changed

5 files changed

+209
-106
lines changed

components/About.vue

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,77 @@
11
<script setup lang="ts">
2-
3-
const isShow = ref(true)
4-
2+
const isShow = ref(true);
53
</script>
64

75
<template>
86
<div class="font-space text-slate-400">
9-
<p class="mb-3">Hey there, I'm Ced, a
7+
<p class="mb-3">
8+
Hey there, I'm Ced, a
109
<RoughNotation :is-show="isShow" type="box" color="#f4f" :padding="1">
1110
software developer
1211
</RoughNotation>
13-
on a mission to unravel the mysteries of coding and problem-solving.
14-
The love affair with code began back in 2018 with a curious trial on QPython. Little did I know, it'd mark the
15-
start of a bond that's only grown stronger since.
12+
on a mission to unravel the mysteries of coding and problem-solving. The
13+
love affair with code began back in 2018 with a curious trial on QPython.
14+
Little did I know, it'd mark the start of a bond that's only grown
15+
stronger since.
1616
</p>
1717
<p class="mb-3">
18-
From those humble beginnings, I've delved into a fascinating array of projects, diving into an eclectic mix of
19-
technologies like
20-
<RoughNotation :is-show="isShow" type="circle" color="#ffde57" :padding="2">
18+
From those humble beginnings, I've delved into a fascinating array of
19+
projects, diving into an eclectic mix of technologies like
20+
<RoughNotation
21+
:is-show="isShow"
22+
type="circle"
23+
color="#ffde57"
24+
:padding="2"
25+
>
2126
Python
2227
</RoughNotation>
2328
, PHP, C,
24-
<RoughNotation :is-show="isShow" type="underline" color="#f7df1e" :padding="1">
29+
<RoughNotation
30+
:is-show="isShow"
31+
type="underline"
32+
color="#f7df1e"
33+
:padding="1"
34+
>
2535
JavaScript
2636
</RoughNotation>
2737
,
28-
<RoughNotation :is-show="isShow" type="underline" color="#f4f" :padding="1">
38+
<RoughNotation
39+
:is-show="isShow"
40+
type="underline"
41+
color="#f4f"
42+
:padding="1"
43+
>
2944
TypeScript
3045
</RoughNotation>
3146
, and heavyweight frameworks such as
32-
<RoughNotation :is-show="isShow" type="underline" color="#f4f" :padding="1">
47+
<RoughNotation
48+
:is-show="isShow"
49+
type="underline"
50+
color="#f4f"
51+
:padding="1"
52+
>
3353
Django
3454
</RoughNotation>
3555
, React,
36-
<RoughNotation :is-show="isShow" type="underline" color="#42b883" :padding="2">
56+
<RoughNotation
57+
:is-show="isShow"
58+
type="underline"
59+
color="#42b883"
60+
:padding="2"
61+
>
3762
Vue.js
3863
</RoughNotation>
3964
, Laravel, and Express.js.
4065
</p>
4166
<p class="mb-3">
42-
One vital lesson I've learned in this ever-evolving tech landscape is that there's always something new to explore,
43-
but that's the best part cause I'm always eager to embrace the challenge of learning.
67+
One vital lesson I've learned in this ever-evolving tech landscape is that
68+
there's always something new to explore, but that's the best part cause
69+
I'm always eager to embrace the challenge of learning.
4470
</p>
4571
<p>
46-
Whether you've got an exciting project in mind or just fancy a chat, I'm only a message away. Currently seeking
47-
a new role in the developer realm. I'm up for the challenge!
72+
Whether you've got an exciting project in mind or just fancy a chat, I'm
73+
only a message away. Currently seeking a new role in the developer realm.
74+
I'm up for the challenge!
4875
<RoughNotation :is-show="isShow" type="circle" color="aqua" :padding="2">
4976
<span> Hire me.</span>
5077
</RoughNotation>
@@ -54,4 +81,4 @@ const isShow = ref(true)
5481

5582
<style scoped>
5683
/* */
57-
</style>
84+
</style>

components/BlogCard.vue

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,58 @@
11
<script setup lang="ts">
2-
32
const props = defineProps<{
4-
year: string
5-
title: string
6-
url: string
7-
image: string
8-
}>()
3+
year: string;
4+
title: string;
5+
url: string;
6+
image: string;
7+
}>();
98
10-
const { year, title, url, image } = toRefs(props)
9+
const { year, title, url, image } = toRefs(props);
1110
</script>
1211

1312
<template>
1413
<div
15-
class="group relative grid grid-cols-8 gap-4 transition-all sm:items-center sm:gap-8 md:gap-4 lg:hover:!opacity-100 lg:group-hover/list:opacity-50">
14+
class="group relative grid grid-cols-8 gap-4 transition-all sm:items-center sm:gap-8 md:gap-4 lg:hover:!opacity-100 lg:group-hover/list:opacity-50"
15+
>
1616
<div
17-
class="absolute -inset-x-4 -inset-y-4 z-0 hidden rounded-md transition motion-reduce:transition-none lg:-inset-x-6 lg:block lg:group-hover:bg-slate-800/50 lg:group-hover:shadow-[inset_0_1px_0_0_rgba(148,163,184,0.1)] lg:group-hover:drop-shadow-lg">
18-
</div>
19-
<img alt="Telescope" loading="lazy" width="200" height="48" decoding="async" data-nimg="1"
17+
class="absolute -inset-x-4 -inset-y-4 z-0 hidden rounded-md transition motion-reduce:transition-none lg:-inset-x-6 lg:block lg:group-hover:bg-slate-800/50 lg:group-hover:shadow-[inset_0_1px_0_0_rgba(148,163,184,0.1)] lg:group-hover:drop-shadow-lg"
18+
></div>
19+
<img
20+
alt="Telescope"
21+
loading="lazy"
22+
width="200"
23+
height="48"
24+
decoding="async"
25+
data-nimg="1"
2026
class="z-10 col-span-2 rounded border-2 border-slate-200/10 transition group-hover:border-slate-200/30 sm:col-span-2"
21-
style="color:transparent"
22-
srcset="/_next/image?url=%2Fimages%2Fwriting%2Falgolia-search.jpeg&amp;w=256&amp;q=75 1x, /_next/image?url=%2Fimages%2Fwriting%2Falgolia-search.jpeg&amp;w=640&amp;q=75 2x"
23-
:src="image" />
27+
style="color: transparent"
28+
srcset="
29+
/_next/image?url=%2Fimages%2Fwriting%2Falgolia-search.jpeg&amp;w=256&amp;q=75 1x,
30+
/_next/image?url=%2Fimages%2Fwriting%2Falgolia-search.jpeg&amp;w=640&amp;q=75 2x
31+
"
32+
:src="image"
33+
/>
2434
<div class="z-10 col-span-6">
2535
<p class="-mt-1 text-sm font-semibold leading-6">{{ year }}</p>
2636
<h3 class="-mt-1">
27-
<a class="inline-flex items-baseline font-medium leading-tight text-slate-200 hover:text-teal-300 focus-visible:text-teal-300 group/link text-base"
28-
:href="url" rel="noreferrer" aria-label="Integrating Algolia Search with WordPress Multisite">
29-
<span class="absolute -inset-x-4 -inset-y-2.5 hidden rounded md:-inset-x-6 md:-inset-y-4 lg:block"></span>
37+
<a
38+
class="inline-flex items-baseline font-medium leading-tight text-slate-200 hover:text-teal-300 focus-visible:text-teal-300 group/link text-base"
39+
:href="url"
40+
rel="noreferrer"
41+
aria-label="Integrating Algolia Search with WordPress Multisite"
42+
>
43+
<span
44+
class="absolute -inset-x-4 -inset-y-2.5 hidden rounded md:-inset-x-6 md:-inset-y-4 lg:block"
45+
></span>
3046
<span>
3147
{{ title }}
32-
<UIcon name="i-carbon-arrow-up-right" aria-hidden="true"
33-
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" />
48+
<UIcon
49+
name="i-carbon-arrow-up-right"
50+
aria-hidden="true"
51+
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"
52+
/>
3453
</span>
3554
</a>
3655
</h3>
3756
</div>
3857
</div>
39-
</template>
58+
</template>

components/CardLink.vue

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,33 @@
11
<script setup lang="ts">
2-
32
const props = defineProps<{
4-
text: string
5-
url: string
6-
}>()
3+
text: string;
4+
url: string;
5+
}>();
76
8-
const { text, url } = toRefs(props)
7+
const { text, url } = toRefs(props);
98
</script>
109

1110
<template>
12-
<a class="relative mt-2 inline-flex items-center text-sm font-medium text-slate-300 hover:text-teal-300 focus-visible:text-teal-300"
13-
:href="url" target="_blank" rel="noreferrer">
14-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="mr-1 h-3 w-3"
15-
aria-hidden="true">
11+
<a
12+
class="relative mt-2 inline-flex items-center text-sm font-medium text-slate-300 hover:text-teal-300 focus-visible:text-teal-300"
13+
:href="url"
14+
target="_blank"
15+
rel="noreferrer"
16+
>
17+
<svg
18+
xmlns="http://www.w3.org/2000/svg"
19+
viewBox="0 0 20 20"
20+
fill="currentColor"
21+
class="mr-1 h-3 w-3"
22+
aria-hidden="true"
23+
>
1624
<path
17-
d="M12.232 4.232a2.5 2.5 0 013.536 3.536l-1.225 1.224a.75.75 0 001.061 1.06l1.224-1.224a4 4 0 00-5.656-5.656l-3 3a4 4 0 00.225 5.865.75.75 0 00.977-1.138 2.5 2.5 0 01-.142-3.667l3-3z">
18-
</path>
25+
d="M12.232 4.232a2.5 2.5 0 013.536 3.536l-1.225 1.224a.75.75 0 001.061 1.06l1.224-1.224a4 4 0 00-5.656-5.656l-3 3a4 4 0 00.225 5.865.75.75 0 00.977-1.138 2.5 2.5 0 01-.142-3.667l3-3z"
26+
></path>
1927
<path
20-
d="M11.603 7.963a.75.75 0 00-.977 1.138 2.5 2.5 0 01.142 3.667l-3 3a2.5 2.5 0 01-3.536-3.536l1.225-1.224a.75.75 0 00-1.061-1.06l-1.224 1.224a4 4 0 105.656 5.656l3-3a4 4 0 00-.225-5.865z">
21-
</path>
28+
d="M11.603 7.963a.75.75 0 00-.977 1.138 2.5 2.5 0 01.142 3.667l-3 3a2.5 2.5 0 01-3.536-3.536l1.225-1.224a.75.75 0 00-1.061-1.06l-1.224 1.224a4 4 0 105.656 5.656l3-3a4 4 0 00-.225-5.865z"
29+
></path>
2230
</svg>
2331
<span>{{ text }}</span>
2432
</a>
25-
</template>
33+
</template>

components/DesktopPC.vue

Lines changed: 63 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
<script setup lang="ts">
2-
import { MouseParallax, OrbitControls, useGLTF, useProgress } from '@tresjs/cientos';
3-
import { TresCanvas, useRenderLoop } from '@tresjs/core';
4-
import { ACESFilmicToneMapping, BasicShadowMap, SRGBColorSpace } from 'three';
5-
import { reactive, ref } from 'vue';
6-
7-
const { scene } = await useGLTF('/gaming_desktop_pc/scene.gltf', { draco: true })
8-
const { hasFinishLoading, progress, items } = await useProgress()
9-
scene.background = null
2+
import {
3+
MouseParallax,
4+
OrbitControls,
5+
useGLTF,
6+
useProgress,
7+
} from "@tresjs/cientos";
8+
import { TresCanvas, useRenderLoop } from "@tresjs/core";
9+
import { ACESFilmicToneMapping, BasicShadowMap, SRGBColorSpace } from "three";
10+
import { reactive, ref } from "vue";
1011
12+
const { scene } = await useGLTF("/gaming_desktop_pc/scene.gltf", {
13+
draco: true,
14+
});
15+
const { hasFinishLoading, progress, items } = await useProgress();
16+
scene.background = null;
1117
1218
const state = reactive({
1319
shadows: true,
@@ -17,37 +23,69 @@ const state = reactive({
1723
toneMapping: ACESFilmicToneMapping,
1824
toneMappingExposure: 3,
1925
physicallyCorrectLights: true,
20-
})
26+
});
2127
22-
const sphereRef = ref()
23-
const isMobile = ref(false)
28+
const sphereRef = ref();
29+
const isMobile = ref(false);
2430
25-
const { onLoop } = useRenderLoop()
31+
const { onLoop } = useRenderLoop();
2632
2733
onLoop(({ elapsed }) => {
28-
if (!sphereRef.value) return
29-
sphereRef.value.position.y += Math.sin(elapsed) * 0.01
30-
})
34+
if (!sphereRef.value) return;
35+
sphereRef.value.position.y += Math.sin(elapsed) * 0.01;
36+
});
3137
</script>
3238

3339
<template>
34-
<div class="bg-transparent h-[400px] cursor-grab hidden md:flex" :class="{ 'w-[90vw]': isMobile, 'w-[650px]': !isMobile }">
35-
<TresCanvas v-bind="state" :antialias="true" :preserve-drawing-buffer="true" frameloop="demand">
36-
<TresPerspectiveCamera :position="[20, 3, 5]" :fov="32" :near="1" :far="100" :aspect="'width/height'" />
37-
<OrbitControls :enable-zoom="false" :min-polar-angle="Math.PI / 2" :max-polar-angle="Math.PI / 2" />
40+
<div
41+
class="bg-transparent h-[400px] cursor-grab hidden md:flex"
42+
:class="{ 'w-[90vw]': isMobile, 'w-[650px]': !isMobile }"
43+
>
44+
<TresCanvas
45+
v-bind="state"
46+
:antialias="true"
47+
:preserve-drawing-buffer="true"
48+
frameloop="demand"
49+
>
50+
<TresPerspectiveCamera
51+
:position="[20, 3, 5]"
52+
:fov="32"
53+
:near="1"
54+
:far="100"
55+
:aspect="'width/height'"
56+
/>
57+
<OrbitControls
58+
:enable-zoom="false"
59+
:min-polar-angle="Math.PI / 2"
60+
:max-polar-angle="Math.PI / 2"
61+
/>
3862
<TresHemisphereLight :intensity="0.15" ground-color="black" />
39-
<TresSpotLight :position="[-20, 50, 10]" :angle="0.12" :penumbra="1" :intensity="1" cast-shadow
40-
:shadow-mapsize="1024" />
63+
<TresSpotLight
64+
:position="[-20, 50, 10]"
65+
:angle="0.12"
66+
:penumbra="1"
67+
:intensity="1"
68+
cast-shadow
69+
:shadow-mapsize="1024"
70+
/>
4171
<TresPointLight :intensity="1" cast-shadow />
4272
<Suspense>
43-
<primitive :object="scene" :scale="isMobile ? 0.7 : 1" :position="isMobile ? [0, -3, -2.2] : [0, -3.25, -1.5]"
44-
:rotation="[-0.01, -0.2, -0.1]" />
73+
<primitive
74+
:object="scene"
75+
:scale="isMobile ? 0.7 : 1"
76+
:position="isMobile ? [0, -3, -2.2] : [0, -3.25, -1.5]"
77+
:rotation="[-0.01, -0.2, -0.1]"
78+
/>
4579
<!-- <template #fallback>
4680
<p>Loading...{{ progress }}</p>
4781
</template> -->
4882
</Suspense>
4983
<MouseParallax :factor="0.5" :ease="3" />
50-
<TresDirectionalLight :position="[0, 2, 4]" :intensity=".5" cast-shadow />
84+
<TresDirectionalLight
85+
:position="[0, 2, 4]"
86+
:intensity="0.5"
87+
cast-shadow
88+
/>
5189
</TresCanvas>
5290
</div>
53-
</template>
91+
</template>

0 commit comments

Comments
 (0)