WEBソーセージリンク、それはハンバーガーメニュー以外の選択肢。

ソーセージリンク、それはハンバーガーメニュー以外の選択肢。

参照:
Using Hamburger Menus? Try Sausage Links
https://bradleytaunt.com/2019/06/14/hamburger-menu-alternative/

ハンバーガーメニューとは

みなさんご存知の通り、主にスマートフォンサイトの右上ないし左上に配置されることが多い横棒3本のアレですね。横棒3本がハンバーガーに見えることからハンバーガーメニューと呼ばれているのは有名な話ですね。

限られたスペースを有効活用するべく生まれた素晴らしいソリューションではありますが、まったく問題点がないとは言い切れません。

ハンバーガーメニューの良い点

PCとは異なりメニューに割くことのできる面積が少ないモバイルデバイスのスペースを有効活用するとともに、とくにデザイナーにとってはスマートフォンサイトのメニューをどうするかというときに解決策の一つとして真っ先に挙げられます。

ハンバーガーメニューの悪い点

ハンバーガーメニューをタップ(クリック)することでメニュー本体を開き、メニュー内でもまた操作を行い…というように操作手順が増えがちで、また、子リンクがある場合はやや振る舞いが複雑になりがちです。

そこで今回紹介させていただくのが、ハンバーガーメニュー以外の選択肢としてぜひとも覚えておきたい「ソーセージリンク」です。

ソーセージリンクとは

「ソーセージリンク」自体はまったく新しいものということはなく、すでに多くのWebサイトで似たような形で実装されています。

まずは、実際のソーセージリンクとはどのようなものなのかを見てみましょう。

See the Pen Scrolling Navigation (Sausage Links) by Bradley Taunt (@bradleytaunt) on CodePen.

ソーセージリンクの良い点

非常に簡潔なCSSのみでJavaScriptもなく実装が可能で、スクリーンリーダーにも操作しやすく、ユーザーは一切の操作をすることなくメニュー(の一部)を確認することができます。

ソーセージリンクの悪い点

大規模なWebサイトのようなメニュー数が多い場合はソーセージリンクは不向きです。また、場合によっては望ましくないスクロールバーが表示されてしまうこともあります。

ソーセージリンクの実装方法

<main>
  <nav class="sausage-links">
    <ul>
      <li><a href="/">Top</a></li>
      <li><a href="/works">Works</a></li>
      <li><a href="/aboutus">About us</a></li>
      <li><a href="/career">Career</a></li>
      <li><a href="/contact">Contact</a></li>
    </ul>
  </nav>
</main>
/* ソーセージリンクコンテナ */
.sausage-links {
  position: relative;

  /* ソーセージリンク左右端のフェード */
  &::before,
  &::after {
    position: absolute;
    top: 1em;
    z-index: 2;
    width: 10px;
    height: calc(100% - 2em);
    pointer-events: none;
    content: '';
  }
  &::before {
    right: 0;
    background: linear-gradient(to right, rgba(255, 255, 255, 0), #fff);
  }
  &::after {
    left: 0;
    background: linear-gradient(to left, rgba(255, 255, 255, 0), #fff);
  }

  /* 横並びメニューはFlexboxで実装 */
  ul {
    display: flex;
    flex-wrap: nowrap;
    overflow: auto;
    padding: 1em 16px;

    li {
      margin: 0 4px;
      white-space: nowrap;

      &:last-child {
        padding-right: 10px;
      }

      a {
        display: inline-block;
        padding: 10px 15px;
        border: 1px solid #ddd;
        border-radius: 50px;
        color: #76a0e7;
        font-family: 'Raleway';
        font-size: 14px;
        letter-spacing: .02em;
        text-decoration: none;
        text-transform: uppercase;

        &:hover {
          border-color: #76a0e7;
          background: #d2e3ff;
        }
      }
    }
  }
}

body {
  background: #eee;
}

main {
  width: 400px;
  max-width: calc(100% - 4em);
  margin: 2em auto;
  padding: 0 .8em;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, .1);
}

See the Pen Example of sausage links by guillemotinc (@guillemotinc) on CodePen.

まとめ

ハンバーガーメニュー以外の選択肢の一つとして「ソーセージリンク」を紹介しましたが、いかがでしたでしょうか?

ハンバーガーメニューの完全な代替品となることはありませんが、プロジェクトによってはソーセージリンクの採用を選択肢の一つとして考えてみてはいかがでしょうか?

今回はいかにも翻訳記事のような文章でお届けいたしました。(翻訳記事ではありません)
本当にありがとうございました。

かしこ