Material UI

Material UI comes with two palette modes: light (the default) and dark.

Overview

In the context of MUI, dark mode refers to a theme mode in which the color palette of MUI components is optimized for use in a dark environment. This means that the default colors of MUI components are adjusted to work well in a low-light environment, where a light color scheme would be too bright and could cause eye strain.

How to use

Here we use dark mode. The installation method is as follows below.

Step 1: Install MUI

To install MUI, run the following command in your project directory:

yarn add @mui/material @emotion/react @emotion/styled

This will install the MUI core library, along with the required Emotion dependencies.

Step 2: Install the MUI TypeScript typings

To install the MUI TypeScript typings, run the following command in your project directory:

yarn add @mui/types @mui/utils @types/react-transition-group

This will install the MUI TypeScript typings, along with the typings for React Transition Group (which is used by MUI for transitions).

Step 3: Add the MUI CSS baseline

The MUI CSS baseline provides a set of default styles for MUI components. To add the MUI CSS baseline to your app, create a new file named _app.tsx in the pages directory of your project, and add the following code:

The CssBaseline component is provided by MUI and sets up the default styles for MUI components. The MyApp component is the top-level component for your app, and it wraps the Component and pageProps in a React.Fragment.

Step 4: Set up the MUI theme provider

The MUI theme provider allows you to set up a global theme for your app. To set up the MUI theme provider, create a new file named _document.tsx in the pages directory of your project, and add the following code:

The createTheme function is provided by MUI and allows you to create a custom theme for your app. In this example, we're creating a dark mode theme with primary and secondary colors.

The MyDocument component is a custom Document component provided by Next.js, and it's used to set up the global document structure

Last updated