|
| 1 | +// @ts-expect-error some quirky import |
1 | 2 | import { motion } from "motion/react"; |
2 | 3 | import { styled } from "styled-components"; |
3 | 4 |
|
4 | 5 | import { BIG_BREAKPOINT, BIGGER_BREAKPOINT } from "@constants/BreakPoints"; |
5 | 6 | import { Color } from "@styles/colors"; |
6 | 7 |
|
7 | | -// @ts-expect-error some quirky import |
8 | | - |
9 | 8 | // By © Alice Wiegand / CC-BY-SA-3.0 (via Wikimedia Commons), CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=30463612 |
10 | 9 | // By © Felix König / CC-BY-3.0 (via Wikimedia Commons), CC BY-SA 3.0, https://commons.wikimedia.org/wiki/File:World_Trade_Center_Barcelona_2013_1.jpg |
11 | 10 | // By © Felix König / CC-BY-SA-3.0 (via Wikimedia Commons), CC BY-SA 4.0, https://commons.wikimedia.org/wiki/File:015_Port_Vell_%28Barcelona%29,_World_Trade_Center,_torre_de_Jaume_I_i_cobert_de_l%27America%27s_Cup.jpg |
@@ -54,6 +53,23 @@ export const StyledHomeImage = styled.div` |
54 | 53 | animation: gradient 15s ease infinite; |
55 | 54 | } |
56 | 55 |
|
| 56 | + /* Static dark vignette overlay on top of animated gradient */ |
| 57 | + &::after { |
| 58 | + content: ""; |
| 59 | + position: absolute; |
| 60 | + top: 0; |
| 61 | + left: 0; |
| 62 | + right: 0; |
| 63 | + bottom: 0; |
| 64 | + backdrop-filter: blur(2px); |
| 65 | + background: linear-gradient( |
| 66 | + to bottom, |
| 67 | + rgba(0, 0, 0, 0.3), |
| 68 | + rgba(0, 0, 0, 0.6) |
| 69 | + ); |
| 70 | + pointer-events: none; |
| 71 | + } |
| 72 | +
|
57 | 73 | @keyframes gradient { |
58 | 74 | 0% { |
59 | 75 | background-position: 0 50%; |
@@ -82,32 +98,71 @@ export const StyledTitleContainer = styled(motion.div)` |
82 | 98 | border-radius: 10px; |
83 | 99 | width: 70%; |
84 | 100 | margin-bottom: 1rem; |
85 | | - padding: 10px 5px; |
| 101 | + padding: 5px 20px; |
86 | 102 |
|
87 | 103 | @media (max-width: ${BIG_BREAKPOINT}px) { |
88 | 104 | width: 80%; |
| 105 | + padding: 5px 10px; |
| 106 | + } |
| 107 | +
|
| 108 | + @media (max-width: 480px) { |
| 109 | + width: 90%; |
| 110 | + padding: 5px 8px; |
89 | 111 | } |
90 | 112 | `; |
91 | 113 |
|
92 | 114 | export const StyledTitle = styled(motion.h1)` |
93 | 115 | padding: 0.5rem 1rem; |
94 | 116 | color: ${Color.WHITE}; |
95 | 117 | font-family: "Square 721 Regular", sans-serif; |
| 118 | + font-weight: 800; |
| 119 | + font-size: 3rem; |
| 120 | + letter-spacing: 0.03em; |
| 121 | + line-height: 1.2; |
| 122 | + text-shadow: |
| 123 | + 0 2px 4px rgba(0, 0, 0, 0.9), |
| 124 | + 0 4px 8px rgba(0, 0, 0, 0.7), |
| 125 | + 0 8px 16px rgba(0, 0, 0, 0.5); |
| 126 | +
|
| 127 | + @media (max-width: ${BIG_BREAKPOINT}px) { |
| 128 | + font-size: 2rem; |
| 129 | + letter-spacing: 0.02em; |
| 130 | + } |
| 131 | +
|
| 132 | + @media (max-width: 480px) { |
| 133 | + font-size: 1.5rem; |
| 134 | + } |
96 | 135 | `; |
97 | 136 |
|
98 | 137 | export const StyledSubtitle = styled(motion.h2) <StyledSubtitleProps>` |
99 | 138 | color: ${(props) => props.color ?? Color.WHITE}; |
100 | 139 | font-family: "DejaVu Sans ExtraLight", sans-serif; |
101 | | - font-size: 1.25rem; |
102 | | - font-weight: ${(props) => props.fontWeight ?? 400}; |
| 140 | + font-size: 1.5rem; |
| 141 | + font-weight: ${(props) => props.fontWeight ?? 600}; |
| 142 | + letter-spacing: 0.02em; |
103 | 143 | text-shadow: ${(props) => |
104 | | - props.shadow ? "2px 2px 2px rgba(0, 0, 0, 0.5)" : "none"}; |
| 144 | + props.shadow |
| 145 | + ? `0 1px 2px rgba(0, 0, 0, 0.9), |
| 146 | + 0 2px 4px rgba(0, 0, 0, 0.6), |
| 147 | + 0 4px 8px rgba(0, 0, 0, 0.4)` |
| 148 | + : `0 1px 2px rgba(0, 0, 0, 0.8), |
| 149 | + 0 2px 4px rgba(0, 0, 0, 0.5)`}; |
105 | 150 |
|
106 | | - padding: 0.25rem; |
107 | 151 |
|
108 | 152 | a { |
109 | 153 | text-decoration: none; |
110 | 154 | color: ${Color.LIGHT_BLUE}; |
| 155 | + text-shadow: |
| 156 | + 0 1px 2px rgba(0, 0, 0, 0.9), |
| 157 | + 0 2px 4px rgba(0, 0, 0, 0.6); |
| 158 | + } |
| 159 | +
|
| 160 | + @media (max-width: ${BIG_BREAKPOINT}px) { |
| 161 | + font-size: 1.1rem; |
| 162 | + } |
| 163 | +
|
| 164 | + @media (max-width: 480px) { |
| 165 | + font-size: 1rem; |
111 | 166 | } |
112 | 167 | `; |
113 | 168 |
|
@@ -166,7 +221,7 @@ export const StyledBlueSlash = styled(motion.p)` |
166 | 221 | height: 100%; |
167 | 222 | `; |
168 | 223 | export const StyledDevBcnLogo = styled.img` |
169 | | - margin: 20px; |
| 224 | + margin-top: 20px; |
170 | 225 | height: 13rem; |
171 | 226 | aspect-ratio: 800/327; |
172 | 227 | transition: height 0.2s ease-in-out; |
@@ -214,15 +269,17 @@ export const StyledPlusSign = styled.span` |
214 | 269 | } |
215 | 270 | `; |
216 | 271 | export const StyledLogoDiv = styled(motion.div)` |
217 | | - padding-top: 4rem; |
218 | | - padding-bottom: 2rem; |
| 272 | + padding-top: 0.5rem; |
| 273 | + padding-bottom: 0.5rem; |
219 | 274 | display: flex; |
220 | 275 |
|
221 | 276 | @media (max-width: ${BIGGER_BREAKPOINT}px) { |
| 277 | + padding-top: 2rem; |
222 | 278 | flex-direction: column; |
223 | 279 | } |
224 | 280 |
|
225 | 281 | @media (max-width: ${BIG_BREAKPOINT}px) { |
| 282 | + padding-top: 1rem; |
226 | 283 | flex-direction: column; |
227 | 284 | } |
228 | 285 | `; |
0 commit comments