Next.jsとshadcn/UIでLinear風のインターフェースを構築する方法
Linearのインターフェースは長年にわたりプロジェクト管理ツールのゴールドスタンダードとして君臨してきました。高速でミニマル、考え抜かれたキーボードナビゲーション、デフォルトのダークテーマ。多くのウェブ開発者が自分の製品や個人プロジェクトで同様のUXを再構築したいと思うのは当然のことです。
最近、フランスの開発者ln-dev7によるオープンソースのCircleリポジトリを見つけました。Next.js、TypeScript、shadcn/UIで構築されたタスク、プロジェクト、チーム追跡のダッシュボードです。このプロジェクトはGitHubで3000スター以上を獲得しており、それには十分な理由があります。
なぜ別のダッシュボードテンプレートが必要なのか
複雑な管理パネルを構築しようとしたことがある人なら、その手順を知っているでしょう。プロジェクトの基本構造を作成し、サイドバーを設定し、フィルター付きテーブルを構築し、タスクカードをレイアウトし、テーマ切り替えを設定し、モバイル画面対応の調整を行う必要があります。結局、ビジネスロジックよりも基本的なレイアウトに半分以上の時間が費やされます。
CircleはLinearの製品システムから直接引っ張ってきたような готовый UIスケルトンを提供します。以下が含まれます:
- ステータスと優先度でフィルタリングできるタスクリスト表示ページ
- プロジェクトとチームを管理するセクション
- 考え抜かれたダークモードとクリーンなタイポグラフィ
- Tailwind CSSベースのすぐに使えるUIコンポーネント
ただし、制限を理解することも重要です。このリポジトリにはフロントエンドのみが含まれており、データベースを備えた完全なバックエンドではありません。すべてのデータ処理はクライアント状態とモックに依存しています。チーム向けのすぐにデプロイできるサービスが必要な場合、Circleはそのままでは動作しません。しかし、自分のアプリケーションの出発点としては優れたツールです。
中身を見てみる
著者は車輪の再発明をせず、馴染みのあるスタックを採用しました。
核となるのはApp Routerを備えたNext.js Reactフレームワークです。スタイリングはすべてTailwind CSS経由で行われ、コンポーネントはshadcn/UI上に構築されています。shadcn/UIに馴染みがない方のために説明すると、これはMaterial UIやAnt Designのような従来のコンポーネントライブラリではありません。重たい依存関係をインストールする代わりに、必要なコンポーネントのソースコードを直接プロジェクトツリーにコピーし、自由にカスタマイズできます。
コードはTypeScriptで書かれています。ディレクトリ構造はNext.jsの標準的な形式に従っています:
appフォルダにはルーティングとアプリケーションページが含まれますcomponentsフォルダには再利用可能なインターフェース要素とshadcn/UIブロックが保持されますlibフォルダにはスタイル操作用のユーティリティとヘルパーが含まれていますpublicフォルダには静的なアイコンとグラフィックが保存されます
このため、プロジェクトのカスタマイズは容易です。カラーアクセントを変更したいですか?Tailwindの変数を編集してください。新しいタイプのタスクテーブルを追加する必要がありますか?既存のReactコンポーネントをコピーしてpropsを変更してください。
クイックスタートとプロジェクトでの作業
数分でローカルにプロジェクトを起動できます。Node.jsとpnpmパッケージマネージャーが必要です。
まず、リポジトリをクローンします:
依存関係をインストールし、開発サーバーを起動します:
その後、 앱はhttp://localhost:3000で利用可能になります。最初に気づくのは、そのスムーズさです。セクション間の遷移は遅延なく行われ、コンポーネントは整然と配置されています。
Circleを実際のサービスの基盤として使用する予定なら、UIにバックエンドを接続する必要があります。最もシンプルな方法は、Supabase、PostgreSQL対応のPrisma、またはNext.jsのServer Actionsに接続することです。ローカルのモックをデータベースへのクエリに書き直し、認証を設定する必要があります。
実用的な価値とは
Circleが時間を節約できる2つの主なシナリオを強調します。
1つは、個人プロジェクトやプロトタイプのクイックスタートです。タスクトラッカー、CRMシステム、クライアント向けの内部管理パネルを構築している場合、UIレイアウトは通常、何日も作業を消費します。Circleでは、適切な間隔と適切なカラーパレットを備えた既製のデザインが得られます。
2つ目に、shadcn/UIとNext.jsのアプローチを学ぶための堅実なコードベースです。著者がどのようにレイアウトを整理し、複雑なテーブルを構築し、インターフェースコンポーネントを設定するかを確認できます。
不足しているもの
リポジトリのREADMEは非常に簡素です。アーキテクチャの説明や拡張のガイドが実質的にありません。コード自体はクリーンで読みやすいですが、すべて自分で理解する必要があります。
ここでの基本的なコントロールは標準的なshadcn/UIパターンに依存していることも覚えておいてください。Kanbanボードの複雑なドラッグ&ドロップロジックやWebSocketによるリアルタイム更新が必要な場合、これらすべてをゼロから構築および設定する必要があります。
Circleは、Linearの美学とNext.js + Tailwind CSSスタックを好む人にとって堅実なオープンソースのインターフェーステンプレートです。このプロジェクトはそのままのタスクトラッカーであるとは主張していませんが、自分のフロントエンドの出発点としては、繰り返しのレイアウト作業から何十時間も節約できます。
タスク追跡を伴う新規プロジェクトを計画している場合、または新しいshadcn/UIテンプレートを探している場合は、ぜひリポジトリを確認してください。
関連プロジェクト