Skip to content

Commit e24a946

Browse files
committed
feat: added hero banner to main page
1 parent d0aea34 commit e24a946

File tree

4 files changed

+71
-0
lines changed

4 files changed

+71
-0
lines changed

blocks/main/hero/hero.module.css

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,52 @@
108108
}
109109

110110
}
111+
112+
.banner {
113+
position: relative;
114+
display: flex;
115+
justify-content: space-between;
116+
margin-top: 40px;
117+
width: 545px;
118+
padding: 16px 16px 16px 24px;
119+
box-sizing: border-box;
120+
border-radius: 24px;
121+
background-color: rgba(126, 66, 255, 0.40);
122+
overflow: hidden;
123+
124+
@media (--ktl-ds) {
125+
display: none;
126+
}
127+
128+
.bannerContent {
129+
text-align: left;
130+
}
131+
132+
.bannerTitle {
133+
margin: 0;
134+
letter-spacing: 0.01em;
135+
}
136+
137+
.bannerCaption {
138+
margin: 0;
139+
color: white;
140+
letter-spacing: 0.01em;
141+
}
142+
143+
.bannerButton {
144+
align-self: flex-end;
145+
}
146+
}
147+
148+
.banner:before {
149+
content: "";
150+
position: absolute;
151+
right: 0;
152+
top: 0;
153+
width: 198px;
154+
height: 100px;
155+
background-image: url("/images/main/hero-banner-gradient.svg");
156+
}
111157
}
112158

113159
.heroText {

blocks/main/hero/hero.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import cn from 'classnames';
44

55
import { useTextStyles, createTextCn } from '@rescui/typography';
66
import { ThemeProvider } from '@rescui/ui-contexts';
7+
import heroBannerDataRaw from '../../../data/hero-banner.yml';
78

89
import Image from 'next/image';
910

@@ -20,6 +21,16 @@ interface Props {
2021
children: ReactNode;
2122
}
2223

24+
type HeroBannerData = {
25+
isActive: boolean;
26+
title: string;
27+
caption: string;
28+
buttonLabel: string;
29+
buttonUrl: string;
30+
}
31+
32+
const heroBannerData = heroBannerDataRaw as HeroBannerData;
33+
2334
export const HeroSection: FC<Props> = ({ children, title }) => {
2435
const textCn = useTextStyles();
2536
const darkTextCn = createTextCn('dark');
@@ -51,6 +62,14 @@ export const HeroSection: FC<Props> = ({ children, title }) => {
5162
</a>
5263
</div>
5364
</div>
65+
{heroBannerData.isActive && <div className={styles.banner}>
66+
<div className={styles.bannerContent}>
67+
<h5 className={cn(darkTextCn('rs-h2'), styles.bannerTitle)}>{heroBannerData.title}</h5>
68+
<p className={cn(darkTextCn('rs-text-2'), styles.bannerCaption)}>{heroBannerData.caption}</p>
69+
</div>
70+
<Button mode="outline" size="m" href={heroBannerData.buttonUrl}
71+
className={styles.bannerButton}>{heroBannerData.buttonLabel}</Button>
72+
</div>}
5473
</div>
5574
</div>
5675

data/hero-banner.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
isActive: true
2+
title: "Ktor 3.0 Is Out"
3+
caption: "Now it’s even easier to write in Kotlin"
4+
buttonLabel: "Try Now"
5+
buttonUrl: "https://kotl.in/6xp3v8"
Lines changed: 1 addition & 0 deletions
Loading

0 commit comments

Comments
 (0)