#カスタムプロパティ (--*): CSS 変数
前はCSS変数なんてなくて変数をつけたい時はSCSS, SASSなどでつけるしかなかったですが、
今は --global--color-primary
のように、頭に --
接頭辞がつけられたプロパティはカスタムプロパティを表し、 var 関数を使用して他の宣言の中で使用することができる値を持ちます。
カスタムプロパティは宣言された要素のスコープになり、カスケードに関連します。そのようなカスタムプロパティの値は、カスケードのアルゴリズムによって決められた宣言から取られます。
###SCSSの場合
$global--color-primary: #c6538c;
a {
color: #global--color-primary;
}
###CSS変数を利用する場合
:root {
--global--color-primary: #28303d;
}
a {
color: var(--global--color-primary);
}
###例
See the Pen カスタムプロパティー by Lam Minh (@ramukun) on CodePen.
参考:https://developer.mozilla.org/ja/docs/Web/CSS/--*
#content-visibility
content-visibility
はlazyloadのような動きですが、画像だけではなくて、HTML要素にも使えますのでページの読み込みが高速になります。
content-visibility: auto;
visible
やhidden
のバリューがありますが、lazyloadみたいな動きはautoを設定します。
コンテンツがviewportに入る時に読み込みが始まって、表示されます。
heightがない場合、contain-intrinsic-size
で想定のサイズが指定できます。
See the Pen content-visibility by Lam Minh (@ramukun) on CodePen.
*サポートするブラウザーはChrome, Edge, Operaしかないですが、期待できますね。
#Scroll Snap
scroll-snap-type
は画面をスクロールしてコンテンツがviewportに入るときにコンテンツが画面の上側や左側にsnapします。
イメージはパララックスみたいな動きです。
snap方向はいくつあります。
-
x
: 横のスクロール -
y
: 縦のスクロール -
both
: x, yのスクロール -
mandatory
: width、heightの半分ぐらい過ぎたらsnapされる -
proximity
: コンテンツの 3分の1くらいスクロールしたらsnapされる
See the Pen Scroll-snap-type "Mandatory" vs "Proximity" by Max Kohler (@maxakohler) on CodePen.
参考: https://css-tricks.com/practical-css-scroll-snapping/
:is & :where
最後は :is と :whereを話したいですね。
CSSは下記の書き方があります。
.main a:hover,
.sidebar a:hover,
.site-footer a:hover {
/* markup goes here */
}
:is
を使えばリスト中のセレクターの何れか一つに当てはまる要素をすべて選択します。
:is(.main, .sidebar, .site-footer) a:hover {
/* markup goes here */
}
:where
も同様
:where(.main, .sidebar, .site-footer) a:hover {
/* markup goes here */
}
:is
と:where
の違いは:is
の方が優先度が高いそうです。
See the Pen :isと:whereの違い by Lam Minh (@ramukun) on CodePen.
#終わりに
複雑コードやライブラリを使わなくてもCSSだけでパララックスが実装できそうですね。
CSSの進化を楽しみにしています。
ご覧いただきありがとうございました。