フロントエンド開発をしていると、UIライブラリの依存関係に疲れることってありませんか。npm installのたびに何百ものパッケージがインストールされて、node_modulesがどんどん膨れ上がっていく。そんな状況にうんざりしている開発者に、ちょっと面白いプロジェクトを見つけたので紹介してみます。

Oatとは?8KBで動く超軽量UIコンポーネントライブラリ

Oatは、CSS 6KB + JavaScript 2.2KB(minified + gzipped)という超軽量のHTML UIコンポーネントライブラリです。依存関係はゼロ。フレームワークも不要。CSSとJSファイルを読み込むだけで、見た目の整ったWebアプリケーションが作れるようになっています。

2026年2月にHacker Newsで話題になり、「Node.jsエコシステムのトラウマ被害者向け」という作者の自虐的な紹介文が共感を集めていました。正直、わかるな〜と思ってしまいましたね。

Oatが注目される3つの理由

セマンティックHTMLをそのままスタイリング

Oatの最大の特徴は、<button><input><dialog>などのネイティブHTML要素を直接スタイリングする点です。クラス名を一切使いません。HTMLのセマンティックな構造をそのまま活かすアプローチなんですよね。

これは単なるスタイルの話ではなく、「正しいHTMLを書くことを強制する」という設計思想の表れでもあります。role="button"のようなARIA属性も適切に処理されるので、アクセシビリティも自然と向上します。

ビルドプロセス不要

Oatを使うのに必要なのは、CSSファイルとJSファイルをHTMLに読み込むことだけ。webpack、Vite、Rollupなどのバンドラーは一切不要です。ブラウザの標準機能だけで完結するのは、シンプルなプロジェクトにとって大きなメリットですね。

動的なコンポーネント(モーダル、タブなど)はWeb Componentsで実装されていて、最小限のJavaScriptで動作します。フレームワークロックインがないのも安心です。

shadcn風のモダンな見た目

「軽量=ダサい」というわけではありません。Oatのデザインはshadcn/uiの影響を受けており、かなり洗練された見た目になっています。ダークテーマもdata-theme="dark"bodyに追加するだけで切り替わります。

カスタマイズもCSS変数を上書きするだけなので、ブランドカラーに合わせた調整も簡単です。

Oatが向いているユースケース

どんなプロジェクトにもOatが最適というわけではありません。向き不向きがあります。

向いているケースとして、社内ツールやプロトタイプ、個人プロジェクト、静的サイトのUIが挙げられます。ビルド環境を整えるまでもないけど、見た目はちゃんとしたいというシーンですね。管理画面やダッシュボードにも良さそうです。

一方、大規模なSPAや複雑な状態管理が必要なアプリケーションには向きません。そういった場面ではReactやVueのエコシステムの方が生産性は高いでしょう。

Oatと他のCSSフレームワークの比較

似たコンセプトのライブラリと比較してみると、Oatの立ち位置がわかりやすくなります。

Tailwind CSSはユーティリティクラスベースで、自由度は高い反面、HTMLがクラスだらけになりがちです。ビルドプロセスも必要。Oatはその対極にあるアプローチですね。

Pico CSSはOatと近い思想を持つライブラリで、クラスレスでHTMLをスタイリングします。ただ、Oatの方がファイルサイズが小さく、Web Components対応のインタラクティブコンポーネントがある点で差別化されています。

Bootstrapは言わずと知れた定番ですが、160KB以上あるので、Oatの20倍近いサイズ感になります。機能は豊富ですが、「重い」と感じる場面は増えてきているかもしれません。

実際に使ってみるには

Oatの導入は驚くほど簡単です。HTMLファイルの<head>にCSSとJSのリンクを追加するだけ。GitHubリポジトリからファイルをダウンロードするか、CDN経由で読み込めます。

NPMレジストリからもインストール可能ですが、Oatの思想的にはCDNか直接ダウンロードの方がしっくりきますね。

まとめ:「足りる」という選択肢の価値

Oatは、フロントエンド開発の複雑さに疲れた人への一つの答えだと感じました。8KBで必要十分なUIが手に入るなら、それで十分なプロジェクトは案外多いのではないでしょうか。

「最新のフレームワークを追いかけ続ける」のとは真逆の、「標準技術だけで長く使えるものを選ぶ」というアプローチ。Vimを使い続ける開発者と通じるものがありそうです。気になった方は、まず公式サイトのデモを触ってみることをおすすめします。