最新のUIデザインを簡単に作成!〜Radix UIとshadcn UIの紹介

最近は、色々なAIのAPIがあって、それを使って独自のChatサービスを作って楽しむ機会が増えましたね。ただ、こういうAIを使って楽しもうと思う時に必要になるのが、UIですね。おしゃれなUIを作ろう、モダンなUIを作ろう、APIの応答待ちの間のアニメーションや画像の遅延ローダーを考えているとなかなか進まないなと感じたことはありませんか?

実際、私は自作の専用のUIライブラリを作ることも楽しいと感じる性格なので、本質はそこではないのにUIについて色々考えているうちに開発が遅々として進まないことが多いです。

そこで、今回はちょっとモダンなUIを簡単に、少し楽して用意できるサイトをご紹介します。これらのサイトを利用すれば、魅力的なUIデザインやアニメーションを手軽に導入することができます。

さっそく紹介していきましょう!

Radix UI

最近、高品質でアクセス可能なデザインシステムやWebアプリを構築するためのオープンソースのUIコンポーネントライブラリが登場しています。Radix Primitivesは、アクセシビリティ、カスタマイズ性、開発者体験に重点を置いた低レベルのUIコンポーネントライブラリです。これらのコンポーネントは、デザインシステムの基盤として使用するか、段階的に導入することができます」と感じたことはありませんか?

それでは、Radix Primitivesを紹介します。

アクセス可能性への注力

Radix Primitivesのコンポーネントは、可能な限りWAI-ARIAのデザインパターンに準拠しています。aria属性やrole属性、フォーカス管理、キーボードナビゲーションなど、アクセシビリティに関連する多くの難しい実装を処理しています。(これが意外と面倒で考え出すと納期間に合わないので結構後回しになっているんですよね。。)

スタイリングの自由度

Radix Primitivesのコンポーネントは、ゼロのスタイルで提供されており、完全なスタイリングの制御が可能です。コンポーネントは、バニラCSS、CSSプリプロセッサ、CSS-in-JSライブラリなど、任意のスタイリングソリューションでスタイリングすることができます。

カスタマイズ性の高さ

Radix Primitivesは、自分のニーズに合わせてカスタマイズできるよう設計されています。オープンなコンポーネントアーキテクチャにより、各コンポーネントのパーツに細かくアクセスできるため、ラップして独自のイベントリスナーやプロップ、参照を追加することができます。

コントロールの柔軟性

該当する場合、コンポーネントはデフォルトで非制御ですが、必要に応じて制御することもできます。すべての動作の配線は内部で処理されているため、ローカルな状態を作成する必要なく、スムーズに開発を進めることができます。

開発者体験の向上

私たちの主な目標の1つは、最高の開発者体験を提供することです。Radix Primitivesは、完全に型付けされたAPIを提供しています。すべてのコンポーネントは似たようなAPIを共有しており、一貫性のある予測可能な体験を提供します。また、レンダリングされる要素に完全な制御を与えるasChildプロップも実装しています。

段階的な導入

各プリミティブは個別にインストールできるため、段階的に導入することができます。

npm install @radix-ui/react-dialog
npm install @radix-ui/react-dropdown-menu
npm install @radix-ui/react-tooltip

プリミティブは独立してバージョン管理されており、段階的な導入をさらにサポートしています。

Shadcn UI 〜 Build your component library.

このプロジェクトは、Radix UIとTailwind CSSを使って作られた再利用可能なコンポーネントの集まりです。ただし、通常のコンポーネントライブラリとは異なり、このプロジェクトはnpmパッケージとして提供されていません。つまり、依存関係としてインストールする必要はありません

このプロジェクトでは、必要なコンポーネントを選んで、そのコードを自分のプロジェクトにコピー&ペーストするだけで利用することができます。そして、そのコードを自分のニーズに合わせてカスタマイズすることができます。

このアプローチの利点は、柔軟性とカスタマイズ性が高いことです。特定のプロジェクトに合わせてコンポーネントを選択し、必要に応じて修正やスタイリングを行うことができます。また、コードは自分のプロジェクト内に存在するため、外部の依存関係やライブラリのアップデートに影響を受ける心配もありません。

ただし、このアプローチのデメリットとしては、コードの管理や保守が必要となることが挙げられます。コンポーネントのコードがプロジェクト内に散らばるため、一貫性を保つための努力が必要となります。また、コンポーネントライブラリと比較すると、利用できるコンポーネントの数やバリエーションは制限されるかもしれません。

このプロジェクトの詳細な使い方や利点については、以下の公式ドキュメントを参照してください。

あなた自身のプロジェクトに素晴らしいコンポーネントを追加して、効率的な開発をお楽しみください。

この記事が気に入ったらサポートをしてみませんか?