Sync upstream improvements: new components, layout overhaul, and portfolio enhancements

- Add Services, HireCTA, and ReactExpansion components
- Overhaul Hero with grid layout, badges, CTA buttons, email dialog, and profile card
- Refactor TopNav to use computed navItems loop
- Enhance ProjectsList with nested category accordions and case study details
- Restructure Skills with purpose-grouped stackGroups and row-sync accordion logic
- Add new types: Service, ReactExpansion, CTA, and Project case-study fields
- Update portfolio data with adapted services, stackGroups, and project details
- Add OG/Twitter meta tags for SEO
- Update i18n with new keys for services, hero, buttons, and project labels
- Fix langDir path, update engine constraints, add volta config
- Change default color scheme to lime
- Rename Rider to JetBrains Rider in AI stack
This commit is contained in:
2026-07-06 18:28:26 +03:30
parent ef7ef8ecc3
commit 2fc75eeab1
18 changed files with 1049 additions and 296 deletions
+6 -1
View File
@@ -5,6 +5,7 @@ definePageMeta({
})
const route = useRoute()
const colorMode = useColorMode()
const isPrintMode = computed(() => route.query.print === 'true')
useHead({
@@ -16,12 +17,16 @@ useHead({
// Reset scroll position on mount
onMounted(() => {
const savedMode = localStorage.getItem('nuxt-color-mode')
if (savedMode === 'dark') {
colorMode.preference = 'dark'
}
window.scrollTo(0, 0)
})
</script>
<template>
<div class="bg-white dark:bg-gray-900 print:bg-white">
<div class="bg-white dark:bg-gray-900 print:bg-white" :class="{ dark: colorMode.value === 'dark' }">
<!-- Back to Home Button -->
<NuxtLink v-if="!isPrintMode" to="/" class="fixed top-4 right-4 z-50 inline-flex items-center gap-2 px-4 py-2 text-sm font-medium
bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700