1030 文字
5 分

Frontend Weekly 2023-09-18

Chrome 117#

https://developer.chrome.com/blog/new-in-chrome-117/

New CSS features for entry and exit animations#

transition-behavior: allow-discrete で離散的な CSS プロパティのアニメーションが可能になりました。次の例では fade-out クラスが付いてから、0.25s 後に display: none に切り替わります。

.card {
transition: opacity 0.25s, display 0.25s;
transition-behavior: allow-discrete;
}
.card.fade-out {
opacity: 0;
display: none;
}

また、@starting-style ルールで、要素の初期状態を指定できるようになりました。これにより今まで animation プロパティや JavaScript などを併用する必要があったアニメーションなどを transition のみで記述できるようになります。

/* IS-OPEN STATE */
dialog[open] {
translate: 0 0;
}
/* EXIT STATE */
dialog {
transition: translate 0.7s ease-out, overlay 0.7s ease-out,
display 0.7s ease-out allow-discrete;
translate: 0 100vh;
}
/* BEFORE-OPEN STATE */
@starting-style {
dialog[open] {
translate: 0 100vh;
}
}

Array grouping#

配列のグループ化できる Object.groupBy と Map.groupBy が追加されました。

const inventory = [
{ name: "asparagus", type: "vegetables", quantity: 5 },
{ name: "bananas", type: "fruit", quantity: 0 },
{ name: "cherries", type: "fruit", quantity: 5 },
];
const result = Object.groupBy(inventory, ({ type }) => type);
/* Result is:
{
vegetables: [
{ name: 'asparagus', type: 'vegetables', quantity: 5 },
],
fruit: [
{ name: "bananas", type: "fruit", quantity: 0 },
{ name: "cherries", type: "fruit", quantity: 5 }
],
}
*/

CSS Subgrid#

Subgrid を利用すると、グリッドを入れ子にして、親行列の行や列に子行列を整列させることが出来ます。Chrome のサポートにより、ほとんどのモダンブラウザで利用できるようになりました。

.card-group {
display: grid;
gap: 16px;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
justify-content: center;
}
.subgrid .card {
display: grid;
grid-template-rows: subgrid;
grid-row: span 4;
gap: 16px;
}

子行列内の位置を揃えたいようなケースで有用です。

Next.js v13.5#

2023 年 9 月 19 日に Next.js v13.5 がリリースされました。ローカル開発のパフォーマンス改善が主な内容です。サーバーの起動や HMR の高速化、メモリ使用量の削減、next/image の改善などが行われました。

https://nextjs.org/blog/next-13-5

Nuxt 3.7#

https://nuxt.com/blog/v3-7

Web Stream とResponseのサポート、head 要素内のレンダリング最適化、Vite のアップデート及びマイナーバージョンの固定を解除、Nitro や TypeScript の設定のアップデートなどが行われました。

Bun v1.0#

https://bun.sh/blog/bun-v1.0

Bun v1.0 がリリースされました。Bun は、Node.js 互換のランタイム、トランスパイラ、バンドラ、タスクランナー、パッケージマネージャー、bun testによるテスト機能など、JavaScript/TypeScript のツールチェーンを統合したものです。

また多くのケースで、Node.js よりも高速に動作します。

Astro v3.0#

https://astro.build/blog/astro-3/

Astro は、さまざまなフレームワークやライブラリに対応した静的サイトジェネレータです。

Astro v3.0 では、レンダリング速度の向上や画像最適化に加え、View Transitions が正式に追加され、React の Fast Refresh が動作するようになりました。

Astro Studio#

https://studio.astro.build/

Astro に特化したホスティングサービスとして Astro Studio が発表されました。2024 年初頭での一般公開が予定されています。

Biome#

https://biomejs.dev/blog/annoucing-biome

いくつか事情で開発が滞っていた Rome を、コアチームがフォークし今後は Biome として開発を行なっていくことを発表しました。

Announcing native npm support on Deno Deploy#

https://deno.com/blog/npm-on-deno-deploy

Deno Deploy がnpm:を介して npm モジュールの実行をネイティブにサポートするようになりました。

v0.dev - AI tool that is effectively Midjourney for React#

Vercel が、プロンプトから shadcn/ui と Tailwind CSS を利用した React のコードが生成する AI ツールをリリースしました。

https://v0.dev/

Lodash switch to TypeScript, Bun#

Lodash が突如すべての Issue と PR を閉じたため、Lodash が終わったというような誤報がありましたが、Lodash の作者のツイートを見るに TypeScript と Bun に移行する前段階として行なったようです。

https://x.com/jdalton/status/1703136792541798429?s=20

Deno 1.37: Modern JavaScript in Jupyter Notebooks#

Deno 1.37 がリリースされました。Jupyter Notebook で Deno を利用できるようになりました。他にもテストランナーや Node.js との互換性の改善なども行われています。

https://deno.com/blog/v1.37

VSCode v1.82 - Built-in port forwarding#

VSCode v1.82 で、ngrok のようにローカルサーバーにインターネットからアクセスする機能が追加されました。

https://code.visualstudio.com/docs/editor/port-forwarding

Node.js v16 EOL#

Node.js v16 が 2023 年 9 月 11 日に EOL を迎えました。現在の LTS は v18 です。

Next.Nav#

https://www.next-nav.com/

Next.js のアプリケーション構造を可視化する VSCode 拡張。

Ladle v3#

https://ladle.dev/blog/ladle-v3

Ladle は React に特化し、パフォーマンスを重視した Storybook の代替ツールです。v3 ではデフォルトのトランスパイラが SWC に変更、CSS in JS の Zero config サポートなどが行われました。

Frontend Weekly 2023-09-18
https://blog.ohirunewani.com/series/frontend-weekly/2023-09-18/
作者
hrdtbs
公開日
2023-09-18
ライセンス
CC BY-NC-SA 4.0