Skip to content

Commit 2758f88

Browse files
fix: update hero section tower and responsive layout (#2550)
1 parent 4a8f245 commit 2758f88

File tree

2 files changed

+12
-13
lines changed

2 files changed

+12
-13
lines changed

apps/web/src/components/sections/hero.tsx

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,9 @@ const HeroSection = () => {
2626
return (
2727
<>
2828
{/* Right Column - Tower */}
29-
<div className="w-screen h-screen max-lg:hidden z-[0] absolute right-0 top-0">
30-
<div className="relative w-full h-full">
29+
<div className="w-[100dvw] h-[100dvh] max-lg:hidden z-[0] absolute right-0 top-0">
30+
<div className="w-full h-full">
3131
<Tower />
32-
{/* Radial gradient mask */}
3332
<div
3433
className="absolute inset-0 pointer-events-none"
3534
style={{
@@ -40,18 +39,18 @@ const HeroSection = () => {
4039
</div>
4140
</div>
4241

43-
<section className="md:w-px m-auto flex min-h-dvh relative flex-col w-full pt-12 md:pt-0">
42+
<section className="flex flex-col h-[calc(100dvh-11.5rem)] lg:max-w-7xl mx-auto max-lg:items-center justify-center relative w-full pt-12 lg:pt-0 pointer-events-none">
4443
<Image
4544
alt=""
46-
className="pointer-events-none absolute inset-0 -top-40 z-[3] scale-150 select-none mix-blend-lighten opacity-30"
45+
className="pointer-events-none absolute inset-0 -top-40 z-[3] scale-150 select-none mix-blend-lighten lg:opacity-30"
4746
fill
4847
priority
4948
src="/static/bg.png"
5049
/>
5150

5251
{/* Left Column - Content */}
53-
<div className="md:absolute w-full md:w-[44rem] z-10 md:-translate-x-[40rem] md:-translate-y-[70%] md:top-1/2 px-12">
54-
<div className="mb-8 flex justify-center md:justify-start">
52+
<div className="w-full lg:w-[44rem] z-10 px-12 pointer-events-auto">
53+
<div className="mb-8 flex justify-center lg:justify-start">
5554
<Image
5655
alt="React Email Logo"
5756
height="100"
@@ -60,27 +59,27 @@ const HeroSection = () => {
6059
/>
6160
</div>
6261
<Heading
63-
className="!text-white/80 relative mb-8 text-center md:text-left before:absolute before:top-0 before:left-0 before:w-full before:animate-[shine_2s_ease-in-out] before:bg-[length:200%] before:bg-shine before:bg-clip-text before:text-transparent before:content-['The_next_generation_of_writing_emails'] before:select-none before:pointer-events-none text-balance"
62+
className="!text-white/80 relative mb-8 text-center lg:text-left before:absolute before:top-0 before:left-0 before:w-full before:animate-[shine_2s_ease-in-out] before:bg-[length:200%] before:bg-shine before:bg-clip-text before:text-transparent before:content-['The_next_generation_of_writing_emails'] before:select-none before:pointer-events-none text-balance"
6463
weight="medium"
6564
size="10"
6665
>
6766
The next generation of writing emails
6867
</Heading>
69-
<div className="max-w-xl text-center md:text-left">
68+
<div className="max-w-xl max-lg:mx-auto text-center lg:text-left">
7069
<Text size="5" className="text-pretty">
7170
React Email is a next-generation collection of unstyled components
7271
for creating beautiful emails using React, Tailwind, and
7372
TypeScript.
7473
</Text>
7574
</div>
76-
<div className="mt-10 flex items-center justify-center md:justify-start gap-4 flex-wrap">
75+
<div className="mt-10 flex items-center justify-center lg:justify-start gap-4 flex-wrap">
7776
<Button asChild size="4">
7877
<Link href="/components">
7978
Explore components
8079
<ArrowRightIcon size={16} />
8180
</Link>
8281
</Button>
83-
<Code className="md:!inline-flex hidden max-w-max">
82+
<Code className="lg:!inline-flex hidden max-w-max">
8483
npx create-email@latest
8584
</Code>
8685
</div>

apps/web/src/components/tower.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { useCollageTexture } from '@/hooks/useCollageTexture';
1010
import { View } from '@/webgl/View';
1111

1212
const COUNT = 12;
13-
const GAP = 2.8;
13+
const GAP = 3.5;
1414

1515
function Loader() {
1616
return (
@@ -102,7 +102,7 @@ function SpinnableTower({ texture, dimensions }: any) {
102102
<Billboard
103103
key={`billboard-${index}`}
104104
radius={4}
105-
rotation={[0, index * Math.PI * 0.5, 0.4]}
105+
rotation={[0, index * Math.PI * 0.5, 0.25]}
106106
position={[0, (index - (Math.ceil(COUNT / 2) - 1)) * GAP, 0]}
107107
texture={texture}
108108
dimensions={dimensions}

0 commit comments

Comments
 (0)