# Material UI This is the documentation for the Material UI package. It contains comprehensive guides, components, and utilities for building user interfaces. ## Components - [App Bar React component](/material-ui/react-app-bar.md): The App Bar displays information and actions relating to the current screen. - [Backdrop React Component](/material-ui/react-backdrop.md): The Backdrop component narrows the user's focus to a particular element on the screen. - [Bottom Navigation React component](/material-ui/react-bottom-navigation.md): The Bottom Navigation bar allows movement between primary destinations in an app. - [Circular, Linear progress React components](/material-ui/react-progress.md): Progress indicators commonly known as spinners, express an unspecified wait time or display the length of a process. - [CSS Baseline](/material-ui/react-css-baseline.md): The CssBaseline component helps to kickstart an elegant, consistent, and simple baseline to build upon. - [Detect click outside React component](/material-ui/react-click-away-listener.md): The Click-Away Listener component detects when a click event happens outside of its child element. - [How to customize](/material-ui/customization/how-to-customize.md): Learn how to customize Material UI components by taking advantage of different strategies for specific use cases. - [Image List React component](/material-ui/react-image-list.md): The Image List displays a collection of images in an organized grid. - [InitColorSchemeScript component](/material-ui/react-init-color-scheme-script.md): The InitColorSchemeScript component eliminates dark mode flickering in server-side-rendered applications. - [No SSR React component](/material-ui/react-no-ssr.md): The No-SSR component defers the rendering of children components from the server to the client. - [React Accordion component](/material-ui/react-accordion.md): The Accordion component lets users show and hide sections of related content on a page. - [React Alert component](/material-ui/react-alert.md): Alerts display brief messages for the user without interrupting their use of the app. - [React Autocomplete component](/material-ui/react-autocomplete.md): The autocomplete is a normal text input enhanced by a panel of suggested options. - [React Avatar component](/material-ui/react-avatar.md): Avatars are found throughout material design with uses in everything from tables to dialog menus. - [React Box](/material-ui/react-box.md): The Box component is a generic, theme-aware container with access to CSS utilities from MUI System. - [React Breadcrumbs component](/material-ui/react-breadcrumbs.md): A breadcrumbs is a list of links that help visualize a page's location within a site's hierarchical structure, it allows navigation up to any of the ancestors. - [React Button component](/material-ui/react-button.md): Buttons allow users to take actions, and make choices, with a single tap. - [React Button Group component](/material-ui/react-button-group.md): The ButtonGroup component can be used to group related buttons. - [React Card component](/material-ui/react-card.md): Cards contain content and actions about a single subject. - [React Checkbox component](/material-ui/react-checkbox.md): Checkboxes allow the user to select one or more items from a set. - [React Chip component](/material-ui/react-chip.md): Chips are compact elements that represent an input, attribute, or action. - [React Container component](/material-ui/react-container.md): The container centers your content horizontally. It's the most basic layout element. - [React Dialog component](/material-ui/react-dialog.md): Dialogs inform users about a task and can contain critical information, require decisions, or involve multiple tasks. - [React Divider component](/material-ui/react-divider.md): The Divider component provides a thin, unobtrusive line for grouping elements to reinforce visual hierarchy. - [React Drawer component](/material-ui/react-drawer.md): The navigation drawers (or "sidebars") provide ergonomic access to destinations in a site or app functionality such as switching accounts. - [React Floating Action Button (FAB) component](/material-ui/react-floating-action-button.md): A Floating Action Button (FAB) performs the primary, or most common, action on a screen. - [React Grid component](/material-ui/react-grid.md): The responsive layout grid adapts to screen size and orientation, ensuring consistency across layouts. - [React GridLegacy component](/material-ui/react-grid-legacy.md): The Material Design responsive layout grid adapts to screen size and orientation, ensuring consistency across layouts. - [React Icon Component](/material-ui/icons.md): Guidance and suggestions for using icons with Material UI. - [React List component](/material-ui/react-list.md): Lists are continuous, vertical indexes of text or images. - [React Masonry component](/material-ui/react-masonry.md): Masonry lays out contents of varying dimensions as blocks of the same width and different height with configurable gaps. - [React Menu component](/material-ui/react-menu.md): Menus display a list of choices on temporary surfaces. - [React Modal component](/material-ui/react-modal.md): The modal component provides a solid foundation for creating dialogs, popovers, lightboxes, or whatever else. - [React Pagination component](/material-ui/react-pagination.md): The Pagination component enables the user to select a specific page from a range of pages. - [React Popover component](/material-ui/react-popover.md): A Popover can be used to display some content on top of another. - [React Portal component](/material-ui/react-portal.md): The Portal component lets you render its children into a DOM node that exists outside of the Portal's own DOM hierarchy. - [React Radio Group component](/material-ui/react-radio-button.md): The Radio Group allows the user to select one option from a set. - [React Rating component](/material-ui/react-rating.md): Ratings provide insight regarding others' opinions and experiences, and can allow the user to submit a rating of their own. - [React Select component](/material-ui/react-select.md): Select components are used for collecting user provided information from a list of options. - [React Skeleton component](/material-ui/react-skeleton.md): Display a placeholder preview of your content before the data gets loaded to reduce load-time frustration. - [React Slider component](/material-ui/react-slider.md): Sliders allow users to make selections from a range of values. - [React Snackbar component](/material-ui/react-snackbar.md): Snackbars (also known as toasts) are used for brief notifications of processes that have been or will be performed. - [React Speed Dial component](/material-ui/react-speed-dial.md): When pressed, a floating action button can display three to six related actions in the form of a Speed Dial. - [React Stack component](/material-ui/react-stack.md): Stack is a container component for arranging elements vertically or horizontally. - [React Stepper component](/material-ui/react-stepper.md): Steppers convey progress through numbered steps. It provides a wizard-like workflow. - [React Switch component](/material-ui/react-switch.md): Switches toggle the state of a single setting on or off. - [React Table component](/material-ui/react-table.md): Tables display sets of data. They can be fully customized. - [React Tabs component](/material-ui/react-tabs.md): Tabs make it easy to explore and switch between different views. - [React Text Field component](/material-ui/react-text-field.md): Text Fields let users enter and edit text. - [React Timeline component](/material-ui/react-timeline.md): The timeline displays a list of events in chronological order. - [React Tooltip component](/material-ui/react-tooltip.md): Tooltips display informative text when users hover over, focus on, or tap an element. - [React Transition component](/material-ui/transitions.md): Transitions help to make a UI expressive and easy to use. - [Textarea Autosize React component](/material-ui/react-textarea-autosize.md): The Textarea Autosize component automatically adjusts its height to match the length of the content within. - [Toggle Button React component](/material-ui/react-toggle-button.md): A Toggle Button can be used to group related options. ## Getting Started - [Design resources](/material-ui/getting-started/design-resources.md): Be more efficient designing and developing with the same library. - [Example projects](/material-ui/getting-started/example-projects.md): A collection of examples and scaffolds integrating Material UI with popular libraries and frameworks. - [Frequently Asked Questions](/material-ui/getting-started/faq.md): Stuck on a particular problem? Check some of these common gotchas first in the FAQ. - [Installation](/material-ui/getting-started/installation.md): Install Material UI, the world's most popular React UI framework. - [Learning resources](/material-ui/getting-started/learn.md): New to Material UI? Get up to speed quickly with our curated list of learning resources. - [Overview](/material-ui/getting-started/overview.md): Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box. - [Support](/material-ui/getting-started/support.md): Learn how to get support for Material UI components, including feature requests, bug fixes, and technical support from the team. - [Supported components](/material-ui/getting-started/supported-components.md): The following is a list of Material Design components & features. - [Supported platforms](/material-ui/getting-started/supported-platforms.md): Learn about the platforms, from modern to old, that are supported by Material UI. - [New Free React Templates](/material-ui/getting-started/templates.md): Browse our collection of free React templates to get started building your app with Material UI, including a React dashboard, React marketing page, and more. - [Usage](/material-ui/getting-started/usage.md): Learn the basics of working with Material UI components. ## Templates - [Blog template](/material-ui/getting-started/templates/blog.md) - [Checkout template](/material-ui/getting-started/templates/checkout.md) - [Dashboard template](/material-ui/getting-started/templates/dashboard.md) - [Marketing page template](/material-ui/getting-started/templates/marketing-page.md) - [Sign-in template](/material-ui/getting-started/templates/sign-in.md) - [Sign-in side template](/material-ui/getting-started/templates/sign-in-side.md) - [Sign-up template](/material-ui/getting-started/templates/sign-up.md) ## Customization - [Breakpoints](/material-ui/customization/breakpoints.md): API that enables the use of breakpoints in a wide variety of contexts. - [Color](/material-ui/customization/color.md): Convey meaning through color. Out of the box you get access to all colors in the Material Design guidelines. - [Container queries](/material-ui/customization/container-queries.md): Material UI provides a utility function for creating CSS container queries based on theme breakpoints. - [Creating themed components](/material-ui/customization/creating-themed-components.md): Learn how to create fully custom components that accept your app's theme. - [CSS Layers](/material-ui/customization/css-layers.md): Learn how to generate Material UI styles with cascade layers. - [CSS theme variables - Configuration](/material-ui/customization/css-theme-variables.md): A guide for configuring CSS theme variables in Material UI. - [CSS theme variables](/material-ui/customization/css-theme-variables.md): An overview of adopting CSS theme variables in Material UI. - [CSS theme variables - Usage](/material-ui/customization/css-theme-variables.md): Learn how to adopt CSS theme variables. - [Dark mode](/material-ui/customization/dark-mode.md): Material UI comes with two palette modes: light (the default) and dark. - [Default theme viewer](/material-ui/customization/default-theme.md): This tree view allows you to explore how the theme object looks like with the default values. - [Density](/material-ui/customization/density.md): How to apply density to Material UI components. - [How to customize](/material-ui/customization/how-to-customize.md): Learn how to customize Material UI components by taking advantage of different strategies for specific use cases. - [Overriding component structure](/material-ui/customization/overriding-component-structure.md): Learn how to override the default DOM structure of Material UI components. - [Palette](/material-ui/customization/palette.md): The palette enables you to modify the color of the components to suit your brand. - [Right-to-left support](/material-ui/customization/right-to-left.md): Learn how to implement right-to-left (RTL) text with Material UI to support languages such as Arabic, Persian, and Hebrew. - [Shadow DOM](/material-ui/customization/shadow-dom.md): The shadow DOM lets you encapsulate parts of an app to keep them separate from global styles that target the regular DOM tree. - [Spacing](/material-ui/customization/spacing.md): Use the theme.spacing() helper to create consistent spacing between the elements of your UI. - [Themed components](/material-ui/customization/theme-components.md): You can customize a component's styles, default props, and more by using its component key inside the theme. - [Theming](/material-ui/customization/theming.md): Customize Material UI with your theme. You can change the colors, the typography and much more. - [Transitions](/material-ui/customization/transitions.md): These theme helpers allow you to create custom CSS transitions, you can customize the durations, easings and more. - [Typography](/material-ui/customization/typography.md): The theme provides a set of type sizes that work well together, and also with the layout grid. - [z-index](/material-ui/customization/z-index.md): z-index is the CSS property that helps control layout by providing a third axis to arrange content. ## Experimental Api - [ClassName generator](/material-ui/experimental-api/classname-generator.md): Configure classname generation at build time. - [Getting started with Pigment CSS](/material-ui/experimental-api/pigment-css.md): Learn how to get started customizing your components using Pigment CSS. ## Guides - [API design approach](/material-ui/guides/api.md): We have learned a great deal regarding how Material UI is used, and the v1 rewrite allowed us to completely rethink the component API. - [Composition](/material-ui/guides/composition.md): Material UI tries to make composition as easy as possible. - [Content Security Policy (CSP)](/material-ui/guides/content-security-policy.md): This section covers the details of setting up a CSP. - [Localization](/material-ui/guides/localization.md): Localization (also referred to as "l10n") is the process of adapting a product or content to a specific locale or market. - [Minimizing bundle size](/material-ui/guides/minimizing-bundle-size.md): Learn how to reduce your bundle size and improve development performance by avoiding costly import patterns. - [Responsive UI](/material-ui/guides/responsive-ui.md): Material Design layouts encourage consistency across platforms, environments, and screen sizes by using uniform elements and spacing. - [Server rendering](/material-ui/guides/server-rendering.md): The most common use case for server-side rendering is to handle the initial render when a user (or search engine crawler) first requests your app. - [Testing](/material-ui/guides/testing.md): Write tests to prevent regressions and write better code. - [TypeScript](/material-ui/guides/typescript.md): You can add static typing to JavaScript to improve developer productivity and code quality thanks to TypeScript. ## Integrations - [Style library interoperability](/material-ui/integrations/interoperability.md): While you can use the Emotion-based styling solution provided by Material UI, you can also use the one you already know, from plain CSS to styled-components. - [Next.js integration](/material-ui/integrations/nextjs.md): Learn how to use Material UI with Next.js. - [Routing libraries](/material-ui/integrations/routing.md): By default, the navigation is performed with a native <a> element. You can customize it, for instance, using Next.js's Link or react-router. - [Using styled-components](/material-ui/integrations/styled-components.md): Learn how to use styled-components instead of Emotion with Material UI. - [Tailwind CSS v4 integration](/material-ui/integrations/tailwindcss.md): Learn how to use Material UI with Tailwind CSS v4. - [Theme scoping](/material-ui/integrations/theme-scoping.md): Learn how to use multiple styling solutions in a single Material UI app. ## Migration - [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis.md): Learn how to migrate away from recently deprecated APIs before they become breaking changes. - [Migration from v0.x to v1](/material-ui/migration/migration-v0x.md): Yeah, v1 has been released! Take advantage of 2 years worth of effort. - [Migration from v3 to v4](/material-ui/migration/migration-v3.md): Yeah, v4 has been released! - [Migrating from JSS (optional)](/material-ui/migration/migration-v4.md): This guide explains how to migrate from JSS to Emotion when updating from Material UI v4 to v5. - [Migrating to v5: getting started](/material-ui/migration/migration-v4.md): This guide explains how and why to migrate from Material UI v4 to v5. - [Troubleshooting](/material-ui/migration/migration-v4.md): This document covers known issues and common problems encountered when migrating from Material UI v4 to v5. - [Breaking changes in v5, part two: core components](/material-ui/migration/migration-v4.md): This is a reference guide to the breaking changes introduced in Material UI v5, and how to migrating from v4. This part covers changes to components. - [Breaking changes in v5, part one: styles and themes](/material-ui/migration/migration-v4.md): This is a reference guide to the breaking changes introduced in Material UI v5, and how to migrating from v4. This part covers changes to styling and theming. - [Migration from @material-ui/pickers](/material-ui/migration/pickers-migration.md):

@material-ui/pickers was moved to the @mui/lab.

- [Upgrade to Grid v2](/material-ui/migration/upgrade-to-grid-v2.md): This guide explains how and why to migrate from the GridLegacy component to the Grid component. - [Migrating to Pigment CSS](/material-ui/migration/upgrade-to-v6.md): This guide helps you integrate Pigment CSS with Material UI. - [Upgrade to v6](/material-ui/migration/upgrade-to-v6.md): This guide explains why and how to upgrade from Material UI v5 to v6. - [Upgrade to v7](/material-ui/migration/upgrade-to-v7.md): This guide explains how to upgrade from Material UI v6 to v7.