

View Details
フッター
ダークフッター
#ダークモード#グリッドレイアウト
左にブランド情報、右にリンクグループを配置したスプリットレイアウトのフッターセクション
1import Link from "next/link";23export function FooterSplit001() {4 const linkGroups = [5 {6 title: "プロダクト",7 links: [8 { label: "機能一覧", href: "#" },9 { label: "料金プラン", href: "#" },10 { label: "導入事例", href: "#" },11 { label: "アップデート", href: "#" },12 ],13 },14 {15 title: "サポート",16 links: [17 { label: "ドキュメント", href: "#" },18 { label: "ヘルプセンター", href: "#" },19 { label: "API リファレンス", href: "#" },20 { label: "ステータス", href: "#" },21 ],22 },23 {24 title: "会社情報",25 links: [26 { label: "私たちについて", href: "#" },27 { label: "採用情報", href: "#" },28 { label: "ブログ", href: "#" },29 { label: "お問い合わせ", href: "#" },30 ],31 },32 ];3334 return (35 <footer className="bg-background border-t border-border">36 <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">37 {/* メインエリア:左右スプリット */}38 <div className="grid grid-cols-1 gap-12 py-16 lg:grid-cols-2 lg:gap-16 lg:py-20">39 {/* 左側:ブランド情報 */}40 <div className="flex flex-col justify-between">41 <div>42 <Link href="#" className="inline-flex items-center gap-3">43 <div className="flex h-8 w-8 items-center justify-center rounded-md border border-border">44 <div className="h-1.5 w-1.5 rounded-full bg-foreground/60" />45 </div>46 <span className="text-base font-medium tracking-wide text-foreground">47 Brand48 </span>49 </Link>50 <p className="mt-6 max-w-sm text-sm font-light leading-relaxed text-muted-foreground">51 プロダクトの可能性を広げ、チームの生産性を高めるプラットフォーム。シンプルで直感的な体験を提供します。52 </p>53 </div>5455 {/* ソーシャルリンク */}56 <div className="mt-8 flex items-center gap-5 lg:mt-0">57 {[58 {59 label: "X",60 path: "M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z",61 },62 {63 label: "GitHub",64 path: "M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z",65 },66 ].map((social) => (67 <Link68 key={social.label}69 href="#"70 className="text-muted-foreground/60 transition-colors duration-200 hover:text-foreground"71 >72 <span className="sr-only">{social.label}</span>73 <svg74 className="h-4 w-4"75 fill="currentColor"76 viewBox="0 0 24 24"77 >78 <path d={social.path} />79 </svg>80 </Link>81 ))}82 </div>83 </div>8485 {/* 右側:リンクグループ */}86 <div className="grid grid-cols-2 gap-8 sm:grid-cols-3">87 {linkGroups.map((group) => (88 <div key={group.title}>89 <h3 className="text-[10px] uppercase tracking-[0.3em] text-muted-foreground">90 {group.title}91 </h3>92 <ul className="mt-5 space-y-3.5">93 {group.links.map((link) => (94 <li key={link.label}>95 <Link96 href={link.href}97 className="text-sm font-light tracking-wide text-muted-foreground transition-colors duration-200 hover:text-foreground"98 >99 {link.label}100 </Link>101 </li>102 ))}103 </ul>104 </div>105 ))}106 </div>107 </div>108109 {/* 区切り線 */}110 <div className="h-px bg-border/40" />111112 {/* ボトムバー */}113 <div className="flex flex-col items-center justify-between gap-4 py-6 sm:flex-row">114 <p className="text-[10px] tracking-[0.2em] text-muted-foreground/50">115 © {new Date().getFullYear()} Brand Inc. All rights reserved.116 </p>117 <div className="flex items-center gap-6">118 {["プライバシー", "利用規約", "Cookie設定"].map((item) => (119 <Link120 key={item}121 href="#"122 className="text-[10px] tracking-[0.2em] text-muted-foreground/50 transition-colors duration-200 hover:text-muted-foreground"123 >124 {item}125 </Link>126 ))}127 </div>128 </div>129 </div>130 </footer>131 );132}