Murasaki
ガイド

スタイリング

Tailwind CSS + @murasakijs/ui、React Aria ベースのアクセシブルなコンポーネントライブラリ。

スキャフォールドには Tailwind CSS と @murasakijs/ui が同梱されています — React Aria を基盤とし、cn() + class-variance-authority の慣習でスタイリングされたコンポーネントライブラリです。アクセシブルな操作、フォーカス管理、キーボード操作、オーバーレイ配置を React Aria が提供し、Murasaki がビジュアルシステムと互換 API を提供します。すべてのコンポーネントは、Components セクションでライブに文書化されています — このガイドでは、ライブラリがスキャフォールドされたアプリにどう組み込まれているかだけを扱います。

セットアップ

スタイルシートを一度インポートし(スキャフォールドはすでにルートレイアウトでこれを行っています)、共有プリセットで Tailwind の設定を拡張します:

src/app/layout.tsx
import '@murasakijs/ui/styles.css'
import './globals.css'
tailwind.config.ts
import type { Config } from 'tailwindcss'

export default {
  presets: [require('@murasakijs/ui/tailwind-preset')],
  content: [
    './src/**/*.{ts,tsx}',
    './node_modules/@murasakijs/ui/dist/**/*.js',
  ],
  darkMode: ['selector', '[data-theme="dark"]'],
} satisfies Config

コンポーネント

コンポーネントは @murasakijs/ui から直接インポートします:

import { Button, Card, CardHeader, CardTitle, CardContent } from '@murasakijs/ui'

function Example() {
  return (
    <Card>
      <CardHeader>
        <CardTitle>Try it out</CardTitle>
      </CardHeader>
      <CardContent>
        <Button variant="outline">Click me</Button>
      </CardContent>
    </Card>
  )
}

現時点でパッケージが提供しているのは:

  • レイアウト & コンテンツCardSeparatorAccordionTabsScrollAreaTableSkeleton
  • フォーム & 入力ButtonInputTextareaLabelCheckboxSwitchRadioGroupSelect
  • オーバーレイDialogSheetPopoverTooltipDropdownMenuCommand(コマンドパレット)
  • フィードバックAlertBadgeProgressToast / Toaster(+ useToast
  • その他Avatarcnclsx + tailwind-merge のクラスヘルパー)

Buttonvariantdefault / secondary / outline / ghost / destructive / link)と sizedefault / sm / lg / icon)の props に加えて、Murasaki 独自の互換 Slot を通じて別の要素としてレンダリングする asChild をサポートしています — ライブラリの他の部分と同じパターンです。

これらすべては、Components の下でそれぞれ専用ページとして文書化されており、上のリストだけでなく、ライブでインタラクティブなプレビューと完全な props テーブルが用意されています。

@murasakijs/ui は必須ではありません。内部は Tailwind + React Aria で構成されており、自作コンポーネントや別のライブラリへ差し替えることもできます。

次へ

GitHub でこのページを改善

On this page