1 ---
2 import { SITE } from '@/config'
3 import ThemeToggle from '@/components/ui/ThemeToggle.astro'
4 ---
5
6 <header>
7 <nav>
8 <div class="logo-container">
9 {SITE.favicon && <img src="/favicon.svg" alt="favicon" class="favicon" />}
10 <a href="/">{SITE.title}</a>
11 </div>
12 <div class="header-right">
13 <a href="/#join-us" class="download-link">Join Us</a>
14 <ThemeToggle />
15 </div>
16 </nav>
17 </header>
18 <style>
19 header {
20 margin: 0 0 1.75rem 0;
21 }
22
23 nav {
24 display: flex;
25 justify-content: space-between;
26 align-items: center;
27 gap: 1rem;
28 flex-wrap: wrap;
29 }
30
31 header a {
32 font-weight: var(--font-weight-bold);
33 color: var(--text-primary);
34 text-decoration: none;
35 min-width: 3rem;
36 display: inline-block;
37 }
38
39 .logo-container {
40 position: relative;
41 }
42
43 .header-right {
44 display: flex;
45 align-items: center;
46 gap: 1rem;
47 flex-wrap: wrap;
48 }
49
50 .download-link {
51 padding: 0.5rem 1rem;
52 background-color: var(--accent);
53 color: white;
54 border-radius: 0.5rem;
55 font-size: 0.95rem;
56 transition: all 0.2s ease;
57 }
58
59 .download-link:hover {
60 background-color: var(--accent-dark);
61 transform: translateY(-2px);
62 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
63 }
64
65 .download-link:active {
66 transform: translateY(0);
67 }
68
69 .favicon {
70 position: absolute;
71 width: 1.125rem;
72 height: 1.125rem;
73 bottom: calc(100% + 3.5rem);
74 left: 0;
75 }
76
77 @media (max-width: 480px) {
78 nav {
79 justify-content: center;
80 }
81
82 .logo-container {
83 width: 100%;
84 text-align: center;
85 margin-bottom: 0.5rem;
86 }
87
88 .header-right {
89 width: 100%;
90 justify-content: center;
91 }
92
93 .download-link {
94 font-size: 0.9rem;
95 padding: 0.45rem 0.85rem;
96 }
97 }
98 </style>