1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mantineの導入方法から使い方メモ

Last updated at Posted at 2024-11-22

Mantineとは?

Mantineは、React向けのUIライブラリで、100種類以上のカスタマイズ可能なコンポーネントと50以上のフックを提供しています。TypeScriptベースで、Next.jsやRemixなどのモダンなフレームワークをサポートし、ダークテーマ対応や柔軟なテーマ設定が可能です。

Mantineの導入方法

  1. パッケージのインストール:

    プロジェクトに必要なMantineのパッケージをインストールします。

    npm install @mantine/core @mantine/hooks @mantine/form @mantine/dates
    
  2. スタイルのインポート:

    Mantineのスタイルをプロジェクトに適用するため、@mantine/core/styles.css をインポートします。

    import '@mantine/core/styles.css';
    
  3. MantineProviderの設定:

    アプリケーション全体でMantineのテーマを適用するために、MantineProvider でアプリをラップします。

    import { MantineProvider } from '@mantine/core';
    
    function App() {
      return (
        <MantineProvider>
          {/* アプリケーションのコンポーネント */}
        </MantineProvider>
      );
    }
    

Buttonコンポーネントの使い方

MantineのButtonコンポーネントは、簡単にボタンを作成できます。

import { Button } from '@mantine/core';

function Demo() {
  return <Button>クリック</Button>;
}

スタイルの変更方法

Buttonコンポーネントは、colorvariantsizeなどのプロパティでスタイルをカスタマイズできます。

<Button color="red" variant="outline" size="lg">
  クリック
</Button>

上記の例では、赤色のアウトラインスタイルで大きなボタンを作成しています。

useFormコンポーネントの使い方

MantineのuseFormフックを使用すると、フォームの状態管理とバリデーションが容易になります。

import { useForm } from '@mantine/form';
import { TextInput, Button } from '@mantine/core';

function Demo() {
  const form = useForm({
    initialValues: {
      email: '',
    },

    validate: {
      email: (value) => (/^\S+@\S+$/.test(value) ? null : '有効なメールアドレスを入力してください'),
    },
  });

  return (
    <form onSubmit={form.onSubmit((values) => console.log(values))}>
      <TextInput
        label="メールアドレス"
        placeholder="メールアドレスを入力"
        {...form.getInputProps('email')}
      />
      <Button type="submit">送信</Button>
    </form>
  );
}

上記の例では、メールアドレスの入力フィールドと送信ボタンを持つフォームを作成し、メールアドレスの形式をバリデーションしています。

DatePickerInputコンポーネントの使い方

DatePickerInputコンポーネントを使用すると、日付選択フィールドを簡単に追加できます。

import { DatePickerInput } from '@mantine/dates';

function Demo() {
  return (
    <DatePickerInput
      label="日付を選択"
      placeholder="日付を選択"
    />
  );
}

locale="ja"での日本語設定

DatePickerInputコンポーネントでlocaleプロパティを"ja"に設定すると、日本語のカレンダーが表示されます。

<DatePickerInput
  label="日付を選択"
  placeholder="日付を選択"
  locale="ja"
/>

日本語カレンダー設定方法

DatesProviderコンポーネントを使用して、アプリケーション全体で日本語のカレンダー設定を適用できます。

import { DatesProvider } from '@mantine/dates';
import 'dayjs/locale/ja';

function App() {
  return (
    <DatesProvider settings={{ locale: 'ja', firstDayOfWeek: 0 }}>
      {/* アプリケーションのコンポーネント */}
    </DatesProvider>
  );
}

これにより、DatePickerInputを含むすべての日付関連コンポーネントが日本語表示になります。

Tailwind CSS、Material-UI(MUI)、Mantineの比較

フロントエンド開発において、適切なUIライブラリやスタイリングフレームワークを選択することは、開発効率やプロジェクトの成功に大きな影響を与えます。ここでは、Tailwind CSS、Material-UI(MUI)、Mantineの特徴を比較し、それぞれの利点と適用シーンを解説します。

Tailwind CSS

  • 概要: ユーティリティファーストのCSSフレームワークで、クラス名を組み合わせてスタイルを適用します。
  • 特徴:
    • 柔軟性: プリセットのデザインに縛られず、自由なデザインが可能。
    • カスタマイズ性: 設定ファイルでテーマやカラーパレットを簡単に調整可能。
    • 学習コスト: CSSの知識が必要で、クラス名の組み合わせに慣れる必要があります。
  • 適用シーン: 独自のデザインを追求したいプロジェクトや、既存のデザインシステムに合わせたい場合に適しています。

Material-UI(MUI)

  • 概要: GoogleのMaterial Designガイドラインに基づいたReact向けのUIコンポーネントライブラリ。
  • 特徴:
    • 豊富なコンポーネント: ボタン、ナビゲーションバー、ダイアログなど、多彩なコンポーネントを提供。
    • テーマカスタマイズ: テーマのカスタマイズが可能で、ブランドカラーやスタイルを調整できます。
    • コミュニティとサポート: 大規模なコミュニティがあり、情報やサポートが充実しています。
  • 適用シーン: Material Designに準拠したデザインを求めるプロジェクトや、迅速にUIを構築したい場合に適しています。

Mantine

  • 概要: React向けのUIライブラリで、100以上のコンポーネントと50以上のカスタムフックを提供します。
  • 特徴:
    • 高いカスタマイズ性: テーマやスタイルの調整が容易で、独自のデザインを実現できます。
    • フォーム管理: useFormフックを提供し、フォームの状態管理やバリデーションを簡素化します。
    • ドキュメントの充実: 詳細なドキュメントとサンプルコードが豊富で、学習が容易です。
  • 適用シーン: 高度なカスタマイズが必要なプロジェクトや、フォーム管理を効率化したい場合に適しています。

まとめ

  • Tailwind CSS: 独自のデザインをゼロから構築したい場合に最適。
  • Material-UI(MUI): Material Designに準拠したデザインを迅速に実装したい場合に適しています。
  • Mantine: 高いカスタマイズ性とフォーム管理機能を重視するプロジェクトに適しています。

プロジェクトの要件やデザインの方向性、開発チームのスキルセットに応じて、最適なライブラリを選択することが重要です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?