Skip to content

Commit 99ff044

Browse files
feat: improve landing section (#833)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
1 parent aa62a24 commit 99ff044

File tree

4 files changed

+122
-41
lines changed

4 files changed

+122
-41
lines changed

src/views/Home/components/ActionButtons/ActionButtons.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import { useCallback } from "react";
22
import { styled } from "styled-components";
33

4-
import { gaEventTracker } from "../../../../components/analytics/Analytics";
5-
import { formatDateWithOrdinal } from "../../../../components/date/dateUtils";
6-
import Button from "../../../../components/UI/Button";
7-
import { BIG_BREAKPOINT } from "../../../../constants/BreakPoints";
8-
import { useUrlBuilder } from "../../../../services/urlBuilder";
4+
import { gaEventTracker } from "@components/analytics/Analytics";
5+
import { formatDateWithOrdinal } from "@components/date/dateUtils";
6+
import Button from "@components/UI/Button";
7+
import { BIG_BREAKPOINT } from "@constants/BreakPoints";
8+
import { useUrlBuilder } from "@services/urlBuilder";
99

1010
import type { FC } from "react";
1111

1212
const StyledActionDiv = styled.div`
13+
margin-top: 2rem;
1314
display: flex;
1415
text-align: center;
1516

src/views/Home/components/HomeWTC/HomeWTC.tsx

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ import edition from "@data/2026.json";
1212
import { useDateInterval } from "@hooks/useDateInterval";
1313

1414
// @ts-expect-error some quirky import
15-
1615
import { Color } from "@styles/colors";
1716
import { formatDateRange } from "@utils/dateUtils";
1817

18+
import ActionButtons from "../ActionButtons/ActionButtons";
19+
import InfoButtons from "../InfoButtons/InfoButtons";
1920
import {
2021
StyledDevBcnLogo,
2122
StyledHomeImage,
@@ -25,8 +26,6 @@ import {
2526
StyledTitleContainer,
2627
StyleHomeContainer,
2728
} from "./Style.Home";
28-
import ActionButtons from "../ActionButtons/ActionButtons";
29-
import InfoButtons from "../InfoButtons/InfoButtons";
3029

3130
import type { FC } from "react";
3231

@@ -59,33 +58,31 @@ const HomeWTC: FC<React.PropsWithChildren<unknown>> = () => {
5958
The Barcelona Developers Conference {edition?.edition}
6059
</StyledTitle>
6160
<StyledSubtitle
62-
fontWeight={600}
61+
fontWeight={700}
6362
initial={{ opacity: 0 }}
6463
animate={{ opacity: 1 }}
65-
transition={{ duration: 0.5, delay: 0.8 }}
64+
transition={{ duration: 0.5, delay: 0.7 }}
6665
>
67-
{edition?.trackNumber} tracks with the following topics: <br />
68-
{edition?.tracks}
66+
{edition?.startDay &&
67+
edition.endDay &&
68+
formatDateRange(
69+
new Date(edition.startDay),
70+
new Date(edition.endDay),
71+
)}
6972
</StyledSubtitle>
7073
<StyledSubtitle
71-
shadow={true}
74+
fontWeight={700}
7275
initial={{ opacity: 0 }}
7376
animate={{ opacity: 1 }}
74-
transition={{ duration: 0.5, delay: 1 }}
77+
transition={{ duration: 0.5, delay: 0.8 }}
7578
>
76-
<small>
77-
Past events: <Link to="/2025">2025 edition</Link> |{" "}
78-
<Link to="/2024">2024 edition</Link> |{" "}
79-
<Link to="/2023">2023 edition</Link>
80-
</small>
79+
World Trade Center, Barcelona
8180
</StyledSubtitle>
8281
</StyledTitleContainer>
8382
<motion.img
8483
src="/images/devBcn-sponsorship.png"
8584
alt="DevBcn sponsorship value"
86-
width="635"
87-
height="125"
88-
style={{ aspectRatio: "127:25", maxWidth: "100%" }}
85+
style={{ maxWidth: "100%", marginTop: "8rem" }}
8986
initial={{ opacity: 0, x: -50 }}
9087
animate={{ opacity: 1, x: 0 }}
9188
transition={{ duration: 0.7, delay: 1.2 }}
@@ -96,16 +93,25 @@ const HomeWTC: FC<React.PropsWithChildren<unknown>> = () => {
9693
animate={{ opacity: 1, y: 0 }}
9794
transition={{ duration: 0.6, delay: 1.5 }}
9895
>
99-
<StyledSubtitle fontWeight={600}>
100-
{edition?.startDay &&
101-
edition.endDay &&
102-
formatDateRange(
103-
new Date(edition.startDay),
104-
new Date(edition.endDay),
105-
)}
96+
<StyledSubtitle fontWeight={700}>
97+
{edition?.trackNumber} tracks with the following topics:
10698
</StyledSubtitle>
10799
<StyledSubtitle fontWeight={600}>
108-
World Trade Center, Barcelona
100+
{edition?.tracks}
101+
</StyledSubtitle>
102+
</StyledTitleContainer>
103+
<StyledTitleContainer
104+
color={Color.TRANSPARENT}
105+
initial={{ opacity: 0, y: 30 }}
106+
animate={{ opacity: 1, y: 0 }}
107+
transition={{ duration: 0.6, delay: 1.7 }}
108+
>
109+
<StyledSubtitle shadow={true}>
110+
<small>
111+
Past events: <Link to="/2025">2025 edition</Link> |{" "}
112+
<Link to="/2024">2024 edition</Link> |{" "}
113+
<Link to="/2023">2023 edition</Link>
114+
</small>
109115
</StyledSubtitle>
110116
</StyledTitleContainer>
111117
<motion.div

src/views/Home/components/HomeWTC/Style.Home.tsx

Lines changed: 67 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1+
// @ts-expect-error some quirky import
12
import { motion } from "motion/react";
23
import { styled } from "styled-components";
34

45
import { BIG_BREAKPOINT, BIGGER_BREAKPOINT } from "@constants/BreakPoints";
56
import { Color } from "@styles/colors";
67

7-
// @ts-expect-error some quirky import
8-
98
// 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
109
// 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
1110
// 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`
5453
animation: gradient 15s ease infinite;
5554
}
5655
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+
5773
@keyframes gradient {
5874
0% {
5975
background-position: 0 50%;
@@ -82,32 +98,71 @@ export const StyledTitleContainer = styled(motion.div)`
8298
border-radius: 10px;
8399
width: 70%;
84100
margin-bottom: 1rem;
85-
padding: 10px 5px;
101+
padding: 5px 20px;
86102
87103
@media (max-width: ${BIG_BREAKPOINT}px) {
88104
width: 80%;
105+
padding: 5px 10px;
106+
}
107+
108+
@media (max-width: 480px) {
109+
width: 90%;
110+
padding: 5px 8px;
89111
}
90112
`;
91113

92114
export const StyledTitle = styled(motion.h1)`
93115
padding: 0.5rem 1rem;
94116
color: ${Color.WHITE};
95117
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+
}
96135
`;
97136

98137
export const StyledSubtitle = styled(motion.h2) <StyledSubtitleProps>`
99138
color: ${(props) => props.color ?? Color.WHITE};
100139
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;
103143
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)`};
105150
106-
padding: 0.25rem;
107151
108152
a {
109153
text-decoration: none;
110154
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;
111166
}
112167
`;
113168

@@ -166,7 +221,7 @@ export const StyledBlueSlash = styled(motion.p)`
166221
height: 100%;
167222
`;
168223
export const StyledDevBcnLogo = styled.img`
169-
margin: 20px;
224+
margin-top: 20px;
170225
height: 13rem;
171226
aspect-ratio: 800/327;
172227
transition: height 0.2s ease-in-out;
@@ -214,15 +269,17 @@ export const StyledPlusSign = styled.span`
214269
}
215270
`;
216271
export const StyledLogoDiv = styled(motion.div)`
217-
padding-top: 4rem;
218-
padding-bottom: 2rem;
272+
padding-top: 0.5rem;
273+
padding-bottom: 0.5rem;
219274
display: flex;
220275
221276
@media (max-width: ${BIGGER_BREAKPOINT}px) {
277+
padding-top: 2rem;
222278
flex-direction: column;
223279
}
224280
225281
@media (max-width: ${BIG_BREAKPOINT}px) {
282+
padding-top: 1rem;
226283
flex-direction: column;
227284
}
228285
`;

wordlist.txt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
APIs
22
Axios
33
BvU
4+
camelCase
45
CFP
56
CRA's
67
Cfp
8+
DevTools
9+
DNS
710
DOM
811
DevBCN
912
DevBcn
@@ -54,6 +57,8 @@ ico
5457
icougil
5558
incimages
5659
integrations
60+
io
61+
JobsData
5762
jonathanvila
5863
jpg
5964
js
@@ -64,28 +69,39 @@ linkedin
6469
localhost
6570
Lucide
6671
matchers
72+
metatags
6773
minified
6874
nd
6975
npm
76+
OG
7077
onChange
7178
param
7279
pbs
7380
png
81+
PageMetadata
82+
Preconnect
7483
predeploy
84+
Prefetch
85+
Preload
86+
preloaded
7587
PrimeIcons
7688
px
7789
pwa
7890
queryKey
7991
rd
8092
robotstxt
93+
SEO
8194
selectedGroupId
95+
sessionize
96+
SSR
8297
st
8398
svg
8499
TanStack
85100
th
86101
toHaveTextContent
87102
tsconfig
88103
twimg
104+
typeof
89105
txt
90106
urlOrId
91107
urlOrYear
@@ -103,4 +119,5 @@ wikipedia
103119
www
104120
xSBqFVCYSpsyuO
105121
YAGNI
106-
youtube
122+
youtube
123+
YYYY

0 commit comments

Comments
 (0)