Files
mahdium 2fc75eeab1 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
2026-07-06 18:28:26 +03:30

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>