コンテンツにスキップ

LinkBox

ボックス全体をリンク化するコンポーネントです。
デフォルトでは<Lism tag='a'>と同じような構成となり、a.is--linkBox を出力します。

プロパティに合わせて専用処理を加えています。

Props

プロパティ説明
hrefリンク先を指定できます。hrefが指定されている場合、is—linkBox は標準でaタグとなり、なければdivとして出力されます。
layout指定したLismコンポーネントでLinkBoxを展開できます。
targettarget属性を指定できます。
relrel属性を指定できます

Import

import { LinkBox, Link } from '@lism-ui/core';

Usage

LinkBox(.is--linkBox)は、次の3通りの使い方ができます。

  1. .is--linkBox自体を<a>タグにする。
  2. .is--linkBox<div>で、内部にa.is--overlayLinkを配置する。
  3. .is--linkBox<div>で、内部にa.is--hiddenLinkを配置する。

2, 3 では、LinkBox内部に別のリンクも配置できます。

<LinkBox>自体をリンクにする

<LinkBox>hrefを指定すると<LinkBox>自体が<a>タグになります。

<LinkBox href='#linkbox-demo01' p='40' bgc='base' bdc='divider' bd bdrs='4'>
<Text fz='xl' fw='bold'>Heading text</Text>
<Text c='text-2' lh='s' mbs='20'>
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi provident.
</Text>
<Text fz='s' c='text-2' ta='r' lh='1' mbs='10'>MORE →</Text>
</LinkBox>

内部にis--overlayLinkを配置する

LinkBoxにhrefを指定せず、内部のアンカー要素に.is--overlayLinkを併用してもボックス全体をリンクにすることができます。

この時、LinkBoxの内部に別のリンクも配置できます。

<LinkBox p='40' bgc='base' bdc='divider' bd bdrs='4'>
<Text fz='xl' fw='bold'>
<Link isOverlayLink href='#linkbox-demo02'>Heading Link</Link>
</Text>
<Text c='text-2' lh='s' mbs='20'>
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi provident.
</Text>
<Text mbs='10' id='inner-link02'>
<a href='#inner-link02'>Inner Link</a>
</Text>
</LinkBox>

is--overlayLinkにフォーカスした時のアウトラインをLinkBox全体に広げたい場合は、次のようなCSSを追記してください。

@supports selector(:has(*)) {
.is--linkBox:has(.is--overlayLink:focus-visible) {
outline: auto 1px;
outline: auto 1px -webkit-focus-ring-color;
}
.is--overlayLink:focus {
outline: 0;
}
}

内部にis--hiddenLinkを配置する

<LinkBox>にhreを指定せず、直下に隠しリンク(is--hiddenLink)を配置しても、ボックス全体をリンクにすることができます。

この時、LinkBoxの内部に別のリンクも配置できます。

<LinkBox isFlow bgc='base' bdc='divider' bd bdrs='4' p='40'>
<Link isHiddenLink isSkipFlow href='#linkbox-demo03' aria-label='リンクの読み上げテキスト'/>
<Text fz='xl' fw='bold'>Heading Text</Text>
<Text c='text-2' lh='s' mbs='20'>
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi provident.
</Text>
<Text mbs='10' id='inner-link03'>
<a href='#inner-link03'>Inner Link</a>
</Text>
</LinkBox>