
2026/03/03 4:48
**Boss‑CSS:** 私は別の「CSS‑in‑JS」ライブラリを作りました。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Boss‑CSS は、複数のスタイリング構文(prop ベース、className ベース、オブジェクトベース、および生の CSS)を統一し、インライン優先、クラス名優先、ランタイム専用、コンパイル専用などさまざまな抽出戦略をサポートする、多相的でツール非依存型の CSS‑in‑JavaScript ライブラリです。
PostCSS を介して実行され、CLI(
npx boss-css init、build、watch、compile、dev)または Babel/Webpack/Vite プラグインを必要とせずに単純な npx boss-css compile コマンドで動作します。コアはイベント駆動型のプラグインシステムであり、カスタム props、ランタイム挙動、AI ドキュメントなどすべての機能が
onBoot や onProp などのフックを持つサーバー/ブラウザ プラグインとして実装されています。ランタイム戦略フラグ(runtime.only: true)により、開発者は完全なランタイムモードまたはクライアント側で必要な CSS のみを注入しながらサーバー用に静的スタイルも生成するハイブリッドモードを有効化できます。Boss‑CSS はデザイントークン(DTCG/Style Dictionary JSON、
tokens プロパティによるローカルテーマ、および gray.600/60 のようなアルファサフィックス付きのトークン認識プロパティ)を統合しています。TypeScript 型、AI ドキュメント(LLMS.md)、一貫した使用法を強制する ESLint プラグインも生成できます。React Native をサポートし、
boss-css/native サーバープラグインでネイティブスタイル/コンポーネントをマッピングし、クロスプラットフォームのスタイリングを実現します。オプションの「Bosswind」プラグインは Tailwind のような省略形を追加しつつクラス名が衝突しないようにして、Tailwind と混在使用を可能にします。その他の機能として、グループ化セレクタ、レスポンシブ
@/at プロパティ、コンテナクエリ、クラス合成ユーティリティ($.cx、$.cv など)、および .boss.css 境界ファイルを使用したディレクトリ別に生成された CSS を分割して選択的に読み込む機能があります。Boss‑CSS は現在オープンソースのアルファリリース(GitHub: https://github.com/wintercounter/boss)であり、ウェブサイト、プレイグラウンド、およびコミュニティ主導のロードマップを備えており、バンドラーの複雑さを削減し、Web、ネイティブ、Tailwind 環境全体でデザイントークンを標準化する安定したメンテナンス製品になることを目指しています。
本文
Boss‑CSS ― さまざまな書き方でスタイルを適用できる多相的「CSS‑in‑JS」ライブラリです。
ランタイム専用、静的抽出、クラス名、オブジェクトなど、API は馴染みのある形でフレームワークに依存しません。
1. 概要
- 多相性 ― React・Solid・Next・Preact・Qwik・Stencil だけでなく、非 JavaScript 環境でも動作します。
- 複数の構文 ― prop ベース、クラス名ベース、オブジェクトベース、準備済みコンポーネント、原始的 CSS ブロック。
- 抽出戦略 ― インライン優先(デフォルト)、クラス名優先、完全ランタイム、ゼロランタイムコンパイル。
- フレームワークに縛らない ― PostCSS CLI か単純な
コマンドで実行できます。boss-css compile
2. 構文
| 構文 | 例 | 備考 |
|---|---|---|
| Prop based | | デフォルト、柔軟、完全型安全。 |
| Class‑name based | | インラインスタイルのように動作しつつ、状態とメディアをサポート。 |
| Object based | | prop スタイルと同等だがオブジェクトで記述。 |
| Prepared components | | 再利用可能なスタイル付き要素。 |
| Raw CSS blocks | \n #el .cls { … }\n`` | 一時的なルールやカスタムセレクタ用。 |
| Mixed | | 複数ソースからのスタイルを組み合わせる。 |
3. ランタイムと抽出
- インライン優先(デフォルト) ― ほとんどのスタイルはインラインに、動的状態のみ CSS に。
- クラス名優先 ― Tailwind のようにほぼすべてルールをクラス名で表現。
- 完全ランタイム ― WYSIWYG エディタやデータ駆動型スタイル向け。
- ゼロランタイムコンパイル ―
がboss-css compile
をネイティブ要素に変換し、インラインスタイルのみを残す。<$$>
# ソースをネイティブ HTML + スタイルオブジェクトへコンパイル npx boss-css compile
4. ツール
| CLI | コマンド |
|---|---|
| Init | |
| Build | |
| Watch | |
| Compile | |
| Dev server | |
5. プラグインと拡張性
- イベント駆動コア ― 機能はすべてプラグイン化。
- カスタムプロパティ ― 新しい CSS プロパティやショートハンド(例:
)を追加可能。bleed - AI 対応 ― ライブ設定からドキュメント、TypeScript 型、AI スキルを自動生成。
- Fontsource ―
でフォントをロード。boss-css/fontsource - コンテナクエリ・ブレークポイント・デザイントークン・スタイル境界などはすべてプラグインベース。
6. デザイントークン
<$$ color="primary" /> <$$ color={$$.token.color.primary} /> <div className="color:primary"></div>
DTCG/Style Dictionary JSON、ローカルテーマ(
tokens={{...}})、アルファ接尾辞(gray.600/60)に対応。
7. TypeScript
に型安全な props を生成。.bo$$/index.d.ts- トークンと準備済みコンポーネントのオートコンプリート。
- React Native 対応時はネイティブランタイム型も付与。
8. その他機能
| 機能 | 説明 |
|---|---|
| Spread helpers | |
| Target children | |
| Variants & composition | あるいは |
| Server‑first | Next.js、SvelteKit 等で動作。 |
| React Native | 同一 API でネイティブスタイル () を出力。 |
| Tailwind companion | Boss クラス名は衝突せず、 プラグインで Tailwind ライクショートハンドを追加可能。 |
9. よくある落とし穴
- クラス名解析は静的文字列のみ対応。
- ランタイム専用モードではクラス名解析が無効化される。
- コンパイルモードは現在 JSX と主要抽出戦略を対象にしている。
10. Linting
npx boss-css lint
API の誤使用を防ぎ、スタイル規約の一貫性を保つ。
11. 締めくくり
Boss は従来型 CSS‑in‑JS とユーティリティクラス生成、ランタイム専用アプローチの中間に位置します。
「CSS‑in‑JS」という呼び名はその多様性を示すものであり、きれいな作者体験と任意のビルド戦略への適応が可能です。
リンク
- 公式サイト – https://bosscss.com
- リポジトリ – https://github.com/wintercounter/boss
- Playground – https://bosscss.com/playground
Vite + React 環境で上記機能を試すには Playgroud をご利用ください。
楽しいスタイリングを!