Создать собственную цветовую тему для вашего следующего проекта React легко

Недавно я начал использовать Material-UI для всех своих проектов на React и наслаждался тем, насколько просто создавать красивые интерфейсы. В этой статье я хочу объяснить, как начать работу с Material-UI и настроить тему цветовой палитры для использования в вашем следующем проекте.

Что такое Material-UI?

Material-UI - это фреймворк React UI, который следует принципам материального дизайна. Материальный дизайн - это дизайн-система, созданная Google. Если вам интересно узнать больше о Material Design, посмотрите видео ниже.

Что мне нравится в Material-UI, так это то, что он упрощает настройку. Вы можете легко изменить цвета, типографику, интервалы и многое другое в отдельных компонентах или глобально, настроив тему. Давайте начнем!

Начиная

Во-первых, я предполагаю, что вы можете настроить базовое приложение для реагирования. Самый простой способ - использовать приложение create-react-app. После того, как вы настроили базовое приложение, нам нужно установить основной пакет Material-UI. Откройте свой терминал и запустите следующий код.

// with npm
npm install @material-ui/core
// with yarn
yarn add @material-ui/core

Затем мы хотим очистить код из нашей папки src. Удалите файлы CSS и очистите файл App.js. Ваш файл App.js должен выглядеть примерно так.

import React from 'react';
const App = () => {
  return (
    <div>App</div>
  );
}
export default App;

Какая тема по умолчанию?

Material-UI имеет тему по умолчанию, которая устанавливает значения по умолчанию для точек останова, типографики, цветовой палитры и многого другого. Значение, которое нас здесь интересует, - это палитра. В объекте палитры есть вложенные объекты для первичного и вторичного, а внутри каждого объекта есть свойства light, main, dark и contraText.

Вы увидите, что основная основная палитра по умолчанию установлена ​​на голубоватый цвет (# 3f51b5), а основная вторичная палитра по умолчанию установлена ​​на розоватый цвет (# f50057). Это значения, которые мы будем игнорировать.

Создание темы с помощью createMuiTheme

Следующим шагом будет создание собственной темы. В свой файл App.js импортируйте createMuiTheme и ThemeProvider (мы будем использовать это в следующем разделе) из ‘@ material-ui / core’. Затем мы создадим тему, вызывающую функцию createMuiTheme. В функции мы передадим объект в качестве аргумента и установим основное значение для первичной и вторичной цветовых палитр. Это переопределит тему по умолчанию и установит новую цветовую палитру для нашего проекта. Вам нужно только установить основной цвет, так как Material-UI автоматически установит для нас светлые и темные цвета на основе значения основного цвета. Это будет выглядеть примерно так.

import { createMuiTheme, ThemeProvider } from '@material-ui/core';
const theme = createMuiTheme({
  palette: {
    primary: {
      main: "HEXADECIMAL COLOR"
    },
    secondary: {
      main: "HEXADECIMAL COLOR"
    }
  }
});

Обратите внимание, что в документации по Material-UI показан пример импорта фиолетового и зеленого цветов из основного пакета Material-UI. Это еще один способ установить цвет, но я считаю, что использование шестнадцатеричного значения было для меня более простым подходом.

import { createMuiTheme } from '@material-ui/core/styles';
import purple from '@material-ui/core/colors/purple';
import green from '@material-ui/core/colors/green';

const theme = createMuiTheme({
  palette: {
    primary: {
      main: purple[500]
    },
    secondary: {
      main: green[500]
    }
  }
});

Вот самое интересное! Выберите два цвета, которые вы хотите использовать в качестве основного и дополнительного цветов для своего приложения. Этот инструмент цвета от Material.io помог мне в выборе правильных цветов. Он покажет вам примеры того, где и когда будут использоваться первичный и вторичный цвета, и вы сможете получить визуальное изображение совместной работы цветовой схемы. Поиграйте с ним, пока не найдете два цвета, которые хотите использовать.



Выбрать подходящую цветовую палитру для вашего приложения непросто. Если вы только начинаете, я рекомендую выбирать цвета, которые вам нравятся и которые, по вашему мнению, выглядят хорошо, и не тратить слишком много времени на то, чтобы поначалу беспокоиться об этом. Настроив тему таким образом, вы сможете легко изменить цветовую схему позже в вашем проекте, если вы захотите это сделать.

Если вы похожи на меня и не очень хороши в дизайне и выборе эффективной цветовой палитры, вот статья, которая может дать вам некоторое представление о выборе правильных цветов для вашего веб-сайта.



Использование компонента ThemeProvider

Теперь, когда вы выбрали цветовую палитру и создали тему, пришло время внедрить тему в свой проект. Мы можем сделать это с помощью компонента ThemeProvider. Компонент ThemeProvider обернет все компоненты, которые будут использовать нашу настраиваемую тему. В идеале он должен находиться в корне дерева компонентов. Мы передадим этому компоненту свойство темы, которое будет равно объекту темы, который вы создали ранее.

<ThemeProvider theme={theme}>
  COMPONENTS TO USE THEME
</ThemeProvider>

Заключение

Если вы зашли так далеко, ваш окончательный файл App.js должен выглядеть примерно так. В приведенном ниже примере я также импортировал компонент Button из библиотеки Material-UI и визуализирую две кнопки. Один - с основным цветом, а другой - со второстепенным цветом.

Результат должен выглядеть так. Как видите, еще одна замечательная вещь, которую Material-UI делает для нас, - это автоматически меняет цвет текста для нас. Для основного цвета задан темно-зеленый цвет, поэтому текст будет светлым, а для дополнительного цвета - более светло-оранжевым, поэтому текст будет темным.

Спасибо за прочтение! Я надеюсь, что эта статья была полезной для вас, когда вы начали работу с Material-UI и настройкой цветовой темы для вашего следующего проекта React. Для получения дополнительной информации о настройке темы палитры с помощью Material-UI вы можете просмотреть их документацию здесь.