スマートフォン表示でよく見るハンバーガーメニュー(三本線のボタン)。クリックするとナビゲーションが開くUIは、AIにお任せで作れます。
方法①:既存のHTMLからCSS・JSを生成する
AIへのプロンプト例
以下のHTMLに対して、
・ハンバーガーボタンのCSS(三本線のデザイン)
・ボタンをクリックするとナビが開閉するJavaScript
・開いたときにボタンが×印に変化するアニメーション
を追加してください。
<header class="site-header">
<a href="/" class="logo">LOGO</a>
<button class="burger" aria-label="メニューを開く">
<span></span>
<span></span>
<span></span>
</button>
<nav class="global-nav">
<ul>
<li><a href="/">ホーム</a></li>
<li><a href="/about">会社案内</a></li>
<li><a href="/contact">お問い合わせ</a></li>
</ul>
</nav>
</header>
生成されたCSS例
.burger {
display: none;
flex-direction: column;
gap: 5px;
background: none;
border: none;
cursor: pointer;
padding: 8px;
}
.burger span {
display: block;
width: 24px;
height: 2px;
background: #1a1a1a;
transition: transform 0.3s, opacity 0.3s;
}
.burger.is-open span:nth-child(1) {
transform: translateY(7px) rotate(45deg);
}
.burger.is-open span:nth-child(2) {
opacity: 0;
}
.burger.is-open span:nth-child(3) {
transform: translateY(-7px) rotate(-45deg);
}
@media (max-width: 768px) {
.burger { display: flex; }
.global-nav {
display: none;
position: absolute;
top: 100%;
left: 0;
width: 100%;
background: #fff;
border-top: 1px solid #eee;
padding: 16px 0;
}
.global-nav.is-open { display: block; }
.global-nav ul { flex-direction: column; }
.global-nav li a {
display: block;
padding: 12px 24px;
}
}
生成されたJS例
const burger = document.querySelector('.burger');
const nav = document.querySelector('.global-nav');
burger.addEventListener('click', () => {
const isOpen = burger.classList.toggle('is-open');
nav.classList.toggle('is-open', isOpen);
burger.setAttribute('aria-expanded', isOpen);
});
📝 用語メモ
aria-expanded:メニューが開いているかどうかをスクリーンリーダーに伝えるアクセシビリティ属性。true / falseで切り替えます。@media (max-width: 768px):画面幅が768px以下のとき(主にスマートフォン)に適用するCSSです。
方法②:HTMLとセットで生成する
AIへのプロンプト例
PCではヘッダーナビを横並びに、スマートフォンではハンバーガーメニューで表示する
レスポンシブなヘッダーをHTML・CSS・JavaScriptで作ってください。
ハンバーガーボタンは三本線→×に変化するアニメーションつきで。
ポイント
- スライドで開くメニューにしたい場合は「開閉をスライドアニメーションにして」と追加で指示できます
- ナビを閉じる処理(リンクをクリック後に自動で閉じるなど)も同時に依頼しましょう