picola
ドキュメント

スタイリングとテーマ設定

.pcl ルート上の CSS カスタムプロパティですべてのコントロールを調整。!important は不要で、グローバルリセットにも強い設計です。

.pcl ルート上の CSS カスタムプロパティで外観を調整できます。

.pcl {
--pcl-z: 2000;
--pcl-backdrop: rgba(10, 10, 16, 0.55);
--pcl-backdrop-filter: blur(16px);
--pcl-caption-lines: 3;
}

--pcl-backdrop-filter は背景のぼかしを有効にします(GPU コストがかかるため、デフォルトは none です)。スタイルシートには .pcl にスコープされた詳細度ゼロのミニリセットが同梱されているため、アプリがグローバルな CSS リセットを使用しているかどうかにかかわらず、クロームは同一にレンダリングされます。トランジションは prefers-reduced-motion を尊重します。

!important は不要

すべてのデフォルトルールは、フラットな単一クラスのセレクタ(.pcl__button など)を使用しています。そのため、通常のカスケード順で、あるいはクラス1つ分の詳細度を追加するだけで、スタイルシートから上書きできます。カスタムプロパティのデフォルト値は詳細度ゼロ(:where(.pcl))で宣言されているため、アプリ内でシンプルに .pcl { --pcl-z: … } と書けば、スタイルシートの順序に関係なく常に優先されます。

スタイルは意図的に @layer を避けています。レイヤー化されたライブラリのスタイルは、多くのアプリに存在するレイヤー化されていないグローバルリセットに負けてしまうためです。

カスタムプロパティ

プロパティ デフォルト 説明
--pcl-z 1000 ルートの重なりコンテキスト(z-index)。
--pcl-backdrop #000 背景色。
--pcl-backdrop-filter none 背景フィルタ。例: blur(16px)(オプトイン。GPU コストがかかります)。
--pcl-chrome-color #fff ボタン、カウンター、矢印の前景色。
--pcl-chrome-bg rgba(0, 0, 0, 0.35) クロームコントロールのホバー時/アクティブ時の背景。
--pcl-button-bg rgba(0, 0, 0, 0.2) ツールバーボタンのアイドル時の背景。
--pcl-button-size 44px ツールバーボタンのヒット領域。
--pcl-arrow-size 48px 前/次の矢印のヒット領域。
--pcl-caption-bg rgba(0, 0, 0, 0.55) キャプションの背景。
--pcl-caption-color #fff キャプションのテキスト色。
--pcl-caption-lines 2 キャプションが省略される前に表示される行数。
--pcl-dismiss (runtime) ドラッグで閉じる進捗。01 の値で、コアによって書き込まれます。カスタムクロームをフェードさせるために読み取ります。

ドラッグで閉じる操作への反応

ユーザーがドラッグで閉じる操作を行っている間、コアはルートに --pcl-dismiss(01 の進捗値)を書き込み、data-pcl-dismissing 属性を設定します。自分のクロームからこのいずれかを読み取れば、ジェスチャーと連動してフェードさせられます。フレームごとの JavaScript は不要です。

.my-chrome {
opacity: calc(1 - var(--pcl-dismiss, 0));
}