Text.js 1.0
Text.js 1.0は安定版です。フレームごとに1回のconsole.logで、React 19とApp RouterのアプリをDevToolsコンソールに描画します。
本日、Web向けコンソールフレームワークText.js 1.0をリリースします。
bunx create-text-app@latestText.jsはChrome DevToolsのコンソール内でReact 19アプリをレンダリングし、レイアウト、ルーティング、フォーカス、入力、フォーム、チャート、ストリーミングMarkdownを console.log で描画します。
1.0の内容
- App Router。
layout.tsx、page.tsx、[param]、loading.tsx、error.tsx、not-found.tsx、api/*/route.tsがwindow.locationと同期します。Next.jsのApp Routerの規約に従います。 - Turbolog。 Yoga flexboxがセルグリッドをレイアウトし、型付き配列の
CellBufferがそれを保持し、ランレングスエンコーダーが1回のconsole.log(format, ...css)呼び出しに変換します。アイドル状態のフレームではコンソールを呼び出しません。 - コンポーネントキット。
Box、Text、ScrollBox、Input、Select、Tabs、Markdown、Diff、仮想化されたList、Table、Tree、チャート、ダイアログ、トースト、そしてuseKeymapによるCtrl+Kコマンドパレットを備えています。 - フレームの追記。 フレームは前のフレームの下に追記されるため、フレーム間でコンソールが一瞬空になることはありません。詳しくはTurbolog:ちらつきの解消をご覧ください。
- 右から左へのテキスト。
BidiTest.txtの全770,241ケースに合格するUAX #9の実装により、ヘブライ語とアラビア語を視覚的な順序でレンダリングし、アラビア語の字形処理にも対応します。コンソールでの右から左へのテキストをご覧ください。 - レスポンシブなコンソール。 Text.jsはドッキングされたDevToolsパネルに合わせて表示を調整し、ページのズームやツールバーの折り返しにも対応します。ドッキングされていない場合は
120×36にフォールバックします。 text run。 同じApp Routerアプリを実際のターミナルでレンダリングします。- エージェントとエディター向けのツール。
text mcpはModel Context Protocol経由でコーディングエージェントにアプリを提供し、Text.js DevTools拡張機能はコンソールの隣にパネルを追加します。eslint-plugin-textjsとVS Code拡張機能も1.0に含まれます。
1つの名前変更
フレームワークのパッケージ名は @textjs/next になりました。textjs という名前はnpmで使用済みでした。インポートを更新してください。
- import { Box, Text } from "textjs";+ import { Box, Text } from "@textjs/next";1.0.2での更新: パッケージ名は @textjs/app になり、@textjs/next は非推奨です。切り替えるには、bun remove @textjs/next && bun add @textjs/app を実行し、@textjs/app からインポートしてください。
計測値
高密度の 100×32 ダッシュボード(46テキストノード、149個の %c スパン)で、packages/core/test/perf.test.ts を使って計測しました。
| フレーム | 平均 |
|---|---|
| 全体の再描画(レイアウト、描画、エンコード) | 0.163ms |
| 1行の編集(文字入力) | 0.011ms |
| アイドル状態 | 0.000ms、コンソール呼び出し0回 |
変更のないフレームは文字列を割り当てる前に処理を返すため、アイドル状態のフレームの計測値は0.000msです。
試す
textjs.orgを開き、⌘⌥J(WindowsとLinuxではCtrl+Shift+J)を押してください。このサイトはコンソール内でText.jsアプリを実行し、ページごとに1つのビューを表示します。Playgroundにはダッシュボード、ストリーミングMarkdown、スネークゲームがあります。OpenCodeはローカルのOpenCodeサーバーに接続します。