Frontend Weekly 2025-05-02
Chrome 136 リリース
日付:2025 年 4 月 29 日
Chrome 136 がリリース。RegExp.escape
静的メソッドのベースライン入りや:visited
リンク履歴のパーティショニングなど。
RegExp.escape がベースライン入り
RegExp.escape
静的メソッドが全ブラウザで利用可能に。正規表現用のエスケープ処理が簡単にできる。渡された文字列を正規表現で利用するようなケースでは、そのまま RegExp などに渡すと危険なため対処が必要だったが、これによりモダンな環境では Web 標準の API のみで対処が可能になった。
const unsafe = "a+b*c?";const safe = RegExp.escape(unsafe);const regex = new RegExp(safe); // /a\+b\*c\?/
リンク履歴のパーティショニング
:visited
疑似クラスの履歴がサイト・フレーム単位で分離され、サイドチャネル攻撃による履歴漏洩が防止される。Chrome 136 以降、:visited
履歴はグローバルなリストではなく、リンク URL・トップレベルサイト・フレームオリジンごとに分割管理される。これにより、他サイトやサードパーティ iframe からの履歴推測が不可能になった。
同一サイト内のサブページへのリンク(セルフリンク)は:visited
として表示されるため、通常のナビゲーション体験は維持される。
a:visited { color: purple;}
パスワード認証情報のパスキーアップグレード
WebAuthn の条件付き作成リクエストで、既存のパスワード認証情報をパスキーにアップグレード可能。ユーザーの同意があればモーダルなしで自動作成できる。
const registration = await navigator.credentials.create({ mediation: 'conditional', publicKey: { challenge: /*...*/, user: /*...*/, rp: /*...*/, }});
HDR 最大輝度の制限
dynamic-range-limit プロパティで HDR コンテンツの最大輝度を制限可能。
/* HDR最大輝度の制限 */body { dynamic-range-limit: 1000;}
GSAP が完全無料化、Webflow による買収
日付:2025 年 4 月 30 日
WebflowがGSAPを買収し、全機能・全プラグインを完全無料化。これまで有料だった Club GreenSock のプラグインも商用利用含め無償提供される。
GSAP(GreenSock Animation Platform)は Web アニメーション向けのライブラリであり、Webflow は Web サイトを構築するノーコードツール。Webflow に GSAP が統合され、現在はプラグインの有効化やアニメーションのプレビューが可能。
出展:Webflow makes GSAP 100% free — plus more exciting updates
GitHub Credential Revocation API が一般公開
日付:2025 年 4 月 29 日
GitHub の Personal Access Token(PAT)が外部で漏洩した場合、所有者以外でも REST API 経由で即時無効化できる Credential Revocation API が一般公開。認証不要で利用でき、1 時間あたり 60 リクエスト・1 リクエスト最大 1000 トークンまで。失効は監査ログに記録され、所有者にはメール通知される。組織アクセス権も即時剥奪。
出展:Credential revocation API to revoke exposed PATs is now generally available
Baseline 2025 年 4 月アップデート
日付:2025 年 5 月 1 日
Baseline で次の機能が利用可能に。
- Baseline Newly
- Baseline Widely
- grid-template-columns/rows のアニメーション
- CSS ic unit:描画される「水」(CJK water ideograph, U+6C34)の文字の送り幅を基準にした単位
また Baseline のエコシステムへの展開も進められている。
出展:Baseline monthly digest April 2025 | web.dev
VSCode の Baseline 表示
VSCode Insiders が Baseline CSS/HTML 機能のツールチップ表示に対応。CSS や HTML の構文にホバーすると Baseline 対応状況が即座に分かる。
Baseline に基づいた Stylelint によるチェック
ESLint の use-baseline ルールと同等ルールを追加するstylelint-plugin-use-baselineが公開。Baseline ステータスに基づいて CSS 機能の使用状況をチェック可能。
ESLint use-baseline ルールの年指定などのサポート
ESLint use-baseline ルールが更新。
- 「newly」と「widely」だけでなく年指定が可能に
- リント対象としてセレクタをサポート
- color-mix や conic-gradient など多くの CSS 関数もサポート
- ESLint の recommended config で warn に設定
Browserslist クエリを発行できる browserslist-config-baseline
Baseline ターゲット(Widely/Newly/年指定)を Browserslist クエリに変換できる browserslist-config-baseline がリリース。PostCSS や Babel などのツールチェーンで Baseline 基準のターゲット指定が可能になる。
Deno 2.3 リリース
日付:2025 年 5 月 1 日
Deno 2.3 がリリース。deno compile
の強化やローカル npm パッケージ対応など、多数の改善。
出展:Deno 2.3: Improved deno compile, local npm packages, and more
deno compile の強化
FFI(Foreign Function Interface)や Node ネイティブアドオンに対応。これにより、ネイティブライブラリや Node プラグインを含むバイナリの生成が可能になった。不要なファイルを除外してバイナリサイズを削減できるオプションも追加。
deno compile --allow-ffi --allow-env main.ts# 不要ファイルを除外# deno compile --include folder --exclude folder/sub_folder main.ts
ローカル npm パッケージ対応
deno.json
のpatch
フィールドでローカルの npm パッケージを指定可能。npm レジストリに存在するパッケージ名であれば、ローカルのnode_modules
を参照して開発・テストができる。
{ "patch": ["../path/to/local_npm_package"]}
deno fmt の新機能
埋め込み CSS、HTML、SQL のタグ付きテンプレートリテラルも整形対象に。14 個の新しいフォーマットオプションが追加され、deno.json
で細かく整形ルールを指定できる。
{ "fmt": { "quoteProps": "asNeeded", "useBraces": "always", "trailingCommas": "always" }}
deno add のレジストリ指定
deno add
コマンドで--npm
や--jsr
フラグを使い、npm や JSR レジストリからパッケージを明示的に追加できるようになった。複数レジストリの同時指定も可能。
deno add --npm chalk react# JSRパッケージの追加deno add --jsr @std/fs# 複数レジストリを同時指定deno add --npm chalk react jsr:@std/fs