Skip to content

Commit 68553fd

Browse files
authored
feat: add picture-ful design from utcode.net (#2)
* feat: add picture-ful design from utcode.net - Add full-height hero with background image overlay - Create reusable ImageSection component for alternating image-text layout - Redesign activities page with large images and cover header - Copy activity images from utcode.net (learn, develop, share sections) * fix: address review feedback - Compress all images (15MB+ → ~2MB total) - Add rounded-2xl and backdrop-blur to hero card - Add gradient overlay for text readability - Fix mobile hero card spacing - Replace activities page header icon with section label - Update REVIEW.md with response and fixes applied * fix: add height constraint to Join CTA image Address non-blocking review feedback: add xl:max-h-96 to prevent unexpected sizing on wide viewports. * chore: remove REVIEW.md
1 parent b942f73 commit 68553fd

File tree

17 files changed

+268
-220
lines changed

17 files changed

+268
-220
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<script lang="ts">
2+
import type { Snippet } from "svelte";
3+
4+
interface Props {
5+
title: string;
6+
image: string;
7+
imageAlt?: string;
8+
alignImage: "left" | "right";
9+
children: Snippet;
10+
}
11+
12+
const { title, image, imageAlt = "", alignImage, children }: Props = $props();
13+
</script>
14+
15+
<section class="mt-16 lg:grid lg:items-center">
16+
<div style:grid-area="1 / 1">
17+
<div
18+
class="isolate h-[300px] overflow-clip md:h-[400px] lg:h-[500px] lg:w-1/2 xl:h-[600px] {alignImage ===
19+
'left'
20+
? 'lg:rounded-r-2xl'
21+
: 'lg:ml-auto lg:rounded-l-2xl'}"
22+
>
23+
<img src={image} alt={imageAlt} class="h-full w-full object-cover" />
24+
</div>
25+
</div>
26+
<div style:grid-area="1 / 1" class="container mx-auto lg:max-w-screen-lg">
27+
<div class="p-8 lg:w-1/2 {alignImage === 'left' ? 'lg:ml-auto' : ''}">
28+
<h2 class="text-3xl font-bold text-zinc-900 lg:text-4xl">{title}</h2>
29+
<div class="mt-4 space-y-4 text-zinc-600">
30+
{@render children()}
31+
</div>
32+
</div>
33+
</div>
34+
</section>

src/lib/components/home/HeroSection.svelte

Lines changed: 35 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,42 @@
22
import { ArrowRight } from "lucide-svelte";
33
</script>
44

5-
<section class="bg-white py-32">
6-
<div class="mx-auto max-w-6xl px-6">
7-
<div class="mx-auto max-w-4xl text-center">
8-
<div class="mb-6 font-mono text-sm font-medium uppercase tracking-widest text-primary">SINCE 2019</div>
5+
<!-- Full-height hero with background image -->
6+
<section class="relative h-screen">
7+
<img
8+
src="/images/headers/hero.jpg"
9+
alt=""
10+
class="absolute inset-0 h-full w-full object-cover"
11+
/>
12+
<!-- Gradient overlay for text readability -->
13+
<div class="absolute inset-0 bg-gradient-to-r from-black/40 to-transparent"></div>
914

10-
<h1 class="mb-8 text-5xl font-bold leading-tight text-zinc-900 sm:text-6xl lg:text-7xl">
11-
Build the <span class="text-primary">Future</span><br />
12-
with Code<span class="text-primary">;</span>
13-
</h1>
14-
15-
<p class="mb-4 text-xl leading-relaxed text-zinc-600">
16-
東京大学のソフトウェアエンジニアリングサークル。
17-
</p>
18-
<p class="mb-12 text-lg font-medium leading-relaxed text-zinc-700">
19-
学生が実際にプロダクトを作り、世に届ける。
20-
</p>
21-
22-
<div class="flex flex-col items-center justify-center gap-4 sm:flex-row">
23-
<a
24-
href="/join"
25-
class="group inline-flex items-center gap-2 rounded-lg bg-primary px-8 py-4 font-semibold text-white shadow-lg transition-all hover:shadow-xl focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2"
26-
>
27-
<span>参加する</span>
28-
<ArrowRight class="h-5 w-5 transition-transform group-hover:translate-x-1" />
29-
</a>
30-
<a
31-
href="/projects"
32-
class="group inline-flex items-center gap-2 rounded-lg bg-zinc-900 px-8 py-4 font-semibold text-white transition-all hover:bg-zinc-800 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2"
33-
>
34-
プロジェクトを見る
35-
<ArrowRight class="h-5 w-5 transition-transform group-hover:translate-x-1" />
36-
</a>
37-
</div>
15+
<div
16+
class="absolute top-1/3 left-4 right-4 max-w-lg rounded-2xl bg-white/95 p-8 shadow-xl backdrop-blur-sm sm:left-8 md:left-10 md:right-auto"
17+
>
18+
<h1 class="text-2xl font-bold text-zinc-900 md:text-3xl">
19+
東京大学のソフトウェア開発サークル
20+
</h1>
21+
<p class="mt-4 leading-relaxed text-zinc-600">
22+
ut.code(); は、2019
23+
年に発足した東京大学のソフトウェアエンジニアリングコミュニティ・プログラミングサークルです。
24+
プログラミングの学習・教育から、実社会で役立つソフトウェア製作まで、幅広い活動を行っています。
25+
</p>
26+
<div class="mt-8 flex flex-wrap gap-4">
27+
<a
28+
href="/join"
29+
class="group inline-flex items-center gap-2 rounded-lg bg-primary px-6 py-3 font-semibold text-white shadow-lg transition-all hover:shadow-xl focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2"
30+
>
31+
<span>参加する</span>
32+
<ArrowRight class="h-5 w-5 transition-transform group-hover:translate-x-1" />
33+
</a>
34+
<a
35+
href="/projects"
36+
class="group inline-flex items-center gap-2 rounded-lg bg-zinc-900 px-6 py-3 font-semibold text-white transition-all hover:bg-zinc-800 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2"
37+
>
38+
プロジェクトを見る
39+
<ArrowRight class="h-5 w-5 transition-transform group-hover:translate-x-1" />
40+
</a>
3841
</div>
3942
</div>
4043
</section>

0 commit comments

Comments
 (0)