TOOLS BOX

Next.js / React / TypeScript の実践的なコードサンプル集

99

レビュー済み初級

CSS Modules でスコープ付きスタイルのコンポーネントを作る

CSS Modules を使い、クラス名の衝突を避けたスコープ付きスタイルでコンポーネントを実装する例。Tailwind との使い分けと composes による再利用パターンも示す。

nextjsstylingui-component
レビュー待ち中級

React Testing Library でコンポーネントをテストする

render / screen / userEvent を使い、コンポーネントの表示・インタラクション・非同期更新を単体テストする例。jest-custom-hook-test のフック版に対するコンポーネント版。

nextjstesting
レビュー済み中級

Jest + React Testing Library でカスタムフックをテストする

renderHook を使ってカスタムフックの動作を単体テストする例。act でステート更新をラップし、非同期フックの検証パターンも示す。

nextjstesting
レビュー待ち中級

Jest の useFakeTimers でデバウンス・タイマー処理をテストする

jest.useFakeTimers() と jest.advanceTimersByTime() を使って、setTimeout / setInterval / デバウンス関数の時間依存処理を同期的にテストする例。

nextjstesting
レビュー済み中級

Jest で fetch をモックしてクライアントのデータ取得ロジックをテストする

jest.spyOn(global, 'fetch') または global.fetch のモック置換で、クライアント側のデータ取得関数の成功・エラー・ネットワーク障害ケースをテストする例。

nextjstesting
レビュー待ち中級

Jest でモジュールをモックして単体テストを書く

jest.mock でモジュール・外部依存を差し替え、spy 関数で呼び出しを検証する例。API クライアントや Next.js の navigation モジュールをモックするパターンを示す。

nextjstesting
レビュー待ち中級

Jest で Next.js Route Handler をテストする

Request / Response オブジェクトを直接渡して Route Handler 関数をユニットテストする例。GET / POST それぞれのハッピーパスとエラーパスを検証する。

nextjstestingapi
レビュー待ち初級

Jest でスナップショットテストを書いてUI回帰を防ぐ

toMatchSnapshot / toMatchInlineSnapshot でコンポーネントの構造的回帰を検出する例。スナップショットの更新・管理方法とインラインスナップショットの使い分けも示す。

nextjstesting
レビュー待ち中級

Next.js Route Handler でエラーレスポンスを型安全に統一する

Route Handler のエラーレスポンスを型付きで統一し、400 / 404 / 500 を一貫して扱うラッパー関数を実装する例。try/catch パターンとエラー型の整理も示す。

nextjsapierror-handling
レビュー待ち中級

Next.js Route Handler でサーバーサイドキーワード検索を実装する

クエリパラメータで受け取ったキーワードを Route Handler でサーバーサイドフィルタし、ページネーション付きで返す例。クライアントのデバウンス入力と合わせた構成も示す。

nextjssearch-filterapi
レビュー済み初級

Next.js Route Handler でクエリパラメータを使ってソートを実装する

sort キーと order(asc/desc)をクエリパラメータで受け取り、Route Handler でデータをソートして返すパターンと、クライアント側のソートボタン UI を示す例。

nextjsapisearch-filter
レビュー済み初級

Next.js で認証状態に応じてページを redirect する

Server Component や Route Handler でセッションの有無を確認し、認証済みユーザーをダッシュボードへ、未認証ユーザーをログインページへ redirect するパターンの例。

nextjsauthenticationrouting
レビュー済み中級

Next.js で fetch キャッシュと revalidateTag を使ったキャッシュ制御

fetch の cache オプション(force-cache / no-store)と revalidateTag を組み合わせてデータ単位でキャッシュを制御する例。revalidatePath との使い分けも示す。

nextjsapiperformance
レビュー待ち中級

Next.js の cookies() で httpOnly セッション Cookie を管理する

next/headers の cookies() を使い、ログイン時に httpOnly セッション Cookie を発行し、Server Component・Route Handler・Middleware で読み書きする例。

nextjsauthenticationapi
レビュー待ち中級

Next.js Route Handler でファイルアップロードを受信・保存する

Route Handler で multipart/form-data を受信し、アップロードされたファイルをサーバー側に保存する例。ファイルサイズ・拡張子バリデーションパターンも示す。

nextjsapifile-upload
レビュー待ち初級

Next.js の global-error.tsx でルートレベルのエラーをキャッチする

app/global-error.tsx を使い、ルートレイアウトを含む最上位のランタイムエラーをキャッチして reset ボタンで回復する実装例。error.tsx との責務の違いも示す。

nextjserror-handling
レビュー済み中級

Next.js Intercepting Routes で URL 付きモーダルを実装する

Intercepting Routes((..) 記法)と Parallel Routes を組み合わせ、リスト画面の URL を維持したままモーダルで詳細を表示する実装例。

nextjsroutingui-component
レビュー済み初級

Next.js で not-found.tsx を使ってカスタム 404 ページを作る

notFound() 関数と not-found.tsx を組み合わせてカスタム 404 ページを実装する例。動的ルートでリソースが存在しない場合の処理パターンを示す。

nextjsroutingerror-handling
レビュー済み中級

React 19 の useOptimistic で楽観的 UI 更新を実装する

React 19 の useOptimistic を使い、Server Actions の完了を待たずに UI を即時更新し、失敗時に自動ロールバックする楽観的更新を実装する例。

nextjsui-componentperformance
レビュー済み中級

Next.js App Router で URL 同期ページネーションを実装する

searchParams を受け取る Server Component と Link コンポーネントを使い、URL クエリ(?page=N)と同期したページネーションを実装する例。

nextjspaginationrouting
レビュー済み中級

Next.js App Router の layout で認証チェックして配下ページを保護する

App Router の layout.tsx でセッション Cookie を確認し、未認証ユーザーをログインページへ redirect することで配下のすべてのページを一括保護する例。

nextjsauthenticationrouting
レビュー済み中級

Next.js Route Handler で REST API(CRUD)を実装する

app/api/ 配下の Route Handler を使い、GET / POST / PUT / DELETE を備えた REST API を実装する例。インメモリデータを使ってシンプルに CRUD を示す。

nextjsapicrud
レビュー済み中級

Next.js Server Actions で CRUD を実装する

Server Actions と revalidatePath を使い、追加・更新・削除を含む CRUD 操作を実装する例。API ルートを作らずにフォームからサーバー処理を呼び出す。

nextjsserver-actionscrud
レビュー待ち初級

Next.js で session cookie を削除してログアウトを実装する

Route Handler で httpOnly session cookie を削除してログアウト処理を実装し、Server Component でのセッション確認と合わせた認証フロー全体を示す例。

nextjsauthentication
レビュー待ち中級

Next.js でファイルアップロードの進捗バーを表示する

XMLHttpRequest の progress イベントを使ってアップロード中の進捗率を取得し、プログレスバー UI でリアルタイム表示する実装例。

nextjsfile-uploadui-component
レビュー済み中級

Playwright でログインから保護ページ到達までの認証フローを E2E テストする

Playwright でログインフォームへの入力・送信・Cookie 設定・保護ページへのリダイレクト確認・ログアウトまでの認証フローを E2E テストする例。

nextjstestingauthentication
レビュー待ち中級

Playwright でファイルアップロードの E2E テストを書く

Playwright の setInputFiles を使って file input へのファイル選択をシミュレートし、アップロードの成功・エラー・複数ファイルケースを E2E テストする例。

nextjstestingfile-upload
レビュー待ち中級

Prisma と Route Handler で CRUD API を実装する

Prisma Client の findMany / create / update / delete を Route Handler から呼び出して CRUD API を構築する例。スキーマ定義からマイグレーション・型安全なクエリまでを示す。

nextjscrudapi
レビュー済み中級

Prisma で skip / take を使ったページネーションクエリを実装する

Prisma の skip / take / orderBy を使ったオフセットページネーションと、cursor ベースのページネーションのパターン、Route Handler との組み合わせ例。

nextjscrudpagination
レビュー待ち中級

Prisma でリレーションを含むクエリを書く(include / select / ネスト)

Prisma の include / select を使った 1対多・多対多のリレーション取得パターンと、ネストしたフィルタ・ソート・集計(_count)の例。

nextjscrud
レビュー待ち中級

Prisma で論理削除(soft delete)を実装する

deletedAt フィールドを使った論理削除パターンを Prisma で実装し、通常クエリから削除済みレコードを自動除外する例。

nextjscrud
レビュー待ち中級

React でコマンドパレット風のキーワードフィルタ UI を実装する

キーボードショートカットで開くモーダル内で候補リストをリアルタイムフィルタし、キーボードナビゲーションで選択するコマンドパレット UI の実装例。

nextjssearch-filterui-component
レビュー済み中級

React で Compound Component パターンを実装する

Context と Children を組み合わせた Compound Component パターンで、Tabs や Accordion のような柔軟な UI コンポーネントを実装する例。

nextjsui-component
レビュー待ち中級

Context と CSS カスタムプロパティでテーマシステムを構築する

React Context で現在のテーマを管理し、CSS カスタムプロパティ(CSS 変数)でコンポーネントがテーマを自動追従するシステムを実装する例。

nextjsstylingstate-management
レビュー待ち初級

制御コンポーネントと非制御コンポーネントの違いと使い分け

useState で値を管理する制御コンポーネントと、useRef で DOM を直接参照する非制御コンポーネントの違いを実装例で比較し、それぞれの適切なユースケースを示す。

nextjsform
レビュー済み中級

useDebounce カスタムフックで検索入力をデバウンスする

useDebounce カスタムフックを自作し、検索入力のデバウンス処理を実装する例。lodash.debounce を使わず useEffect + setTimeout で実現する。

nextjssearch-filterperformance
レビュー済み中級

HTML5 Drag & Drop API でリストの順序を並べ替える

外部ライブラリを使わず HTML5 の Drag & Drop API(dragstart / dragover / drop イベント)でリストアイテムの順序をドラッグで並べ替える実装例。

nextjsui-component
レビュー待ち中級

React で再試行ボタン付きの ErrorBoundary を実装する

エラー発生時に「再試行」ボタンを表示し、state リセットで再レンダリングを促す ErrorBoundary パターンの実装例。

nextjserror-handling
レビュー待ち中級

React でドラッグ&ドロップ対応のファイル選択UIを実装する

DragEvent API を使いドラッグ&ドロップでファイルを受け付けるクライアント UI を実装する例。ドロップゾーンの視覚フィードバックとクリック選択の併用パターンも示す。

nextjsfile-uploadui-component
レビュー待ち中級

React でファイル選択時に画像プレビューを表示する

FileReader や URL.createObjectURL を使い、ファイル選択直後にクライアント側で画像プレビューを表示するコンポーネント実装例。

nextjsfile-uploadui-component
レビュー済み中級

IntersectionObserver カスタムフックで要素の可視性を検出する

useIntersectionObserver カスタムフックを自作し、要素が viewport に入ったことを検知して遅延ロードやスクロールアニメーションをトリガーする例。

nextjsperformanceui-component
レビュー待ち中級

React でチェックボックス複数選択フィルタを実装する

複数カテゴリのチェックボックスによる AND/OR フィルタリング UI をクライアントサイドで実装する例。フィルタロジックをコンポーネントから分離して管理する。

nextjssearch-filter
レビュー済み中級

React でクリップボード貼り付け(Ctrl+V)から画像をアップロードする

ClipboardEvent の clipboardData.items を走査して image/* を抽出し、URL.createObjectURL でプレビュー表示してからサーバーへアップロードする UI パターン。

nextjsfile-uploadui-component
レビュー済み初級

React で検索キーワードにマッチした文字列をハイライト表示する

入力された検索語と一致するテキスト部分を分割して <mark> タグや span で強調表示するコンポーネントの実装例。

nextjssearch-filterui-component
レビュー待ち中級

React.lazy と Suspense・ErrorBoundary を組み合わせてコード分割する

React.lazy でコンポーネントを遅延読み込みし、Suspense でローディング表示、ErrorBoundary で読み込み失敗時のフォールバックを実装する例。

nextjserror-handlingperformance
レビュー済み中級

React で非同期処理の失敗時に Toast 通知を表示する

カスタム Toast コンポーネントと useToast フックを実装し、API エラーや非同期処理の失敗時に画面端にトースト通知を表示するパターン。

nextjserror-handlingui-component
レビュー済み中級

useReducer でフォームの状態とバリデーションを一元管理する

useReducer を使い、複数フィールドのフォーム状態・入力値・バリデーションエラーを単一の reducer で管理する例。外部ライブラリなしで複雑なフォームを扱う。

nextjsformstate-management
レビュー待ち中級

Redux Toolkit の RTK Query で API データフェッチとキャッシュを管理する

RTK Query の createApi でエンドポイントを定義し、useGetQuery / useMutation フックでデータフェッチ・キャッシュ・自動再フェッチを管理する例。

nextjsapistate-management
レビュー済み中級

Storybook でコンポーネントの Story を書く

Storybook 8 の CSF3 形式で UI コンポーネントの Story を作成する例。args / argTypes / play 関数を使ったインタラクティブテストのパターンを示す。

nextjstestingui-component
レビュー待ち中級

Storybook の play 関数でインタラクションテストを書く

@storybook/test の userEvent と expect を使い、play 関数でユーザー操作をシミュレートしてコンポーネントの動作を Story 内で自動検証する例。

nextjstesting
レビュー待ち初級

Tailwind CSS でアニメーションとトランジションを実装する

Tailwind CSS の animate-* / transition / duration / ease クラスを使い、フェード・スライド・スケール・スピンなどのアニメーションをコンポーネントに適用する例。

nextjsstyling
レビュー済み初級

Tailwind CSS でダークモードを実装する(class strategy + localStorage)

Tailwind の class strategy と useState / localStorage を組み合わせてダークモードを実装する例。next-themes を使わずに自前でテーマ切り替えを管理する。

nextjsstyling
レビュー済み初級

Tailwind CSS で空状態(EmptyState)UI を実装する

検索結果ゼロ・データ未登録・エラー後などの空状態に表示するコンポーネントを Tailwind CSS でスタイリングし、アイコン・メッセージ・アクションボタンを組み合わせたパターン集。

nextjsstylingui-component
レビュー待ち初級

Tailwind CSS でフォーム部品(Input / Select / Checkbox / Radio)をスタイリングする

Tailwind CSS を使い Input / Select / Checkbox / Radio / Textarea などの基本フォーム部品に一貫したスタイルを適用するコンポーネント集。フォーカスリングやエラー状態のスタイルも示す。

nextjsstylingform
レビュー済み初級

Tailwind CSS でレスポンシブレイアウトを組む

Tailwind CSS のブレークポイントプレフィックス(sm / md / lg)を使い、モバイルファーストのレスポンシブレイアウトを実装する例。

nextjsstylingui-component
レビュー待ち初級

Tailwind CSS でテーブル UI をスタイリングする

Tailwind CSS でレスポンシブ対応のテーブル UI を実装し、ヘッダー固定・行ホバー・ストライプ・空状態・ローディング状態のスタイルパターンをまとめた例。

nextjsstylingui-component
レビュー済み中級

TanStack Query でクライアントサイドページネーションを実装する

useQuery の page パラメータと keepPreviousData を使い、クライアントサイドでスムーズなページネーションを実装する例。

nextjspaginationapi
レビュー済み中級

TanStack Query で Server Component からデータをプリフェッチする

Server Component で prefetchQuery を実行し HydrationBoundary でクライアントに渡すことで、ウォーターフォールなしに TanStack Query のキャッシュをハイドレートする例。

nextjsapiperformance
レビュー済み中級

Zod の discriminatedUnion でバリアント型を型安全に処理する

z.discriminatedUnion を使い、status フィールドで分岐するバリアント型(成功 / エラー / ローディング等)を型安全にパース・絞り込む例。

nextjsvalidation
レビュー待ち中級

Zod でネストオブジェクト・配列・transform を組み合わせてバリデーションする

Zod でネストされたオブジェクト・配列のバリデーションと、transform / refine / superRefine を使ったカスタム変換・クロスフィールド検証の例。

nextjsvalidation
レビュー済み中級

Next.js の cookies() でサーバーサイドのクッキーを読み書きする

App Router の cookies() を使い、Server Component・Server Actions・Route Handler でクッキーを読み書きする実装例。

nextjsapiauthentication
レビュー済み初級

Next.js の dynamic import でコンポーネントを遅延読み込みする

next/dynamic を使い、重いコンポーネントや SSR 不要なコンポーネントを遅延読み込みしてバンドルサイズを削減する実装例。

nextjsperformance
レビュー済み初級

Zod で Next.js の環境変数を起動時に検証する

Zod スキーマで環境変数を定義・検証し、未設定の変数をビルド時または起動時に検出する実装例。

nextjsvalidation
レビュー済み初級

Next.js の Image コンポーネントで画像を最適化する

next/image を使い、自動リサイズ・WebP 変換・遅延読み込みを設定する実装例。外部ドメイン画像の許可設定も含む。

nextjsperformanceui-component
レビュー済み初級

Next.js App Router の loading.tsx と Suspense でローディング UI を実装する

loading.tsx を配置するだけでルートセグメント単位のローディング UI が自動適用される仕組みと、Suspense を使った部分的な待機表示の実装例。

nextjsui-componentrouting
レビュー済み初級

Next.js の Metadata API で title / description / OGP を設定する

metadata オブジェクトと generateMetadata を使い、静的・動的な SEO メタデータと OGP を設定する実装例。

nextjsrouting
レビュー済み中級

Next.js の Parallel Routes で複数スロットを同時表示する

@スロット記法を使い、同一ページに複数の独立したルートコンテンツを並列表示する実装例。

nextjsroutingui-component
レビュー済み初級

Next.js の Route Groups で layout を分ける

Route Groups(括弧付きディレクトリ)を使い、URL 構造を変えずに異なる layout を適用する実装例。

nextjsrouting
レビュー済み中級

Next.js の searchParams で URL 同期フィルタを実装する

searchParams を読み取り、URL クエリパラメータに基づいてサーバー側でリストをフィルタリングする実装例。

nextjssearch-filterrouting
レビュー済み中級

Next.js Server Actions でフォーム送信を処理する

Server Actions と useActionState を使い、クライアントコンポーネントからサーバー関数を直接呼び出してフォーム送信を処理する実装例。

nextjsformserver-actions
レビュー済み中級

React の ErrorBoundary コンポーネントでレンダリングエラーを捕捉する

クラスコンポーネントで ErrorBoundary を実装し、子コンポーネントのレンダリングエラーをフォールバック UI で安全に表示する実装例。

nextjserror-handling
レビュー済み中級

React Hook Form の useFieldArray で動的フィールドを追加・削除する

useFieldArray を使い、フォーム内のフィールドを動的に追加・削除・並び替えする実装例。Zod で配列バリデーションも行う。

nextjsformvalidation
レビュー済み中級

React Hook Form でファイルアップロード対応フォームを実装する

React Hook Form の register でファイル入力を管理し、Zod でファイルサイズ・拡張子バリデーションを行う実装例。

nextjsformfile-upload
レビュー済み中級

React の createPortal でモーダル・トーストを DOM 外に描画する

createPortal を使い、モーダルやトーストを親コンポーネントの DOM 外(body 直下)に描画する実装例。

nextjsui-component
レビュー済み中級

Redux Toolkit の createAsyncThunk で非同期処理を管理する

createAsyncThunk で API フェッチを定義し、pending / fulfilled / rejected の状態を extraReducers で管理する実装例。

nextjsstate-managementapi
レビュー済み中級

TanStack Query の useInfiniteQuery で無限スクロールを実装する

useInfiniteQuery を使い、スクロールに応じて次ページを自動フェッチする無限スクロールの実装例。Intersection Observer と組み合わせる。

nextjsapipagination
レビュー済み中級

TanStack Query の useQueryClient で楽観的更新を実装する

useMutation の onMutate で UI を即時更新し、失敗時に onError でロールバックする楽観的更新の実装例。

nextjsapicrud
レビュー済み中級

Zod で外部 API レスポンスを型安全に検証する

fetch した外部 API レスポンスを Zod スキーマで検証し、型安全なデータとエラーを分離して扱う実装例。

nextjsapivalidation
レビュー済み中級

Zod スキーマをフォームバリデーションと API レスポンス検証で共有する

同一の Zod スキーマを React Hook Form のバリデーションと fetch レスポンス検証の両方で再利用し、型定義の重複をなくす実装例。

nextjsformvalidation
レビュー済み初級

Zustand の persist middleware でローカルストレージに状態を保存する

persist middleware を使い、Zustand の状態をローカルストレージに永続化してページリロード後も状態を維持する実装例。

nextjsstate-management
レビュー済み中級

Zustand の selector で不要な再レンダリングを防ぐ

useStore にセレクタ関数を渡し、参照する state を絞ることで不要な再レンダリングを防ぐ実装例。

nextjsstate-managementperformance
レビュー済み中級

MUI + React Hook Form で入力フォームを組む

MUI の TextField / Button を react-hook-form の Controller でラップし、Zod でバリデーションする実装例。MUI の非標準 input と react-hook-form を正しく接続する方法を扱う。

reactformvalidation
レビュー済み中級

Next.js App Router の error.tsx でエラーハンドリングを実装する

App Router の error.tsx を使い、セグメント単位で非同期エラーをキャッチしてフォールバック UI を表示する実装例。

nextjserror-handlingrouting
レビュー済み中級

Next.js Middleware で未認証ユーザーをリダイレクトする

middleware.ts でリクエスト時に Cookie をチェックし、未認証ユーザーをログインページへリダイレクトするルート保護の実装例。

nextjsauthenticationrouting
レビュー済み中級

Redux Toolkit の createSlice でリデューサーとアクションをまとめる

createSlice でリデューサーとアクションを一括定義し、useSelector / useDispatch でコンポーネントから状態を読み書きする実装例。

nextjsstate-management
レビュー済み中級

Supabase でメール・パスワード認証を実装する

Next.js App Router + Supabase Auth を使ったメール/パスワード認証の実装例。サインアップ・ログイン・ログアウト・セッション管理(Server Components からの参照)を扱う。

nextjsauthenticationapi
レビュー待ち中級

TanStack Query でデータフェッチとローディング状態を管理する

TanStack Query を使ったデータフェッチ・ローディング・エラー状態管理の実装例。useQuery でシンプルに非同期状態を扱う。

nextjsapistate-management
レビュー済み中級

TanStack Query の useMutation で POST / DELETE を管理する

useMutation を使い、フォーム送信・削除などの副作用操作を型安全に管理する実装例。成功・エラー・ローディング状態を宣言的に扱う。

nextjsapicrud
レビュー済み中級

Zustand + Immer で immutable な状態更新をシンプルに書く

Zustand の immer middleware を使い、ネストした状態をミュータブルな書き方で安全に更新する実装例。

nextjsstate-management
レビュー済み初級

Next.js App Router で Route Handler(API)を作る

App Router の Route Handler(route.ts)を使って GET / POST エンドポイントを実装する基本パターン。NextResponse と型安全なリクエスト処理を解説する。

nextjsapi
レビュー済み初級

Next.js の Image コンポーネントで画像を最適化する

next/image の Image コンポーネントを使った画像最適化の基本。サイズ指定・lazy loading・外部ドメイン許可の設定を解説する。

nextjsui-componentperformance
レビュー済み中級

Radix UI の Dialog でアクセシブルなモーダルを作る

Radix UI の Dialog コンポーネントを使ってアクセシビリティに配慮したモーダルダイアログを実装する。Tailwind CSS でスタイリングする例も示す。

reactui-component
レビュー済み中級

React Context で軽量なグローバル状態を管理する

useState + createContext + useContext を組み合わせてグローバルな状態を管理する最小パターン。Zustand などの外部ライブラリが不要なケースに適している。

reactstate-management
レビュー済み初級

useCallback と useMemo の使い分け

useCallback は関数の参照を、useMemo は計算結果をメモ化する。どちらをいつ使うべきかを最小サンプルで比較する。

reactperformance
レビュー済み中級

Next.js 15 + React Hook Form + Zod でログインフォームを作る

Next.js App Router 環境で react-hook-form と zod を使ったログインフォームの実装例。クライアントバリデーションとエラー表示を型安全に扱う。

nextjsformvalidation
レビュー済み中級

Next.js 15 Server Actions でフォーム送信を実装する

Next.js App Router の Server Actions を使ってフォーム送信を実装する例。useActionState と Zod によるサーバー側バリデーションを示す。

nextjsformserver-actions
レビュー済み中級

Next.js 15 + Zustand でモーダル状態管理を作る

Zustand を使ってモーダルの開閉状態をグローバルに管理する実装例。複数モーダルへの対応と型安全な設計を示す。

nextjsstate-managementui-component
レビュー済み中級

Playwright でログインフローの E2E テストを書く

Playwright を使ってログインフォームの E2E テストを実装する例。Page Object Model パターンと認証状態の再利用を示す。

nextjstesting
レビュー済み初級

Tailwind CSS でバリアント対応バッジコンポーネントを作る

Tailwind CSS の clsx / cva を使ってバリアント(color / size)を型安全に管理するバッジコンポーネントの実装例。

reactui-component