Caroa UI

使い方

Caroa UIの基本的な使い方

Server Components vs Client Components

Next.js App Routerでは、コンポーネントの種類に応じてインポート先を分けます。

Server Components

プレゼンテーショナルなコンポーネントは/serverからインポート:

import { Button, Card, Badge, Input } from '@caroainc/ui-components/server'
 
export default function Page() {
  return (
    <Card>
      <Button>送信</Button>
    </Card>
  )
}

Client Components

インタラクティブなコンポーネントは/clientからインポート:

'use client'
 
import { Dialog, Tabs, Select } from '@caroainc/ui-components/client'

カラーバリアント

Caroa UIのカラーバリアントは以下のルールに従います:

バリアント用途
base(デフォルト)通常のUI要素
primaryオレンジCTA、重要なアクション
destructive削除、危険な操作
success成功、完了
warning警告、注意
<Button>通常</Button>
<Button variant="primary">重要</Button>
<Button variant="destructive">削除</Button>

フォーム連携

react-hook-formと連携したフォームコンポーネント:

'use client'
 
import { useForm } from 'react-hook-form'
import { Form, FormField, FormItem, FormLabel, FormControl } from '@caroainc/ui-components/form'
import { Input, Button } from '@caroainc/ui-components/server'
 
export function MyForm() {
  const form = useForm()
 
  return (
    <Form {...form}>
      <form onSubmit={form.handleSubmit(console.log)}>
        <FormField
          control={form.control}
          name="email"
          render={({ field }) => (
            <FormItem>
              <FormLabel>メール</FormLabel>
              <FormControl>
                <Input {...field} />
              </FormControl>
            </FormItem>
          )}
        />
        <Button type="submit">送信</Button>
      </form>
    </Form>
  )
}

On this page