

View Details
チーム紹介
ショーケース型チーム紹介
#ミニマル#グリッドレイアウト+1
番号付きカードを横並びに配置し、各メンバーの役割と紹介文を表示するチームセクション
1function AvatarPlaceholder({ initials }: { initials: string }) {2 return (3 <svg4 viewBox="0 0 200 200"5 className="h-full w-full"6 aria-hidden="true"7 >8 <rect width="200" height="200" className="fill-muted" />9 <text10 x="100"11 y="108"12 textAnchor="middle"13 dominantBaseline="middle"14 className="fill-muted-foreground/40 text-4xl font-light"15 style={{ fontSize: "48px" }}16 >17 {initials}18 </text>19 </svg>20 );21}2223const members = [24 {25 name: "田中 美咲",26 initials: "TM",27 role: "CEO & Founder",28 description:29 "プロダクト戦略とビジョンを統括。10年以上のスタートアップ経験を持つ。",30 },31 {32 name: "佐藤 健一",33 initials: "SK",34 role: "CTO",35 description:36 "技術アーキテクチャとエンジニアリング組織を率いる。分散システムの専門家。",37 },38 {39 name: "鈴木 あかり",40 initials: "SA",41 role: "Design Lead",42 description:43 "デザインシステムとUX戦略を担当。ユーザー中心設計を推進する。",44 },45 {46 name: "山本 大輝",47 initials: "YD",48 role: "Engineering",49 description:50 "フロントエンドからインフラまで幅広く担当。パフォーマンス最適化が得意領域。",51 },52 {53 name: "中村 由紀",54 initials: "NY",55 role: "Product",56 description:57 "ユーザーリサーチと機能設計を担当。データドリブンな意思決定を重視する。",58 },59];6061export function TeamHorizontal001() {62 return (63 <section className="bg-background py-28">64 <div className="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8">65 {/* ヘッダー */}66 <div className="mb-16 flex flex-col items-start gap-6 sm:flex-row sm:items-end sm:justify-between">67 <div>68 <p className="text-[10px] uppercase tracking-[0.3em] text-muted-foreground">69 Our Team70 </p>71 <h2 className="mt-3 text-2xl font-medium tracking-wide text-foreground sm:text-3xl">72 チームを紹介します73 </h2>74 </div>75 <p className="max-w-xs text-sm font-light leading-relaxed text-muted-foreground">76 多様なバックグラウンドを持つメンバーが、一つのビジョンのもとに集まっています。77 </p>78 </div>7980 <div className="h-px w-full bg-border/40" />8182 {/* メンバーリスト */}83 <div className="mt-12 grid grid-cols-1 gap-px bg-border/40 sm:grid-cols-2 lg:grid-cols-5">84 {members.map((member, index) => (85 <div86 key={member.name}87 className="group flex flex-col bg-background p-6"88 >89 {/* 番号 */}90 <p className="text-[10px] tabular-nums tracking-[0.2em] text-muted-foreground/40">91 {String(index + 1).padStart(2, "0")}92 </p>9394 {/* アバター */}95 <div className="mt-5 h-16 w-16 overflow-hidden rounded-full border border-border transition-colors duration-300 group-hover:border-foreground/30">96 <AvatarPlaceholder initials={member.initials} />97 </div>9899 {/* 情報 */}100 <p className="mt-5 text-sm font-medium tracking-wide text-foreground">101 {member.name}102 </p>103 <p className="mt-1 text-[10px] uppercase tracking-[0.2em] text-muted-foreground">104 {member.role}105 </p>106107 {/* 説明 */}108 <p className="mt-4 text-xs font-light leading-relaxed text-muted-foreground/70">109 {member.description}110 </p>111 </div>112 ))}113 </div>114115 {/* フッター */}116 <div className="mt-14 flex items-center justify-between">117 <div className="flex items-center gap-3">118 <div className="h-1.5 w-1.5 rounded-full bg-foreground/20" />119 <p className="text-[10px] tracking-[0.15em] text-muted-foreground/50">120 {members.length} members121 </p>122 </div>123 <a124 href="#"125 className="group inline-flex items-center gap-2 text-xs tracking-[0.15em] text-muted-foreground transition-colors hover:text-foreground"126 >127 採用情報を見る128 <svg129 className="h-3 w-3 transition-transform duration-200 group-hover:translate-x-0.5"130 fill="none"131 stroke="currentColor"132 viewBox="0 0 24 24"133 >134 <path135 strokeLinecap="round"136 strokeLinejoin="round"137 strokeWidth={1.5}138 d="M17 8l4 4m0 0l-4 4m4-4H3"139 />140 </svg>141 </a>142 </div>143 </div>144 </section>145 );146}