Bento UIとはパネルが伸び縮みしながら配置が入れ替わるお弁当箱みたいなUI、View Transitions APIでCSSアニメーションが進化する

Bento UIとはパネルがお弁当箱のように配置されており、各パネルをクリックすると伸び縮みしながら配置が入れ替わるUIです。最近のWebサイトやスマホアプリでもよく見かけるようになりました。そんなBento UIをView Transitions APIを使用して実装されたデモを紹介します。

一昔前なら実装は面倒でしたが、Chrome 111から利用できるView Transitions APIにより簡単に実装できるようになりました。

デモのキャプチャ

Rediento -Bento Radio Group Carousel thing

実装にはChrome 111で実装されたView Transitions APIが使用されており、2つの状態間のアニメーションを作成しながら、1ステップでDOMを簡単に変更できます。

  • 各パネルは、CSS Gridでレイアウト。
  • positionはなし。
  • ビジュアルのトランジションがアップグレード。
  • 動きの軽快さを重視。
  • 伸び縮みするスキッシュエフェクトをイージングで実装。

実際の動作は、下記デモページでご覧ください。
左上「Edit on Codepen」をクリックして別タブで開いた方が楽しめます。
※デモはChrome, Edgeでご覧ください。

See the Pen
Radiento - Bento Radio Group Carousel thing
by Adam Argyle (@argyleink)
on CodePen.

実装を見てみましょう。
HTMLは各パネルをdivで実装しており、それぞれラジオボタンとラベルがあります。

View Transitions APIはJavaScriptで.startViewTransition()を呼び出して使用します。

伸び縮みするスキッシュエフェクトは、Open PropsのCSSが使用されています。
参考: 一貫性のあるUIコンポーネントを簡単に実装できる -Open Props

元ネタは下記ツイートより。

sponsors

top of page

©2024 coliss