色付きリンク(Colored links) v5.0.0新設
ホバー状態のあるカラー付きリンク。
※"v5.0.0"での変更はv5.0.0-alpha版、v5.0.0-beta版での変更も含みます。
※"v5.3.0"での変更はv5.3.0-alpha版での変更も含みます。
リンクの色(Link colors)v5.3.0クラス追加、実例から変更
.link-{themecolor} クラスを使用して、リンクの色を強調する。.text-{color} クラスとは異なり、これらのクラスには :hover と :focus 状態がある。一部のリンクスタイルでは、比較的明るい前景色を使用しており、十分なコントラストを得るためには、暗い背景でのみ使用する必要がある。
.link-body-emphasis は現在、カラーモードに適応する唯一のカラーリンク。これはv6が登場し、カラーモードに対応したテーマカラーをより徹底的に作り直すことができるようになるまで、特別なケースとして扱われる。それまでは、カスタム :hover と :focus スタイルを持つユニークで高コントラストなリンクカラー。しかも新しいリンクユーティリティに対応することに変わりはない。
リンク色の種類
Primary:.link-primary文字色ユーティリティクラスの場合とリンクヘルパークラスの場合。
Secondary:.link-secondary文字色ユーティリティクラスの場合とリンクヘルパークラスの場合。
Success:.link-success文字色ユーティリティクラスの場合とリンクヘルパークラスの場合。
Danger:.link-danger文字色ユーティリティクラスの場合とリンクヘルパークラスの場合。
Warning:.link-warning文字色ユーティリティクラスの場合とリンクヘルパークラスの場合。
Info:.link-info文字色ユーティリティクラスの場合とリンクヘルパークラスの場合。
Light:.link-light文字色ユーティリティクラスの場合とリンクヘルパークラスの場合。
※色が見やすいようにライトモードでは背景色がつきます
Dark:.link-dark文字色ユーティリティクラスの場合とリンクヘルパークラスの場合。
※色が見やすいようにダークモードでは背景色がつきます
強調文字カラー:.link-body-emphasisv5.3.0追加文字色ユーティリティクラスの場合とリンクヘルパークラスの場合。
※デフォルトの場合(参考):クラスの設定がない場合。
設定例
<a href="#" class="text-primary">文字色ユーティリティクラス</a>の場合と<a href="#" class="link-primary">リンクヘルパークラス</a>の場合。
【設定】
<a>タグに.link-{themecolor}(上記の「リンク色の種類」から選択)を入れると、ホバーやフォーカス状態で濃いめに強調される{themecolor}は、primary,secondary,success,danger,warning,info,light,dark,body-emphasisのいずれかを選択
.visually-hidden クラスで非表示にした追加テキストなどの代替手段を入れるように心がけてください。
リンクユーティリティと併用(Link utilities)v5.3.0新設
色付きリンクヘルパーは、リンクユーティリティでスタイルの変更もできる。
見本
設定例
Primaryの場合<p><a href="#" class="link-primary link-offset-2 link-underline-opacity-25 link-underline-opacity-100-hover">Primaryのリンク</a></p>
【設定】
.link-{property}-{value}(-hover)(リンクユーティリティ)クラスとの併用も可
CSS v5.1.0追加、v5.3.0Sassから名称変更
Sassループ(Sass loops)
デフォルトの設定
scss/helpers/_colored-links.scss 内の設定// このSassのバグにより、全角の`RGBA()`関数を使用: https://github.com/sass/node-sass/issues/2251
@each $color, $value in $theme-colors {
.link-#{$color} {
color: RGBA(var(--#{$prefix}#{$color}-rgb, var(--#{$prefix}link-opacity, 1)));
text-decoration-color: RGBA(var(--#{$prefix}#{$color}-rgb), var(--#{$prefix}link-underline-opacity, 1));
@if $link-shade-percentage != 0 {
&:hover,
&:focus {
$hover-color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage));
color: RGBA(#{to-rgb($hover-color)}, var(--#{$prefix}link-opacity, 1));
text-decoration-color: RGBA(to-rgb($hover-color), var(--#{$prefix}link-underline-opacity, 1));
}
}
}
}