mirror of
https://github.com/mmahdium/portfolio.git
synced 2026-09-28 02:21:41 +03:30
- 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
51 lines
1.3 KiB
Vue
51 lines
1.3 KiB
Vue
<script setup lang="ts">
|
|
definePageMeta({
|
|
layout: false,
|
|
scrollToTop: true
|
|
})
|
|
|
|
const route = useRoute()
|
|
const colorMode = useColorMode()
|
|
const isPrintMode = computed(() => route.query.print === 'true')
|
|
|
|
useHead({
|
|
title: 'Resume - Mohammad Mahdi Mohammadi',
|
|
meta: [
|
|
{ name: 'robots', content: 'noindex' }
|
|
]
|
|
})
|
|
|
|
// 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" :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
|
|
text-gray-700 dark:text-gray-200 rounded-full shadow-lg
|
|
transition-all duration-200 hover:scale-105 no-print">
|
|
<UIcon name="i-heroicons-arrow-left" class="text-base" />
|
|
<span>Back to Home</span>
|
|
</NuxtLink>
|
|
|
|
<ResumePreview />
|
|
<ResumeDownloadButton :is-print-mode="isPrintMode" />
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped>
|
|
@media print {
|
|
.no-print {
|
|
display: none !important;
|
|
}
|
|
}
|
|
</style>
|