diff --git a/src/components/layout/AppFooter.vue b/src/components/layout/AppFooter.vue
index da8acb9..babd4f7 100644
--- a/src/components/layout/AppFooter.vue
+++ b/src/components/layout/AppFooter.vue
@@ -12,7 +12,8 @@ const quickLinks = computed(() => [
{ name: t('nav.home'), path: '/' },
{ name: t('nav.projects'), path: '/projects' },
{ name: t('nav.about'), path: '/about' },
- { name: t('nav.contact'), path: '/contact' }
+ { name: t('nav.contact'), path: '/contact' },
+ { name: t('nav.fiverr'), path: '/fiverr' }
])
const services = computed(() => [
diff --git a/src/components/styles/AppHeader.css b/src/components/styles/AppHeader.css
index ca16d8b..2f1a5d6 100644
--- a/src/components/styles/AppHeader.css
+++ b/src/components/styles/AppHeader.css
@@ -1,10 +1,36 @@
/* AppHeader Styles */
-/* Header actions */
-.header-actions {
+/* Header container */
+.header {
+ background: var(--bg-primary);
+ border-bottom: 1px solid var(--border-color);
+ position: sticky;
+ top: 0;
+ z-index: 50;
+ backdrop-filter: blur(10px);
+ background: rgba(var(--bg-primary-rgb), 0.95);
+}
+
+.header-content {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: var(--space-md) 0;
+}
+
+/* Logo */
+.logo {
display: flex;
align-items: center;
gap: var(--space-sm);
+ text-decoration: none;
+ color: var(--text-primary);
+ font-weight: 600;
+ font-size: 1.25rem;
+}
+
+.logo:hover {
+ color: var(--color-primary);
}
/* Logo styling */
@@ -15,26 +41,96 @@
border-radius: var(--border-radius-md);
}
-/* Mobile responsive utilities */
-@media (min-width: 768px) {
- .md\:flex {
- display: flex;
- }
-
- .md\:hidden {
- display: none;
- }
+/* Navigation */
+.nav {
+ display: flex;
+ align-items: center;
+ gap: var(--space-lg);
}
-.hidden {
- display: none;
+.nav-link {
+ position: relative;
+ color: var(--text-secondary);
+ text-decoration: none;
+ font-weight: 500;
+ padding: var(--space-sm) 0;
+ transition: color var(--transition-fast);
}
-/* Navigation active state */
+.nav-link:hover {
+ color: var(--text-primary);
+}
+
+.nav-link.active,
.nav-link.router-link-active {
color: var(--color-primary);
}
+.nav-link.active::after,
.nav-link.router-link-active::after {
- width: 100%;
+ content: '';
+ position: absolute;
+ bottom: -2px;
+ left: 50%;
+ transform: translateX(-50%);
+ width: 80%;
+ height: 2px;
+ background: var(--color-primary);
+ border-radius: 1px;
+}
+
+/* Header actions */
+.header-actions {
+ display: flex;
+ align-items: center;
+ gap: var(--space-sm);
+}
+
+/* Mobile menu */
+.mobile-menu {
+ display: none;
+ background: var(--bg-primary);
+ border-top: 1px solid var(--border-color);
+ padding: var(--space-md) 0;
+}
+
+.mobile-menu.open {
+ display: block;
+}
+
+.mobile-menu-nav {
+ display: flex;
+ flex-direction: column;
+ gap: var(--space-sm);
+}
+
+.mobile-menu .nav-link {
+ padding: var(--space-md);
+ border-radius: var(--border-radius-md);
+ display: block;
+}
+
+.mobile-menu .nav-link:hover {
+ background: var(--bg-secondary);
+}
+
+/* Mobile responsive utilities */
+@media (min-width: 768px) {
+ .md\:flex {
+ display: flex !important;
+ }
+
+ .md\:hidden {
+ display: none !important;
+ }
+}
+
+@media (max-width: 767px) {
+ .hidden {
+ display: none;
+ }
+
+ .nav {
+ display: none;
+ }
}
diff --git a/src/views/HomePage.vue b/src/views/HomePage.vue
index 9ac60d2..f861b1a 100644
--- a/src/views/HomePage.vue
+++ b/src/views/HomePage.vue
@@ -67,6 +67,14 @@ const services = computed(() => [
+
+ {{ t('nav.fiverr') }}
+
+
{{ t('home.cta.contactMe') }}