Coder Social home page Coder Social logo

ant-vite's Introduction

Ant Design

https://ant.design/docs/ のドキュメント

公式

Ant Design - The world's second most popular React UI framework

Ant Design の利用方法

Vite や Next などの React プロジェクトで Ant Design の使用を開始する場合

npm install antd --save
# or
yarn add antd

基本的な書き方、ボタンの例。このサンプルではさまざまなタイプのボタンを使用しています。

import { Button } from 'antd';

const App = () => (
  <>
    <Button>Default Button</Button>
    <Button type="primary">Button</Button>
    <Button type="dashed">Dashed Button</Button>
    <Button type="link">Link Button</Button>
  </>
);

export default App;

Antd Theme

Ant Design ではテーマのカスタマイズをサポートし、ユーザーは自分のブランドに合わせたカラースキームやフォントスタイルを適用することができます。

Ant Design は、デフォルトで 3 つのプリセットアルゴリズムを提供します:

  1. デフォルトアルゴリズム theme.defaultAlgorithm
  2. ダークアルゴリズム theme.darkAlgorithm
  3. コンパクトアルゴリズム theme.compactAlgorithm

ConfigProvider 内の theme の algorithm プロパティを変更することで、アルゴリズムを切り替えることができます。

例えば以下のように、ダークアルゴリズムを適用するには

<ConfigProvider theme={{algorithm: theme.darkAlgorithm}}>...</ConfigProvider>

と設定します。これにより、全体のテーマがダークモードに切り替わります。
さらに、テーマを切り替えるためにはConfigProvider の theme プロパティを動的に変更することができます。

例えば、ユーザーがボタンをクリックすると、テーマがダークモードからライトモードに切り替わるような機能を実装することが可能です。例えばこのようなコードになります。

import { ConfigProvider, Button } from "antd";
import { useState } from "react";

const App = () => {
  const [darkMode, setDarkMode] = useState(false);

  const switchTheme = () => {
    setDarkMode(!darkMode);
  };

  return (
    <ConfigProvider
      theme={{
        algorithm: darkMode ? theme.darkAlgorithm : theme.defaultAlgorithm,
      }}
    >
      <Button onClick={switchTheme}>テーマを切り替える</Button>
    </ConfigProvider>
  );
};

export default App;

ただ、この状態ですとボタン自体の色が変わることは分かりますが、期待していたような背景色も全て変わるような挙動ではありませんでした。

そこで、もう一つのテーマdefaultAlgorithmを設定し、Buttonの大きさが変わる事を確認します。

Switch Theme

You can add a header

import {
  ConfigProvider,
  Space,
  Button,
  theme,
  Row,
  Typography,
  Col,
  Flex
} from 'antd'

import React, { useState } from 'react'

const ToggleTheme: React.FC = () => {
  const [changeMode, setChangeMode] = useState(false)

  const switchTheme = () => {
    setChangeMode(!changeMode)
  }

  return (
    <ConfigProvider
      theme={{
        algorithm: changeMode ? theme.compactAlgorithm : theme.defaultAlgorithm,
        token: {
          // Seed Token
          colorPrimary: '#00b96b',
          borderRadius: 2,
          // Alias Token
          colorBgContainer: '#f6ffed'
        }
      }}
    >
      <Typography.Title level={1}>Ant Design</Typography.Title>
      <Flex vertical gap={24}>
        <Row gutter={16}>
          <Col>
            <Space>
              <Button
                onClick={switchTheme}
                type={!changeMode ? 'primary' : 'dashed'}
              >
                {!changeMode ? 'to compactAlgorithm' : 'to defaultAlgorithm'}
              </Button>
            </Space>
          </Col>
        </Row>

        <Row gutter={16}>
          <Col>
            <Space>
              <Button>Default Button</Button>
              <Button type="primary">Button</Button>
              <Button type="dashed">Dashed Button</Button>
              <Button type="link">Link Button</Button>
            </Space>
          </Col>
        </Row>
      </Flex>
    </ConfigProvider>
  )
}

export default ToggleTheme

DarkMode Toggle

Basic Layout / DarkMode Toggle / theme.ts

  • 今回のコミットで、いわゆる管理画面のようなベーシックなレイアウトを組みました

    • サイドナビの幅はToggle
    • レイアウトのメインにコンテンツコンポーネントの作成
  • カラーテーマ、DakrMode切り替えの基盤設置

    • 簡単なテーマファイルの作成
    • テーマプロバイダの作成
    • トリガーとなるテーマ切り替えアイコンの設定
    • 現状のデザインにLight/DarkのテーマToggleの反映
    • サイドナビ背景など、切り替えに影響されない固定のカラーも設定


Router設定

  • yarn add react-router-dom@6

ant-vite's People

Contributors

boxpistols avatar mookth789 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

ant-vite's Issues

テンプレ更新

フィーチャーリクエストテンプレート

関連イシューやバックログ

関連するイシューやバックログ URl など、リンクを記載してください。

概要

  • 提案される機能や改善点についての簡潔な説明を記入してください。この実装により解決しようとしている問題や、提案の目的を明確にしてください。
  • *バックログ等に同等の内容があれば詳細の記述は省略可能です。

背景と目的

  • 問題点: 現状抱えている課題や問題を具体的に記述してください。
  • 提案の目的: このフィーチャーリクエストによって期待する成果や、解決したい問題を明確にしてください。

実装案

技術的概要: 提案される機能の技術的な実装案を記載してください。

  • xxx

実装ステップ: 実装に必要と思われるステップを箇条書きで記述してください。

  1. xxx
  2. xxx
  3. xxx

レビューのポイント

  • 重点的にチェックしてほしい点: PR時、レビュアーが特に注意すべき点がす既に見えていれば記載してください。

TODOリスト(タスク管理)

タスクの細分化が可能であれば、細分化されタスクや進行状況を記載してください.

  • タスク1:説明
  • タスク2:説明
  • タスク3:説明

関連資料(スクリーンショット、デザイン、ドキュメント)

  • UI変更: 変更前と変更後を比較できるスクリーンショットやキャプチャを提供してください。
  • デザイン資料: Figmaリンクやその他のデザインファイルがある場合、ここに記載してください。
  • 技術文書: 技術的な詳細や考察を記載したドキュメントがある場合、リンクを提供してください。

関連するイシューや既存のフィーチャーリクエスト

  • 関連するイシューや以前に提案されたフィーチャーリクエストがあれば、そのリンクを記載してください。既存の議論や資料を活用することで、重複を避け、より良い提案につながります。

その他のコンテキスト

  • 提案に関連するその他の情報や考慮すべき点があれば、ここに追記してください。このセクションは、提案をより深く理解するための補足情報を提供するために利用してください。

[課題番号] 内容

フィーチャーリクエストテンプレート

関連イシューやバックログ

関連するイシューやバックログ URl など、リンクを記載してください。

概要

  • 提案される機能や改善点についての簡潔な説明を記入してください。この実装により解決しようとしている問題や、提案の目的を明確にしてください。
  • *バックログ等に同等の内容があれば詳細の記述は省略可能です。

背景と目的

  • 問題点: 現状抱えている課題や問題を具体的に記述してください。
  • 提案の目的: このフィーチャーリクエストによって期待する成果や、解決したい問題を明確にしてください。

実装案

技術的概要: 提案される機能の技術的な実装案を記載してください。

  • xxx

実装ステップ: 実装に必要と思われるステップを箇条書きで記述してください。

  1. xxx
  2. xxx
  3. xxx

レビューのポイント

  • 重点的にチェックしてほしい点: PR時、レビュアーが特に注意すべき点がす既に見えていれば記載してください。

TODOリスト(タスク管理)

タスクの細分化が可能であれば、細分化されタスクや進行状況を記載してください.

  • タスク1:説明
  • タスク2:説明
  • タスク3:説明

関連資料(スクリーンショット、デザイン、ドキュメント)

  • UI変更: 変更前と変更後を比較できるスクリーンショットやキャプチャを提供してください。
  • デザイン資料: Figmaリンクやその他のデザインファイルがある場合、ここに記載してください。
  • 技術文書: 技術的な詳細や考察を記載したドキュメントがある場合、リンクを提供してください。

関連するイシューや既存のフィーチャーリクエスト

  • 関連するイシューや以前に提案されたフィーチャーリクエストがあれば、そのリンクを記載してください。既存の議論や資料を活用することで、重複を避け、より良い提案につながります。

その他のコンテキスト

  • 提案に関連するその他の情報や考慮すべき点があれば、ここに追記してください。このセクションは、提案をより深く理解するための補足情報を提供するために利用してください。

テーマの設定

概要

新機能の提案や、追加したい機能について簡潔に説明してください。

背景

この機能が必要とされる背景や、この問題を解決することの重要性について説明してください。

提案詳細

提案される機能についての具体的な説明をしてください。可能であれば、技術的な詳細や実装に関する考察も含めてください。

TODOリスト

  • タスク1
  • タスク2
  • タスク3

関連イシューやバックログ

  • 関連するイシューやバックログがあれば、ここにリンクを記載してください。

キャプチャやスクリーンショット

  • UI変更を伴う場合は、キャプチャやスクリーンショットをここに添付してください。

Figmaリンクやデザインファイル

  • Figmaでのデザインファイルやプロトタイプがある場合は、ここにリンクを記載してください。

その他のコンテキスト

  • この提案に関連するその他の情報やコンテキストがあれば、ここに追記してください。

AntD Routerの設定

フィーチャーリクエストテンプレート

関連イシューやバックログ

関連するイシューやバックログ URl など、リンクを記載してください。

概要

  • 提案される機能や改善点についての簡潔な説明を記入してください。この実装により解決しようとしている問題や、提案の目的を明確にしてください。
  • *バックログ等に同等の内容があれば詳細の記述は省略可能です。

背景と目的

  • 問題点: 現状抱えている課題や問題を具体的に記述してください。
  • 提案の目的: このフィーチャーリクエストによって期待する成果や、解決したい問題を明確にしてください。

実装案

技術的概要: 提案される機能の技術的な実装案を記載してください。

  • xxx

実装ステップ: 実装に必要と思われるステップを箇条書きで記述してください。

  1. xxx
  2. xxx
  3. xxx

レビューのポイント

  • 重点的にチェックしてほしい点: PR時、レビュアーが特に注意すべき点がす既に見えていれば記載してください。

TODOリスト(タスク管理)

タスクの細分化が可能であれば、細分化されタスクや進行状況を記載してください.

  • タスク1:説明
  • タスク2:説明
  • タスク3:説明

関連資料(スクリーンショット、デザイン、ドキュメント)

  • UI変更: 変更前と変更後を比較できるスクリーンショットやキャプチャを提供してください。
  • デザイン資料: Figmaリンクやその他のデザインファイルがある場合、ここに記載してください。
  • 技術文書: 技術的な詳細や考察を記載したドキュメントがある場合、リンクを提供してください。

関連するイシューや既存のフィーチャーリクエスト

  • 関連するイシューや以前に提案されたフィーチャーリクエストがあれば、そのリンクを記載してください。既存の議論や資料を活用することで、重複を避け、より良い提案につながります。

その他のコンテキスト

  • 提案に関連するその他の情報や考慮すべき点があれば、ここに追記してください。このセクションは、提案をより深く理解するための補足情報を提供するために利用してください。

PRテンプレ作成

Branch

  • 作成
    git fetch origin
    git checkout ft/4-prテンプレ作成

概要

新機能の提案や、追加したい機能について簡潔に説明してください。

背景

この機能が必要とされる背景や、この問題を解決することの重要性について説明してください。

提案詳細

提案される機能についての具体的な説明をしてください。可能であれば、技術的な詳細や実装に関する考察も含めてください。

TODOリスト

  • タスク1
  • タスク2
  • タスク3

関連イシューやバックログ

  • 関連するイシューやバックログがあれば、ここにリンクを記載してください。

キャプチャやスクリーンショット

  • UI変更を伴う場合は、キャプチャやスクリーンショットをここに添付してください。

Figmaリンクやデザインファイル

  • Figmaでのデザインファイルやプロトタイプがある場合は、ここにリンクを記載してください。

その他のコンテキスト

  • この提案に関連するその他の情報やコンテキストがあれば、ここに追記してください。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.