Frontend Weekly 2023-11-10
Chrome 119
2023 年 10 月 31 日に Chrome 119 がリリースされました。
https://developer.chrome.com/blog/new-in-chrome-119/
Chrome 119 では、Chrome 114 から新規または更新した Cookie に適用されていた有効期限の 400 日制限が、全ての Cookie に対して遡って適用されるようになりました。Chrome は、2023 年第 1 四半期から第 3 四半期にかけて全てのユーザーに対してサードパーティ Cookie を無効化していく予定です。
https://developer.chrome.com/ja/blog/cookie-countdown-2023oct/
user-valid, user-invalid 擬似クラス
ユーザー操作後に値の検証結果に応じて有効及び無効と判断されたフォーム関連要素にマッチする擬似クラス :user-valid
と:user-invalid
が Chrome でサポートされました。これによりメジャーな環境の全てで:user-valid
と:user-invalid
が利用できるようになりました。
https://developer.mozilla.org/ja/docs/Web/CSS/:user-valid
https://developer.mozilla.org/ja/docs/Web/CSS/:user-invalid
:valid
や:invalid
と異なりユーザーの操作後にのみマッチするため、例えば required 属性を持っている要素では初期値がない場合、最初から:invalid
が効いてしまいますが、:user-invalid
ではユーザーが操作するまで適用されません。
input:user-invalid { border-color: red;}input:user-valid { border-color: green;}
CSS Relative colors
CSS Relative colors syntax を利用すれば、特定の色から別の色を導出することが出来ます。Chrome 以外では、Safari と Edge で利用できます。
https://developer.chrome.com/blog/css-relative-color-syntax/
色空間(from 色 ...指定された色空間における色のパラメータ [/ 透過度])rgb(from green r g b)hsl(from green h s l)hsl(from green h s l / alpha)
この機能を利用すれば、例えば特定の色からパケットを生成したり、コントラストが十分に保たれた文字色を CSS のみで生成することが出来ます。
/* トライアド配色 */var(--base-color)oklch(from var(--base-color) l c calc(h - 120)oklch(from var(--base-color) l c calc(h + 120)/* 単色パレット */var(--base-color)oklch(from var(--base-color) calc(l - 10) c h)oklch(from var(--base-color) calc(l - 20) c h)oklch(from var(--base-color) calc(l - 30) c h)oklch(from var(--base-color) calc(l - 40) c h)/* 類似パレット */var(--base-color)oklch(from var(--base-color) l c calc(h + 45))oklch(from var(--base-color) l c calc(h + 90))oklch(from var(--base-color) l c calc(h + 135))/* 色の反転 */rgb(from var(--base-color) calc(1 - r) calc(1 - g) calc(1 - b));/* 補色 */hsl(from var(--base-color) calc(h + 180) s l)
WasmGC
WebAssembly のガベージコレクション機能 WasmGC がサポートされました。これにより GC 機能が含まれるプログラミング言語を Wasm に移植する際に GC を移植する必要がなくなります。
Remix 2.2.0 ❤️ Vite
2023 年 10 月 31 日に Remix 2.2.0 がリリースされました。
https://remix.run/blog/remix-heart-vite
Remix はコンパイラではなく、Vite プラグインとして使えるようになりました。
import { unstable_vitePlugin as remix } from "@remix-run/dev";import { defineConfig } from "vite";
export default defineConfig({ plugins: [remix()],});
これにより Remix は Vite のエコシステムを利用できるようになりました。
Deno 1.38
2023 年 11 月 2 日に Deno 1.38 がリリースされました。
ドキュメントを静的な HTML として生成できるようになりました。
deno doc --html
HMR のサポートが入りました。このバージョンから細かな unstable flag が導入されています。今後、全ての不安定な機能を有効にする--unstable
は非推奨になります。
deno run --unstable-hmr mod.ts
Npm や Yarn によってnode_modules
にインストールされたパッケージを利用できるようになりました。
{ "unstable": ["byonm"]}
Dotenv ファイルの読み込みがサポートされました。
deno run --env
他、EventSource API のサポートなどが含まれています。
ESLint v8.53.0
2023 年 11 月 3 日にリリースされた ESLint v8.53.0 でフォーマット関連のルールが全て非推奨になりました。
https://eslint.org/blog/2023/11/eslint-v8.53.0-released/
廃止されるルールや、廃止するモチベーションについては次の記事に書かれています。代替手段として Prettier の使用やESLint Stylisticが紹介されています。
https://eslint.org/blog/2023/10/deprecating-formatting-rules/
Astro 3.4: Page Partials
2023 年 10 月 26 日に Astro 3.4 がリリースされました。
https://astro.build/blog/astro-340/
ページコンポーネントを部分的な HTML として利用できる Page Partials 機能が追加されました。
<form hx-post="/partials/todos" hx-target="#todo-list" hx-swap="afterbegin"> <input type="text" id="txtTodo" name="todo" /></form><ul id="todo-list"></ul>
// pages/partials/todos.astro---export const partial = true;
const formData = await Astro.request.formData();const todo = formData.get("todo")?.toString();---<li>{todo}</li>
https://stackblitz.com/edit/withastro-astro-snxhyg?file=src%2Fpages%2Fpartials%2Ftodos.astro
他、Image コンポーネントのパフォーマンス改善、パフォーマンスやアクセシビリティに関する情報を表示してくれる Dev Overlay 機能が実験的に追加されました。
Astro 3.5: i18n Routing
2023 年 11 月 8 日に Astro 3.5 がリリースされました。
https://astro.build/blog/astro-350/
実験的な機能として多言語対応を行える i18n Routing API が追加されました。この機能を有効化するとAstro.preferredLocale
とAstro.preferredLocaleList
が利用できるようになります。
import { defineConfig } from "astro/config";
export default defineConfig({ experimental: { i18n: { defaultLocale: "en", locales: ["en", "es", "pt-br"], }, },});
他、プリフェッチのオプトイン機能化や、Qwik のサポートなどが入っています。
Turbosnap (beta) - Chromatic
Storybook を利用した VRT を実行できるサービス Chromatic から、変更があったコンポーネントだけをテストできる機能 TurboSnap がベータリリースされました。TurboSnap を利用すればスナップショットの数が減り、ビルド時間の短縮につながります。