⭐️

【Polaris和訳】Components/Navigation

2021/10/29に公開

この記事について

この記事は、Polaris/Components/Navigationの記事を和訳したものです。

記事内で使用する画像は、公式ドキュメント内の画像を引用して使用させていただいております。

Shopify アプリのご紹介

Shopify アプリである、「商品ページ発売予告アプリ | リテリア Coming Soon」は、商品ページを買えない状態のまま、発売日時の予告をすることができるアプリです。Shopify で Coming Soon 機能を実現することができます。

https://apps.shopify.com/shopify-application-314?locale=ja&from=daniel

Shopify アプリである、「らくらく日本語フォント設定|リテリア Font Picker」は、ノーコードで日本語フォントを使用できるアプリです。日本語フォントを導入することでブランドを演出することができます。

https://apps.shopify.com/font-picker-1?locale=ja&from=daniel

Footer ヘルプ

フッターヘルプは、マーチャントが使用している製品や機能に関連する詳細情報を参照するために使用されます。

Image from Gyazo

React
<FooterHelp>
  Learn more about{" "}
  <Link external url="https://help.shopify.com/manual/orders/fulfill-orders">
    fulfilling orders
  </Link>
</FooterHelp>
HTML
<div>
  <div class="Polaris-FooterHelp">
    <div class="Polaris-FooterHelp__Content">
      <div class="Polaris-FooterHelp__Icon">
        <span class="Polaris-Icon Polaris-Icon--colorHighlight Polaris-Icon--applyColor"
          ><svg viewBox="0 0 20 20" class="Polaris-Icon__Svg" focusable="false" aria-hidden="true">
            <path
              fill-rule="evenodd"
              d="M18 10a8 8 0 1 0-16 0 8 8 0 0 0 16 0zm-9 3a1 1 0 1 0 2 0v-2a1 1 0 1 0-2 0v2zm0-6a1 1 0 1 0 2 0 1 1 0 0 0-2 0z"
            ></path></svg
        ></span>
      </div>
      <div class="Polaris-FooterHelp__Text">
        Learn more about
        <a
          target="_blank"
          class="Polaris-Link"
          href="https://help.shopify.com/manual/orders/fulfill-orders"
          rel="noopener noreferrer"
          data-polaris-unstyled="true"
          >fulfilling orders<span class="Polaris-Link__IconLockup"
            ><span class="Polaris-Link__IconLayout"
              ><span class="Polaris-Icon" aria-label="(opens a new window)"
                ><svg
                  viewBox="0 0 20 20"
                  class="Polaris-Icon__Svg"
                  focusable="false"
                  aria-hidden="true"
                >
                  <path
                    d="M14 13v1a1 1 0 0 1-1 1H6c-.575 0-1-.484-1-1V7a1 1 0 0 1 1-1h1c1.037 0 1.04 1.5 0 1.5-.178.005-.353 0-.5 0v6h6V13c0-1 1.5-1 1.5 0zm-3.75-7.25A.75.75 0 0 1 11 5h4v4a.75.75 0 0 1-1.5 0V7.56l-3.22 3.22a.75.75 0 1 1-1.06-1.06l3.22-3.22H11a.75.75 0 0 1-.75-.75z"
                  ></path></svg></span></span></span
        ></a>
      </div>
    </div>
  </div>
  <div id="PolarisPortalsContainer"></div>
</div>

サンドボックスでの編集
https://codesandbox.io/s/tdqbu?module=App.js

Props

children
React.ReactNode
レイアウト内に表示するコンテンツ

ベストプラクティス

フッターヘルプは

  • インターフェイスの最下部に配置する
  • 画面上の体験に関連したヘルプへのリンクを提供する。
  • 機能の宣伝や仕組みの説明には使用しない。
  • マーチャントへのアップセルを目的とした情報にはリンクしない。
  • まれに、ヘルプドキュメントがない場合は、ブログ記事にリンクして、マーチャントがワークフローの中で最も論理的な次のステップに進めるようにします。

Shopify アプリの開発者であれば、フッターのヘルプは以下のようにもなります。

  • 連絡先情報やサポートチケットシステムへのリンクを提供する

フッターヘルプコンポーネントをヘルプドキュメントにリンクすることをお勧めします。連絡先情報に直接リンクすると、メールや電話の受信数が多くなる可能性があります。

コンテンツガイドライン

フッターヘルプ

デフォルトでは、フッターヘルプは Shopify ヘルプセンターの情報にリンクし、以下のコンテンツパターンに従うべきです。

  • Learn more about {X}.

リンクは次のようにします

明確にラベル付けされています。マーチャントは、アクションリンクをクリックしたときに、どこにたどり着くかを推測する必要はありません。リンクに「ここをクリックしてください」を使用してはいけません。なぜならば、次に何が起こるのか期待できないからです。

Shopify アプリ開発者が連絡先情報にリンクする場合、フッターヘルプはこのコンテンツパターンに従うべきです。

  • Option 1: {Contact us} about [X].
  • Option 2: Reach out to us at {contact info}.

Image from Gyazo

関連コンポーネントとドキュメント

Link

リンクは、ユーザーを別の場所に連れて行くもので、通常、文の中か直後に表示されます。

ナビゲーションとは関係のないアクションには、ボタンコンポーネントを使用します。

大きな文字列の中のテキストリンクに使用します。

Image from Gyazo

React
<Link url="https://help.shopify.com/manual">fulfilling orders</Link>
HTML
<div>
  <a class="Polaris-Link" href="https://help.shopify.com/manual" data-polaris-unstyled="true"
    >fulfilling orders</a
  >
  <div id="PolarisPortalsContainer"></div>
</div>

周りのテキストと同じ色のテキストリンクに使用します。

Image from Gyazo

React
<Link monochrome url="https://help.shopify.com/manual">
  fulfilling orders
</Link>
HTML
<div>
  <a
    class="Polaris-Link Polaris-Link--monochrome"
    href="https://help.shopify.com/manual"
    data-polaris-unstyled="true"
    >fulfilling orders</a
  >
  <div id="PolarisPortalsContainer"></div>
</div>

モノクロスタイルは、バナー内のリンクに適用されます。

Image from Gyazo

React
<Banner>
  Learn more about <Link url="https://help.shopify.com/manual">fulfilling orders</Link>
</Banner>
HTML
<div>
  <div
    class="Polaris-Banner Polaris-Banner--withinPage"
    tabindex="0"
    role="status"
    aria-live="polite"
    aria-describedby="PolarisBanner4Content"
  >
    <div class="Polaris-Banner__Ribbon">
      <span class="Polaris-Icon Polaris-Icon--colorBase Polaris-Icon--applyColor"
        ><span class="Polaris-VisuallyHidden"></span
        ><svg viewBox="0 0 20 20" class="Polaris-Icon__Svg" focusable="false" aria-hidden="true">
          <path
            fill-rule="evenodd"
            d="M10 20c5.514 0 10-4.486 10-10S15.514 0 10 0 0 4.486 0 10s4.486 10 10 10zm1-6a1 1 0 1 1-2 0v-4a1 1 0 1 1 2 0v4zm-1-9a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"
          ></path></svg
      ></span>
    </div>
    <div class="Polaris-Banner__ContentWrapper">
      <div class="Polaris-Banner__Content" id="PolarisBanner4Content">
        Learn more about
        <a
          class="Polaris-Link Polaris-Link--monochrome"
          href="https://help.shopify.com/manual"
          data-polaris-unstyled="true"
          >fulfilling orders</a
        >
      </div>
    </div>
  </div>
  <div id="PolarisPortalsContainer"></div>
</div>

新しいブラウザのタブ(マーチャントのブラウザ設定によってはウィンドウ)で開く必要のあるテキストリンクに使用します。同じタブでページを開くとマーチャントのワークフローが乱れる可能性がある場合にのみ使用してください。

Image from Gyazo

React
<Link url="https://help.shopify.com/manual" external>
  Shopify Help Center
</Link>
HTML
<div>
  <a
    target="_blank"
    class="Polaris-Link"
    href="https://help.shopify.com/manual"
    rel="noopener noreferrer"
    data-polaris-unstyled="true"
    >Shopify Help Center<span class="Polaris-Link__IconLockup"
      ><span class="Polaris-Link__IconLayout"
        ><span class="Polaris-Icon"
          ><span class="Polaris-VisuallyHidden">(opens a new window)</span
          ><svg viewBox="0 0 20 20" class="Polaris-Icon__Svg" focusable="false" aria-hidden="true">
            <path
              d="M14 13v1a1 1 0 0 1-1 1H6c-.575 0-1-.484-1-1V7a1 1 0 0 1 1-1h1c1.037 0 1.04 1.5 0 1.5-.178.005-.353 0-.5 0v6h6V13c0-1 1.5-1 1.5 0zm-3.75-7.25A.75.75 0 0 1 11 5h4v4a.75.75 0 0 1-1.5 0V7.56l-3.22 3.22a.75.75 0 1 1-1.06-1.06l3.22-3.22H11a.75.75 0 0 1-.75-.75z"
            ></path></svg></span></span></span
  ></a>
  <div id="PolarisPortalsContainer"></div>
</div>

Props

accessibilityLabel
string
スクリーンリーダーに読み上げられる説明用のテキスト

children
React.ReactNode
リンクの内側に表示するコンテンツ

external
boolean
リンクを新しいタブで開くようにします

id
string
リンクの ID

monochrome
boolean
リンクの色を現在のテキストカラーと同じにし、アンダーラインを追加します。

removeUnderline
boolean
リンクに表示されている文字装飾の下線を削除します。

url
string
リンク先の URL

onClick
() => void
リンクがクリックされたときのコールバック

アクセシビリティ

リンクコンポーネントに有効な href 値を与えるには、url prop を使用します。これにより、要素が支援技術へのリンクとして認識され、デフォルトのキーボードサポートが与えられます。

リンク・コンポーネントに下線を引き、インタラクティブな要素に形を与える。これにより、ユーザーが要素がインタラクティブであるかどうかを判断する唯一の方法を、リンクが色に頼らないようにすることができます。

Image from Gyazo

データの送信

マーチャントは一般的に、リンクはナビゲーションのためのものであり、データを送信したりアクションを起こしたりするためのものではないと考えています。URL を持たないコンポーネントが必要な場合は、代わりにボタンコンポーネントを使用してください。

ラベリング

リンクにその目的を明確に説明するテキストを与えます。

accessibilityLabel プロップはリンクに aria-label 属性を追加し、スクリーンリーダーのような支援技術からアクセスできるようにします。通常、このラベルテキストは、支援技術を使用しているマーチャントのためにリンク上の可視テキストを置き換えます。

一貫性を持たせ、わかりやすくするために

  • 同じコンテンツに移動するリンクには、同じテキストを使用する。
  • 異なるコンテンツに移動するリンクには、異なるテキストを使用する。

Image from Gyazo

外部リンク

外部プロップは、アイコンと、リンクが新しいタブを開くという通知を追加します。外部プロップを使って、リンクを新しいタブ(マーチャントのブラウザ設定によっては、ウィンドウ)で開くようにします。新しいタブでページを開くのは、同じタブでページを開くとマーチャントのワークフローが乱れる可能性がある場合のみです。

キーボード対応

リンクには、キーボード操作に関するブラウザのデフォルト設定が使用されています。

  • キーでリンクにキーボードフォーカスを与える(後方にタブを移動する場合は + キー)。
  • キーでリンクをアクティブにする

ベストプラクティス

ボタンとリンク

リンクは主にナビゲーションのために使用され、通常は文中または文の直後に表示されます。

ボタンは、「追加」、「閉じる」、「キャンセル」、「保存」など、主にアクションのために使用されます。リンクに似たプレーンなボタンは、「配送設定を見る」など、あまり重要ではない、あるいはあまり使われないアクションに使用されます。

ボタン」と「リンク」のコンポーネントで表示される HTML には意味があります。これらのコンポーネントを意図的かつ一貫して使用することで、以下のことが実現します。

  • 支援技術ユーザーにとってより包括的な体験となる
  • 目の見えるユーザーにとって、よりまとまりのあるビジュアルを提供する。
  • スケールアップしてもメンテナンスが容易な製品

スタイルのないリンク

既存のリンクスタイルがプロジェクトのニーズを満たさない場合は、UnstyledLink コンポーネントを使用して、カスタムのリンクスタイルを作成します。

コンテンツガイドライン

リンクコンポーネントは、リンクのコンテンツガイドラインに従う必要があります。

関連コンポーネント

Shopify アプリのご紹介

Shopify アプリである、「商品ページ発売予告アプリ | リテリア Coming Soon」は、商品ページを買えない状態のまま、発売日時の予告をすることができるアプリです。Shopify で Coming Soon 機能を実現することができます。

https://apps.shopify.com/shopify-application-314?locale=ja&from=daniel

Shopify アプリである、「らくらく日本語フォント設定|リテリア Font Picker」は、ノーコードで日本語フォントを使用できるアプリです。日本語フォントを導入することでブランドを演出することができます。

https://apps.shopify.com/font-picker-1?locale=ja&from=daniel

Discussion

ログインするとコメントできます