Frontend Weekly 2024-12-19
Safari 18.2
2024 年 12 月 11 日に、Safari 18.2 がリリースされた。
https://webkit.org/blog/16301/webkit-features-in-safari-18-2/
Cross-document View Transition
ドキュメント間のビュー遷移の動作を指定するアットルール@view-transition
や、
pageswap
とpagereveal
などのイベントが追加され、ドキュメント間のビュー遷移をコントロール出来るようになった。
また、遷移させる際に識別名を与える view-transition-name にauto
が指定できるようになった。
text-box
text-box-edge、text-box-trim 及び、これらのショートハンドである text-box のサポートが追加された。 要素の上部を文字列のキャップラインでトリミングするといったことが出来る。
現在は、Safari でのみ利用できる。
Scrollbar
scrollbar-gutter と scrollbar-width のサポートが追加された。これらを利用すると、スクロールバーの余白の確保の仕方(auto、stable、both-edges など)や、スクロールバーの幅の傾向(auto、thin、none)を指定できる。
scrollbar-gutter については、次の記事が詳しい。
https://blog.ohirunewani.com/posts/scroll-bar-type/
また、文字列をターゲットにしたスクロールを可能にする text fragments の機能、及びスクロールを行う text fragments を装飾できる::target-text
疑似要素のサポートも追加された。
Promise.try
任意の関数を Promise のセマンティックスで簡単に扱えるPromise.try
がサポートされた。
Promise.try(func());
@page
印刷時のページの大きさや余白を指定できるアットルール@page
が追加された。
次の記事が詳しい。
New to the web platform in December
Safari 18.2 により、@page
やscrollbar-gutter
、::target-text
などが Baseline に入っている。
https://web.dev/blog/web-platform-12-2024?hl=en
Cross-document view transitions や Promise.try は、Firefox で利用できない。
Next.js 15.1
Next.js 15.1 がリリースされた。
https://nextjs.org/blog/next-15-1
React 19 がリリースされ、Pages Router の場合は React 19 が利用されるようになった。App Router の場合は、組み込みの React Canary が引き続き利用される。
after API
レスポンスや事前レンダリングの完了後にタスクを実行できる after API が安定版になった。 これを利用することで、レスポンスをブロックせずにログ記録や分析を行える。
https://nextjs.org/docs/app/api-reference/functions/after
import { after } from "next/server";import { log } from "@/app/utils";
export default function Layout({ children }) { // Secondary task after(() => { log(); });
// Primary task return <>{children}</>;}
ESLint v9.17.0
ESLint v9.17.0 がリリースされた。
https://eslint.org/blog/2024/12/eslint-v9.17.0-released/
no-unused-vars が未使用の変数宣言の削除を提案するようになった。
Vercel TypeScript SDK
Vercel API を操作できる TypeScript SDK がリリースされた。
https://vercel.com/changelog/introducing-the-vercel-typescript-sdk
State of JS 2024
State of JS 2024 の結果が公開された。