From 0d435794d833d070f5949f639c0102a6d008bc1f Mon Sep 17 00:00:00 2001 From: Gustavo Ocanto Date: Fri, 30 May 2025 16:31:01 +0800 Subject: [PATCH 01/21] wip --- web/index.html | 2 +- web/src/css/support/blog.css | 17 +++-- web/src/pages/AboutPage.vue | 79 +++++++++++------------- web/src/partials/AvatarPartial.vue | 2 +- web/src/partials/FooterPartial.vue | 44 ------------- web/src/partials/HeaderPartial.vue | 35 ++++------- web/src/partials/WidgetSocialPartial.vue | 57 +++++++++++++++++ web/src/stores/users/userType.ts | 2 +- 8 files changed, 122 insertions(+), 116 deletions(-) create mode 100644 web/src/partials/WidgetSocialPartial.vue diff --git a/web/index.html b/web/index.html index 63a0147d..148b6574 100644 --- a/web/index.html +++ b/web/index.html @@ -19,7 +19,7 @@ } - +
diff --git a/web/src/css/support/blog.css b/web/src/css/support/blog.css index 981b291a..b10a4005 100644 --- a/web/src/css/support/blog.css +++ b/web/src/css/support/blog.css @@ -1,7 +1,16 @@ +/* --- header --- */ + +.blog-header-search-icon { + @apply fill-fuchsia-500; + @apply dark:fill-teal-500; +} + +/* ------------------------------------------------------------ */ + .blog-link { @apply text-fuchsia-500 font-medium; @apply hover:cursor-pointer hover:underline; - @apply dark:text-fuchsia-300 dark:hover:text-fuchsia-400; + @apply dark:text-teal-500 dark:hover:text-teal-600; } .blog-h1 { @@ -10,7 +19,7 @@ } .blog-fun-title-word-highlight { - @apply inline-flex relative text-fuchsia-500 dark:text-fuchsia-700 before:absolute before:inset-0; + @apply inline-flex relative text-fuchsia-500 dark:text-teal-600 before:absolute before:inset-0; @apply before:bg-slate-300 dark:before:bg-slate-600 before:opacity-30 before:-z-10 before:-rotate-2; @apply before:translate-y-1/4; } @@ -23,12 +32,12 @@ .blog-side-nav-router-link-a-resting { @apply text-slate-200 hover:text-slate-400 hover:after:bg-fuchsia-400; - @apply dark:text-slate-700 dark:hover:text-fuchsia-700 dark:hover:after:bg-slate-500; + @apply dark:text-slate-700 dark:hover:text-teal-600 dark:hover:after:bg-slate-500; } .blog-side-nav-router-link-a-active { @apply text-slate-400 after:bg-fuchsia-500 hover:after:bg-fuchsia-400; - @apply dark:text-fuchsia-700 dark:after:bg-slate-600 dark:hover:after:bg-slate-500; + @apply dark:text-teal-600 dark:after:bg-slate-600 dark:hover:after:bg-slate-500; } /* --- footer --- */ diff --git a/web/src/pages/AboutPage.vue b/web/src/pages/AboutPage.vue index 44c4f21d..64b17b7f 100644 --- a/web/src/pages/AboutPage.vue +++ b/web/src/pages/AboutPage.vue @@ -15,53 +15,50 @@
-

- Hi. I'm > {{ user ? user.nickname : 'Gus' }} - - {{ social.x.handle }} - +

+ I'm {{ user ? user.nickname : 'Gus' }}. I live in Singapore, where I enjoy the present.

About -
+
-

About

-

- - I am a dedicated engineering leader passionate about building seamless, high-quality experiences for organizations and - open source. With over twenty years of  - - experience - - in software development, workplace technology, and infrastructure management. - - - I specialize in Golang, Node.js, TypeScript, and PHP. I am also proficient in Laravel, Symfony, and modern web frameworks like Next.Js. Furthermore, - I have led teams designing and implementing scalable, high-performance systems, ensuring reliability and efficiency across complex technical - environments. - +

+ I am an engineering leader who’s passionate about building reliable and smooth software that strive to make a difference. + With over twenty years in software development and architecture, I’ve worked extensively with + GO, + Node.js, + TypeScript, and + PHP. + I’m also comfortable with frameworks/libraries such as + Laravel, + Vue, + Symfony, and + Next.js.

-

- Beyond technical expertise, I have a strong leadership background in managing - cross-functional teams, optimizing workflows, and implementing best practices that drive productivity and innovation. I thrive in fast-paced - environments that demand strategic thinking, problem-solving, and a commitment to delivering high-quality results. +

+ I’ve led teams in designing and delivering scalable, high-performance systems that run efficiently even in complex environments. + Beyond writing code, I focus on helping teams work better together by improving workflows and encouraging innovation. +

+

+ I thrive in fast-paced settings where clear thinking and problem-solving are key, and I’m always committed to delivering high-quality results. +

+

+ For me, software has always been more than just a job—it’s a way to turn ideas into real solutions. Over the years, + I’ve enjoyed tackling challenges, learning new technologies, and guiding talented teams to create tools that users and businesses rely on. +

+

+ Today, I combine deep technical skills with thoughtful leadership to help teams push boundaries and build software that grows and scales with purpose.

- -

Let's Connect

-

- I’m excited to connect by email or - X to chat about projects and ideas. I’m always open to freelance or long-term projects, - so please feel free to reach out. +

+ I’m happy to connect by email to discuss projects and ideas. + While I’m not always available for freelance or long-term work, please don’t hesitate to reach out anytime.

-

Tell me about your vision, and if it seems like a good fit, we can explore collaborating down the road.

@@ -72,9 +69,8 @@
@@ -87,20 +83,18 @@ diff --git a/web/src/partials/AvatarPartial.vue b/web/src/partials/AvatarPartial.vue index 49b19437..42d9663a 100644 --- a/web/src/partials/AvatarPartial.vue +++ b/web/src/partials/AvatarPartial.vue @@ -21,6 +21,6 @@ const props = withDefaults(defineProps(), { }); const className = computed(() => { - return `rounded-full p-1 ring-1 ring-gray-200 dark:ring-slate-600 ${props.width} ${props.height}`; + return `rounded-full p-1 ring-1 ring-fuchsia-200 dark:ring-teal-500 ${props.width} ${props.height}`; }); diff --git a/web/src/partials/FooterPartial.vue b/web/src/partials/FooterPartial.vue index d8db359b..dff2cc25 100644 --- a/web/src/partials/FooterPartial.vue +++ b/web/src/partials/FooterPartial.vue @@ -2,52 +2,8 @@ - - diff --git a/web/src/partials/HeaderPartial.vue b/web/src/partials/HeaderPartial.vue index 02a5f384..42dac3fb 100644 --- a/web/src/partials/HeaderPartial.vue +++ b/web/src/partials/HeaderPartial.vue @@ -12,7 +12,7 @@
@@ -35,11 +35,11 @@ @@ -51,27 +51,18 @@ - diff --git a/web/src/partials/WidgetSocialPartial.vue b/web/src/partials/WidgetSocialPartial.vue new file mode 100644 index 00000000..790871b1 --- /dev/null +++ b/web/src/partials/WidgetSocialPartial.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/web/src/stores/users/userType.ts b/web/src/stores/users/userType.ts index 8a1b94ab..9a9137ff 100644 --- a/web/src/stores/users/userType.ts +++ b/web/src/stores/users/userType.ts @@ -5,7 +5,7 @@ export interface Social { description: string; } -export const SocialMediaMap = Record; +export type SocialMediaMap = Record; export interface Experience { uuid: string; From 8dea6c577731fd6e08bf6dde5afb58571170688b Mon Sep 17 00:00:00 2001 From: Gustavo Ocanto Date: Fri, 30 May 2025 16:48:23 +0800 Subject: [PATCH 02/21] wip --- web/src/css/support/blog.css | 19 ++++++++++--------- web/src/partials/WidgetSocialPartial.vue | 18 ++++++------------ 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/web/src/css/support/blog.css b/web/src/css/support/blog.css index b10a4005..e70fba25 100644 --- a/web/src/css/support/blog.css +++ b/web/src/css/support/blog.css @@ -1,12 +1,3 @@ -/* --- header --- */ - -.blog-header-search-icon { - @apply fill-fuchsia-500; - @apply dark:fill-teal-500; -} - -/* ------------------------------------------------------------ */ - .blog-link { @apply text-fuchsia-500 font-medium; @apply hover:cursor-pointer hover:underline; @@ -56,3 +47,13 @@ .blog-widgets-subscriber-avatar { @apply rounded-full border-2 border-white dark:border-slate-800 box-content; } + +.blog-header-search-icon { + @apply fill-fuchsia-500; + @apply dark:fill-teal-500; +} + +.blog-widgets-social-links { + @apply flex text-sm font-medium text-zinc-800 transition hover:text-fuchsia-500; + @apply dark:text-zinc-200 dark:hover:text-teal-500; +} diff --git a/web/src/partials/WidgetSocialPartial.vue b/web/src/partials/WidgetSocialPartial.vue index 790871b1..8fa5e927 100644 --- a/web/src/partials/WidgetSocialPartial.vue +++ b/web/src/partials/WidgetSocialPartial.vue @@ -8,24 +8,24 @@