TextLink

a要素の代わりに使用する汎用テキストリンクコンポーネントです。本文中にリンクを置くとき、HelpLinkUpwardLinkで表現できないテキストリンクを提供するときに使います。

使用上の注意

ボタンとして使わない

TextLinkは、ページを移動するためのリンクです。それ以外の処理を実行するボタンとして使わないでください。

視覚的優先度の低いボタンを表現したい場合は、Tertiaryボタンを使ってください。

TextLinkを使用したコンポーネント

開発で頻繁に利用する実装をコンポーネント化しています。

HelpLink

ヘルプページを開くためのテキストリンクコンポーネントです。SmartHRのヘルプセンターへ誘導するリンクを置くときに使います。

UpwardLink

一階層上のコンテンツに戻るためのテキストリンクコンポーネントです。詳細画面から一覧画面など親階層へ戻る導線を置くときに使います。

レイアウト

アイコンの有無

特定の役割を示すためにアイコンを使います。これはテキストが異なっていても、同じ挙動であることを示すためです。

アイコン付きテキストリンク

テキストリンクの左右にアイコンを配置できます。 SmartHR UIでは、アイコン付き(左)はプレフィックス(prefix props)に、アイコン付き(右)はサフィックス(suffix props)にIconを指定することで表現できます。
アイコンは左右どちらかにのみ指定してください。

アイコン付き(左)

テキストリンクを押した移動先の意味・内容を想起させるために使用します。

アイコン付き(右)

テキストリンクを押したときの挙動を表現するために使用します。

デザインパターン

特別なテキストリンク

特定の役割を示すためにアイコンを使います。これはテキストが異なっていても、同じ挙動であることを示すためです。

新規ウィンドウで開くテキストリンク

テキストリンクで別の画面に移動することで、現在の画面での入力や作業が中断され作業効率が著しく落ちる場合には、新規ウィンドウ(新規タブ)でテキストリンクを開くことを検討します。

  • TextLinkは、テキストの右側別タブで開く アイコン(OpenInNewTabIcon)を自動で配置するため、個別に設定する必要はありません。
    • リンク先がSmartHRの内部ページ、外部サイトに関わらず表示します。
  • アイコン付き(左)(プレフィックス)は指定しないでください。

ヘルプセンターを開くテキストリンク

ヘルプセンター別タブで開くを開くテキストリンクはHelpLinkとして提供しています。

一階層上のコンテンツに戻るテキストリンク

一階層上のコンテンツに戻るテキストリンクはスタイリングやpropsを整えたコンポーネントUpwardLinkとして提供しています。アイコン付き(右)(サフィックス)は指定しないでください。

アクセシビリティ

基本的なアクセシビリティ機能

新規ウィンドウで開くリンクであることを伝える

target="_blank" を指定した場合、TextLinkは新規ウィンドウ(新規タブ)で開くことを示すアイコンを自動で表示します。

これにより、リンクを開いた際に別タブへ移動することが視覚的に伝わります。また、アイコンには「別タブで開く」のアクセシブルネームが設定されているため、スクリーンリーダーを使用するユーザーにも新規ウィンドウで開くことが伝わります。

開発時の考慮点

リンク先がわかるテキストを設定する

リンクテキストは、リンク先や実行される内容がわかる文言にしてください。 リンク先がわからない曖昧なテキストは、ユーザーがリンクの目的を理解しづらくなり、意図したページへ移動できるか判断しにくくなる場合があります。

詳しい書き方や例については、リンクのテキストからリンク先が判別できるの達成方法を参照してください。

関連ページ

使い方チェックリスト

TextLink
参照元:使用上の注意 > ボタンとして使わない 「使用上の注意 > ボタンとして使わない」の本文へ移動
  • Must
    視覚的優先度の低いボタンを表現したい場合は Tertiary ボタンを使う
  • Avoid
    TextLink はページを移動するためのリンク用途で使い、それ以外の処理を実行するボタンとして使わない
参照元:レイアウト > アイコンの有無 > アイコン付きテキストリンク 「レイアウト > アイコンの有無 > アイコン付きテキストリンク」の本文へ移動
  • Must
    アイコンは左右どちらかにのみ指定する
参照元:レイアウト > アイコンの有無 > アイコン付きテキストリンク > アイコン付き(左) 「レイアウト > アイコンの有無 > アイコン付きテキストリンク > アイコン付き(左)」の本文へ移動
  • Should
    アイコン付き(左)はテキストリンクを押した移動先の意味・内容を想起させるために使用する
参照元:レイアウト > アイコンの有無 > アイコン付きテキストリンク > アイコン付き(右) 「レイアウト > アイコンの有無 > アイコン付きテキストリンク > アイコン付き(右)」の本文へ移動
  • Should
    アイコン付き(右)はテキストリンクを押したときの挙動を表現するために使用する
参照元:デザインパターン > 特別なテキストリンク > 新規ウィンドウで開くテキストリンク 「デザインパターン > 特別なテキストリンク > 新規ウィンドウで開くテキストリンク」の本文へ移動
  • Avoid
    新規ウィンドウで開くテキストリンクには `アイコン付き(左)`(プレフィックス)を指定しない
  • Should
    別画面に移動することで現在の画面での入力や作業が中断され作業効率が著しく落ちる場合は、新規ウィンドウ(新規タブ)でテキストリンクを開くことを検討する
参照元:デザインパターン > 特別なテキストリンク > ヘルプセンターを開くテキストリンク 「デザインパターン > 特別なテキストリンク > ヘルプセンターを開くテキストリンク」の本文へ移動
  • Should
    ヘルプセンターを開くテキストリンクには HelpLink を使う
参照元:デザインパターン > 特別なテキストリンク > 一階層上のコンテンツに戻るテキストリンク 「デザインパターン > 特別なテキストリンク > 一階層上のコンテンツに戻るテキストリンク」の本文へ移動
  • Avoid
    UpwardLink には `アイコン付き(右)`(サフィックス)を指定しない
  • Should
    一階層上のコンテンツに戻るテキストリンクには UpwardLink を使う
参照元:アクセシビリティ > 開発時の考慮点 > リンク先がわかるテキストを設定する 「アクセシビリティ > 開発時の考慮点 > リンク先がわかるテキストを設定する」の本文へ移動
  • Must
    リンクテキストは、リンク先や実行される内容がわかる文言にする

Props

size
"XS""S""M"
onClick
(e: MouseEvent<Element, MouseEvent>) => void

リンクをクリックした時に発火するコールバック関数

prefix
stringnumberfalsetrueReactElement<any, string | JSXElementConstructor<any>>Iterable<ReactNode>ReactPortal

テキストの前に表示するアイコン

suffix
stringnumberfalsetrueReactElement<any, string | JSXElementConstructor<any>>Iterable<ReactNode>ReactPortal

テキストの後ろに表示するアイコン

elementAs
"symbol""object"ComponentClass<any, any>FunctionComponent<any>"input""a""abbr""address""area""article""aside""audio""b""base""bdi""bdo""big""blockquote""body""br""button""canvas""caption""center""cite""code""col""colgroup""data""datalist""dd""del""details""dfn""dialog""div""dl""dt""em""embed""fieldset""figcaption""figure""footer""form""h1""h2""h3""h4""h5""h6""head""header""hgroup""hr""html""i""iframe""img""ins""kbd""keygen""label""legend""li""link""main""map""mark""menu""menuitem""meta""meter""nav""noindex""noscript""ol""optgroup""option""output""p""param""picture""pre""progress""q""rp""rt""ruby""s""samp""search""slot""script""section""select""small""source""span""strong""style""sub""summary""sup""table""template""tbody""td""textarea""tfoot""th""thead""time""title""tr""track""u""ul""var""video""wbr""webview""svg""animate""animateMotion""animateTransform""circle""clipPath""defs""desc""ellipse""feBlend""feColorMatrix""feComponentTransfer""feComposite""feConvolveMatrix""feDiffuseLighting""feDisplacementMap""feDistantLight""feDropShadow""feFlood""feFuncA""feFuncB""feFuncG""feFuncR""feGaussianBlur""feImage""feMerge""feMergeNode""feMorphology""feOffset""fePointLight""feSpecularLighting""feSpotLight""feTile""feTurbulence""filter""foreignObject""g""image""line""linearGradient""marker""mask""metadata""mpath""path""pattern""polygon""polyline""radialGradient""rect""set""stop""switch""text""textPath""tspan""use""view"

TextLinkを利用しつつnext/linkなどと併用する場合に指定する

ref
any