|
268 | 268 | } |
269 | 269 |
|
270 | 270 | /* ========================================================================== |
271 | | - 5. レスポンシブデザイン |
| 271 | + 5. ハンバーガーメニュー |
| 272 | + ========================================================================== */ |
| 273 | +.nav-toggle { |
| 274 | + background: none; |
| 275 | + border: none; |
| 276 | + cursor: pointer; |
| 277 | + padding: 0.5rem; |
| 278 | + position: relative; |
| 279 | + z-index: 30; /* ヘッダーより上に */ |
| 280 | +} |
| 281 | + |
| 282 | +.nav-toggle__icon { |
| 283 | + display: block; |
| 284 | + width: 2rem; |
| 285 | + height: 2px; |
| 286 | + background: var(--color-heading); |
| 287 | + position: relative; |
| 288 | + transition: background 0.3s ease-in-out; |
| 289 | +} |
| 290 | + |
| 291 | +.nav-toggle__icon::before, |
| 292 | +.nav-toggle__icon::after { |
| 293 | + content: ""; |
| 294 | + display: block; |
| 295 | + width: 2rem; |
| 296 | + height: 2px; |
| 297 | + background: var(--color-heading); |
| 298 | + position: absolute; |
| 299 | + left: 0; |
| 300 | + transition: |
| 301 | + transform 0.3s ease-in-out, |
| 302 | + top 0.3s ease-in-out; |
| 303 | +} |
| 304 | + |
| 305 | +.nav-toggle__icon::before { |
| 306 | + top: -8px; |
| 307 | +} |
| 308 | + |
| 309 | +.nav-toggle__icon::after { |
| 310 | + top: 8px; |
| 311 | +} |
| 312 | + |
| 313 | +/* メニューが開いたときのアニメーション */ |
| 314 | +.nav-toggle.is-active .nav-toggle__icon { |
| 315 | + background: transparent; /* 真ん中の線を消す */ |
| 316 | +} |
| 317 | + |
| 318 | +.nav-toggle.is-active .nav-toggle__icon::before { |
| 319 | + top: 0; |
| 320 | + transform: rotate(45deg); |
| 321 | +} |
| 322 | + |
| 323 | +.nav-toggle.is-active .nav-toggle__icon::after { |
| 324 | + top: 0; |
| 325 | + transform: rotate(-45deg); |
| 326 | +} |
| 327 | + |
| 328 | +/* ========================================================================== |
| 329 | + 6. レスポンシブデザイン |
272 | 330 | ========================================================================== */ |
273 | 331 | @media (max-width: 768px) { |
274 | 332 | .site-header__inner { |
|
313 | 371 | .site-footer__right a { |
314 | 372 | font-size: 0.8rem; |
315 | 373 | } |
| 374 | + .site-header__inner { |
| 375 | + flex-direction: row; /* モバイルでもロゴとトグルは横並び */ |
| 376 | + align-items: center; |
| 377 | + justify-content: space-between; /* 両端に配置 */ |
| 378 | + padding: 0.75rem 1.25rem; |
| 379 | + } |
| 380 | + |
| 381 | + .site-logo { |
| 382 | + margin-bottom: 0; /* 元に戻す */ |
| 383 | + } |
| 384 | + |
| 385 | + .nav-toggle { |
| 386 | + display: block; /* モバイルで表示 */ |
| 387 | + } |
| 388 | + |
| 389 | + .site-nav { |
| 390 | + /* 初期状態ではメニューを非表示 */ |
| 391 | + display: block; |
| 392 | + position: fixed; |
| 393 | + top: 0; |
| 394 | + left: -100%; /* 画面外に隠す */ |
| 395 | + width: 100%; |
| 396 | + height: 100vh; |
| 397 | + background: var(--color-panel); /* 背景色 */ |
| 398 | + flex-direction: column; |
| 399 | + justify-content: center; |
| 400 | + align-items: center; |
| 401 | + gap: 1.5rem; |
| 402 | + transition: left 0.3s ease-in-out; |
| 403 | + z-index: 25; /* ヘッダーの下、トグルの上に */ |
| 404 | + padding-top: 5rem; /* ヘッダー分スペースを確保 */ |
| 405 | + } |
| 406 | + |
| 407 | + .site-nav.is-open { |
| 408 | + left: 0; /* メニューを開く */ |
| 409 | + } |
| 410 | + |
| 411 | + .site-nav a { |
| 412 | + font-size: 1.5rem; /* メニュー項目の文字サイズを大きく */ |
| 413 | + padding: 0.75rem 1.5rem; |
| 414 | + width: fit-content; |
| 415 | + margin: 0 auto; |
| 416 | + } |
316 | 417 | } |
0 commit comments