透明で大きめ
最上部では、ヘッダーは余白を広く取り、背景をほとんど見せません。
CSS SCROLL STATE
scrollイベントでclassを付けずに、ページが少しスクロールされた状態へ反応する。 新しいscroll-state queryのデモです。
最上部では、ヘッダーは余白を広く取り、背景をほとんど見せません。
スクロール後は、読みやすいように背景、blur、shadowを付けます。
scroll-state queryで、スクロール後の状態をCSSから見ています。
CORE CSS
ページが下へスクロールされると、上方向へ戻れる状態になります。 その状態を `scrollable: top` で見て、ヘッダー内側の見た目を変えています。
html {
container-type: scroll-state;
container-name: page;
}
.site-header {
position: fixed;
top: 16px;
left: 50%;
transform: translateX(-50%);
}
@container page scroll-state(scrollable: top) {
.header-inner {
padding-block: 10px;
background: rgb(255 255 255 / 82%);
box-shadow: 0 16px 50px rgb(24 33 29 / 16%);
backdrop-filter: blur(18px);
}
}
scroll-state queries are new. This demo is intended as an experimental CSS demo. For production, check browser support and provide a fallback.
スクロール位置に応じた見た目の切り替えは、これまでJavaScriptでclassを付けることが多い表現でした。
scroll-state queryは、コンテナのスクロール状態を見て、その子孫へスタイルを当てられます。
ヘッダーの背景や影が変わるだけでも、UIの印象はかなり変わります。