Skip to content

Commit 10ede52

Browse files
brian033claude
andcommitted
content: redesign PI section layout, fix c4Lab casing
- Remove "Featured Investigator" label and duplicate bio text - Photo on right (desktop) / between info and links (mobile), bigger - Add click-to-copy on email, remove redundant "Contact c4Lab" link - Fix c4Lab casing in header (remove lowercase CSS) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 9af3089 commit 10ede52

3 files changed

Lines changed: 75 additions & 42 deletions

File tree

src/components/layout/Header.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export function Header() {
1313
<div className="page-grid flex items-center justify-between gap-4 py-4">
1414
<div className="flex items-center gap-4">
1515
<Link to="/" className="rounded-full px-2 py-1">
16-
<span className="font-display text-2xl lowercase text-navy">c4lab</span>
16+
<span className="font-display text-2xl text-navy">c4Lab</span>
1717
</Link>
1818
<p className="hidden text-sm text-slate-500 lg:block">Machine learning and bioinformatics lab</p>
1919
</div>

src/components/sections/FeaturedPISection.tsx

Lines changed: 72 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,88 @@
1+
import { useState } from "react";
12
import { featuredMember } from "../../data/mock/members";
23
import { ExternalLink } from "../ui/ExternalLink";
34
import { SectionShell } from "../ui/SectionShell";
45

6+
function CopyEmail({ email }: { email: string }) {
7+
const [copied, setCopied] = useState(false);
8+
9+
const handleCopy = () => {
10+
navigator.clipboard.writeText(email).then(() => {
11+
setCopied(true);
12+
setTimeout(() => setCopied(false), 2000);
13+
});
14+
};
15+
16+
return (
17+
<dd className="flex items-center gap-2">
18+
<a href={`mailto:${email}`} className="hover:text-white/80">{email}</a>
19+
<button
20+
onClick={handleCopy}
21+
className="rounded px-1.5 py-0.5 text-xs text-sky-200 transition hover:bg-white/10 hover:text-white"
22+
title="Copy email"
23+
>
24+
{copied ? "Copied!" : "Copy"}
25+
</button>
26+
</dd>
27+
);
28+
}
29+
530
export function FeaturedPISection() {
631
return (
732
<SectionShell className="pt-10 pb-6 sm:pb-6 lg:pb-6">
833
<div className="overflow-hidden rounded-[2rem] bg-gradient-to-br from-navy via-primary to-secondary p-8 text-white lg:p-10">
9-
<p className="text-xs font-bold uppercase tracking-[0.25em] text-sky-100">Featured Investigator</p>
10-
11-
<div className="mt-6 flex items-center gap-5">
12-
<img
13-
src="/images/prof-chen.png"
14-
alt="陳倩瑜 Prof. Chen, Chien-Yu"
15-
className="h-20 w-20 rounded-full border-2 border-white/30 object-cover"
16-
/>
17-
<div>
34+
<div className="flex flex-col gap-8 lg:flex-row lg:items-center lg:gap-12">
35+
{/* Left column */}
36+
<div className="flex-1">
37+
{/* Name & role */}
1838
<h2 className="text-3xl text-white">{featuredMember.name}</h2>
1939
<p className="mt-1 text-sm font-semibold uppercase tracking-[0.18em] text-sky-100">{featuredMember.role}</p>
20-
<p className="mt-1 text-sm text-sky-100">{featuredMember.bio}</p>
21-
</div>
22-
</div>
40+
{featuredMember.bio && <p className="mt-2 text-sm text-sky-100">{featuredMember.bio}</p>}
2341

24-
<div className="mt-8 grid gap-8 lg:grid-cols-2">
25-
<dl className="space-y-3 text-sm text-sky-50">
26-
<div>
27-
<dt className="font-semibold text-white">E-mail</dt>
28-
<dd><a href="mailto:chienyuchen@ntu.edu.tw" className="hover:text-white/80">chienyuchen@ntu.edu.tw</a></dd>
29-
</div>
30-
<div>
31-
<dt className="font-semibold text-white">Tel</dt>
32-
<dd>02-3366-5335 (系主任辦公室)</dd>
33-
<dd>02-3366-5334</dd>
34-
</div>
35-
<div>
36-
<dt className="font-semibold text-white">研究主題</dt>
37-
<dd>生物資訊、資料探勘、機器學習</dd>
38-
</div>
39-
<div>
40-
<dt className="font-semibold text-white">授課領域</dt>
41-
<dd>人工智慧概論、資料結構與演算法、生物資訊基石、生醫資料探勘</dd>
42+
{/* Contact info */}
43+
<dl className="mt-6 space-y-3 text-sm text-sky-50">
44+
<div>
45+
<dt className="font-semibold text-white">E-mail</dt>
46+
<CopyEmail email="chienyuchen@ntu.edu.tw" />
47+
</div>
48+
<div>
49+
<dt className="font-semibold text-white">Tel</dt>
50+
<dd>02-3366-5335 (系主任辦公室)</dd>
51+
<dd>02-3366-5334</dd>
52+
</div>
53+
<div>
54+
<dt className="font-semibold text-white">研究主題</dt>
55+
<dd>生物資訊、資料探勘、機器學習</dd>
56+
</div>
57+
<div>
58+
<dt className="font-semibold text-white">授課領域</dt>
59+
<dd>人工智慧概論、資料結構與演算法、生物資訊基石、生醫資料探勘</dd>
60+
</div>
61+
</dl>
62+
63+
{/* Photo — mobile only, between info and links */}
64+
<img
65+
src="/images/prof-chen.png"
66+
alt="陳倩瑜 Prof. Chen, Chien-Yu"
67+
className="mx-auto my-6 w-52 rounded-full object-cover lg:hidden"
68+
/>
69+
70+
{/* Links */}
71+
<div className="flex flex-wrap gap-3 lg:mt-6">
72+
{featuredMember.links.map((link) => (
73+
<ExternalLink key={link.href} href={link.href} className="text-sky-100 hover:text-white">
74+
{link.label}
75+
</ExternalLink>
76+
))}
4277
</div>
43-
</dl>
44-
45-
<div className="flex flex-wrap content-start gap-3">
46-
{featuredMember.links.map((link) => (
47-
<ExternalLink key={link.href} href={link.href} className="text-sky-100 hover:text-white">
48-
{link.label}
49-
</ExternalLink>
50-
))}
5178
</div>
79+
80+
{/* Right: photo — desktop only */}
81+
<img
82+
src="/images/prof-chen.png"
83+
alt="陳倩瑜 Prof. Chen, Chien-Yu"
84+
className="hidden w-72 shrink-0 rounded-full object-cover lg:block"
85+
/>
5286
</div>
5387
</div>
5488
</SectionShell>

src/data/mock/members.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,13 @@ export const memberHero: PageHeroContent = {
1010
export const featuredMember: FeaturedMember = {
1111
name: "陳倩瑜 Chien-Yu Chen",
1212
role: "教授(系主任)/ Founder of c4Lab",
13-
bio: "The founder of c4Lab",
13+
bio: "",
1414
highlights: [],
1515
links: [
1616
{ label: "Facebook", href: "https://www.facebook.com/chienyu.chen.37", external: true },
1717
{ label: "YouTube", href: "https://www.youtube.com/@chien-yuchen9796", external: true },
1818
{ label: "LinkedIn", href: "https://www.linkedin.com/in/chien-yu-chen-1bb69725b/", external: true },
19-
{ label: "Medium", href: "https://medium.com/@chienyuchen_75596", external: true },
20-
{ label: "Contact c4Lab", href: "mailto:chienyuchen@ntu.edu.tw", external: true }
19+
{ label: "Medium", href: "https://medium.com/@chienyuchen_75596", external: true }
2120
]
2221
};
2322

0 commit comments

Comments
 (0)