← ギャラリーへ戻る
ACC-01Elements
FAQアコーディオン
よくある質問の開閉リスト。JavaScript不要の<details>で実装し、開くとプラス記号が45度回って×になる。1問目のみ初期表示。
- 追加日:
- 2026-07-23
- 依存:
- なし
- tags
- #faq #accordion #accessibility #no-js
プレビュー
制作期間はどれくらいですか?
コーポレートサイトで4〜6週間が目安です。ページ数や素材の準備状況によって前後します。
公開後の運用もお願いできますか?
はい。月額の保守運用プランで、更新代行・アクセス解析・改善提案まで伴走します。
見積もりは無料ですか?
無料です。現状の課題をお伺いし、最適なプランと概算をご提案します。
const faqs = [
{
q: "制作期間はどれくらいですか?",
a: "コーポレートサイトで4〜6週間が目安です。ページ数や素材の準備状況によって前後します。",
},
{
q: "公開後の運用もお願いできますか?",
a: "はい。月額の保守運用プランで、更新代行・アクセス解析・改善提案まで伴走します。",
},
{
q: "見積もりは無料ですか?",
a: "無料です。現状の課題をお伺いし、最適なプランと概算をご提案します。",
},
];
return function FaqAccordion() {
return (
<div className="w-full max-w-lg divide-y divide-gray-200 rounded-xl border border-gray-200 bg-white">
{faqs.map((faq, i) => (
<details key={faq.q} className="group px-5" open={i === 0}>
<summary className="flex cursor-pointer list-none items-center justify-between gap-4 py-4 text-sm font-semibold text-gray-900 [&::-webkit-details-marker]:hidden">
{faq.q}
<svg
className="size-4 shrink-0 text-amber-600 transition-transform duration-200 group-open:rotate-45"
viewBox="0 0 20 20"
fill="none"
stroke="currentColor"
strokeWidth="1.8"
aria-hidden="true"
>
<path d="M10 4v12M4 10h12" strokeLinecap="round" />
</svg>
</summary>
<p className="pb-4 text-sm leading-relaxed text-gray-500">{faq.a}</p>
</details>
))}
</div>
);
}
shadcn CLI でプロジェクトに追加
npx shadcn@latest add https://designs.first-ch.com/r/faq-accordion.json