Skip to content

Commit 6eb4703

Browse files
authored
Merge pull request #118 from DefGuard/feature/navigation-ux-improvements
feat: Improve navigation UX and reorganize customer journey
2 parents 574ff63 + 6e75b43 commit 6eb4703

File tree

5 files changed

+582
-218
lines changed

5 files changed

+582
-218
lines changed

src/components/FloatingLinks.astro

Lines changed: 0 additions & 110 deletions
This file was deleted.

src/components/base/Footer.astro

Lines changed: 119 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@ import LogoFull from "/public/svg/logo-full.svg?raw";
55

66
<footer>
77
<div class="content-container">
8-
<header>
9-
<Fragment set:html={LogoFull} />
10-
</header>
11-
<div class="footer-cols">
8+
9+
<div class="footer-grid">
10+
11+
<header>
12+
<Fragment set:html={LogoFull} />
13+
</header>
14+
1215
{
1316
footerData.map((col) => (
1417
<div class="col">
15-
<p>{col.header}</p>{" "}
18+
<p>{col.header}</p>
1619
<ul>
1720
{col.children.map((colItem) => (
1821
<li>
@@ -41,7 +44,24 @@ import LogoFull from "/public/svg/logo-full.svg?raw";
4144
</div>
4245
))
4346
}
47+
48+
<div class="newsletter-section">
49+
<h3>Subscribe to our Newsletter</h3>
50+
<p>Get product updates, security insights, and community news.</p>
51+
<form action="/newsletter" method="get">
52+
<input
53+
type="email"
54+
name="email"
55+
placeholder="Enter your email..."
56+
required
57+
aria-label="Email address"
58+
/>
59+
<button type="submit">Subscribe</button>
60+
</form>
61+
</div>
62+
4463
</div>
64+
4565
<div class="bottom">
4666
<p class="copyright">
4767
© 2025 <a href="https://defguard.net">defguard sp. z o.o.</a>
@@ -158,25 +178,113 @@ import LogoFull from "/public/svg/logo-full.svg?raw";
158178
}
159179
}
160180

161-
.footer-cols {
181+
.footer-grid {
162182
display: grid;
163-
column-gap: 15px;
164-
row-gap: 20px;
165-
166183
grid-template-columns: 1fr;
167-
grid-template-columns: repeat(auto-fill, 300px);
184+
gap: 40px;
185+
186+
@include break-up(md) {
187+
grid-template-columns: 1fr 1fr;
188+
gap: 30px;
189+
}
190+
191+
@include break-up(lg) {
192+
grid-template-columns: 1.5fr 1fr 1fr 1.5fr;
193+
gap: 20px;
194+
}
195+
196+
header {
197+
display: flex;
198+
flex-flow: row;
199+
min-height: 0;
200+
align-items: flex-start;
201+
justify-content: flex-start;
202+
}
203+
168204
.col {
169-
min-width: 300px;
205+
min-width: 0;
206+
170207
& > p {
171208
min-height: 35px;
172209
padding-bottom: 5px;
173210
@include typography(footer-section);
174211
}
212+
175213
& > ul {
176214
display: flex;
177215
flex-flow: column;
178216
row-gap: 5px;
179217
}
180218
}
181219
}
220+
221+
.newsletter-section {
222+
width: 100%;
223+
max-width: none;
224+
padding: 0;
225+
border: none;
226+
227+
h3 {
228+
@include typography(footer-section);
229+
margin: 0 0 0.5rem 0;
230+
color: var(--text-body-primary);
231+
}
232+
233+
p {
234+
@include typography(h3);
235+
margin: 0 0 1rem 0;
236+
color: var(--text-body-secondary);
237+
}
238+
239+
form {
240+
display: flex;
241+
flex-direction: column;
242+
gap: 10px;
243+
244+
input {
245+
width: 100%;
246+
padding: 10px 15px;
247+
border: 1px solid var(--text-body-primary);
248+
border-radius: 6px;
249+
background-color: var(--surface-frame-bg);
250+
color: var(--text-body-primary);
251+
@include typography(h3);
252+
box-sizing: border-box;
253+
254+
&::placeholder {
255+
color: var(--text-body-secondary);
256+
}
257+
258+
&:focus {
259+
outline: none;
260+
border-color: var(--surface-main-primary);
261+
box-shadow: 0 0 0 2px rgba(var(--surface-main-primary-rgb, 59, 130, 246), 0.1);
262+
}
263+
}
264+
265+
button {
266+
width: 100%;
267+
padding: 10px 20px;
268+
border: none;
269+
border-radius: 6px;
270+
background-color: var(--surface-main-primary);
271+
color: white;
272+
@include typography(menu);
273+
font-weight: 500;
274+
cursor: pointer;
275+
transition: all 0.2s ease;
276+
white-space: nowrap;
277+
278+
&:hover {
279+
background-color: var(--surface-main-primary);
280+
opacity: 0.9;
281+
transform: translateY(-1px);
282+
}
283+
284+
&:active {
285+
transform: translateY(0);
286+
}
287+
}
288+
}
289+
}
182290
</style>

0 commit comments

Comments
 (0)