>>652
専ブラ使えば?w 5chはおじ🤓しかいないらしいけどなw
Google Chrome 拡張機能 29 ※どんぐり有
656名無しさん@お腹いっぱい。 警備員[Lv.2][新芽] (ワッチョイ e5e5-bJtN)
2026/06/16(火) 22:59:55.31ID:KQBXu3s80657名無しさん@お腹いっぱい。 警備員[Lv.0][新芽] (ワッチョイ 818a-Efm2)
2026/06/17(水) 11:44:59.16ID:9MTGkDyr0 ダークモードとライトモードで拡張機能のアイコンを切り替えようと思ってAIに相談したら、色々頑張って試してみてくれたけど結局無理みたいだった
まあ理由もわからなくはないけど公式のアイコンではやってるのがずるく感じる
まあ理由もわからなくはないけど公式のアイコンではやってるのがずるく感じる
658名無しさん@お腹いっぱい。 警備員[Lv.13][苗] (ワッチョイ 2ed4-F/2s)
2026/06/17(水) 11:55:53.68ID:LFGLLykG0 >>657
prefers-color-schemeみてchrome.browserAction.setIconで指定するだけだぞ
prefers-color-schemeみてchrome.browserAction.setIconで指定するだけだぞ
659名無しさん@お腹いっぱい。 警備員[Lv.4][新芽] (ワッチョイ 818a-Efm2)
2026/06/17(水) 13:43:53.05ID:9MTGkDyr0 OS自体のライトモードとダークモードの切り替えならそのノリで対応できると思う
Chromeのテーマの切り替えだとループ回して何秒に一回監視とかいうアホなことやらないと追従しない
もちろんツールバー背景だけカスタムで暗い色とかだと全く無理
結局、どっちでも見えるアイコン用意しろ、になっちゃう
Firefoxだとmanifestに書いてるだけで切り替え出来るらしいけどね
Chromeのテーマの切り替えだとループ回して何秒に一回監視とかいうアホなことやらないと追従しない
もちろんツールバー背景だけカスタムで暗い色とかだと全く無理
結局、どっちでも見えるアイコン用意しろ、になっちゃう
Firefoxだとmanifestに書いてるだけで切り替え出来るらしいけどね
660名無しさん@お腹いっぱい。 警備員[Lv.4][新芽] (ワッチョイ 818a-Efm2)
2026/06/17(水) 13:46:42.40ID:9MTGkDyr0 断定口調で書いたけど素人なので、突破できる方法もあるかも
661名無しさん@お腹いっぱい。 警備員[Lv.9][新] (ワッチョイ 451b-5XrM)
2026/06/17(水) 18:16:59.99ID:RgtXFnJA0662名無しさん@お腹いっぱい。 警備員[Lv.0][新芽] (ワッチョイ 3dc1-rqZN)
2026/06/17(水) 23:27:32.94ID:WYTo9SUW0 頭が悪いのかもしれない
663567 警備員[Lv.0][新芽] (ワッチョイ 3d96-d+y+)
2026/06/20(土) 14:04:19.78ID:PAJWywKD0 >>657
これ ??
できるけどChromeがmanifestだけで自動的にライト/ダーク用アイコンを
切り替えてくれる仕組みは弱い/基本ない、と見た方がいい。
実装としては、JSでテーマを判定して chrome.action.setIcon() でツールバーアイコンを差し替える 形になる。
Chrome公式では、拡張機能のツールバーアイコンは action.default_icon で指定でき、
さらに chrome.action.setIcon() でプログラムから変更できると説明されている。
また、prefers-color-scheme はユーザーがライト/ダーク配色を要求しているかを検出するための仕組みで、
OS設定やユーザーエージェント設定を反映する。
これ ??
できるけどChromeがmanifestだけで自動的にライト/ダーク用アイコンを
切り替えてくれる仕組みは弱い/基本ない、と見た方がいい。
実装としては、JSでテーマを判定して chrome.action.setIcon() でツールバーアイコンを差し替える 形になる。
Chrome公式では、拡張機能のツールバーアイコンは action.default_icon で指定でき、
さらに chrome.action.setIcon() でプログラムから変更できると説明されている。
また、prefers-color-scheme はユーザーがライト/ダーク配色を要求しているかを検出するための仕組みで、
OS設定やユーザーエージェント設定を反映する。
664567 警備員[Lv.0][新芽] (ワッチョイ 3d96-d+y+)
2026/06/20(土) 14:05:07.89ID:PAJWywKD0 その2
例えばこういう感じ。
-----------------------
// popup.js や options.js など、window がある拡張ページ側で動かす
const mq = window.matchMedia("(prefers-color-scheme: dark)");
function applyIcon() {
const dark = mq.matches;
chrome.action.setIcon({
path: {
"16": dark ? "icons/icon-dark-16.png" : "icons/icon-light-16.png",
"32": dark ? "icons/icon-dark-32.png" : "icons/icon-light-32.png",
"48": dark ? "icons/icon-dark-48.png" : "icons/icon-light-48.png",
"128": dark ? "icons/icon-dark-128.png" : "icons/icon-light-128.png"
}
});
}
applyIcon();
mq.addEventListener("change", applyIcon);
-----------------------
例えばこういう感じ。
-----------------------
// popup.js や options.js など、window がある拡張ページ側で動かす
const mq = window.matchMedia("(prefers-color-scheme: dark)");
function applyIcon() {
const dark = mq.matches;
chrome.action.setIcon({
path: {
"16": dark ? "icons/icon-dark-16.png" : "icons/icon-light-16.png",
"32": dark ? "icons/icon-dark-32.png" : "icons/icon-light-32.png",
"48": dark ? "icons/icon-dark-48.png" : "icons/icon-light-48.png",
"128": dark ? "icons/icon-dark-128.png" : "icons/icon-light-128.png"
}
});
}
applyIcon();
mq.addEventListener("change", applyIcon);
-----------------------
665567 警備員[Lv.0][新芽] (ワッチョイ 3d96-d+y+)
2026/06/20(土) 14:05:47.47ID:PAJWywKD0 その3
manifest.json 側は、初期アイコンを普通に置いておく。
-----------------------
{
"manifest_version": 3,
"name": "Example",
"version": "1.0.0",
"action": {
"default_icon": {
"16": "icons/icon-light-16.png",
"32": "icons/icon-light-32.png",
"48": "icons/icon-light-48.png",
"128": "icons/icon-light-128.png"
}
}
}
-----------------------
manifest.json 側は、初期アイコンを普通に置いておく。
-----------------------
{
"manifest_version": 3,
"name": "Example",
"version": "1.0.0",
"action": {
"default_icon": {
"16": "icons/icon-light-16.png",
"32": "icons/icon-light-32.png",
"48": "icons/icon-light-48.png",
"128": "icons/icon-light-128.png"
}
}
}
-----------------------
666567 警備員[Lv.0][新芽] (ワッチョイ 3d96-d+y+)
2026/06/20(土) 14:06:48.11ID:PAJWywKD0 その4
注意点は、MV3のbackground service workerでは window.matchMedia() が使えないこと。
matchMedia() はWindowのAPIなので、popup/options/通常の拡張ページなど
windowがある場所で判定するのが素直。
なので結論としては、
可能。ただし「manifestで完全自動」ではなく、prefers-color-scheme を見てchrome.action.setIcon()で差し替える。
なお、これはOS/Chromeのライト・ダーク設定に寄せる方法で、ユーザーが独自のChromeテーマを入れて
ツールバー背景色だけ変えている場合まで完全には判定できない。
Chrome自体はライト/ダーク/デバイス設定に追従する表示モードを持っている。
注意点は、MV3のbackground service workerでは window.matchMedia() が使えないこと。
matchMedia() はWindowのAPIなので、popup/options/通常の拡張ページなど
windowがある場所で判定するのが素直。
なので結論としては、
可能。ただし「manifestで完全自動」ではなく、prefers-color-scheme を見てchrome.action.setIcon()で差し替える。
なお、これはOS/Chromeのライト・ダーク設定に寄せる方法で、ユーザーが独自のChromeテーマを入れて
ツールバー背景色だけ変えている場合まで完全には判定できない。
Chrome自体はライト/ダーク/デバイス設定に追従する表示モードを持っている。
667名無しさん@お腹いっぱい。 警備員[Lv.6][新] (JP 0H8f-S/Q7)
2026/06/22(月) 04:52:58.26ID:6lsjxqFNH AIに聞いたのかな?
この中にもだめな理由がちらっと書かれてるけど、実際にやってみたら何がだめなのかわかるよ
拡張機能を起動させるためのボタンのアイコンだから、拡張機能を起動させてない状態でスクリプトが働かないといけないんだよね
この中にもだめな理由がちらっと書かれてるけど、実際にやってみたら何がだめなのかわかるよ
拡張機能を起動させるためのボタンのアイコンだから、拡張機能を起動させてない状態でスクリプトが働かないといけないんだよね
668567 警備員[Lv.0][新芽] (ワッチョイ 5fa7-e/Io)
2026/06/23(火) 02:29:37.29ID:D0aLv24K0レスを投稿する
ニュース
- 【神戸】冷凍庫から損壊遺体、死亡推定時期は2011年 身元は元住人の男性 胴体で切断、殺人視野に捜査 [煮卵★]
- 【株価】日経平均、一時2000円超の下落…前日までの8連騰で過熱感 [蚤の市★]
- 【W杯】「2位通過、地獄じゃね?」日本、決勝T“暫定版”に衝撃「ブラジル→フランス→イングランド…」★2 [ネギうどん★]
- 「心のない社会つくる足がかり」社民・ラサール氏 国旗損壊罪法反対「モノ言えなくなる」 [少考さん★]
- 「こんな新聞を信じられる訳がない」朝日新聞がSNS投稿で初の開示請求、投稿者を特定…虚偽画像を問題視 [少考さん★]
- 高市首相、中傷動画の追及かわす 答弁準備で「睡眠取れず」―野党反発、秘書招致を要求 ★2 [蚤の市★]
- 高市、為替介入 [709039863]
- 「柿の種」「ハッピーターン」、値上げ😫 [583597859]
- イギリス国民「EUに戻りたい…」 [167472944]
- 【悲報】鹿児島の男児行方不明事件、雲行きが怪しくなり始める・・・😨 [398059782]
- 【高市悲報】リニア静岡工区、いよいよ来月着工へ🥹 [616817505]
- ドミノピザ終了へ、持ち帰り半額廃止して値上げへ「安売りブランドから脱却」 [709039863]