@@ -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