
Chromeが同意なく4GBのAIモデルをダウンロードする問題
Google Chromeがユーザーの明示的な許可なく、約4GBに及ぶGemini Nanoのモデルデータをダウンロードしている事実が明らかになった。このデータは「Prompt API」と呼ばれる新機能のためのものだが、その配信方法と利用規約をめぐって、Web標準の専門家から強い懸念が示されている。
CSS-Tricksの記事によれば、このダウンロードはChromeの標準アップデートの一部として扱われ、ユーザーが削除してもブラウザが自動的に再ダウンロードする仕様だという。2025年5月現在、すでに多くのユーザーのデバイスに配信済みの状態だ。
Chromeが密かにダウンロードするGemini Nanoとは

Gemini NanoはGoogleが開発した軽量AIモデルで、デバイス上で直接テキスト生成や要約などのタスクを実行する。クラウドにデータを送信せず、端末のCPUやGPUのみで推論を行うため、プライバシー保護の観点では優れた設計といえる。
問題はその配信方法だ。CSS-Tricksの著者であるMat Marquis氏が指摘したところによれば、この約4GBのデータはChromeの通常アップデートの一部として、ユーザーに何の通知もなく転送される。U2のアルバムがiTunesライブラリに強制的に追加された過去の事例になぞらえ、同意なき配信の奇妙さを強調している。
Gemini Nano(同意なし・通知なし)
削除してもChromeが再ダウンロードを実行するため、ユーザーに実質的な拒否権はない。Chromeの内部機能として扱われているが、実際にはブラウザに統合されたわけではなく、独立した製品が同梱されている状態に近い。Mat Marquis氏は、かつてスパイウェアとして批判されたBonzi Buddyがブラウザに同梱されていた事例を引き合いに出し、その類似性を指摘している。
Prompt APIの仕組みとGoogleの利用制限

Prompt APIは、Web開発者がChromeの組み込みAIモデルに直接アクセスできるJavaScript APIだ。ユーザーのデバイス上でテキストの要約、文章の言い換え、質問応答といった処理を実行できる。Chromeの開発者向けドキュメントでは、すでに1年以上前から公開されている。
このAPIを利用するには、Googleが定める「Generative AI Prohibited Uses Policy」への同意が必須となる。Mozillaが公式に懸念を表明したのは、この利用ポリシーの内容がWeb標準の原則と相容れないからだ。
Web APIに付随する利用ポリシーの問題点
MozillaのGitHub上のコメントによれば、Googleの禁止事項ポリシーは法律の範囲を超えた制限を含んでいる。具体的には、性的に露骨なコンテンツの生成や配布の禁止、誤情報や政府・民主的プロセスに関する誤解を招く主張の促進禁止などが盛り込まれている。
これらの制限はWebプラットフォームのAPIとしては異例だ。通常、ブラウザAPIは技術的な仕様のみを定義し、その使途を特定企業のポリシーで制限することはない。Mozillaは「これはWebプラットフォームにとって悪しき方向性であり、UA(ユーザーエージェント)固有の使用ルールを持つAPIが増える前例となる」と警告している。
この構造は、Webのオープン性を損なう可能性がある。特定のブラウザベンダーがAPIの利用条件を自由に設定できるなら、Webの相互運用性は徐々に崩れていく。Mozillaの反対表明は、単なる競合他社の立場表明ではなく、Web標準の基本原則を守るための警鐘と受け止めるべきだ。
Web標準プロセスにおけるGoogleの影響力

Mat Marquis氏は、GoogleのWeb標準への関与姿勢を痛烈に批判している。同氏の比喩によれば「GoogleのWeb標準プロセスへの参加は、クマがキャンプに参加するようなものだ」という。つまり、表面上は協調しているように見えても、実質的には自社の都合でプロセスを支配しているという指摘だ。
Googleは「開発者のポジティブな感情」を根拠にPrompt APIの推進を正当化しようとしたが、実際に引用された場所にはポジティブな感情など存在しなかった。この矛盾した説明は、同社がWeb標準を「不可避なもの」として語る際の常套句と重なる。
ブラウザAPIとWeb APIの混同が生むリスク
ここで重要なのは、すべてのブラウザAPIがWeb APIではないという事実だ。Chromeだけが実装するAPIは、事実上の標準として扱われるリスクをはらむ。MicrosoftのIEが独自拡張で市場を支配した過去の過ちを、形を変えて繰り返す可能性がある。
Alex Russell氏が繰り返し指摘しているように、ブラウザの選択肢が限られている現状はすでに問題含みだ。その状況下でGoogleがChrome限定のAI APIを推進することは、Webの多様性をさらに損なう。ブラウザの多様性が生態系に与える影響について、CSS-Tricksでも過去に取り上げられているテーマだ。
ユーザーが取るべき対応と無効化手順

この問題に対して、現時点でユーザーが取れる対応は限られている。Chromeの設定画面で「オンデバイスAI」の項目をオフにすることは可能だが、すでにダウンロードされた4GBのモデルデータを完全に削除し、再ダウンロードを防ぐ方法は提供されていない。
この問題に関する報道は複数のメディアで取り上げられている。Engadgetは「Chromeがユーザーの同意なく4GBのAIファイルをダウンロード」と報じ、Cybernewsは「Chromeが我々のデバイスに静かに4GBのAIモデルをインストールしている」と警告した。Android Authorityでは、このダウンロードがスパイウェアに該当するかどうかの議論まで展開されている。
この記事のポイント
- Google Chromeがユーザーの同意なく約4GBのGemini Nanoモデルをダウンロードしている
- 削除しても自動的に再ダウンロードされ、実質的な拒否手段が提供されていない
- Prompt APIの利用にはGoogle独自のコンテンツポリシーへの同意が必須で、MozillaがWeb標準の観点から反対を表明
- ブラウザベンダー固有のAPI利用制限は、オープンなWebの原則を損なう前例となる危険性がある
- Chrome設定の「オンデバイスAI」から機能自体はオフにできるが、データ削除の確実な方法は提供されていない

・ 複数業界における17年間のデジタルビジネス開発経験
・ ウェブサイト開発のためのHTML、PHP、CSS、Java等の実用的知識
・ 15ヶ国語対応の多言語SaaSの開発経験
・ 17年間にも及ぶ、Eコマース長期運営経験
・ 幅広い業界でのSEO最適化の豊富な経験

CSS Olfactive APIでウェブに「匂い」を実装する?次世代の嗅覚体験と実装方法の全容
ウェブデザインの歴史は、視覚と聴覚をいかに豊かにするかの歴史だった。しかし、次世代のウェブ標準として「嗅覚」を制御する「CSS Olfactive API(CSS嗅覚API)」の策定が進められている。この技術により、ブラウザを通じてユーザーに特定の香りを届けることが可能になる。
現在、W3C(World Wide Web Consortium)のCSSワーキンググループでは、香りの定義方法やハードウェアとの連携について活発な議論が行われている。香りをデジタルデータとして扱うための新しいファイル形式や、CSSで香りの強度を指定する新しい単位「whf」も導入される見込みだ。
このAPIは、単なるエンターテインメントの枠を超え、ECサイトでの購買体験や、教育コンテンツの没入感を劇的に変える可能性を秘めている。本記事では、CSS Olfactive APIの仕組みから具体的な実装コード、そしてアクセシビリティへの配慮まで、現時点で判明している仕様を詳しく解説する。
ウェブ体験は「嗅覚」の領域へ:Olfactive APIとは何か

ウェブサイトの没入感を高める試みは、静止画から動画へ、そして空間オーディオへと進化してきた。CSS Olfactive APIは、その次のステップとして「香り」をブラウザの制御下に置くことを目的としている。Olfactive(オルファクティブ)とは「嗅覚の」という意味を持つ言葉だ。
ハードウェアとAPIの連携
このAPIが機能するためには、PCやスマートフォンに接続された「香りの放出デバイス」が必要になる。かつてテーマパークの4Dアトラクションで使われていたような技術が、一般消費者向けの小型デバイスとして開発されている。あるスタートアップ企業によれば、1年以内には手頃な価格の家庭用ディフューザーが市場に投入される予定だという。
APIはこれらのデバイスを抽象化し、ブラウザが直接ハードウェアの仕様を意識することなく、標準化された命令で香りを制御できるようにする。これにより、開発者は特定のメーカーのデバイスに依存することなく、共通のCSSプロパティで嗅覚体験をデザインできる。OSレベルでのドライバ対応が進めば、USB接続やBluetooth経由でシームレスに香りが届けられるようになるだろう。
なぜ今、嗅覚なのか
嗅覚は、人間の脳において感情や記憶を司る「大脳辺縁系」に直接結びついている唯一の感覚だと言われている。視覚や聴覚よりも強く、ユーザーの感情を揺さぶり、特定の記憶を呼び起こす力がある。例えば、コーヒーショップのサイトを開いた瞬間に挽きたての豆の香りが漂えば、ユーザーの購買意欲は視覚情報のみの場合よりも格段に高まるだろう。このように、UX(ユーザーエクスペリエンス)の観点から嗅覚の活用は非常に強力な武器になる。
香りを構成する4つのファミリーと15のサブカテゴリ

デジタルで香りを表現するために、香水業界で長年使われてきた「フレグランスホイール(香りの輪)」という概念が採用された。CSS Olfactive APIでは、このホイールをベースに香りを分類し、コードで指定できる識別子を割り当てている。
4つのメインファミリー
香りは大きく分けて以下の4つのメインファミリーに分類される。これらは、デザインにおける「プライマリカラー」のような役割を果たす基本的なカテゴリだ。
- Floral(フローラル):花の香り。最も一般的で親しみやすい。
- Amber(アンバー):以前はオリエンタルと呼ばれていた、官能的で温かみのある香り。
- Woody(ウッディ):樹木や森林を思わせる、落ち着いた香り。
- Fresh(フレッシュ):シトラスや水、草木のような爽やかな香り。
15のサブカテゴリと識別子
メインファミリーはさらに細分化され、合計15のサブカテゴリが定義されている。CSSではこれらを2文字の識別子で指定する。例えば、フローラルの中には「Soft Floral(sf)」や「Floral Amber(fa)」といった細かな違いが存在する。これらを組み合わせることで、複雑な調香を再現する仕組みだ。
「Fresh」ファミリーは特に種類が多く、柑橘系の「Citrus(ct)」、水の香りの「Water(ho)」、果物の「Fruity(fu)」など、ウェブコンテンツと親和性の高い香りが揃っている。これらの識別子は、後述する scent() 関数の引数として使用されることになる。
HTMLとCSSによる実装:<scent>要素とscent-profile

実装方法は、既存の <video> や <audio> 要素と非常によく似ている。HTMLで香りのソースを定義し、CSSで要素に香りのプロファイルを割り当てるという流れだ。
<scent>要素による外部ファイルの読み込み
香りのデータは、専用のファイル形式で提供される。現在、Google、Mozilla、そして香料メーカーの連合がそれぞれ .smll、.arma、.smly という形式を提案中だ。HTMLでは <scent> 要素を使い、複数のソースを指定できる。
<scent controls autosmell="none">
<source src="forest.smll" type="scent/smll">
<source src="forest.arma" type="scent/arma">
<a href="forest.smll">森林の香りをダウンロード</a>
</scent>ここで重要なのが autosmell 属性だ。動画の autoplay と同様、ユーザーの意図しないタイミングで香りが放出されるのを防ぐため、デフォルトは none に設定することが推奨されている。アクセシビリティの観点からも、勝手に匂いが出る設定は避けるべきだ。
scent-profileプロパティ
CSSでは、新しく追加される scent-profile プロパティを使用して、特定の要素に香りを紐付ける。背景画像を指定する background-image と似た感覚で利用できる。以下のデモは、CSS Olfactive APIの指定方法を視覚化したものだ。
このデモは、要素に scent-profile: url(forest.smll); を適用した際の概念を示している。右側の要素にマウスを乗せたり、フォーカスを合わせたりした際に、デバイスから香りが放出される仕組みだ。
調香のコントロール:whf単位とscent()関数の使い方

外部ファイルを読み込むだけでなく、CSS内で直接香りを合成することも可能だ。ここで使われるのが scent() 関数と、新しい単位 whf である。 whf は「Waftage High Frequency(香気拡散強度)」の略で、香りの強さを表す。
香りのブレンドと強度指定
scent() 関数には、最大5つまでのサブカテゴリ識別子を指定できる。それぞれの識別子に whf 単位の数値を添えることで、配合比率を細かく調整できる。最大値は 100whf であり、指定した合計値が100を超えた場合、ブラウザは先頭から順に処理し、100に達した時点で残りの指定を無視する仕様だ。
/* ウッディ20%、水13%、フルーティ67%のブレンド */
.orchard-in-rain {
scent-profile: scent(wo 20whf, ho 13whf, fu 67whf);
}
/* 全体的にほのかな香りにする場合 */
.subtle-scent {
scent-profile: scent(wo 5whf, ho 2whf, fu 14whf);
}この whf 単位の面白い点は、単なる「比率」ではなく、放出デバイスの「出力強度」に直結していることだ。 100whf で指定すれば部屋中に広がるような強い香りに、 10whf 程度であればユーザーが顔を近づけた時にだけ感じる微かな香りになる。デザインの目的に応じて、香りの「距離感」をコントロールできるのが特徴だ。
ネストと兄弟要素の制限
香りが混ざりすぎて不快な体験になるのを防ぐため、APIには強力な制限が設けられている。1つの親要素のツリー内では、1つの scent-profile しか有効にならない。つまり、ある div に香りを設定した場合、その子要素や兄弟要素に別の香りを重ねることはできない。これにより、開発者が誤って「香りのカオス」を作り出してしまうのを防いでいる。複数の香りを切り替えたい場合は、要素同士を十分に離すか、JavaScriptで動的にプロパティを書き換える必要がある。
ユーザーへの配慮とアクセシビリティ:過剰な演出を防ぐ仕組み

嗅覚は非常にデリケートな感覚であり、特定の人にとっては不快感やアレルギー反応を引き起こす原因にもなり得る。そのため、CSS Olfactive APIではアクセシビリティへの配慮が最優先事項として組み込まれている。
prefers-reduced-pungency メディアクエリ
視覚的な動きを抑える prefers-reduced-motion と同様に、香りの刺激を抑えるための prefers-reduced-pungency メディアクエリが導入される。ユーザーはブラウザやOSの設定で「香りを無効にする」あるいは「弱める」を選択できる。
.product-card {
scent-profile: scent(fl 50whf, fu 50whf);
}
/* ユーザーが「刺激を抑える」設定にしている場合 */
@media (prefers-reduced-pungency: reduce) {
.product-card {
scent-profile: scent(fl 10whf, fu 10whf);
}
}
/* ユーザーが「香りをオフ」にしている場合 */
@media (prefers-reduced-pungency: remove) {
.product-card {
scent-profile: none;
}
}開発者はこのメディアクエリを活用し、ユーザーの好みに合わせた最適な強度を提供しなければならない。特に公共の場やオフィスでの利用を想定すると、デフォルトで香りをオフにする設定の普及は必須といえるだろう。
嗅覚インターフェースの倫理
香りは記憶と結びついているため、悪意のあるサイトが不快な匂いを放出してユーザーにトラウマを植え付けるといった攻撃も理論上は可能だ。これを防ぐため、ブラウザベンダーは「信頼できるドメイン」のみに嗅覚APIの権限を与える、あるいはマイクやカメラのように「このサイトが香りの放出を求めています」という許可ダイアログを表示する機能を検討している。技術の進化とともに、嗅覚のプライバシーと安全性を守るガイドラインの策定が急がれている。
今後の展望と課題:ハードウェア普及と実用性の壁

CSS Olfactive APIは非常に野心的なプロジェクトだが、普及までにはまだ高い壁がある。最大の課題は、やはりハードウェアの普及率だ。どれほど洗練されたCSSを書いても、ユーザーの元に放出デバイスがなければ意味をなさない。
ブラウザの対応状況
驚くべきことに、現在このAPIを試験的に実装しているのは、新興市場向けの「KaiOS」ブラウザのみだ。ChromeやFirefox、Safariといった主要ブラウザは、仕様の推移を慎重に見守っている段階にある。しかし、AppleがVision Proのような空間コンピューティングに注力していることを考えると、没入感を補完する要素として嗅覚が注目される日は遠くないかもしれない。
実用的なユースケースの模索
単なる「お遊び」に終わらせないためには、実用的なメリットを示す必要がある。例えば、火災報知器と連動した「焦げ臭い匂い」のウェブ通知や、アロマセラピーの遠隔体験、あるいは歴史教育における「当時の街の匂い」の再現など、社会に役立つ応用例が期待されている。香りを「情報」として伝達する手段が確立されれば、ウェブの可能性は文字通りもう一つの次元へと広がるだろう。
この記事のポイント
- CSS Olfactive APIは、ブラウザを通じて香りを制御するための新しいWeb標準である。
- 香りは「Floral」「Amber」「Woody」「Fresh」の4ファミリーと15のサブカテゴリで定義される。
scent-profileプロパティとwhf単位により、香りの種類と強度をCSSで指定できる。prefers-reduced-pungencyメディアクエリにより、ユーザーが香りの強度を制御できるアクセシビリティが確保されている。- 実用化には専用ハードウェアの普及と、安全に利用するためのセキュリティガイドラインが不可欠だ。

・ 複数業界における17年間のデジタルビジネス開発経験
・ ウェブサイト開発のためのHTML、PHP、CSS、Java等の実用的知識
・ 15ヶ国語対応の多言語SaaSの開発経験
・ 17年間にも及ぶ、Eコマース長期運営経験
・ 幅広い業界でのSEO最適化の豊富な経験

CSSでここまでできる!カスタマイズ可能なselect要素で作る革新的UIデザイン3選
HTMLのselect要素は、長年にわたりWeb制作者にとってスタイリングが最も困難なパーツの一つであった。ブラウザごとに異なるデフォルトの見た目を持ち、ドロップダウン部分に至ってはCSSでの制御がほぼ不可能だったからだ。
しかし現在、Chromium系ブラウザを中心に「カスタマイズ可能なselect要素(Customizable Select)」という新機能の実装が進んでいる。この機能により、開発者はJavaScriptで独自のコンポーネントを自作することなく、標準のselect要素に対して自由なデザインを適用できるようになった。
本記事では、CSS-Tricksで紹介された先進的なデモを基に、この新機能がもたらす可能性と具体的な実装手法を解説する。従来の常識を覆すような、扇形や円形のセレクトメニューがどのように構築されているのか、その核心に迫る。
1. appearance: base-select によるスタイリングの解禁
カスタマイズ可能なselect機能を利用するための第一歩は、新しいCSSプロパティの値を適用することだ。元記事の著者であるPatrick Brosset氏は、この機能を有効化することで、select要素全体(ボタン、ドロップダウン、オプション)のフルカスタマイズが可能になると指摘している。
制御を可能にする「base-select」の宣言
まず、select要素とそのドロップダウン部分(ピッカー)に対して、`appearance: base-select` を指定する。これにより、ブラウザの標準的なスタイルがリセットされ、開発者が自由にスタイルを定義できる土台が整う。ピッカー部分は `::picker(select)` という新しい擬似要素で指定する仕組みだ。
/* カスタマイズ機能を有効化する基本設定 */
select,
::picker(select) {
appearance: base-select;
}この宣言がない場合、select要素は従来通りの制限されたスタイルしか適用できない。この「オプトイン(明示的な有効化)」方式により、既存のWebサイトのデザインを壊すことなく新機能を提供できる設計となっている。
擬似要素による構成パーツの個別操作
新機能では、これまでアクセスできなかったパーツも擬似要素として操作できる。例えば、右側に表示される矢印アイコンは `::picker-icon`、選択状態を示すチェックマークは `::checkmark` という擬似要素で制御可能だ。
著者のBrosset氏は、デモにおいて `::picker-icon` を `display: none` で非表示にし、代わりに独自のアイコンや装飾を施している。また、これまではoption要素の中にテキストしか入れられなかったが、新しい仕様ではspanやimgといったHTMLタグを混在させることも可能になった。これはUIデザインの幅を大きく広げる重要な変更だ。
2. フォルダが扇状に広がるUIの構築
最初のデモとして紹介されているのは、フォルダのリストが扇状に展開されるユニークなセレクトメニューだ。このUIを実現するために、最新のCSS関数が効果的に活用されている。
sibling-index() による動的な回転制御
各フォルダ(option要素)を少しずつ異なる角度で回転させるために、`sibling-index()` という関数が使われている。これは、兄弟要素の中での自身のインデックス番号を返す関数だ。例えば、1番目の要素なら1、2番目なら2を返す。
記事によれば、このインデックス番号に一定の角度(例:-4度)を掛け合わせることで、リストの下に行くほど回転角が大きくなる「扇状」のレイアウトを数行のコードで実現している。これは従来、JavaScriptでループ処理を行ってインラインスタイルを付与していた作業だ。
option {
--rotation-offset: -4deg;
/* インデックス番号に応じて回転角を計算 */
rotate: calc(sibling-index() * var(--rotation-offset));
/* 右側を支点にして回転させる */
transform-origin: right calc(sibling-index() * -1.5rem);
}このデモは、sibling-index()を利用して要素ごとに異なる角度を適用するイメージを示している。
@starting-style で実現する登場アニメーション
メニューが開いた瞬間にアニメーションさせる際、課題となるのが「要素が表示された瞬間の初期状態」の定義だ。通常、displayプロパティが none から block に変わる瞬間はトランジションが効かない。
そこで著者は `@starting-style` という新しいアットルールを使用している。これは要素がレンダリングを開始する直前のスタイルを指定できるもので、これにより「閉じた状態(回転0度)」から「開いた状態(扇状)」への滑らかなアニメーションが可能になる。
3. トランプのデッキを再現するカードピッカー
二つ目のデモは、トランプのカードを扇形に並べたカードピッカーだ。ここでは、配置の自由度を極限まで高めるためのテクニックが紹介されている。
アンカーポジショニングによる配置の自由化
デフォルトのselect要素は、ボタンの真下にリストが表示される。しかし、カスタマイズ可能なselectでは「アンカーポジショニング(Anchor Positioning)」という技術が組み込まれており、リストの表示位置を自由に制御できる。
著者の手法では、`position-area: center center` を使用して、ドロップダウンをボタンの中央に重ねて表示させている。さらに `inset: 0` を指定することで、ピッカーが画面全体のスペースを利用できるように設定している。これにより、ボタンの枠に縛られないダイナミックなレイアウトが可能になる。
@property を活用したカスタムプロパティのアニメーション
カードが広がるアニメーションをより精密に制御するため、`@property` を使って独自のCSS変数を定義している。CSS変数は通常、単なる文字列として扱われるため数値的な補間(アニメーション)ができないが、`@property` で型(この場合は “)を指定することで、ブラウザが変数そのものをアニメーションさせることが可能になる。
@property --card-fan-rotation {
syntax: '<angle>';
inherits: false;
initial-value: 7deg;
}
option {
/* 変数自体をアニメーション対象にする */
transition: --card-fan-rotation 0.2s ease-out;
}この手法により、カードの広がり具合を一つの変数で管理し、CSSのみで滑らかな動きを実現している。JavaScriptによる座標計算は一切不要だという点は、パフォーマンスの観点からも非常に優れている。
4. 三角関数を用いた円形絵文字ピッカー
最後のデモは、ボタンを中心に絵文字が円形に並ぶ「ラジアルメニュー(放射状メニュー)」だ。近年のCSSに追加された数学関数の威力が発揮されている。
sin() と cos() による座標計算
要素を円形に配置するには、角度からX座標とY座標を導き出す必要がある。以前はSassの関数やJavaScriptで行っていた計算だが、現在のCSSでは `sin()`(正弦)と `cos()`(余弦)が直接使用できる。
記事によれば、`sibling-index()` で得たインデックス番号を基に角度(–angle)を算出し、それを `translate` プロパティの中で三角関数に渡している。これにより、各option要素が中心から一定の半径(–radius)の位置に自動的に配置される仕組みだ。
option {
position: absolute;
--angle: calc((sibling-index() - 2) * (360deg / (sibling-count() - 1)) - 90deg);
top: 50%;
left: 50%;
/* 三角関数で円周上の座標を決定 */
translate:
calc(-50% + cos(var(--angle)) * var(--radius))
calc(-50% + sin(var(--angle)) * var(--radius));
}三角関数を利用して、中心のボタンの周囲に要素を円形配置するレイアウトのデモ。
アクセシビリティの継承
これほどまでに見た目が変化しても、ベースは標準のselect要素である。著者は、マウス操作だけでなくキーボードによる選択や、スクリーンリーダーによる読み上げといったブラウザ標準のアクセシビリティ機能がそのまま維持される点を強調している。
独自にUIコンポーネントを自作する場合、これらのアクセシビリティ対応をゼロから実装するのは非常に困難でミスが起きやすい。標準要素を拡張するこのアプローチは、堅牢なWebサイト制作において極めて合理的な選択と言える。
5. 実務での導入とプログレッシブ・エンハンスメント
非常に魅力的な新機能だが、現時点での導入には注意も必要だ。著者のPatrick Brosset氏も述べている通り、この機能はまだChromium系ブラウザの最新バージョンに限定された実装である。
ブラウザ互換性とフォールバック戦略
未対応のブラウザ(SafariやFirefoxなど)では、`appearance: base-select` が無視される。その結果、ユーザーには「標準的な、見慣れたセレクトボックス」が表示されることになる。
これは「プログレッシブ・エンハンスメント(段階的向上)」の考え方に合致する。最新ブラウザを使うユーザーにはリッチな体験を提供し、そうでないユーザーにも基本機能を損なうことなくコンテンツを届けることができる。著者は、デモの中で `@supports` を使って未対応ブラウザ向けのメッセージを表示する工夫も凝らしている。
Web制作における今後の展望
カスタマイズ可能なselect要素が一般化すれば、重い外部ライブラリに頼ることなく、ブランドイメージに合わせたUIが構築可能になる。特に、フォームのデザイン性を重視するキャンペーンサイトや、複雑なオプション選択が必要なECサイトにおいて、その価値は計り知れない。
今後の課題は、他のブラウザエンジン(WebKit, Gecko)での実装状況だ。クロスブラウザでの対応が進めば、Web制作のワークフローにおいて「セレクトボックスのカスタマイズ」はもはや悩みの種ではなく、クリエイティビティを発揮する場へと変わるだろう。
この記事のポイント
- appearance: base-select を宣言することで、select要素の全パーツをCSSで制御可能になる。
- sibling-index() や sibling-count() を使うと、要素の順序に基づいた動的なレイアウトがノーコードで実現できる。
- Anchor Positioning により、ドロップダウンメニューをボタンの周囲の好きな場所に配置できる。
- 三角関数(sin, cos) を活用すれば、円形などの複雑な配置もCSSのみで完結する。
- 未対応ブラウザでは標準のselectとして動作するため、プログレッシブ・エンハンスメントとして導入しやすい。
出典
- CSS-Tricks「Abusing Customizable Selects」(2026年3月11日)

・ 複数業界における17年間のデジタルビジネス開発経験
・ ウェブサイト開発のためのHTML、PHP、CSS、Java等の実用的知識
・ 15ヶ国語対応の多言語SaaSの開発経験
・ 17年間にも及ぶ、Eコマース長期運営経験
・ 幅広い業界でのSEO最適化の豊富な経験
