タグ

ブックマーク / azukiazusa.dev (13)

  • ::scroll-button と ::scroll-marker を使って CSS だけでカルーセルを作る

    ::scroll-button と ::scroll-marker を使って CSS だけでカルーセルを作る カルーセルは Web アプリケーションでよく使われる UI コンポーネントの一つであるものの、標準化された実装方法が存在しないため、各ライブラリやフレームワークで独自の実装が行われています。この問題を解決するため、CSS だけを使用してカルーセルを実装するための新しい仕様が提案されています。:この仕様では ::scroll-button と ::scroll-marker 擬似要素を使用してカルーセルを実装します。 カルーセルは Web アプリケーションでよく使われる UI コンポーネントの 1 つです。複数の画像をスライド形式で表示する手法であり、ユーザーは左右にスクロールすることで操作できます。カルーセルは一般的な UI パターンであるにも関わらず、標準化された実装方法が存在し

    ::scroll-button と ::scroll-marker を使って CSS だけでカルーセルを作る
    matea
    matea 2025/03/22
  • アップグレードされた CSS の `attr()` 関数を使う

    アップグレードされた CSS の `attr()` 関数を使う 2025.02.22 `attr()` 関数は HTML の属性を読み取り、それを CSS で利用できるようにする関数です。従来までは `content` プロパティのみで使用できましたが、CSS Values and Units Module Level 5 ではこの制限が見直され、`attr()` 関数がカスタムプロパティを含む任意の CSS プロパティで使用できるようになりました。 attr() 関数は HTML の属性を読み取り、それを CSS で利用できるようにする関数です。よくある使われ方として data-* 属性の値を読み取りその値をコンテンツに表示するというものです。 <ul> <li data-fruit="🍎">Apple</li> <li data-fruit="🍌">Banana</li> <li

    アップグレードされた CSS の `attr()` 関数を使う
    matea
    matea 2025/02/24
  • scroll-state() CSS コンテナクエリを使用して sticky で張り付いたときに境界線を出す

    scroll-state() CSS コンテナクエリを使用して sticky で張り付いたときに境界線を出す scroll-state() はコンテナ要素のスクロール状態に応じてスタイルを変更することができるコンテナクエリです。例えば、スクロール中にヘッダーを sticky な場合の境界線を表示することが挙げられます。 scroll-state() はコンテナクエリの一種であり、コンテナ要素のスクロール状態に応じてスタイルを変更できます。 よくある使い方としては、スクロール中にヘッダーを sticky な場合の境界線を表示することが挙げられます。従来は要素が sticky によりスナップされているかどうかを JavaScript を使って判定する必要がありましたが、scroll-state() を使うことで CSS だけで実現できます。 スクロールがスタックされている状態 はじめに con

    scroll-state() CSS コンテナクエリを使用して sticky で張り付いたときに境界線を出す
    matea
    matea 2025/01/19
  • ユーザーにヒントを表示するための `popover=hint` 属性

    ポップオーバーのネスト 複数のポップオーバーが同時に表示されることはないルールには例外があります。ポップオーバーがネストされている場合です。 <button popovertarget="popover1">Show Parent</button> <div id="popover1" popover> <p>This is Parent</p> <button popovertarget="popover2">Show Child</button> <div id="popover2" popover> <p>This is Child</p> </div> </div> 子のポップオーバーは親のポップオーバーの子孫要素として存在しているため、子のポップオーバーが表示されている間に親のポップオーバーを閉じることはありません。 ポップオーバーのネストは popover=hint 属性を使用

    ユーザーにヒントを表示するための `popover=hint` 属性
  • JavaScript でスタイルシートを構築する CSSStyleSheet

    JavaScript でスタイルシートを構築する CSSStyleSheet CSSStyleSheet インターフェースは、JavaScript でスタイルシートを構築し、操作するための API です。CSSStyleSheet() コンストラクターで新しいスタイルシートを作成し、.replaceSync() メソッドでスタイルを適用できます。 CSSStyleSheet インターフェースは、JavaScript でスタイルシートを構築し、操作するための API です。CSSStyleSheet() コンストラクターで新しいスタイルシートを作成し、.replaceSync() メソッドでスタイルを適用できます。 スタイルが適用された CSSStyleSheet オブジェクトは、document.adoptedStyleSheets プロパティに代入することで、ページ全体に適用されます。

    JavaScript でスタイルシートを構築する CSSStyleSheet
    matea
    matea 2024/10/27
  • box-shadow で実装されたフォーカスリングはハイコントラストモードで表示されない

    box-shadow で実装されたフォーカスリングはハイコントラストモードで表示されない 2024.08.11 フォーカスリングとは、キーボード操作でフォーカスが当たった要素を視覚的に示すための UI デザインのことです。フォーカスリングのカスタマイズに `box-shadow` プロパティを使うことがありますが、ハイコントラストモードではフォーカスリングが表示されない問題があります。この記事では、ハイコントラストモードでフォーカスリングを表示する方法について解説します。 フォーカスリングとは、キーボード操作でフォーカスが当たった要素を視覚的に示すための UI デザインのことです。フォーカスリングはキーボード操作をしているユーザーにとって現在のフォーカス位置を把握するための重要な要素です。このことは WCAG 2.2 の 2.4.7 項目で要求されています。 (レベル AA) キーボード操

    box-shadow で実装されたフォーカスリングはハイコントラストモードで表示されない
    matea
    matea 2024/08/12
  • CSS でランダムな値を扱う `random()` と `random-item()` 関数

    Note ramdom()、random-item() 関数は 2024 年 7 月現在 Editor Draft として提案されている機能です。W3C によって標準化されておらず、将来仕様が変更される可能性があります。 CSS Values and Units Module Level 5 では、CSS でランダムな値を扱うための random() と random-item() 関数が提案されています。例えば毎回ランダムな色の組み合わせを表示したり、ランダムな回転をするアニメーションを表示するなどに使われるかもしれません。 random() 関数 random() 関数は最小値と最大値を引数に取り、その範囲内のランダムな数値を返します。以下の例では .card 要素の横幅は 100px から 200px の間でランダムに設定されます。 .card { width: random(100

    CSS でランダムな値を扱う `random()` と `random-item()` 関数
    matea
    matea 2024/07/29
  • CSS の `@property` ルールでカスタムプロパティを定義する

    CSS の `@property` ルールでカスタムプロパティを定義する CSS の @property ルールを使うことで、CSS のカスタムプロパティを定義できます。カスタムプロパティを定義することでプロパティの構文チェック、デフォルト値の設定、プロパティが値を継承するかどうかの設定などが可能になります。カスタムプロパティに誤った値が代入されることを防いだり、グラデーションのアニメーションなど、従来は実装が難しかった機能をサポートすることができます。 CSS の @property ルールを使うことで、CSS のカスタムプロパティ を定義できます。カスタムプロパティを定義することでプロパティの構文チェック、初期値の設定、プロパティが値を継承するかどうかの設定が可能になります。 @property --my-color { /** red や #fff のように色のキーワードまたはカラー

    CSS の `@property` ルールでカスタムプロパティを定義する
    matea
    matea 2024/07/15
  • スタイルの適用範囲を限定する CSS の `@scope` ルール

    スタイルの適用範囲を限定する CSS の `@scope` ルール `@scope` アットルールは特定のセレクタの範囲に限定したスタイルを適用するためのルールです。`@scope` のルールセットに 1 つの CSS セレクタを指定すると、そのセレクタがスコープのルートとなります。`@scope` ルール内のスタイルはそのセレクタの範囲内でのみ適用されます。 CSS の @scope アットルールは特定のセレクタの範囲に限定したスタイルを適用するためのルールです。@scope ルールは以下のように記述します。 @scope (.card) { p { color: red; } } @scope() はルールセットとして CSS のセレクタを指定します。例えば @scope(main) や @scope(.container) といった感じです。ルールセットで指定したセレクタがスコープの

    スタイルの適用範囲を限定する CSS の `@scope` ルール
    matea
    matea 2024/07/08
  • CSS のカスケードレイヤー `@layer` を使ってスタイルを階層化して管理する

    CSS のカスケードレイヤー `@layer` を使ってスタイルを階層化して管理する CSS の `@layer` ルールは、カスケードレイヤーを宣言するために使用されます。カスケードレイヤーとは、スタイルの優先度をレイヤー(階層)に分けて管理する仕組みです。`@layer` ルールを使用することでスタイルの記述順や詳細度に関係なくスタイルを宣言できるため、新しい形式の CSS 設計を実現することができます。 CSS の @layer ルールは、カスケードレイヤーを宣言するために使用されます。カスケードレイヤーとは、スタイルの優先度をレイヤー(階層)に分けて管理する仕組みです。@layer ルールを使用することでスタイルの記述順や詳細度に関係なくスタイルを宣言できるため、新しい形式の CSS 設計を実現できます。 @layer ルールは CSS カスケーディングレベル 5 で定義されており

    CSS のカスケードレイヤー `@layer` を使ってスタイルを階層化して管理する
    matea
    matea 2024/07/01
  • CSS で条件分岐を行う `@when/@else` ルール

    Note @when/@else アットルール 2024 年 6 月 22 日現在サポートされているブラウザはありません。実装状況については Can I use を参照してください。 CSS @when/@else アットルールは @media や @support のような条件付き規則をまとめて記述するためのルールです。例えばメディアクエリを使って画面サイズが 640px 以上の場合には要素を表示し、それ以外の場合には非表示にするようなスタイルを記述する場合、以下のように記述できます。 @when media (min-width: 600px) { .box { display: block; } } @else { .box { display: none; } } @when ルールには boolean を返す条件を記述し、条件が true の場合にブロック内のスタイルを適用します

    CSS で条件分岐を行う `@when/@else` ルール
    matea
    matea 2024/06/23
  • SVG アイコンの表示に mask-image CSS プロパティを使用する

    SVG アイコンの表示に mask-image CSS プロパティを使用する 2024.06.15 mask-image プロパティは CSS でマスキングを行うためのプロパティであり、SVG アイコンを表示する際に有用です。mask-image プロパティを使用することで、外部の SVG ファイルを読み込みつつ、アイコンの色を CSS で指定することが可能になります。 HTML でロゴやアイコンを表示する時、SVG はよく使われるフォーマットです。SVG はベクター形式で記述されるため、拡大・縮小しても画質が劣化しないという特徴があります。SVGHTML で表示する場合、以下のような方法が使われていました。 <img> 要素の src 属性に SVG ファイルのパスを指定する <svg> 要素を直接記述する svg スプライトを使用する それぞれの方法にはメリット・デメリットが存在

    SVG アイコンの表示に mask-image CSS プロパティを使用する
    matea
    matea 2024/06/16
  • scrollbar-gutter CSS プロパティでスクロールバーの切り替わりによる画面のガタツキを解消する

    scrollbar-gutter CSS プロパティでスクロールバーの切り替わりによる画面のガタツキを解消する 2024.06.01 子要素が親要素のボックスからはみ出した時、overflow プロパティの値が auto または scroll の場合にスクロールバーが表示されます。スクロールバーがクラシックスクロールバーの場合、スクロールバーの表示・非表示によりボックスの幅が変わるため、画面がガタつくことがあります。scrollbar-gutter プロパティを使うとスクロールバー用のスペースをあらかじめ確保でき、画面のガタツキを解消できます。 子要素が親要素のボックスからはみ出した時、overflow プロパティの値が auto または scroll の場合にスクロールバーが表示されます。スクロールバーがどのように表示されるかは OS やブラウザの設定により異なりますが、大きく分けて以下

    scrollbar-gutter CSS プロパティでスクロールバーの切り替わりによる画面のガタツキを解消する
    matea
    matea 2024/06/03
  • 1