diff --git a/.eslintrc.js b/.eslintrc.js index 9a8fd3fe4ed11f..b172f90d4af49d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -227,7 +227,7 @@ module.exports = { rules: { 'material-ui/no-hardcoded-labels': [ 'error', - { allow: ['Material-UI', 'Twitter', 'GitHub', 'StackOverflow'] }, + { allow: ['MUI', 'Twitter', 'GitHub', 'StackOverflow'] }, ], }, }, diff --git a/.github/ISSUE_TEMPLATE/1.bug.md b/.github/ISSUE_TEMPLATE/1.bug.md index 3d4e3c53367941..d1e93ed08d31d6 100644 --- a/.github/ISSUE_TEMPLATE/1.bug.md +++ b/.github/ISSUE_TEMPLATE/1.bug.md @@ -1,13 +1,13 @@ --- name: Bug report 🐛 -about: Create a bug report for Material-UI. +about: Create a bug report for MUI. labels: 'status: needs triage' --- diff --git a/.github/ISSUE_TEMPLATE/2.feature.md b/.github/ISSUE_TEMPLATE/2.feature.md index 9f7ca1d68497dd..01b9154dcfd1c0 100644 --- a/.github/ISSUE_TEMPLATE/2.feature.md +++ b/.github/ISSUE_TEMPLATE/2.feature.md @@ -7,7 +7,7 @@ labels: 'status: needs triage' diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index d2a043e1fbcb6c..f27c03b69e9137 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -2,4 +2,4 @@ blank_issues_enabled: false # force the usage of a template contact_links: - name: Support ❔ url: https://material-ui.com/getting-started/support/ - about: I need support with Material-UI. \ No newline at end of file + about: I need support with MUI. \ No newline at end of file diff --git a/.github/support.yml b/.github/support.yml index d71975077e08f5..c1eabe9d7e0c4e 100644 --- a/.github/support.yml +++ b/.github/support.yml @@ -6,7 +6,7 @@ supportLabel: support # Comment to post on issues marked as support requests. Add a link # to a support page, or set to `false` to disable supportComment: | - 👋 Thanks for using Material-UI! + 👋 Thanks for using MUI Core! We use GitHub issues exclusively as a bug and feature requests tracker, however, this issue appears to be a support request. diff --git a/.tidelift.yml b/.tidelift.yml index 162c094af78250..cac90cfab922d4 100644 --- a/.tidelift.yml +++ b/.tidelift.yml @@ -1,11 +1,11 @@ ci: platform: npm: - # Don't run unmainted test on nomnom, it's only used by build tools, not in Material-UI. + # Don't run unmainted test on nomnom, it's only used by build tools, not in MUI. nomnom: tests: unmaintained: skip - # Don't run vulnerabity test on os-locale, it's only used by yargs in build tools, not in Material-UI. + # Don't run vulnerabity test on os-locale, it's only used by yargs in build tools, not in MUI. os-locale: tests: vulnerable: skip diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3505d867ee6073..5f33def572c931 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,15 +1,15 @@ -# Contributing to Material-UI +# Contributing to MUI -If you're reading this, you're awesome! Thank you for helping us make this project great and being a part of the Material-UI community. Here are a few guidelines that will help you along the way. +If you're reading this, you're awesome! Thank you for helping us make this project great and being a part of the MUI community. Here are a few guidelines that will help you along the way. ## Code of Conduct -Material-UI has adopted the [Contributor Covenant](https://www.contributor-covenant.org/) as its Code of Conduct, and we expect project participants to adhere to it. +MUI has adopted the [Contributor Covenant](https://www.contributor-covenant.org/) as its Code of Conduct, and we expect project participants to adhere to it. Please read [the full text](/CODE_OF_CONDUCT.md) so that you can understand what actions will and will not be tolerated. ## A large spectrum of contributions -There are [many ways](https://material-ui.com/getting-started/faq/#material-ui-is-awesome-how-can-i-support-the-project) to contribute to Material-UI, code contribution is one aspect of it. For instance, documentation improvements are as important as code changes. +There are [many ways](https://material-ui.com/getting-started/faq/#material-ui-is-awesome-how-can-i-support-the-project) to contribute to MUI, code contribution is one aspect of it. For instance, documentation improvements are as important as code changes. ## Your first Pull Request @@ -33,7 +33,7 @@ If there has been no activity on the issue for 7 to 14 days, it is safe to assum ## Sending a Pull Request -Material-UI is a community project, so Pull Requests are always welcome, but, before working on a large change, it is best to open an issue first to discuss it with the maintainers. +MUI is a community project, so Pull Requests are always welcome, but, before working on a large change, it is best to open an issue first to discuss it with the maintainers. When in doubt, keep your Pull Requests small. To give a Pull Request the best chance of getting accepted, don't bundle more than one feature or bug fix per Pull Request. It's often best to create two smaller Pull Requests than one big one. @@ -78,7 +78,7 @@ The core team is monitoring for Pull Requests. We will review your Pull Request ### Trying changes on the documentation site -The documentation site is built with Material-UI and contains examples of all the components. +The documentation site is built with MUI and contains examples of all the components. This is a great place to experiment with your changes. It's the local development environment used by the maintainers. @@ -130,7 +130,7 @@ The following section gives an overview of what each check is responsible for. ##### ci/codesandbox This task should not fail in isolation. It creates multiple sandboxes on CodeSandbox.com that use the version -of Material-UI that was built from this Pull Request. Use it to test more complex scenarios. +of MUI that was built from this Pull Request. Use it to test more complex scenarios. ##### ci/circleci: checkout @@ -204,7 +204,7 @@ $ yarn docs:api ### Coding style -Please follow the coding style of the project. Material-UI uses prettier and eslint, so if possible, enable linting in your editor to get real-time feedback. +Please follow the coding style of the project. MUI uses prettier and eslint, so if possible, enable linting in your editor to get real-time feedback. - `yarn prettier` reformats the code. - `yarn lint` runs manually the linting rules. @@ -244,7 +244,7 @@ about translations](#translations). #### 3. Write the content of the demo -Material-UI documents how to use this library with TypeScript. +MUI documents how to use this library with TypeScript. If you are familiar with this language, write the demo in TypeScript, and only, in a \*.tsx file. When you're done run `yarn docs:typescript:formatted` to automatically create the JavaScript version. @@ -286,7 +286,7 @@ these changes across the localized versions. ## Roadmap -To get a sense of where Material-UI is heading, or for ideas on where you could contribute, take a look at the [roadmap](https://material-ui.com/discover-more/roadmap/). +To get a sense of where MUI is heading, or for ideas on where you could contribute, take a look at the [roadmap](https://material-ui.com/discover-more/roadmap/). ## License diff --git a/README.md b/README.md index cf24f87037da98..11189c483672c2 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@

- Material-UI logo

+ MUI logo

-

Material-UI

+

MUI

-Quickly build beautiful [React](https://reactjs.org/) apps. Material-UI is a simple and customizable component library to build faster, beautiful, and more accessible React applications. Follow your own design system, or start with [Material Design](https://material.io/design/introduction/). +Quickly build beautiful [React](https://reactjs.org/) apps. MUI is a simple and customizable component library to build faster, beautiful, and more accessible React applications. Follow your own design system, or start with [Material Design](https://material.io/design/introduction/). [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/mui-org/material-ui/blob/master/LICENSE) [![npm latest package](https://img.shields.io/npm/v/@mui/material/latest.svg)](https://www.npmjs.com/package/@mui/material) @@ -24,7 +24,7 @@ Quickly build beautiful [React](https://reactjs.org/) apps. Material-UI is a sim ## Installation -Material-UI is available as an [npm package](https://www.npmjs.com/package/@mui/material). +MUI is available as an [npm package](https://www.npmjs.com/package/@mui/material). **[Stable channel v5](https://material-ui.com/)** @@ -47,7 +47,7 @@ yarn add @mui/material @emotion/react @emotion/styled Please note that `@next` will only point to pre-releases; to get the latest stable release use `@latest` instead. -## Who sponsors Material-UI? +## Who sponsors MUI? ### Diamond 💎 @@ -56,7 +56,7 @@ Please note that `@next` will only point to pre-releases; to get the latest stab doit-intl

-Diamond Sponsors are those who have pledged \$1,500/month or more to Material-UI. +Diamond Sponsors are those who have pledged \$1,500/month or more to MUI. ### Gold 🏆 @@ -82,7 +82,7 @@ Direct elevator

-Gold Sponsors are those who have pledged \$500/month or more to Material-UI. +Gold Sponsors are those who have pledged \$500/month or more to MUI. ### There is more! @@ -125,14 +125,14 @@ Check out our [documentation website](https://material-ui.com/). ## Premium Themes -You can find complete templates & themes in the [Material-UI store](https://material-ui.com/store/?utm_source=docs&utm_medium=referral&utm_campaign=readme-store). +You can find complete templates & themes in the [MUI store](https://material-ui.com/store/?utm_source=docs&utm_medium=referral&utm_campaign=readme-store). ## Contributing -Read the [contributing guide](/CONTRIBUTING.md) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Material-UI. +Read the [contributing guide](/CONTRIBUTING.md) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to MUI. Notice that contributions go far beyond pull requests and commits. -Although we love giving you the opportunity to put your stamp on Material-UI, we also are thrilled to receive a variety of [other contributions](https://material-ui.com/getting-started/faq/#material-ui-is-awesome-how-can-i-support-the-project). +Although we love giving you the opportunity to put your stamp on MUI, we also are thrilled to receive a variety of [other contributions](https://material-ui.com/getting-started/faq/#material-ui-is-awesome-how-can-i-support-the-project). ## Changelog @@ -149,7 +149,7 @@ This project is licensed under the terms of the ## Sponsoring services -These great services sponsor Material-UI's core infrastructure: +These great services sponsor MUI's core infrastructure: [GitHub](https://github.com/) diff --git a/benchmark/browser/README.md b/benchmark/browser/README.md index 580f128df80d7f..0e24be2a9f6609 100644 --- a/benchmark/browser/README.md +++ b/benchmark/browser/README.md @@ -23,7 +23,7 @@ React primitives: 34 ±6% React components: 45 ±3% -Styled Material-UI: +Styled MUI: 73 ±4% Styled emotion: 67 ±3% @@ -33,7 +33,7 @@ makeStyles: 71 ±3% Box Baseline: 81 ±3% -Box Material-UI: +Box MUI: 209 ±15% Box Theme-UI: 172 ±8% diff --git a/benchmark/browser/scripts/benchmark.js b/benchmark/browser/scripts/benchmark.js index 1c19bacf05dbcd..8bbd823b548fc7 100644 --- a/benchmark/browser/scripts/benchmark.js +++ b/benchmark/browser/scripts/benchmark.js @@ -170,7 +170,7 @@ async function run() { }, // Test that @mui/styled-engine doesn't add an signifiant overhead { - name: 'Styled Material-UI', + name: 'Styled MUI', path: './styled-material-ui/index.js', }, { @@ -192,7 +192,7 @@ async function run() { path: './box-baseline/index.js', }, { - name: 'Box Material-UI', + name: 'Box MUI', path: './box-material-ui/index.js', }, { diff --git a/benchmark/package.json b/benchmark/package.json index 90570b042b3c17..06a14190477a89 100644 --- a/benchmark/package.json +++ b/benchmark/package.json @@ -24,10 +24,10 @@ "react-dom": "^17.0.2", "react-is": "^17.0.2", "react-jss": "^10.7.1", - "react-redux": "^7.1.1", - "redux": "^4.0.4", + "react-redux": "^7.2.5", + "redux": "^4.1.1", "serve-handler": "^6.1.3", - "styled-components": "^5.0.0", + "styled-components": "^5.3.1", "theme-ui": "^0.10.0", "webpack": "^4.41.0", "webpack-cli": "^4.0.0" diff --git a/benchmark/server/README.md b/benchmark/server/README.md index 51981a93b859dc..79053911b3b5d7 100644 --- a/benchmark/server/README.md +++ b/benchmark/server/README.md @@ -1,4 +1,4 @@ -# Material-UI benchmark +# MUI benchmark ## `@mui/material` diff --git a/benchmark/server/scenarios/core.js b/benchmark/server/scenarios/core.js index a5c225847f4936..891e5981b0a482 100644 --- a/benchmark/server/scenarios/core.js +++ b/benchmark/server/scenarios/core.js @@ -24,7 +24,7 @@ suite .add('ButtonBase', () => { ReactDOMServer.renderToString( - Material-UI + MUI , ); }) @@ -43,10 +43,10 @@ suite ); }) .add('ButtonBase enable ripple', () => { - ReactDOMServer.renderToString(Material-UI); + ReactDOMServer.renderToString(MUI); }) .add('ButtonBase disable ripple', () => { - ReactDOMServer.renderToString(Material-UI); + ReactDOMServer.renderToString(MUI); }) .on('cycle', (event) => { console.log(String(event.target)); diff --git a/benchmark/server/scenarios/styles.js b/benchmark/server/scenarios/styles.js index cbfc13bde79f39..1dd80ae0a7e6dd 100644 --- a/benchmark/server/scenarios/styles.js +++ b/benchmark/server/scenarios/styles.js @@ -93,7 +93,7 @@ suite ReactDOMServer.renderToString( {Array.from(new Array(5)).map((_, index) => ( - Material-UI + MUI ))} , ); @@ -105,7 +105,7 @@ suite {Array.from(new Array(5)).map((_, index) => ( - Material-UI + MUI ))} , @@ -137,7 +137,7 @@ suite {Array.from(new Array(5)).map((_, index) => ( ))} , @@ -150,7 +150,7 @@ suite {Array.from(new Array(5)).map((_, index) => ( - Material-UI + MUI ))} , @@ -162,7 +162,7 @@ suite ReactDOMServer.renderToString( {Array.from(new Array(5)).map((_, index) => ( - Material-UI + MUI ))} , ); @@ -173,7 +173,7 @@ suite ReactDOMServer.renderToString( {Array.from(new Array(5)).map((_, index) => ( - Material-UI + MUI ))} , ); @@ -185,7 +185,7 @@ suite sheet.collectStyles( {Array.from(new Array(5)).map((_, index) => ( - Material-UI + MUI ))} , ), @@ -196,7 +196,7 @@ suite ReactDOMServer.renderToString( {Array.from(new Array(5)).map((_, index) => ( - Material-UI + MUI ))} , ); @@ -205,7 +205,7 @@ suite ReactDOMServer.renderToString( {Array.from(new Array(5)).map((_, index) => ( - Material-UI + MUI ))} , ); @@ -215,7 +215,7 @@ suite ReactDOMServer.renderToString( {Array.from(new Array(5)).map((_, index) => ( - Material-UI + MUI ))} , ), @@ -225,7 +225,7 @@ suite ReactDOMServer.renderToString( {Array.from(new Array(5)).map((_, index) => ( - Material-UI + MUI ))} , ); diff --git a/docs/README.md b/docs/README.md index cf7bbd24062c42..cf319eb266d76f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ -# Material-UI docs +# MUI docs -This is the documentation website of Material-UI. +This is the documentation website of MUI. To start the docs site in development mode, from the project root, run: @@ -15,7 +15,7 @@ _DO NOT USE NPM, use Yarn to install the dependencies._ ## How can I add a new demo to the documentation? [You can follow this guide](https://github.com/mui-org/material-ui/blob/HEAD/CONTRIBUTING.md) -on how to get started contributing to Material-UI. +on how to get started contributing to MUI. ## How do I help to improve the translations? diff --git a/docs/next.config.js b/docs/next.config.js index f67bd70b378d81..b1423fe434e929 100644 --- a/docs/next.config.js +++ b/docs/next.config.js @@ -64,9 +64,12 @@ module.exports = { config.externals = [ (ctx, callback) => { const { request } = ctx; - const hasDependencyOnRepoPackages = ['notistack', '@material-ui/data-grid'].includes( - request, - ); + const hasDependencyOnRepoPackages = [ + 'notistack', + '@mui/x-data-grid', + '@mui/x-data-grid-pro', + '@mui/x-data-grid-generator', + ].includes(request); if (hasDependencyOnRepoPackages) { return callback(null); @@ -106,7 +109,8 @@ module.exports = { // transpile 3rd party packages with dependencies in this repository { test: /\.(js|mjs|jsx)$/, - include: /node_modules(\/|\\)(notistack|@material-ui(\/|\\)data-grid)/, + include: + /node_modules(\/|\\)(notistack|@mui(\/|\\)x-data-grid|@mui(\/|\\)x-data-grid-pro|@mui(\/|\\)x-license-pro|@mui(\/|\\)x-data-grid-generator)/, use: { loader: 'babel-loader', options: { diff --git a/docs/notifications.json b/docs/notifications.json index 6bb76283c322ad..ebb5ecb580c9f5 100644 --- a/docs/notifications.json +++ b/docs/notifications.json @@ -2,11 +2,11 @@ { "id": 35, "title": "Let's translate!", - "text": "帮助 Material-UI 将文档翻译成中文. 🇨🇳", + "text": "帮助 MUI 将文档翻译成中文. 🇨🇳", "userLanguage": "zh" }, { "id": 53, - "text": "You can follow us on Twitter to receive exclusive tips and updates about Material-UI and the React ecosystem." + "text": "You can follow us on Twitter to receive exclusive tips and updates about MUI and the React ecosystem." } ] diff --git a/docs/package.json b/docs/package.json index 8ca9370787de6c..b30a6e23a5975c 100644 --- a/docs/package.json +++ b/docs/package.json @@ -2,7 +2,7 @@ "name": "docs", "version": "5.0.0", "private": true, - "author": "Material-UI Team", + "author": "MUI Team", "license": "MIT", "scripts": { "build": "cross-env NODE_ENV=production NODE_OPTIONS=--max_old_space_size=4096 next build --profile", @@ -30,7 +30,9 @@ "@fortawesome/fontawesome-svg-core": "^1.2.36", "@fortawesome/free-solid-svg-icons": "^5.15.4", "@fortawesome/react-fontawesome": "^0.1.15", - "@material-ui/data-grid": "^4.0.0-alpha.37", + "@mui/x-data-grid": "^4.0.0", + "@mui/x-data-grid-pro": "^4.0.0", + "@mui/x-data-grid-generator": "^4.0.0", "@mui/core": "5.0.0-alpha.46", "@mui/docs": "5.0.0-rc.1", "@mui/icons-material": "5.0.0-rc.1", @@ -48,11 +50,11 @@ "@types/markdown-to-jsx": "^7.0.1", "@types/react-dom": "^17.0.9", "@types/react-router-dom": "^5.1.0", - "@types/react-swipeable-views": "^0.13.0", + "@types/react-swipeable-views": "^0.13.1", "@types/react-swipeable-views-utils": "^0.13.3", - "@types/react-virtualized": "^9.21.4", - "@types/react-window": "^1.7.0", - "@types/styled-components": "5.1.12", + "@types/react-virtualized": "^9.21.13", + "@types/react-window": "^1.8.5", + "@types/styled-components": "5.1.14", "accept-language": "^3.0.18", "address": "^1.1.2", "ast-types": "^0.14.2", @@ -94,25 +96,25 @@ "react": "^17.0.2", "react-docgen": "^5.4.0", "react-dom": "^17.0.2", - "react-draggable": "^4.0.3", - "react-final-form": "^6.3.0", + "react-draggable": "^4.4.4", + "react-final-form": "^6.5.3", "react-imask": "^6.1.0", - "react-intersection-observer": "^8.32.0", + "react-intersection-observer": "^8.32.1", "react-is": "^17.0.2", "react-number-format": "^4.7.3", "react-router": "^5.0.0", "react-router-dom": "^5.0.1", "react-spring": "^8.0.27", - "react-swipeable-views": "^0.14.0-alpha.0", - "react-transition-group": "^4.4.1", - "react-virtualized": "^9.21.1", - "react-window": "^1.8.5", - "recast": "^0.20.2", - "recharts": "^2.1.0", - "rimraf": "^3.0.0", - "styled-components": "^5.0.0", - "stylis": "^4.0.3", - "stylis-plugin-rtl": "^2.0.2", + "react-swipeable-views": "^0.14.0", + "react-transition-group": "^4.4.2", + "react-virtualized": "^9.22.3", + "react-window": "^1.8.6", + "recast": "^0.20.5", + "recharts": "^2.1.2", + "rimraf": "^3.0.2", + "styled-components": "^5.3.1", + "stylis": "^4.0.10", + "stylis-plugin-rtl": "^2.1.0", "stylis-plugin-rtl-sc": "npm:stylis-plugin-rtl@^1.1.0", "webfontloader": "^1.6.28", "webpack-bundle-analyzer": "^4.1.0" diff --git a/docs/packages/feedback/README.md b/docs/packages/feedback/README.md index 1330cfbf7eb40f..689ece6eacc855 100644 --- a/docs/packages/feedback/README.md +++ b/docs/packages/feedback/README.md @@ -1,6 +1,6 @@ # Rating -This Lambda function stores and retrieves page feedback using DynamoDB. It is already deployed in the Material-UI AWS account. Request credentials if you need to update dev for testing, or to deploy a new prod version. +This Lambda function stores and retrieves page feedback using DynamoDB. It is already deployed in the MUI AWS account. Request credentials if you need to update dev for testing, or to deploy a new prod version. If you wish to deploy your own instance for testing, follow the steps below. diff --git a/docs/packages/feedback/package.json b/docs/packages/feedback/package.json index 0e2f1a598867e2..c5d0e5c22198a5 100644 --- a/docs/packages/feedback/package.json +++ b/docs/packages/feedback/package.json @@ -4,7 +4,7 @@ "description": "Store and retrieve page ratings and comments", "main": "./index.js", "license": "MIT", - "author": "Material-UI Team", + "author": "MUI Team", "private": true, "files": [ "*.js" diff --git a/docs/pages/_app.js b/docs/pages/_app.js index 38229a48e364ee..3374361fd56ee4 100644 --- a/docs/pages/_app.js +++ b/docs/pages/_app.js @@ -1,3 +1,9 @@ +/* eslint-disable import/first */ +import { LicenseInfo } from '@mui/x-data-grid-pro'; + +// Remove the license warning from demonstration purposes +LicenseInfo.setLicenseKey(process.env.NEXT_PUBLIC_MUI_LICENSE); + import 'docs/src/modules/components/bootstrap'; // --- Post bootstrap ----- import * as React from 'react'; @@ -261,12 +267,12 @@ if (process.browser && process.env.NODE_ENV === 'production') { console.log( `%c -███╗ ███╗ █████╗ ████████╗███████╗██████╗ ██╗ █████╗ ██╗ ██╗ ██╗██╗ -████╗ ████║██╔══██╗╚══██╔══╝██╔════╝██╔══██╗██║██╔══██╗██║ ██║ ██║██║ -██╔████╔██║███████║ ██║ █████╗ ██████╔╝██║███████║██║█████╗██║ ██║██║ -██║╚██╔╝██║██╔══██║ ██║ ██╔══╝ ██╔══██╗██║██╔══██║██║╚════╝██║ ██║██║ -██║ ╚═╝ ██║██║ ██║ ██║ ███████╗██║ ██║██║██║ ██║███████╗ ╚██████╔╝██║ -╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ +███╗ ███╗ ██╗ ██╗ ██████╗ +████╗ ████║ ██║ ██║ ██╔═╝ +██╔████╔██║ ██║ ██║ ██║ +██║╚██╔╝██║ ██║ ██║ ██║ +██║ ╚═╝ ██║ ╚██████╔╝ ██████╗ +╚═╝ ╚═╝ ╚═════╝ ╚═════╝ Tip: you can access the documentation \`theme\` object directly in the console. `, diff --git a/docs/pages/api-docs/checkbox.json b/docs/pages/api-docs/checkbox.json index b9ac15e0b88e72..01b55d5de59bea 100644 --- a/docs/pages/api-docs/checkbox.json +++ b/docs/pages/api-docs/checkbox.json @@ -6,7 +6,7 @@ "color": { "type": { "name": "union", - "description": "'default'
| 'primary'
| 'secondary'
| 'error'
| 'info'
| 'succes'
| 'warning'
| string" + "description": "'default'
| 'primary'
| 'secondary'
| 'error'
| 'info'
| 'success'
| 'warning'
| string" }, "default": "'primary'" }, diff --git a/docs/pages/api-docs/image-list.json b/docs/pages/api-docs/image-list.json index 58d2f4135f71d3..c40be0e6722417 100644 --- a/docs/pages/api-docs/image-list.json +++ b/docs/pages/api-docs/image-list.json @@ -12,8 +12,8 @@ "sx": { "type": { "name": "object" } }, "variant": { "type": { - "name": "union", - "description": "'masonry'
| 'quilted'
| 'standard'
| 'woven'
| string" + "name": "enum", + "description": "'masonry'
| 'quilted'
| 'standard'
| 'woven'" }, "default": "'standard'" } diff --git a/docs/pages/blog/2019-developer-survey-results.md b/docs/pages/blog/2019-developer-survey-results.md index 690f96d6c68265..e24c9011c4ef3b 100644 --- a/docs/pages/blog/2019-developer-survey-results.md +++ b/docs/pages/blog/2019-developer-survey-results.md @@ -1,12 +1,12 @@ --- -description: 2019 Material-UI Developer Survey results +description: 2019 MUI Developer Survey results --- -# 2019 Material-UI Developer Survey results +# 2019 MUI Developer Survey results Olivier Tassinari, Matt Brookes. March 16, 2019. -While we are currently working on the upcoming release of Material-UI v4, we need to prioritize our +While we are currently working on the upcoming release of MUI v4, we need to prioritize our roadmap for the coming year. To refine our focus, we launched a developer survey last month, to which we received 734 contributions. Thank you for your participation! The survey is now closed and this is a summary of the results. @@ -18,21 +18,21 @@ The survey was broken into three sections, "Introduction", "About you" and "Your Here we asked for the good, the bad and the ugly. Thankfully, it's mostly good, but we can focus on the things that will make it even better. -### 1. How would you feel if you could no longer use Material-UI? +### 1. How would you feel if you could no longer use MUI? Pie chart: 74.7% Very disappointed, 18.9% disappointed, 6.4% not disappointed. An overwhelming majority of respondents (over 93%), would be disappointed or very disappointed if -they could no longer use Material-UI. The benchmark for "very disappointed" is 40%, -so we're on the right track. Don't worry, Material-UI isn't going away any time soon – +they could no longer use MUI. The benchmark for "very disappointed" is 40%, +so we're on the right track. Don't worry, MUI isn't going away any time soon – we want to focus on making even more of you "very disappointed", as it were! Curiously, the 6.4% who said they would _not_ be disappointed if they could no longer use -Material-UI collectively gave a Net Promoter Score of 68%, which is +MUI collectively gave a Net Promoter Score of 68%, which is [higher than that of all respondents as a whole](#5-how-likely-is-it-that-you-would-recommend-material-ui-to-a-friend-or-colleague), so we know they love us really. 😘 -### 2. Who do you think would most benefit from Material-UI? +### 2. Who do you think would most benefit from MUI? This word cloud was generated with [wordclouds.com](https://wordclouds.com). @@ -41,17 +41,17 @@ This word cloud was generated with [wordclouds.com](https://wordclouds.com). Developers, developers, developers! (And "anyone" and "everyone", apparently! ) This is understandable, given the [job role demographic](#7-which-of-the-following-best-describes-your-current-job-role) of the majority of respondents. We'll continue to work on the developer experience, making it -easier to get started with, use, and customize Material-UI. +easier to get started with, use, and customize MUI. -### 3. What is the main benefit you receive from Material-UI? +### 3. What is the main benefit you receive from MUI? -Word cloud of the main benefit of Material-UI +Word cloud of the main benefit of MUI The responses variously commented on being able to focus on the business logic, time saved, good looking components, ease of use, design consistency, good documentation. We'll make sure that we continue to do more of the things that benefit you the most. -### 4. How can we improve Material-UI for you? +### 4. How can we improve MUI for you? We have grouped the answers into different categories. The prefix corresponds to the number of times the concern was mentioned. @@ -161,7 +161,7 @@ It's sorted descending, with the most important concerns first: - 1 **Styles: better docs** - 1 **Testing** -### 5. How likely is it that you would recommend Material-UI to a friend or colleague? +### 5. How likely is it that you would recommend MUI to a friend or colleague?
Bar chart of raw data @@ -173,13 +173,13 @@ It's sorted descending, with the most important concerns first:
Result.
-Developers gave Material-UI a [Net Promoter Score](https://en.wikipedia.org/wiki/Net_Promoter) +Developers gave MUI a [Net Promoter Score](https://en.wikipedia.org/wiki/Net_Promoter) (promoters less detractors) of 66%. Given the NPS range of -100 to +100, a "positive" score or NPS above 0 is considered "good", +50 is "Excellent", and above 70 is considered "world class." ## About you -### 6. How did you hear about Material-UI? +### 6. How did you hear about MUI? Multiple options were allowed. @@ -206,9 +206,9 @@ No huge surprises here! Bar chart: 61 Hobby, 98 Self-employed, 181 x 2-10, 167 x 11-50, 126 x 51-500, 89 x 500 + -Material-UI is most popular with small to medium sized organisations, +MUI is most popular with small to medium sized organisations, perhaps because beyond a certain size, organizations have teams building their own design system and framework. -We want to continue to make it easy to use the component logic of Material-UI while allowing +We want to continue to make it easy to use the component logic of MUI while allowing designers to give it a bespoke look and feel for their organization. ### 9. How long have you been developing with JavaScript @@ -221,28 +221,28 @@ A nice bell curve, with the majority of developers having 1 to 5 years experienc Bar chart: 99	x I'm just getting started!, 77	x 6 months +, 301 x 1 year +, 171 x 3 years +, 32 x 5 years - bleeding edge baby! -### 11. How long have you been developing with Material-UI? +### 11. How long have you been developing with MUI? Bar chart: 160	x I'm just getting started!, 147	x 6 months +, 293	x 1 year +, 71 x 3 years +, 11 x Four years + – I'm a pioneer! We missed a trick by not including "2 years +" here, so "1 year +" looks stacked. -The number of users of Material-UI continues to grow at a steady pace, and once on board, many +The number of users of MUI continues to grow at a steady pace, and once on board, many developers stick with it. -### 12. What were you primarily using before Material-UI? +### 12. What were you primarily using before MUI? Bar chart: 55% Bootstrap, 18% Custom, 12% Other, 7% Semantic-IU, 6% Materialize, 3% React Toolbox Given its relative popularity, and the move from CSS / HTML / jQuery towards front-end frameworks, it should come as no big surprise to see that the majority of respondents were previously using Bootstrap. -Custom solutions have also been replaced by Material-UI as your go-to UI library, along with a +Custom solutions have also been replaced by MUI as your go-to UI library, along with a long-tail of other frameworks. -### 13. How many Material-UI based projects have you built? +### 13. How many MUI based projects have you built? Pie chart: 10.7% I'm just getting started, 23.5% 1, 52.5% 2-5, 11.1% 6-10, 2.2% 10+ -Over three quarters of you have built two or more projects with Material-UI, with 13.3% having six +Over three quarters of you have built two or more projects with MUI, with 13.3% having six or more projects under your belt. The 2.2% with ten or more, we salute you! ## Your product diff --git a/docs/pages/blog/2019.md b/docs/pages/blog/2019.md index cd9ee24f3e6903..ed3be12dc196c3 100644 --- a/docs/pages/blog/2019.md +++ b/docs/pages/blog/2019.md @@ -1,12 +1,12 @@ --- -description: 2019 was a great year for Material-UI. It puts us on an exciting path to solve even greater challenges in the coming years! +description: 2019 was a great year for MUI. It puts us on an exciting path to solve even greater challenges in the coming years! --- # 2019 in review and beyond The core team. January 25, 2020. -2019 was a great year for Material-UI. +2019 was a great year for MUI. It puts us on an exciting path to solve even greater challenges in the coming years! ## Growth @@ -18,7 +18,7 @@ It puts us on an exciting path to solve even greater challenges in the coming ye - 💰 Grew financial support by 76% in 2019, compared to 2018. - 🏢 From 1.5 to 3 full-time equivalent developers, spread among multiple financially supported [core team members](https://material-ui.com/discover-more/team/). -The numbers speak for themselves. 2019 was super exciting and made Material-UI one of the most advanced open-source, React-based, UI component libraries! +The numbers speak for themselves. 2019 was super exciting and made MUI one of the most advanced open-source, React-based, UI component libraries! ## In review @@ -31,10 +31,10 @@ Some of the key factors: - The results of the [2019 Developer Survey](https://medium.com/material-ui/2019-material-ui-developer-survey-results-c9589434bbcf) have highlighted the immense potential for working on advanced components and features, especially for enterprise users. Developers are craving for a UI framework that they can learn once (e.g. few breaking changes, only one solution per problem) and use everywhere (e.g. comprehensive, customizable, high-quality). - Bootstrap had successfully released [a theme store](https://themes.getbootstrap.com/). - Following this approach opened an opportunity to capture a fraction of the value Material-UI creates for its users, and funnel it back into R&D on the framework. + Following this approach opened an opportunity to capture a fraction of the value MUI creates for its users, and funnel it back into R&D on the framework. - The market for paid UI components is in the order of a couple of \$100m/year, with dozens of companies positioned in this market. - While React is only one technology among many (jQuery, Angular, ASP.NET, Blazor, Vue, WPF, UWP, etc) with which to build a UI, but we believe that Web and React will become the dominant technology in the next 5 years for enterprises. Material-UI is uniquely positioned to address this market with non-MIT features. + While React is only one technology among many (jQuery, Angular, ASP.NET, Blazor, Vue, WPF, UWP, etc) with which to build a UI, but we believe that Web and React will become the dominant technology in the next 5 years for enterprises. MUI is uniquely positioned to address this market with non-MIT features. - Building UIs should be simpler, it still too slow and complex. Designers and developers should benefit from a more integrated experience. - Every now and then, we witness the appearance of a new React UI component library built from scratch ([UXPin](https://adele.uxpin.com/) keeps track of some of them). @@ -66,7 +66,7 @@ Some of the key factors: - We introduced [built-in localization](/guides/localization/). - We removed a good number of external dependencies and increased the `features/bundle size` density. - We introduced an [icon search page](/components/material-icons/). -- We released a [store for Material-UI](https://material-ui.com/store/). +- We released a [store for MUI](https://material-ui.com/store/). ## Looking at 2020 diff --git a/docs/pages/blog/2020-developer-survey-results.md b/docs/pages/blog/2020-developer-survey-results.md index 68f9ef628cb1e1..1324d4fa0e1d15 100644 --- a/docs/pages/blog/2020-developer-survey-results.md +++ b/docs/pages/blog/2020-developer-survey-results.md @@ -1,8 +1,8 @@ --- -description: 2020 Material-UI Developer Survey results +description: 2020 MUI Developer Survey results --- -# 2020 Material-UI Developer Survey results +# 2020 MUI Developer Survey results Marija Najdova, Olivier Tassinari, Matt Brookes. June 27, 2020. @@ -15,15 +15,15 @@ Like last year, the survey was again broken into three sections: ["Introduction" In this section, we wanted to hear what developers think is going well, what we should keep doing, and which areas need improving to make the library even better. -### 1. How would you feel if you could no longer use Material-UI? +### 1. How would you feel if you could no longer use MUI? Pie chart: 73.3% Very disappointed, 21.3% somewhat disappointed, 5.4% not disappointed. -Similar to last year, over 94% of the respondents would be disappointed if they could no longer use Material-UI, which is very encouraging. We will keep working hard to hopefully move more of you into the "very disappointed" category! +Similar to last year, over 94% of the respondents would be disappointed if they could no longer use MUI, which is very encouraging. We will keep working hard to hopefully move more of you into the "very disappointed" category! -The number of respondents who would not be disappointed has moved down from 6.5% to 5.4%, which is technically a 17% improvement! 🙂 We'd love to understand more about those who use Material-UI, but would happily use other solutions, so a follow-up question might be needed next year. +The number of respondents who would not be disappointed has moved down from 6.5% to 5.4%, which is technically a 17% improvement! 🙂 We'd love to understand more about those who use MUI, but would happily use other solutions, so a follow-up question might be needed next year. -### 2. How likely is it that you would recommend Material-UI to a friend or colleague? +### 2. How likely is it that you would recommend MUI to a friend or colleague? Bar chart: 0.20% - 1, 0% - 2, 0.20% - 3, 0.20% - 4, 1.02% - 5, 1.97% - 6, 8.71% - 7, 22.52% - 8, 20.88% - 9, 44.29% - 10
@@ -32,7 +32,7 @@ The number of respondents who would not be disappointed has moved down from 6.5% As last year, we again calculated the [Net Promoter Score](https://en.wikipedia.org/wiki/Net_Promoter) (promoters less detractors). This year it is again a pretty high number 61.54%! (As the values for NPS range between -100 and +100, a "positive" score is considered "good", greater than 50 is "excellent", and above 70 is considered "world class"). -### 3. Who do you think would most benefit from Material-UI? +### 3. Who do you think would most benefit from MUI? Word cloud of who would benefit most @@ -41,13 +41,13 @@ As last year, we again calculated the [Net Promoter Score](https://en.wikipedia. Developers are again at the center of our universe 🙂 (And "people" and "teams" in general, of course!) This is understandable, given the [job role demographic](#8-which-of-the-following-best-describes-your-current-job-role) of the majority of respondents. We will push hard on making the experience for you even better over the next year. -### 4. What is the main benefit you receive from Material-UI? +### 4. What is the main benefit you receive from MUI? -Word cloud of the main benefit of Material-UI +Word cloud of the main benefit of MUI The responses to this question are a very clear indicator to us about what we need to continue to do more of. Some of the most common points were: the range of components, ease of use, documentation quality, as well as the design. We will, of course, continue to work on all of these. -### 5. How can we improve Material-UI for you? +### 5. How can we improve MUI for you? As the answers to these questions were pretty different, we grouped them into different categories and counted the different number of times the concern was mentioned. You can see all of them sorted in descending order: @@ -191,7 +191,7 @@ Decreasing pain: - x0.1: Strict mode. We fixed a lot of strict mode compatibility issues this year. However, since Create React App has made this mode a default, we have seen a lot more requests for it. - x0.1: Autocomplete. We added a new component, and have resolved a large number of issues opened since. This will be moved from lab to the core in v5. - x0.2: Fewer breaking changes. Only releasing minor versions under v4 for over a year helps a lot. However, we still need to be careful with CSS changes. -- x0.3: Accessibility. We have been able to leverage GitHub issues opened by a11y experts, often coming from large companies using Material-UI at scale to improve it a lot this year. +- x0.3: Accessibility. We have been able to leverage GitHub issues opened by a11y experts, often coming from large companies using MUI at scale to improve it a lot this year. - x0.4: Material design. We didn't do much for it this year, at least not as much as we could have. Maybe the reduction is because fewer people care? It seems that we start to resonate more with developers building custom design systems. - x0.4: TypeScript. The continued migration of all the demos to TypeScript and of all the props to IntelliSense is paying off. - x0.5: Date picker. We did a lot for it this year. We probably still need the range feature, and to move it into the main repository (docs migration, etc.) for consistency. @@ -215,7 +215,7 @@ The number of answers was limited to 3. ## About you -### 7. How did you hear about Material-UI? +### 7. How did you hear about MUI? Bar chart: 50.65%	Search, 26.18%	Word of mouth, 10.76%	Social, 5.10%	Blog, 7.31%	Other. @@ -241,17 +241,17 @@ We can see the normal distribution of developer experience here, where most have Bar chart: 10.70%	I'm just getting started!, 15.60%	6 months +, 24.60%	1 year +, 21.40%	2 years +, 23.10%	3 years +, 4.60%	Bleeding edge baby! 5 years + -### 12. How long have you been developing with Material-UI? +### 12. How long have you been developing with MUI? Bar chart: 20.50%	I'm just getting started!, 24.90%	6 months +, 28%	1 year +, 17.40%	2 years +, 7.50%	3 years +, 1.70%	I'm a pioneer! 4 years + -### 13. What were you primarily using before Material-UI? +### 13. What were you primarily using before MUI? -Bar chart: 47.08%	Bootstrap, 16.04%	Custom system, 13.68%	Started with Material-UI, 6.67%	Angular Material, 4.44%	Semantic-UI, 3.19%	Ant Design, 8.89%	Other +Bar chart: 47.08%	Bootstrap, 16.04%	Custom system, 13.68%	Started with MUI, 6.67%	Angular Material, 4.44%	Semantic-UI, 3.19%	Ant Design, 8.89%	Other -Similar to last year, it seems that most respondents were previously using Bootstrap. We can see also that custom solutions, as well as some other frameworks, were replaced with Material-UI. +Similar to last year, it seems that most respondents were previously using Bootstrap. We can see also that custom solutions, as well as some other frameworks, were replaced with MUI. -### 14. How many Material-UI based projects have you built? +### 14. How many MUI based projects have you built? Bar chart: 11.50%	0 (I'm just getting started), 23%	1, 54.80%	2-5, 7.80%	6-10, 2.90%	10+ @@ -279,7 +279,7 @@ section. ### 19. What styling system are you using? -Pie chart: 53.84%	Material-UI styles (JSS), 20.41%	Styled components, 13.01%	Good plain CSS, 8.31%	CSS Modules, 1.96%	Emotion, 0.59%	scss, 0.59%	sass, 0.09%	less, 1.19%	Other +Pie chart: 53.84%	MUI styles (JSS), 20.41%	Styled components, 13.01%	Good plain CSS, 8.31%	CSS Modules, 1.96%	Emotion, 0.59%	scss, 0.59%	sass, 0.09%	less, 1.19%	Other The response seems to be similar to the one from the last year's survey, so we will push with better support for styled components. @@ -302,8 +302,8 @@ We want to work on the problems that resonate the most with our users. [It's clear](#5-how-can-we-improve-material-ui-for-you) that we should: 1. Provide more flexibility on the components, unstyled components (pure hooks?). -1. Make the customization easier and implement custom themes with Material-UI. Maybe provide a theme builder. -1. Provide a second theme, update the current components to better match Material Design, provide more simple components and features (e.g. dropzone, carousel) as well as provide a better DX (there are good ideas from other UI libraries to apply to Material-UI v5). +1. Make the customization easier and implement custom themes with MUI. Maybe provide a theme builder. +1. Provide a second theme, update the current components to better match Material Design, provide more simple components and features (e.g. dropzone, carousel) as well as provide a better DX (there are good ideas from other UI libraries to apply to MUI v5). 1. Improve upon the paid advanced versions of the components (e.g. complex data grid, date range picker, tree view drag & drop, virtualization, etc). **We will update [our ROADMAP](/discover-more/roadmap/) in the coming days**. diff --git a/docs/pages/blog/2020-introducing-sketch.md b/docs/pages/blog/2020-introducing-sketch.md index 585afdaf56a3c0..604d0dbe104767 100644 --- a/docs/pages/blog/2020-introducing-sketch.md +++ b/docs/pages/blog/2020-introducing-sketch.md @@ -1,18 +1,18 @@ --- -description: Today, we're excited to announce the introduction of official Sketch symbols for Material-UI. +description: Today, we're excited to announce the introduction of official Sketch symbols for MUI. --- -# Introducing Material-UI for Sketch +# Introducing MUI for Sketch Olivier Tassinari. March 30, 2020. -Today, we're excited to introduce the Sketch symbols 💎 for Material-UI. +Today, we're excited to introduce the Sketch symbols 💎 for MUI. [![preview](/static/blog/2020-introducing-sketch/product-preview.png)](https://material-ui.com/store/items/sketch-react/?utm_source=blog&utm_medium=blog&utm_campaign=introducing-sketch)

Available on our store

-The UI kit contains all the Material-UI components with states and variations which gives 1,500+ unique elements. All components are designed with the most up to date release. +The UI kit contains all the MUI components with states and variations which gives 1,500+ unique elements. All components are designed with the most up to date release. We dream of a world where designers and developers can share the same tools. We wish to streamline the creation process of great UIs. This new product brings you one step closer to this long term goal. It enables designers to provide developers close to production "handoffs". It aims to **maximize efficiency and consistency**. @@ -28,9 +28,9 @@ For instance, there is a [StackOverflow question](https://stackoverflow.com/ques For a long time, we have ignored the problem. We were recommending users to try alternatives out. However, we realized that it wasn't a great answer. There were no good solutions out there: -- **Sketch** has [some symbols](https://i.stack.imgur.com/vEEAA.png) for Material Design. Unfortunately, they cover <30% of the components available in Material-UI, use an outdated version of the specification, and focus on mobile (leaving desktop behind). +- **Sketch** has [some symbols](https://i.stack.imgur.com/vEEAA.png) for Material Design. Unfortunately, they cover <30% of the components available in MUI, use an outdated version of the specification, and focus on mobile (leaving desktop behind). - **Material Design** had a [Sketch plugin](https://material.io/resources/theme-editor/). - Unfortunately, it was recently retired, was supporting fewer components than Material-UI, and didn't use the same wording/structure as Material-UI that made it harder to move from design to implementation. + Unfortunately, it was recently retired, was supporting fewer components than MUI, and didn't use the same wording/structure as MUI that made it harder to move from design to implementation. - Anything else is paid. ### Gain efficiency @@ -48,7 +48,7 @@ Create MVPs efficiently and save hundreds of hours on UI Design. This is a great **Developers 🛠** Gain in autonomy, design beautiful, consistent and accessible interface without relying on designers. You can preview how it will look before coding it. -The UI kit was created specifically for Material-UI, a popular React UI library with a comprehensive set of components. +The UI kit was created specifically for MUI, a popular React UI library with a comprehensive set of components. ## See it in action @@ -67,7 +67,7 @@ According to a [recent user survey](https://medium.com/google-design/state-of-de

Popular tools used to manage Design Systems (n=1762)

We are working on the support of more popular tools. -We have recently released the support of [Framer X](https://packages.framer.com/package/material-ui/material-ui) for Material-UI. +We have recently released the support of [Framer X](https://packages.framer.com/package/material-ui/material-ui) for MUI. We plan to release the support of **Figma** in the coming weeks. You can subscribe to the [newsletter of the store](https://material-ui.com/store/#subscribe) to be notified when available. ## Features diff --git a/docs/pages/blog/2020-q1-update.md b/docs/pages/blog/2020-q1-update.md index cdde4c9462a15a..228a7459179dab 100644 --- a/docs/pages/blog/2020-q1-update.md +++ b/docs/pages/blog/2020-q1-update.md @@ -64,7 +64,7 @@ But this summary is just scratching the surface. We have accepted 572 commits fr ## Company -We are thrilled to welcome two new full-time developers on Material-UI: +We are thrilled to welcome two new full-time developers on MUI: - [Dmitriy Kovalenko](https://github.com/dmtrKovalenko), the author of @material-ui/pickers. dmitriy @@ -84,8 +84,8 @@ We are thrilled to welcome two new full-time developers on Material-UI: We'll do our best, no guarantee! -- 📣 We will analyze and publish the results of the "Material-UI Developer Survey 2020". If you haven't contributed to it yet, you can follow this link to [fill it in](https://forms.gle/TYWRdvgyZs4AhZNv8), thanks! -- 🎨 We will release Figma assets for Material-UI. +- 📣 We will analyze and publish the results of the "MUI Developer Survey 2020". If you haven't contributed to it yet, you can follow this link to [fill it in](https://forms.gle/TYWRdvgyZs4AhZNv8), thanks! +- 🎨 We will release Figma assets for MUI. figma diff --git a/docs/pages/blog/2020-q2-update.md b/docs/pages/blog/2020-q2-update.md index 1b3c482d7c2a3c..4a0cb5d020818a 100644 --- a/docs/pages/blog/2020-q2-update.md +++ b/docs/pages/blog/2020-q2-update.md @@ -20,7 +20,7 @@ Here are the most significant improvements since March 2020: icons -- 🎨 [Figma assets](https://material-ui.com/store/items/figma-react/) for Material-UI extend the support for design tools beyond Sketch. +- 🎨 [Figma assets](https://material-ui.com/store/items/figma-react/) for MUI extend the support for design tools beyond Sketch. figma @@ -38,7 +38,7 @@ Here are the most significant improvements since March 2020: timeline -- 📣 We have analyzed and published the results of the "Material-UI Developer Survey 2020". If you haven't read it yet, you can follow this link to [read it in detail](/blog/2020-developer-survey-results/). It contains a lot of interesting insights that will shape the future of the library and company. Thanks for the contributions! ❤️ +- 📣 We have analyzed and published the results of the "MUI Developer Survey 2020". If you haven't read it yet, you can follow this link to [read it in detail](/blog/2020-developer-survey-results/). It contains a lot of interesting insights that will shape the future of the library and company. Thanks for the contributions! ❤️ - 🇨🇳🇧🇷 The non-API documentation has been fully translated to Chinese and Brazilian, thanks to the collaboration of [Danica Shen](https://github.com/DDDDDanica), [Yan Lee](https://github.com/AGDholo), and [Jairon Alves Lima](https://github.com/jaironalves), native speakers from the community 🙏. chinese diff --git a/docs/pages/blog/2020-q3-update.md b/docs/pages/blog/2020-q3-update.md index c0a293e26fd7e7..0c6f99c0fdce8f 100644 --- a/docs/pages/blog/2020-q3-update.md +++ b/docs/pages/blog/2020-q3-update.md @@ -25,7 +25,7 @@ Here are the most significant improvements since June 2020. This was a dense qua - ⚛️ We have prepared the support for the upcoming release of [React v17](https://reactjs.org/blog/2020/08/10/react-v17-rc.html). Most of the work was about better handling events, and updating our test infrastructure to run the whole test suite with the _latest_ and _next_ version of React.
We have also improved `StrictMode` support. The last standing issues are being addressed with the work on the style engine. More on that later in the post. -- 💅 We have introduced a new dynamic variant API. This API allows developers to add new variants to Material-UI components right from the theme, without having to wrap the components. For instance with the Button: +- 💅 We have introduced a new dynamic variant API. This API allows developers to add new variants to MUI components right from the theme, without having to wrap the components. For instance with the Button: ```tsx // Define the style that should be applied for specific props. @@ -72,19 +72,19 @@ Here are the most significant improvements since June 2020. This was a dense qua After 6 months of development since the initial commit (March 15th, 2020), you can start using the component! (It targets v4.) -- ⚡️ The data grid effort has led to the introduction of a new repository: [_mui-org/material-ui-x_](https://github.com/mui-org/material-ui-x). This is the repository that will host all the future commercial components, all the components that we can't sustain with the open-source model. Material-UI X is our next iteration in scaling Material-UI, both as a company and as a comprehensive React library of components. While we have an existing sustainability model that can support, in long term, up to 10 people full-time, we are keen to push it by an order of magnitude. +- ⚡️ The data grid effort has led to the introduction of a new repository: [_mui-org/material-ui-x_](https://github.com/mui-org/material-ui-x). This is the repository that will host all the future commercial components, all the components that we can't sustain with the open-source model. MUI X is our next iteration in scaling MUI, both as a company and as a comprehensive React library of components. While we have an existing sustainability model that can support, in long term, up to 10 people full-time, we are keen to push it by an order of magnitude. - 🛠 We have migrated parts of the codebase to TypeScript.
We had to work on the code infrastructure of _mui-org/material-ui_ to prepare to host the date picker components that are written in TypeScript inside the lab (coming from _mui-org/material-ui-pickers_ that we will archive once we can). -

Material-UI's repository

+

MUI's repository

On the other hand, we started using TypeScript from day one for _mui-org/material-ui-x_. -

Material-UI X's repository

+

MUI X's repository

- 🐙 We have migrated large parts of the test suite to react-testing-library.
15 months ago, we introduced the very [first test](https://github.com/mui-org/material-ui/pull/15732) using the library (to replace enzyme). Last month, react-testing-library had [more downloads](https://npm-stat.com/charts.html?package=enzyme&package=%40testing-library%2Freact&from=2019-10-10&to=2020-10-10) than enzyme! @@ -121,7 +121,7 @@ Here are the most significant improvements since June 2020. This was a dense qua ## Company -We are thrilled to welcome two new full-time developers to Material-UI: +We are thrilled to welcome two new full-time developers to MUI: - [Marija Najdova](https://github.com/mnajdova). Marija joins us from the Fluent-UI React team at Microsoft. She's allowing the community team to move faster. You can learn more about her in the [introduction blog post](/blog/marija-najdova-joining/). @@ -142,7 +142,7 @@ We are thrilled to welcome two new full-time developers to Material-UI: - ⭐️ From 59.0k to 61.6k stars, leave us yours [🌟](https://github.com/mui-org/material-ui). - 👨‍👩‍👧‍👦 From 1,825 to 1,934 contributors on GitHub. We add on average 1 new contributor every day. -- 🏢 We have welcomed two new full-time developers to Material-UI. +- 🏢 We have welcomed two new full-time developers to MUI. ## Our roadmap intent for Q4 2020 diff --git a/docs/pages/blog/2020.md b/docs/pages/blog/2020.md index a2df78a79ae3d6..679be498b07968 100644 --- a/docs/pages/blog/2020.md +++ b/docs/pages/blog/2020.md @@ -1,12 +1,12 @@ --- title: 2020 in review and beyond -description: 2020 has been another great year, not only for Material-UI, but also for the ecosystem. +description: 2020 has been another great year, not only for MUI, but also for the ecosystem. date: 2020-12-31T00:00:00.000Z authors: ['oliviertassinari', 'mbrookes'] card: true --- -2020 has been another great year, not only for Material-UI, but also for the ecosystem. +2020 has been another great year, not only for MUI, but also for the ecosystem. We have taken on ambitious challenges and started to scale the project. ## Growth @@ -61,17 +61,17 @@ We will continue in the same direction, it's still [**day one**](https://www.sec ### Branding -Up until now, we never had a mindful reflection on what the branding of Material-UI should be. We picked a color from the 2014 Material Design palette, and that's it. +Up until now, we never had a mindful reflection on what the branding of MUI should be. We picked a color from the 2014 Material Design palette, and that's it. The [material-ui.com](https://material-ui.com/) marketing website will soon wear a brand new style! We need to create our own identity, distinct from Material Design. -### Material-UI X +### MUI X We started to deliver advanced React components in 2020 with the data grid, including a [commercial version](/components/data-grid/#commercial-version) and the beginning of a [date range picker](https://material-ui.com/components/date-range-picker/). We will double down on these existing components as long as necessary to have them find the market. By the end of 2021, we aim to have released these components as stable, implement all the [features planned](/components/data-grid/getting-started/#feature-comparison), and at least double the size of the team. -### Material-UI v5 +### MUI v5 We will release the next major iteration of the library. A highlight of the key improvements coming ✨: @@ -88,7 +88,7 @@ And [much more](https://github.com/mui-org/material-ui/issues/20012). ### A second theme -While Material Design is a predominant design choice for building rich client-side applications, it's not the only popular design trend. We plan to provide a [second theme](https://github.com/mui-org/material-ui/issues/22485) to expand the range of use cases for Material-UI, striking a balance between: +While Material Design is a predominant design choice for building rich client-side applications, it's not the only popular design trend. We plan to provide a [second theme](https://github.com/mui-org/material-ui/issues/22485) to expand the range of use cases for MUI, striking a balance between: - alignment with the best-looking design trends of hot startups in the US. - optimization of its usage for rich client-side applications while keeping it good enough for landing pages. diff --git a/docs/pages/blog/2021-q1-update.md b/docs/pages/blog/2021-q1-update.md index dbd0d80574de1d..9c66af6ed2d471 100644 --- a/docs/pages/blog/2021-q1-update.md +++ b/docs/pages/blog/2021-q1-update.md @@ -135,7 +135,7 @@ The date picker is at the border between the advanced components and the design - 🚨 We have started to work on breaking changes to reach a stable state. - 💾 We have extended the support of @mui/material to handle v4 and v5 at the same time. In the future, we might desynchronize the release version of _mui/material-ui_ and _mui/material-ui-x_. - For Material-UI X, we will likely need to release breaking changes at a higher frequency: every six months. + For MUI X, we will likely need to release breaking changes at a higher frequency: every six months. - 🎛 We have added a column selector. @@ -182,7 +182,7 @@ This Handbook is the single **source of truth**. It's meant to be updated by any We have seen a significant influx of stars this quarter. - 👨‍👩‍👧‍👦 From 2,052 to 2,141 contributors on GitHub. We add on average one new contributor every day. - 💰 Grew gross revenue at +4%/week on average during the period. -- 🏢 We have welcomed one new member to Material-UI: [Matheus](/blog/matheus-wichman-joining/). +- 🏢 We have welcomed one new member to MUI: [Matheus](/blog/matheus-wichman-joining/). ## Our roadmap intent for Q2 2021 diff --git a/docs/pages/blog/2021-q2-update.md b/docs/pages/blog/2021-q2-update.md index 53e9bd000b9c41..df00408b7deab9 100644 --- a/docs/pages/blog/2021-q2-update.md +++ b/docs/pages/blog/2021-q2-update.md @@ -214,7 +214,7 @@ We have the following objectives: - ♨️ Fix the friction the community has during the upgrade to v5. We want to make the upgrade feel painless. - ⚛️ Support [React 18](https://reactjs.org/blog/2021/06/08/the-plan-for-react-18.html). [Sebastian](https://github.com/eps1lon) is part of the React [Working Group](https://github.com/reactwg/react-18/discussions), focusing on making us ready ahead of time. - We want our most demanding users to feel empowered by Material-UI, not slowed down by a third-party. + We want our most demanding users to feel empowered by MUI, not slowed down by a third-party. - 🦴 Migrate more components to `@mui/core`. [Michał](https://github.com/michaldudak) has recently added support for the [Switch](https://material-ui.com/components/switches/#unstyled-switches). You can follow our progress in the [umbrella issue](https://github.com/mui-org/material-ui/issues/27170). - 🌈 Do a proof of concept on supporting a second design system. diff --git a/docs/pages/blog/april-2019-update.md b/docs/pages/blog/april-2019-update.md index acd62dc662c15b..397888d70bd86a 100644 --- a/docs/pages/blog/april-2019-update.md +++ b/docs/pages/blog/april-2019-update.md @@ -46,7 +46,7 @@ But this summary is just scratching the surface. We have accepted 243 commits fr _(We'll do our best, no guarantee!)_ -- We will release Material-UI v4 stable during the React Europe conference. +- We will release MUI v4 stable during the React Europe conference. - We will start an effort to support more components. So far, we have identified a couple of useful ones: - Layout - Combobox diff --git a/docs/pages/blog/danail-hadjiatanasov-joining.md b/docs/pages/blog/danail-hadjiatanasov-joining.md index d5bd1e8c61edf7..1ed18f2fad5733 100644 --- a/docs/pages/blog/danail-hadjiatanasov-joining.md +++ b/docs/pages/blog/danail-hadjiatanasov-joining.md @@ -1,16 +1,16 @@ --- -title: Danail Hadjiatanasov joins Material-UI -description: We are excited to share that Danail Hadjiatanasov has joined Material-UI as part of the enterprise team. This was his first full-time week. +title: Danail Hadjiatanasov joins MUI +description: We are excited to share that Danail Hadjiatanasov has joined MUI as part of the enterprise team. This was his first full-time week. date: 2020-10-23T00:00:00.000Z authors: ['oliviertassinari'] card: true --- -We are excited to share that [Danail Hadjiatanasov](https://twitter.com/danail_h) has joined Material-UI as part of the enterprise team. This was his first full-time week. +We are excited to share that [Danail Hadjiatanasov](https://twitter.com/danail_h) has joined MUI as part of the enterprise team. This was his first full-time week. For the past 3 years Danail has been working in a company called [Backbase](https://www.backbase.com/) where he was responsible for building a UI library based on Angular that was specifically designed for banks. The UI library and its corresponding design system were sold under a commercial license, and today some of the biggest names in the banking industry have web applications powered by those UI components (RBC, Central 1, Deutsche Bank, BNP Paribas, and others). -Although he was working with Angular, his true passion is React, having hacked side projects with it. Now he will be able to combine these two talents, and help take Material-UI X to the next level! +Although he was working with Angular, his true passion is React, having hacked side projects with it. Now he will be able to combine these two talents, and help take MUI X to the next level! Danail has already landed his first feature in the data grid: [column reordering](https://material-ui.com/components/data-grid/columns/#column-reorder): diff --git a/docs/pages/blog/danilo-leal-joining.md b/docs/pages/blog/danilo-leal-joining.md index 5ea178380f3d62..5090071fce9461 100644 --- a/docs/pages/blog/danilo-leal-joining.md +++ b/docs/pages/blog/danilo-leal-joining.md @@ -1,18 +1,18 @@ --- -title: Danilo Leal joins Material-UI -description: We are excited to share that Danilo Leal has joined Material-UI. +title: Danilo Leal joins MUI +description: We are excited to share that Danilo Leal has joined MUI. date: 2021-07-15T00:00:00.000Z authors: ['oliviertassinari'] card: true --- -We are excited to share that [Danilo Leal](https://daniloleal.co/) has joined Material-UI! +We are excited to share that [Danilo Leal](https://daniloleal.co/) has joined MUI! He started a couple of days ago as a lead designer. -Before joining Material-UI, he worked as a designer at Loggi, a Brazilian logistics unicorn. +Before joining MUI, he worked as a designer at Loggi, a Brazilian logistics unicorn. He has spent the last five years diving into product design, product strategy, and design systems. Danilo strongly believes that code is a fundamental piece of a designer's work. It is, after all, the real medium through where users experience the product. -For instance, one of his continuous contributions to Loggi was deep-diving into Material-UI's codebase to fulfill Loggi's customization needs. +For instance, one of his continuous contributions to Loggi was deep-diving into MUI's codebase to fulfill Loggi's customization needs. His aspirations are well aligned with where we want to push the company in the long term. He wants to challenge the status quo. diff --git a/docs/pages/blog/march-2019-update.md b/docs/pages/blog/march-2019-update.md index 892e8d8738ac30..4ea60690aeaa88 100644 --- a/docs/pages/blog/march-2019-update.md +++ b/docs/pages/blog/march-2019-update.md @@ -27,7 +27,7 @@ Here are the most significant improvements in March: _(We'll do our best, no guarantee!)_ - We are almost done with [the v4.0.0-alpha breaking changes](https://github.com/mui-org/material-ui/issues/13663). You can already find [the upgrade path](/guides/migration-v3/) from v3 to v4 in the documentation. Next, we will release the first beta version (no more breaking changes). - The results of the Material-UI developer survey suggested that there are too many breaking changes. + The results of the MUI developer survey suggested that there are too many breaking changes. Don't worry, it's almost over! We will focus on providing more components once we have released v4 stable. - We will continue, and hopefully complete, the tasks we undertook: - TypeScript demo variants. diff --git a/docs/pages/blog/marija-najdova-joining.md b/docs/pages/blog/marija-najdova-joining.md index f0459ecc409361..30d471d7c87746 100644 --- a/docs/pages/blog/marija-najdova-joining.md +++ b/docs/pages/blog/marija-najdova-joining.md @@ -1,14 +1,14 @@ --- -title: Marija Najdova joins Material-UI -description: We are excited to share that Marija Najdova has joined Material-UI. She has started this week full-time and is now part of the community team. +title: Marija Najdova joins MUI +description: We are excited to share that Marija Najdova has joined MUI. She has started this week full-time and is now part of the community team. date: 2020-09-15T00:00:00.000Z authors: ['oliviertassinari'] card: true --- -We are excited to share that [Marija Najdova](https://twitter.com/marijanajdova) has joined Material-UI. She has started this week full-time, and is now part of the community team. +We are excited to share that [Marija Najdova](https://twitter.com/marijanajdova) has joined MUI. She has started this week full-time, and is now part of the community team. -Before joining Material-UI, Marija worked on the React implementation of [Fluent UI](https://www.microsoft.com/design/fluent/) at Microsoft. She's passionate about React, design systems, and component driven development. At Microsoft, as part of the Fluent UI core team since 2018, she was responsible for the icons, animations and various theme related features. +Before joining MUI, Marija worked on the React implementation of [Fluent UI](https://www.microsoft.com/design/fluent/) at Microsoft. She's passionate about React, design systems, and component driven development. At Microsoft, as part of the Fluent UI core team since 2018, she was responsible for the icons, animations and various theme related features. Marija is off to a running start, having made important changes happen during her free time, even before starting! These include a new structure for the theme object, as well as the ability to [add custom variants](https://material-ui.com/customization/theme-components/#adding-new-component-variants) in v5: diff --git a/docs/pages/blog/material-ui-v1-is-out.md b/docs/pages/blog/material-ui-v1-is-out.md index 48304611baa2d2..5ae518c76efdf8 100644 --- a/docs/pages/blog/material-ui-v1-is-out.md +++ b/docs/pages/blog/material-ui-v1-is-out.md @@ -1,8 +1,8 @@ --- -description: Material-UI v1 is out 🎉 +description: MUI v1 is out 🎉 --- -# Material-UI v1 is out 🎉 +# MUI v1 is out 🎉 The core team. May 18, 2018. @@ -12,7 +12,7 @@ The core team. May 18, 2018.

Our new documentation header & logo by @hai-cea

-It has taken us two years to do it, but Material-UI v1 has finally arrived! +It has taken us two years to do it, but MUI v1 has finally arrived! We are so excited about this release, as it's setting a new course for the project. Thank you to _everyone_, especially to [the team](/discover-more/team/), and to everyone who's contributed code, issue triage, and support. **Thank you.** ✨✨✨ See the [**1.0.0 Release Note**](https://github.com/mui-org/material-ui/releases/tag/v1.0.0) on GitHub. ✨✨✨ @@ -23,12 +23,12 @@ We are so excited about this release, as it's setting a new course for the proje ## High-level Goals for v1 -Material-UI was started [3 years ago](https://github.com/mui-org/material-ui/commit/28b768913b75752ecf9b6bb32766e27c241dbc46) by [@hai-cea](https://github.com/hai-cea). The React ecosystem has evolved considerably since then, and we have also learned along the way. Two years ago, [@nathanmarks](https://github.com/nathanmarks/) [started](https://github.com/mui-org/material-ui/commit/cf0934dda2ef83852ca094ac7250e2d562ce6156) an ambitious task to rebuild Material-UI from the ground-up, taking advantage of this knowledge to address long-standing issues in customizability, ease of use, and code quality. +MUI was started [3 years ago](https://github.com/mui-org/material-ui/commit/28b768913b75752ecf9b6bb32766e27c241dbc46) by [@hai-cea](https://github.com/hai-cea). The React ecosystem has evolved considerably since then, and we have also learned along the way. Two years ago, [@nathanmarks](https://github.com/nathanmarks/) [started](https://github.com/mui-org/material-ui/commit/cf0934dda2ef83852ca094ac7250e2d562ce6156) an ambitious task to rebuild MUI from the ground-up, taking advantage of this knowledge to address long-standing issues in customizability, ease of use, and code quality. ### Customizability -Material-UI v1 is our second stab at the execution of [the vision](https://material-ui-next.com/discover-more/vision/). -We want Material-UI to become whatever is generally useful for application development, all in the spirit of the Material Design guidelines. Material-UI is not only an implementation of the Material Design guidelines, but a general use UI library of components that are needed by many. We are even allowing developers to build non Material themes on top of Material-UI components. We will soon open source examples of this. +MUI v1 is our second stab at the execution of [the vision](https://material-ui-next.com/discover-more/vision/). +We want MUI to become whatever is generally useful for application development, all in the spirit of the Material Design guidelines. MUI is not only an implementation of the Material Design guidelines, but a general use UI library of components that are needed by many. We are even allowing developers to build non Material themes on top of MUI components. We will soon open source examples of this. - **CSS-in-JS**. We have seen [a great potential for **inline-styles** in the past](https://github.com/mui-org/material-ui/issues/30). It was an opportunity to solve four problems at once: removing the LESS toolchain dependency, allowing dynamic styles, allowing style code splitting and make overrides simpler. Unfortunately, the [**execution didn't deliver**](https://github.com/mui-org/material-ui/issues/4066). We were lacking key features only available in CSS: media queries, pseudo selectors, pseudo elements, browser prefixes. Debugging was much harder. Overriding styles was very challenging – developers always had to look the implementation, and couldn't use CSS without relying on !important. @@ -46,7 +46,7 @@ We know the ease of use is a critical part of user acquisition. The more user we - **Examples**. We are hosting [example projects](https://github.com/mui-org/material-ui/tree/master/examples) with the most popular solutions to start a project: [create-react-app](https://github.com/facebook/create-react-app), [Next.js](https://github.com/zeit/next.js), [Gatsby](https://github.com/gatsbyjs/gatsby), and CDN. -- **Isolation**. Our components now work in isolation. You should be able to use a single Material-UI component in an existing codebase without any side effect. No global CSS override needed, no bundle size bloat. +- **Isolation**. Our components now work in isolation. You should be able to use a single MUI component in an existing codebase without any side effect. No global CSS override needed, no bundle size bloat. - **Documentation**. We have made a huge investment in the documentation. We use [Next.js](https://github.com/zeit/next.js) for a blazingly fast navigation experience. It's also allowing us to provide a first server-side support for the components. We had added a search bar powered by [Algolia's DocSearch](https://community.algolia.com/docsearch/). (don't miss the s shortcut to focus the search bar). We have added many new documentation sections: guides, FAQ, etc. We have made the demos more interactive thanks to a direct integration with [CodeSandbox](https://codesandbox.io/s/4j7m47vlm4). @@ -54,13 +54,13 @@ We know the ease of use is a critical part of user acquisition. The more user we ### Code quality -Many people discover web development through Material-UI but it's also used in production to serve millions of customers. We have an important responsibility, our implementation needs to be rock solid. +Many people discover web development through MUI but it's also used in production to serve millions of customers. We have an important responsibility, our implementation needs to be rock solid. - **Best practices.** We are following the best practices as much as possible. We have made the components: fully accessible, fully [HTML5 compliant ](https://validator.w3.org/)and SEO friendly. -![[Lighthouse](https://github.com/GoogleChrome/lighthouse) report of the Material-UI documentation homepage](https://cdn-images-1.medium.com/max/2000/1*_x_j-jasswGw0WaDyeHk-g.png) +![[Lighthouse](https://github.com/GoogleChrome/lighthouse) report of the MUI documentation homepage](https://cdn-images-1.medium.com/max/2000/1*_x_j-jasswGw0WaDyeHk-g.png) -

Lighthouse report of the Material-UI documentation homepage

+

Lighthouse report of the MUI documentation homepage

- **Continuous integration.** Every single line of code is tested. We have an impressive [💯% test coverage](https://codecov.io/gh/mui-org/material-ui/branch/master). With more than 700 contributors, it's really important. All these tests allow us to quickly iterate and with confidence. We run the test suite runs on all the supported platforms. We also run more than [180 visual regression tests](https://www.argos-ci.com/mui-org/material-ui) thanks to [Argos-CI](https://www.argos-ci.com/). @@ -68,7 +68,7 @@ Many people discover web development through Material-UI but it's also used in p

An example BrowserStack build

-- **Bundle size**. If you take all the Material-UI components, your bundle will weight more than 100 kB gzipped. Material-UI looks like a huge dependency but it's fine in practice with code splitting. You will most likely use ~40% of the library on a given page/screen. The bundle size is important. It's [constantly monitored](https://github.com/mui-org/material-ui/blob/ca69253843208c21593fff230151e1fffd93a566/.size-limit), which prevents us from introducing size regressions, and allows us to recognize positive efforts. +- **Bundle size**. If you take all the MUI components, your bundle will weight more than 100 kB gzipped. MUI looks like a huge dependency but it's fine in practice with code splitting. You will most likely use ~40% of the library on a given page/screen. The bundle size is important. It's [constantly monitored](https://github.com/mui-org/material-ui/blob/ca69253843208c21593fff230151e1fffd93a566/.size-limit), which prevents us from introducing size regressions, and allows us to recognize positive efforts. ![An example of [size-limit](https://github.com/ai/size-limit) output](https://cdn-images-1.medium.com/max/2000/1*AQoyq9OvjFZJE2Ep0UtCzA.png) @@ -104,7 +104,7 @@ There are so many new things, we can't be exhaustive. Aside from what we have al ## Premium themes -We have shipped the long-awaited Material-UI v1 stable release. With a new codebase designed to better support customization, it's the perfect timing to start building and promoting premium themes. We are very happy to announce [the first two](https://material-ui.com/store/) from [Creative Tim](https://material-ui.com/store/contributors/creative-tim/). More are coming. +We have shipped the long-awaited MUI v1 stable release. With a new codebase designed to better support customization, it's the perfect timing to start building and promoting premium themes. We are very happy to announce [the first two](https://material-ui.com/store/) from [Creative Tim](https://material-ui.com/store/contributors/creative-tim/). More are coming. ![Creative Tim themes](https://cdn-images-1.medium.com/max/2000/1*jPOu6n1EMsqv4Gh652MtPA.png) @@ -116,10 +116,10 @@ We have shipped the long-awaited Material-UI v1 stable release. With a new codeb ## Thank you -Finally, one last thank you to everyone who's contributed to Material-UI v1. +Finally, one last thank you to everyone who's contributed to MUI v1. I'm so excited at the idea we are making it stable, but rest assured, it's just the beginning. We will keep working hard on delivering the best possible UI library components. -Material-UI is an MIT-licensed open source project. It's an independent project with ongoing development helped by the support of these awesome [backers](/discover-more/backers/). If you'd like to join them, please consider: +MUI is an MIT-licensed open source project. It's an independent project with ongoing development helped by the support of these awesome [backers](/discover-more/backers/). If you'd like to join them, please consider: - [Become a backer or sponsor on Patreon](https://www.patreon.com/oliviertassinari). - [Become a backer or sponsor on OpenCollective](https://opencollective.com/material-ui). diff --git a/docs/pages/blog/material-ui-v4-is-out.md b/docs/pages/blog/material-ui-v4-is-out.md index d1302bca6b2883..3e8f0736025257 100644 --- a/docs/pages/blog/material-ui-v4-is-out.md +++ b/docs/pages/blog/material-ui-v4-is-out.md @@ -1,14 +1,14 @@ --- -description: Material-UI v4 is out 🎉 +description: MUI v4 is out 🎉 --- -# Material-UI v4 is out 🎉 +# MUI v4 is out 🎉 The core team. May 23, 2019. > React components for faster and simpler web development. Build your own design system, or start with Material Design. -Material-UI v4 has finally arrived. We are so excited about this release, as it defines better foundations for the UI components. Thank you to everyone, especially to [the team](/discover-more/team/), and to everyone who's contributed code, issue triage, and support. **Thank you.** +MUI v4 has finally arrived. We are so excited about this release, as it defines better foundations for the UI components. Thank you to everyone, especially to [the team](/discover-more/team/), and to everyone who's contributed code, issue triage, and support. **Thank you.** ✨✨✨ See the **[4.0.0 Release Note](https://github.com/mui-org/material-ui/releases/tag/v4.0.0)** on GitHub. ✨✨✨ @@ -25,7 +25,7 @@ Material-UI v4 has finally arrived. We are so excited about this release, as it ## High-level goals for v4 -Material-UI v1 was [released](https://medium.com/material-ui/material-ui-v1-is-out-e73ce13463eb) one year ago. Version 4 is our most important major release since then. For those unfamiliar with the history of the project, we didn't release a v2, and v3 only introduced a slight browsers support change. +MUI v1 was [released](https://medium.com/material-ui/material-ui-v1-is-out-e73ce13463eb) one year ago. Version 4 is our most important major release since then. For those unfamiliar with the history of the project, we didn't release a v2, and v3 only introduced a slight browsers support change. This release happens within our [fixed frequency](https://material-ui.com/versions/#release-frequency) release strategy. We try to release a major at least every 12 months and at most every 6 months. The migration from v0 to v1 was painful, it almost felt like using two different UI libraries. We've done our best to minimize the time needed to migrate from v3 to v4. To help ease the transition, you can follow this [migration guide](/guides/migration-v3/) 📚. It shouldn't take more than a few hours. @@ -49,14 +49,14 @@ The Material Design team at Google has made the customization of their design sy After listening to v3 customization experiences of hundreds of developers, we realized that we could do better. We have found 4 classes of common problems. -- **CSS specificity**. The developers' style specificity needs to be higher to win over the style Material-UI injects in the page. By default, Material-UI injects its style at the end of the `` element. However, styled components and other popular styling solutions inject the style just before it, losing specificity. To solve the problem, we have introduced a new prop: `injectFirst`. +- **CSS specificity**. The developers' style specificity needs to be higher to win over the style MUI injects in the page. By default, MUI injects its style at the end of the `` element. However, styled components and other popular styling solutions inject the style just before it, losing specificity. To solve the problem, we have introduced a new prop: `injectFirst`. ```jsx import { StylesProvider } from '@mui/styles'; {/* Your component tree. - Styled components can override Material-UI's styles. */} + Styled components can override MUI's styles. */} ; ``` @@ -74,7 +74,7 @@ import { StylesProvider } from '@mui/styles'; ⚠️ Using global class names provide more power but comes with responsibility. We encourage patterns that increase your custom style isolation. -- **Pseudo-classes.** A pseudo-class is a keyword added to a selector that specifies a special state of the selected element. The native elements support a wide range of pseudo-classes, the most popular ones being: `:focus`, `:hover`, `:active`. Sometimes, Material-UI can't use a pseudo-class as the state doesn't exist in the platform, e.g. the selected state of a menu item. Material-UI implements support of eight different [custom pseudo-classes](/customization/components/#pseudo-classes). It's important to understand that you need to increase the specificity when using a pseudo-class. For instance: +- **Pseudo-classes.** A pseudo-class is a keyword added to a selector that specifies a special state of the selected element. The native elements support a wide range of pseudo-classes, the most popular ones being: `:focus`, `:hover`, `:active`. Sometimes, MUI can't use a pseudo-class as the state doesn't exist in the platform, e.g. the selected state of a menu item. MUI implements support of eight different [custom pseudo-classes](/customization/components/#pseudo-classes). It's important to understand that you need to increase the specificity when using a pseudo-class. For instance: ```css .MenuItem { @@ -117,7 +117,7 @@ function MyComponent() { Documentation was reported as the 3rd most critical pain point in the developer survey. We have fixed some of the reported issues and aim to continuously improve going forward. -- **TypeScript**. TypeScript's growth is impressive, the traffic of their documentation website has grown by a factor of 6 in 3 years. Material-UI v1 was released with built-in TypeScript definitions, but we needed to do more. Sebastian has led the effort to migrate all the demos from JavaScript to TypeScript. This has two important implications. First, we type check our demos, this drastically improves our TypeScript test coverage. We have fixed many issues during the migration. Second, if you are writing your application with TypeScript, you can directly copy & paste our demos without needing to convert them, or having to fix the obscure errors. +- **TypeScript**. TypeScript's growth is impressive, the traffic of their documentation website has grown by a factor of 6 in 3 years. MUI v1 was released with built-in TypeScript definitions, but we needed to do more. Sebastian has led the effort to migrate all the demos from JavaScript to TypeScript. This has two important implications. First, we type check our demos, this drastically improves our TypeScript test coverage. We have fixed many issues during the migration. Second, if you are writing your application with TypeScript, you can directly copy & paste our demos without needing to convert them, or having to fix the obscure errors. ![typescript](/static/blog/material-ui-v4-is-out/typescript.png) @@ -127,7 +127,7 @@ Documentation was reported as the 3rd most critical pain point in the developer

Use the JS/TS toggle to see code in JavaScript or TypeScript

-- **i18n**. Developers come to Material-UI's documentation from all around the world. We want to include as many people as possible 🌎🌍🌏. We have completed the effort started in v3 by working on the Algolia search support, Google search indexing, Table Of Contents and Side Nav infrastructure. +- **i18n**. Developers come to MUI's documentation from all around the world. We want to include as many people as possible 🌎🌍🌏. We have completed the effort started in v3 by working on the Algolia search support, Google search indexing, Table Of Contents and Side Nav infrastructure. We would like to thank [Danica Shen](https://github.com/DDDDDanica), [Dominik Engel](https://github.com/Domino987), and [Jairon Alves Lima](https://github.com/jaironalves) for their heroic work on the 🇨🇳, 🇩🇪 and 🇧🇷 translations, while not forgetting the other 348 (and growing) translators. @@ -136,9 +136,9 @@ Documentation was reported as the 3rd most critical pain point in the developer ### Performance -You may be afraid that using Material-UI's components will bloat and slow down your website/application. Would you be better off writing your own components? Well, it's our mission to make this cost as minimal as possible 🚀. +You may be afraid that using MUI's components will bloat and slow down your website/application. Would you be better off writing your own components? Well, it's our mission to make this cost as minimal as possible 🚀. -- **Tree shaking**. Material-UI v4 is the first version to support native tree shaking with ES modules. This has one important DX benefit—you can now use destructured imports when importing multiple components: +- **Tree shaking**. MUI v4 is the first version to support native tree shaking with ES modules. This has one important DX benefit—you can now use destructured imports when importing multiple components: ```js import { @@ -164,13 +164,13 @@ import {

Fine level tracking

- **Preact X.** We have introduced a working [integration example with Preact](https://github.com/mui-org/material-ui/blob/next/examples/preact/README.md). Preact is a fast, 1/10 smaller alternative to React, with the same modern API. We will do our best to support it. -- **Runtime performance**. We have heard that some people struggle with the runtime cost of using Material-UI. We have solved a few problems reported, but nothing systematic. We have observed [a slight gain](https://github.com/mui-org/material-ui/pull/15023) by moving from the classes API to the hooks API. However, it's hard to make progress as we lack a properly setup performance bench. It's something to consider for v5. +- **Runtime performance**. We have heard that some people struggle with the runtime cost of using MUI. We have solved a few problems reported, but nothing systematic. We have observed [a slight gain](https://github.com/mui-org/material-ui/pull/15023) by moving from the classes API to the hooks API. However, it's hard to make progress as we lack a properly setup performance bench. It's something to consider for v5. ### Preparing for the future -Material-UI v4 depends on React ≥16.8.0. This is the first version of React that supports the [new Hooks API](https://reactjs.org/docs/hooks-intro.html). +MUI v4 depends on React ≥16.8.0. This is the first version of React that supports the [new Hooks API](https://reactjs.org/docs/hooks-intro.html). -- **Ref forwarding**. Most of the time, you use the `ref` prop to access the underlying DOM node of a React element. You might want to focus an element, compute the position of an element, and so on. You should never need to access a Material-UI component's instance methods, they are considered private. The components expose an `action` when it's really needed. For instance, you might want to update the tab indicator position when it goes out of sync with the tab item position. To ease this use case, Sebastian has lead an effort to implement [`React.forwardRef()`](https://reactjs.org/docs/react-api.html#reactforwardref). In practice, this means that you can retrieve a reference to the DOM node like you would do with a built-in component (`button`, `div`, etc.): +- **Ref forwarding**. Most of the time, you use the `ref` prop to access the underlying DOM node of a React element. You might want to focus an element, compute the position of an element, and so on. You should never need to access a MUI component's instance methods, they are considered private. The components expose an `action` when it's really needed. For instance, you might want to update the tab indicator position when it goes out of sync with the tab item position. To ease this use case, Sebastian has lead an effort to implement [`React.forwardRef()`](https://reactjs.org/docs/react-api.html#reactforwardref). In practice, this means that you can retrieve a reference to the DOM node like you would do with a built-in component (`button`, `div`, etc.): ```jsx import { Button } from '@mui/material'; @@ -202,7 +202,7 @@ function MyButton() { Most of our users are interested in the good looking functional aspect of our components, rather than in a strict application of the Material Design guidelines. However, we think that it's important for us to keep up to date with the guidelines. The specification received it's most significant update since Google made it the design language for its apps in 2014, at [Google I/O 2018](https://design.google/library/io-2018-our-definitive-guide-design/). -The Material Design "v2" announcement caught us by surprise when we released Material-UI v1. We have worked on upgrading our components since then. In v4, we have updated the styles of the Tab, Snackbar, Checkboxes, Radios, Switches, List, Dialog, and other components ✨. +The Material Design "v2" announcement caught us by surprise when we released MUI v1. We have worked on upgrading our components since then. In v4, we have updated the styles of the Tab, Snackbar, Checkboxes, Radios, Switches, List, Dialog, and other components ✨. ![material1](/static/blog/material-ui-v4-is-out/material1.png) @@ -308,8 +308,8 @@ import { Button } from '@mui/material'; ; ``` -- **Styled components.** We have seen many people asking for migration to styled components. We want Material-UI v5 to be better aligned with the community's best-loved tools, but at the same time, we don't want to break your code. - So we will work on isolating the components from the styling solution. The new _@mui/styles_ package is the first step in this direction. We envision a world where you can use Material-UI styled with styled components, linaria, and JSS or without any styles. +- **Styled components.** We have seen many people asking for migration to styled components. We want MUI v5 to be better aligned with the community's best-loved tools, but at the same time, we don't want to break your code. + So we will work on isolating the components from the styling solution. The new _@mui/styles_ package is the first step in this direction. We envision a world where you can use MUI styled with styled components, linaria, and JSS or without any styles. Developers should be able to use their preferred styling solution without paying the cost of two CSS-in-JS runtimes. - **Accessibility.** While we try to fix all accessibility issues as they are reported by our users, we feel that we can do better. We want to run a professional ADA audit of all our components ♿️. @@ -320,11 +320,11 @@ We will follow the Bootstrap model. We are working on [a Premium themes store](https://material-ui.com/store/). We have built partnerships with the best theme authors of the ecosystem. -Within a few weeks, you should find a collection of the best Material-UI templates and themes 😍. +Within a few weeks, you should find a collection of the best MUI templates and themes 😍. ## Thank you -Finally, one last thank you to everyone who's contributed to Material-UI v4.  +Finally, one last thank you to everyone who's contributed to MUI v4.  I'm so excited about this release! It's just the beginning. We will keep working hard on delivering the best possible React UI framework components.
diff --git a/docs/pages/blog/matheus-wichman-joining.md b/docs/pages/blog/matheus-wichman-joining.md index 6cebcbc8bad2b2..fcf2863fa4169c 100644 --- a/docs/pages/blog/matheus-wichman-joining.md +++ b/docs/pages/blog/matheus-wichman-joining.md @@ -1,22 +1,22 @@ --- -title: Matheus Wichman joins Material-UI -description: We are excited to share that Matheus Wichman has joined Material-UI. +title: Matheus Wichman joins MUI +description: We are excited to share that Matheus Wichman has joined MUI. date: 2021-04-05T00:00:00.000Z authors: ['oliviertassinari'] card: true --- -We are excited to share that [Matheus Wichman](https://github.com/m4theushw) has joined Material-UI. +We are excited to share that [Matheus Wichman](https://github.com/m4theushw) has joined MUI. He started a couple of days ago full-time, and is part of the advanced components team. -Before joining Material-UI, Matheus worked as a software engineer at a consulting agency in Brazil. -He has spent the last three years focusing on React and the frontend world - his last project was for a payment processing company, where he created a design system based on Material-UI and developed new components for enterprise applications. +Before joining MUI, Matheus worked as a software engineer at a consulting agency in Brazil. +He has spent the last three years focusing on React and the frontend world - his last project was for a payment processing company, where he created a design system based on MUI and developed new components for enterprise applications. Matheus is passionate about software development, so much so that he started his career very early on, coding in PHP and JavaScript, at age 14. We were impressed by his capability to quickly jump into an unknown codebase and solve problems at their root. In a couple of days, he has managed to report and fix bugs, both in the core components (_mui-org/material-ui_) and in the advanced components repository (_mui-org/material-ui-x_). -While we can't predict the future, Matheus will initially help us deliver the planned breaking changes of Material-UI v5, increase the pace of development of the date range picker, and push the data grid forward. +While we can't predict the future, Matheus will initially help us deliver the planned breaking changes of MUI v5, increase the pace of development of the date range picker, and push the data grid forward. Matheus is the first of a series of 5 new positions we have recently opened and almost all filled. We will cross the 10 person milestone in the coming weeks. diff --git a/docs/pages/blog/may-2019-update.md b/docs/pages/blog/may-2019-update.md index 91c8669799d747..375c55cd27b8b7 100644 --- a/docs/pages/blog/may-2019-update.md +++ b/docs/pages/blog/may-2019-update.md @@ -8,7 +8,7 @@ Olivier Tassinari. June 8, 2019. Here are the most significant improvements in May: -- 🎉 We released Material-UI v4 stable during the React Europe conference. +- 🎉 We released MUI v4 stable during the React Europe conference. You can find the details in our [blog post 📝](https://medium.com/material-ui/material-ui-v4-is-out-4b7587d1e701) and a quick introduction in this [5 minutes talk](https://www.youtube.com/watch?v=m54_CPfbWow). - 🐛 We have made two subsequent releases after v4.0.0, containing a significant number of fixes (v4.0.1 and v4.0.2). @@ -30,8 +30,8 @@ _(We'll do our best, no guarantee!)_ - We will start exploring how we can provide style adapters in v5 (styled-components, JSS, linaria, naked, etc.) - We will experiment around advisory offerings for enterprises. If you are an enterprise and are looking for one of the following: - - A dedicated communication channel giving priority access to Material-UI engineers. - - Architecture Reviews. Sit down with a Material-UI engineer and walk through all aspects of your Material-UI project and current tech stack or architecture, to identify issues and opportunities for improvement. + - A dedicated communication channel giving priority access to MUI engineers. + - Architecture Reviews. Sit down with a MUI engineer and walk through all aspects of your MUI project and current tech stack or architecture, to identify issues and opportunities for improvement. You can contact us at advisory@material-ui.com. diff --git a/docs/pages/blog/michal-dudak-joining.md b/docs/pages/blog/michal-dudak-joining.md index 8967f24a62889c..8e6155ac5c7ca5 100644 --- a/docs/pages/blog/michal-dudak-joining.md +++ b/docs/pages/blog/michal-dudak-joining.md @@ -1,15 +1,15 @@ --- -title: Michał Dudak joins Material-UI -description: We are excited to share that Michał Dudak has joined Material-UI. +title: Michał Dudak joins MUI +description: We are excited to share that Michał Dudak has joined MUI. date: 2021-06-14T00:00:00.000Z authors: ['oliviertassinari'] card: true --- -We are excited to share that [Michał Dudak](https://twitter.com/michaldudak) has joined Material-UI! +We are excited to share that [Michał Dudak](https://twitter.com/michaldudak) has joined MUI! He started a couple of days ago full-time and is part of the core components team. -Before joining Material-UI, Michał worked as a full-stack engineer and software architect at Future Processing, a high-end development agency in Poland. +Before joining MUI, Michał worked as a full-stack engineer and software architect at Future Processing, a high-end development agency in Poland. He has been a professional practitioner in the field for over a decade. He admires great designs and clever solutions. Creating with TypeScript and CSS is a pleasure for him. @@ -17,7 +17,7 @@ Creating with TypeScript and CSS is a pleasure for him. We were impressed by his technical challenge. He leveraged most of the best practices we enforce when writing components, without prior experience contributing to our codebase. -While we can't predict the future, Michał is currently responsible for the development of a new vertical for Material-UI: the unstyled & headless React components. +While we can't predict the future, Michał is currently responsible for the development of a new vertical for MUI: the unstyled & headless React components. Marija initiated this effort with a couple of new modules under the [@mui/core](https://unpkg.com/browse/@mui/core@latest/) package. This is a strategic effort for us, with the intent to solve two problems: diff --git a/docs/pages/blog/siriwat-kunaporn-joining.md b/docs/pages/blog/siriwat-kunaporn-joining.md index 844ce9c810e8cf..821277c081437e 100644 --- a/docs/pages/blog/siriwat-kunaporn-joining.md +++ b/docs/pages/blog/siriwat-kunaporn-joining.md @@ -1,22 +1,22 @@ --- -title: Siriwat Kunaporn joins Material-UI -description: We are excited to share that Siriwat Kunaporn has joined Material-UI. +title: Siriwat Kunaporn joins MUI +description: We are excited to share that Siriwat Kunaporn has joined MUI. date: 2021-05-17T00:00:00.000Z authors: ['oliviertassinari'] card: true --- -We are excited to share that [Siriwat Kunaporn](https://twitter.com/siriwatknp) (Jun) has joined Material-UI. +We are excited to share that [Siriwat Kunaporn](https://twitter.com/siriwatknp) (Jun) has joined MUI. He started a couple of days ago full-time and is part of the core components team. -Before joining Material-UI, Jun worked as a software engineer at ThoughtWorks. +Before joining MUI, Jun worked as a software engineer at ThoughtWorks. He has spent the last three years as a full-stack engineer, focusing more on React and the implementation of great-looking UIs. Jun is passionate about creating UIs that feel amazing. -We were impressed by his previous work on exploring the customization potential of Material-UI in [MUI Treasury](https://mui-treasury.com/). +We were impressed by his previous work on exploring the customization potential of MUI in [MUI Treasury](https://mui-treasury.com/). He's has demonstrated his care of the details and interest in design. -While we can't predict the future, Jun will initially help us get Material-UI v5 down the finish line. -Then, he will be focusing almost exclusively on pushing Material-UI further in the design realm. +While we can't predict the future, Jun will initially help us get MUI v5 down the finish line. +Then, he will be focusing almost exclusively on pushing MUI further in the design realm. We might start with a [second theme](https://github.com/mui-org/material-ui/issues/22485), a rebranding, a revamp of the documentation or the implementation of ["blocks"](https://deploy-preview-16--material-ui-blocks.netlify.app/). Jun is the second of a series of 5 new positions we have recently opened and filled. diff --git a/docs/pages/blog/spotlight-damien-tassone.md b/docs/pages/blog/spotlight-damien-tassone.md index d257cbe46da36b..12c7de17af7b6d 100644 --- a/docs/pages/blog/spotlight-damien-tassone.md +++ b/docs/pages/blog/spotlight-damien-tassone.md @@ -1,14 +1,14 @@ --- title: A spotlight on Damien Tassone joining the team -description: Damien Tassone has joined Material-UI. He's the first full-time member to focus on enterprise components. +description: Damien Tassone has joined MUI. He's the first full-time member to focus on enterprise components. date: 2020-09-15T00:00:00.000Z authors: ['oliviertassinari"] card: true --- -A few months ago, right in the middle of the COVID-19 outbreak, [Damien Tassone](https://twitter.com/madKakoO) joined Material-UI. He's the first full-time member to focus on enterprise components. Back then, we only made a quick mention of it. It's never too late to introduce him properly. +A few months ago, right in the middle of the COVID-19 outbreak, [Damien Tassone](https://twitter.com/madKakoO) joined MUI. He's the first full-time member to focus on enterprise components. Back then, we only made a quick mention of it. It's never too late to introduce him properly. -Prior to joining Material-UI, Damien worked in the finance industry in London for a decade. Part of the initial Agile Market team at RBS, and more recently leading a large Commodity Trading application at Adaptive, Damien has developed his React experience as part of large projects where Components driven design plays a huge role in successfully delivering applications. He loves TypeScript. +Prior to joining MUI, Damien worked in the finance industry in London for a decade. Part of the initial Agile Market team at RBS, and more recently leading a large Commodity Trading application at Adaptive, Damien has developed his React experience as part of large projects where Components driven design plays a huge role in successfully delivering applications. He loves TypeScript. Right from the start, Damien has made fast and significant progress. He has been an amazing addition to the team, and thanks to him, we are on the verge of releasing a new advanced component: the [Data Grid](https://material-ui.com/components/data-grid). diff --git a/docs/pages/branding/careers.tsx b/docs/pages/branding/careers.tsx index c8b0dd6fa1f304..fdd8ec6f552c42 100644 --- a/docs/pages/branding/careers.tsx +++ b/docs/pages/branding/careers.tsx @@ -180,7 +180,7 @@ const futureRolesData = { { title: 'Support Engineer', description: - 'Ensure that our users wildly succeed on their journey with Material-UI. You’ll directly work with users, customers, and potential customers to unblock them from using the products, triage and resolve issues, and use this direct feedback to drive direct improvements in Material-UI.', + 'Ensure that our users wildly succeed on their journey with MUI. You’ll directly work with users, customers, and potential customers to unblock them from using the products, triage and resolve issues, and use this direct feedback to drive direct improvements in MUI.', }, ], }; @@ -577,7 +577,7 @@ export default function Careers() {
diff --git a/docs/pages/branding/home.tsx b/docs/pages/branding/home.tsx index c7e5ef7e43645b..312d55efa1bcfd 100644 --- a/docs/pages/branding/home.tsx +++ b/docs/pages/branding/home.tsx @@ -46,7 +46,7 @@ export default function Home() { { "@context": "https://schema.org", "@type": "Organization", - "name": "Material-UI", + "name": "MUI", "url": "https://material-ui.com/", "logo": "https://material-ui.com/static/logo.png", "sameAs": [ diff --git a/docs/pages/branding/mui-x.tsx b/docs/pages/branding/mui-x.tsx index 6ad061c771c3c9..0ce5f3564b2185 100644 --- a/docs/pages/branding/mui-x.tsx +++ b/docs/pages/branding/mui-x.tsx @@ -53,7 +53,7 @@ function AdvancedReactComponent() { fontWeight: 'normal', }} > - Material-UI X is the last React UI library you'll ever need.{' '} + MUI X is the last React UI library you'll ever need.{' '} It contains the best React Data Grid on the market and a{' '} growing list of @@ -160,8 +160,8 @@ const materialUixData = [ title: 'Built exclusively for React', description: ( - The team behind Material-UI has been developing for React, and only React, since 2014. We - went all-in on React before most developers. + The team behind MUI has been developing for React, and only React, since 2014. We went + all-in on React before most developers.

As a result the components benefit from the expertise we have built, and leverage the power @@ -174,12 +174,12 @@ const materialUixData = [ title: 'TypeScript support', description: ( - Material-UI X components are written in TypeScript, this helps keep the type definitions - always up to date. + MUI X components are written in TypeScript, this helps keep the type definitions always up + to date.

- Over half of all React web applications are built with TypeScript. If yours is, Material-UI - X is ready for you. (And if it isn't – we've still got you covered! 👍) + Over half of all React web applications are built with TypeScript. If yours is, MUI X is + ready for you. (And if it isn't – we've still got you covered! 👍)
), }, @@ -188,9 +188,8 @@ const materialUixData = [ title: 'The most popular library', description: ( - The team behind Material-UI X also developed the most popular UI library for React: - Material-UI. With Material-UI X you will benefit from the same expertise gained over many - years. + The team behind MUI X also developed the most popular UI library for React: MUI. With MUI X + you will benefit from the same expertise gained over many years.

The components are built to the same quality standards: end-to-end tests, polished API, type safe, accessible, fast, small. 👌 @@ -207,7 +206,7 @@ const materialUixData = [ such as a data grid, there isn't even an open source alternative to turn to.

- Material-UI X will support all the most needed UI components, without sacrificing quality. + MUI X will support all the most needed UI components, without sacrificing quality.
), }, @@ -227,8 +226,8 @@ const materialUixData = [ what good is that nice design system if you can't use it?

- Material-UI X is simple to customize by design, which means that you are in complete and - full control of how your components render down to the very last component, class or style. + MUI X is simple to customize by design, which means that you are in complete and full + control of how your components render down to the very last component, class or style.
), }, @@ -260,8 +259,8 @@ function WhyMaterialUix() { }} > Looking to get ahead? We have timely resources. Switch to{' '} - Material-UI X to get - more components. + MUI X to get more + components. {materialUixData.map((material) => ( @@ -374,7 +373,7 @@ function ReactDataGridMarket() { Packed with exclusive features - The Material-UI X React Data Grid is packed with exclusive features that will + The MUI X React Data Grid is packed with exclusive features that will enrich the experience of your data tables. @@ -435,8 +434,7 @@ const communityData = [ url: 'https://twitter.com/jimboolean/status/1276549134128943106', description: ( - Working with Material-UI is like working with an entire UI development team, minus the - overhead. + Working with MUI is like working with an entire UI development team, minus the overhead.

The theming tooling is simple and well-done. The components are common, customizable, and @@ -470,7 +468,7 @@ const communityData = [ id: '@matthiasmargot', avatar: '/static/branding/mui-x/avatar-matthiasmargot.jpg', url: 'https://twitter.com/matthiasmargot/status/1215482285681795072', - description: `The DX on Material-UI is absolutely insane and that package has shaped my approach to + description: `The DX on MUI is absolutely insane and that package has shaped my approach to Component API Design / Composition Design & Style System Design. I think those guys got it idiomatically right, wonderful product.`, }, @@ -479,7 +477,7 @@ const communityData = [ id: '@SharpeMartha', avatar: '/static/branding/mui-x/avatar-SharpeMartha.jpg', url: 'https://twitter.com/SharpeMartha/status/1277983914355818496', - description: `Spent the morning going through the docs for Material-UI. Such an amazing framework with + description: `Spent the morning going through the docs for MUI. Such an amazing framework with amazing documentation! I tried using it several months ago, but struggled to grasp how a lot of it worked. Apparently, my understanding of React has been upgraded since then. Smiling face with smiling eyes.`, @@ -856,8 +854,8 @@ export default function Page() { return ( + + + +
+ + + + + + +
+ + + ); +} diff --git a/docs/pages/company/technical-product-manager.js b/docs/pages/company/technical-product-manager.js new file mode 100644 index 00000000000000..926b5af56dab5e --- /dev/null +++ b/docs/pages/company/technical-product-manager.js @@ -0,0 +1,11 @@ +import * as React from 'react'; +import TopLayoutCompany from 'docs/src/modules/components/TopLayoutCompany'; +import { + demos, + docs, + demoComponents, +} from 'docs/src/pages/company/careers/technical-product-manager.md?@mui/markdown'; + +export default function Page() { + return ; +} diff --git a/docs/pages/index.tsx b/docs/pages/index.tsx index e9b0ad7c31822f..11750a377c3f8d 100644 --- a/docs/pages/index.tsx +++ b/docs/pages/index.tsx @@ -176,7 +176,7 @@ export default function LandingPage() { { "@context": "https://schema.org", "@type": "Organization", - "name": "Material-UI", + "name": "MUI", "url": "https://material-ui.com/", "logo": "https://material-ui.com/static/logo.png", "sameAs": [ diff --git a/docs/pages/premium-themes/onepirate/forgot-password.js b/docs/pages/premium-themes/onepirate/forgot-password.js index c501d7f1edbe4a..855d9e8c8b9fc7 100644 --- a/docs/pages/premium-themes/onepirate/forgot-password.js +++ b/docs/pages/premium-themes/onepirate/forgot-password.js @@ -4,7 +4,7 @@ import ForgotPassword from 'docs/src/pages/premium-themes/onepirate/ForgotPasswo export default function Page() { return ( - + ); diff --git a/docs/pages/premium-themes/onepirate/index.js b/docs/pages/premium-themes/onepirate/index.js index 74de2f0a8ea71c..aee0a27d1f9247 100644 --- a/docs/pages/premium-themes/onepirate/index.js +++ b/docs/pages/premium-themes/onepirate/index.js @@ -4,7 +4,7 @@ import Home from 'docs/src/pages/premium-themes/onepirate/Home'; export default function Page() { return ( - + ); diff --git a/docs/pages/premium-themes/onepirate/privacy.js b/docs/pages/premium-themes/onepirate/privacy.js index b199edd477df78..ea922c59f9c27a 100644 --- a/docs/pages/premium-themes/onepirate/privacy.js +++ b/docs/pages/premium-themes/onepirate/privacy.js @@ -4,7 +4,7 @@ import Privacy from 'docs/src/pages/premium-themes/onepirate/Privacy'; export default function Page() { return ( - + ); diff --git a/docs/pages/premium-themes/onepirate/sign-in.js b/docs/pages/premium-themes/onepirate/sign-in.js index 6012eeb2bb4450..07efcff0beff6c 100644 --- a/docs/pages/premium-themes/onepirate/sign-in.js +++ b/docs/pages/premium-themes/onepirate/sign-in.js @@ -4,7 +4,7 @@ import SignIn from 'docs/src/pages/premium-themes/onepirate/SignIn'; export default function Page() { return ( - + ); diff --git a/docs/pages/premium-themes/onepirate/sign-up.js b/docs/pages/premium-themes/onepirate/sign-up.js index f497f92d1e3d65..eca3657e3dd296 100644 --- a/docs/pages/premium-themes/onepirate/sign-up.js +++ b/docs/pages/premium-themes/onepirate/sign-up.js @@ -4,7 +4,7 @@ import SignUp from 'docs/src/pages/premium-themes/onepirate/SignUp'; export default function Page() { return ( - + ); diff --git a/docs/pages/premium-themes/onepirate/terms.js b/docs/pages/premium-themes/onepirate/terms.js index 2810988713a1a4..abaeea05e513c7 100644 --- a/docs/pages/premium-themes/onepirate/terms.js +++ b/docs/pages/premium-themes/onepirate/terms.js @@ -4,7 +4,7 @@ import Terms from 'docs/src/pages/premium-themes/onepirate/Terms'; export default function Page() { return ( - + ); diff --git a/docs/pages/premium-themes/paperbase/index.js b/docs/pages/premium-themes/paperbase/index.js index 51260de5e75b99..eed920a97e4b87 100644 --- a/docs/pages/premium-themes/paperbase/index.js +++ b/docs/pages/premium-themes/paperbase/index.js @@ -5,7 +5,7 @@ import Paperbase from 'docs/src/pages/premium-themes/paperbase/Paperbase'; export default function Page() { return ( diff --git a/docs/public/_redirects b/docs/public/_redirects index 19899ed4b504af..a3902d984cd575 100644 --- a/docs/public/_redirects +++ b/docs/public/_redirects @@ -159,9 +159,9 @@ https://v3-9-0.material-ui.com/* https://v3.material-ui.com/:splat 301! ## material-ui-x ## Unlike the store that expect to be hosted under a subfolder, ## material-ui-x is configured to be hosted at the root. -/api/*/ https://next--material-ui-x.netlify.app/api/:splat/ 200 -/:lang/api/*/ https://next--material-ui-x.netlify.app/:lang/api/:splat/ 200 -/components/* https://next--material-ui-x.netlify.app/components/:splat 200 -/:lang/components/* https://next--material-ui-x.netlify.app/:lang/components/:splat 200 -/_next/* https://next--material-ui-x.netlify.app/_next/:splat 200 -/static/x/* https://next--material-ui-x.netlify.app/static/x/:splat 200 +/api/*/ https://docs-v5--material-ui-x.netlify.app/api/:splat/ 200 +/:lang/api/*/ https://docs-v5--material-ui-x.netlify.app/:lang/api/:splat/ 200 +/components/* https://docs-v5--material-ui-x.netlify.app/components/:splat 200 +/:lang/components/* https://docs-v5--material-ui-x.netlify.app/:lang/components/:splat 200 +/_next/* https://docs-v5--material-ui-x.netlify.app/_next/:splat 200 +/static/x/* https://docs-v5--material-ui-x.netlify.app/static/x/:splat 200 diff --git a/docs/public/static/branding/companies/boeing-dark.svg b/docs/public/static/branding/companies/boeing-dark.svg index af14c37e4c221d..2f77a01be06809 100644 --- a/docs/public/static/branding/companies/boeing-dark.svg +++ b/docs/public/static/branding/companies/boeing-dark.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + + diff --git a/docs/public/static/branding/companies/boeing-light.svg b/docs/public/static/branding/companies/boeing-light.svg index 8aa9289dc73723..af5fb185b95099 100644 --- a/docs/public/static/branding/companies/boeing-light.svg +++ b/docs/public/static/branding/companies/boeing-light.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + + diff --git a/docs/public/static/branding/companies/deloitte-dark.svg b/docs/public/static/branding/companies/deloitte-dark.svg index c4f696d089b99b..bcd802f29ab97b 100644 --- a/docs/public/static/branding/companies/deloitte-dark.svg +++ b/docs/public/static/branding/companies/deloitte-dark.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + + diff --git a/docs/public/static/branding/companies/deloitte-light.svg b/docs/public/static/branding/companies/deloitte-light.svg index adc0c46e653131..6966df29a3c33a 100644 --- a/docs/public/static/branding/companies/deloitte-light.svg +++ b/docs/public/static/branding/companies/deloitte-light.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + + diff --git a/docs/public/static/branding/companies/siemens-dark.svg b/docs/public/static/branding/companies/siemens-dark.svg index a6e6138b180f4e..81322130f31f7d 100644 --- a/docs/public/static/branding/companies/siemens-dark.svg +++ b/docs/public/static/branding/companies/siemens-dark.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/docs/public/static/branding/companies/siemens-light.svg b/docs/public/static/branding/companies/siemens-light.svg index eacca89863f0b8..81322130f31f7d 100644 --- a/docs/public/static/branding/companies/siemens-light.svg +++ b/docs/public/static/branding/companies/siemens-light.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/docs/public/static/branding/companies/southwest-dark.svg b/docs/public/static/branding/companies/southwest-dark.svg index 4ea55bb461ee86..7786bb3fbe040e 100644 --- a/docs/public/static/branding/companies/southwest-dark.svg +++ b/docs/public/static/branding/companies/southwest-dark.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/docs/public/static/branding/companies/southwest-light.svg b/docs/public/static/branding/companies/southwest-light.svg index 6a3ec2dc9ac1df..28ad5d8224e4d3 100644 --- a/docs/public/static/branding/companies/southwest-light.svg +++ b/docs/public/static/branding/companies/southwest-light.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/docs/public/static/branding/companies/volvo-dark.svg b/docs/public/static/branding/companies/volvo-dark.svg index a333de4bae2801..4669394e433f78 100644 --- a/docs/public/static/branding/companies/volvo-dark.svg +++ b/docs/public/static/branding/companies/volvo-dark.svg @@ -1 +1,10 @@ - \ No newline at end of file + + + + + + + + + + diff --git a/docs/public/static/branding/companies/volvo-light.svg b/docs/public/static/branding/companies/volvo-light.svg index 119f7a82f36310..022cd8970d1663 100644 --- a/docs/public/static/branding/companies/volvo-light.svg +++ b/docs/public/static/branding/companies/volvo-light.svg @@ -1 +1,10 @@ - \ No newline at end of file + + + + + + + + + + diff --git a/docs/public/static/branding/mui-x/chart-dark1.png b/docs/public/static/branding/mui-x/chart-dark1.png new file mode 100644 index 00000000000000..04da60024105ca Binary files /dev/null and b/docs/public/static/branding/mui-x/chart-dark1.png differ diff --git a/docs/public/static/branding/mui-x/chart-dark2.png b/docs/public/static/branding/mui-x/chart-dark2.png new file mode 100644 index 00000000000000..cd80c68890312b Binary files /dev/null and b/docs/public/static/branding/mui-x/chart-dark2.png differ diff --git a/docs/public/static/branding/mui-x/chart-dark3.png b/docs/public/static/branding/mui-x/chart-dark3.png new file mode 100644 index 00000000000000..981aa4a7001202 Binary files /dev/null and b/docs/public/static/branding/mui-x/chart-dark3.png differ diff --git a/docs/public/static/branding/mui-x/chart-dark4.png b/docs/public/static/branding/mui-x/chart-dark4.png new file mode 100644 index 00000000000000..e449e93673ab67 Binary files /dev/null and b/docs/public/static/branding/mui-x/chart-dark4.png differ diff --git a/docs/public/static/branding/mui-x/chart-light1.png b/docs/public/static/branding/mui-x/chart-light1.png new file mode 100644 index 00000000000000..08eed22fd24636 Binary files /dev/null and b/docs/public/static/branding/mui-x/chart-light1.png differ diff --git a/docs/public/static/branding/mui-x/chart-light2.png b/docs/public/static/branding/mui-x/chart-light2.png new file mode 100644 index 00000000000000..f6f3bf37451c29 Binary files /dev/null and b/docs/public/static/branding/mui-x/chart-light2.png differ diff --git a/docs/public/static/branding/mui-x/chart-light3.png b/docs/public/static/branding/mui-x/chart-light3.png new file mode 100644 index 00000000000000..3cc0c2659bde8e Binary files /dev/null and b/docs/public/static/branding/mui-x/chart-light3.png differ diff --git a/docs/public/static/branding/mui-x/chart-light4.png b/docs/public/static/branding/mui-x/chart-light4.png new file mode 100644 index 00000000000000..0c9d9d9e7a3bcd Binary files /dev/null and b/docs/public/static/branding/mui-x/chart-light4.png differ diff --git a/docs/public/static/branding/mui-x/sparkline-dark1.png b/docs/public/static/branding/mui-x/sparkline-dark1.png new file mode 100644 index 00000000000000..9351de0390d2bd Binary files /dev/null and b/docs/public/static/branding/mui-x/sparkline-dark1.png differ diff --git a/docs/public/static/branding/mui-x/sparkline-dark2.png b/docs/public/static/branding/mui-x/sparkline-dark2.png new file mode 100644 index 00000000000000..05884527fec1a3 Binary files /dev/null and b/docs/public/static/branding/mui-x/sparkline-dark2.png differ diff --git a/docs/public/static/branding/mui-x/sparkline-light1.png b/docs/public/static/branding/mui-x/sparkline-light1.png new file mode 100644 index 00000000000000..87069c0ab0d78b Binary files /dev/null and b/docs/public/static/branding/mui-x/sparkline-light1.png differ diff --git a/docs/public/static/branding/mui-x/sparkline-light2.png b/docs/public/static/branding/mui-x/sparkline-light2.png new file mode 100644 index 00000000000000..ac2a143549e21b Binary files /dev/null and b/docs/public/static/branding/mui-x/sparkline-light2.png differ diff --git a/docs/public/static/error-codes.json b/docs/public/static/error-codes.json index 4d59f1fc17a0e9..e023da04023a4a 100644 --- a/docs/public/static/error-codes.json +++ b/docs/public/static/error-codes.json @@ -1,18 +1,18 @@ { - "1": "Material-UI: Expected valid input target. Did you use a custom `inputComponent` and forget to forward refs? See https://material-ui.com/r/input-component-ref-interface for more info.", - "2": "Material-UI: The `value` prop must be an array when using the `Select` component with `multiple`.", - "3": "Material-UI: Unsupported `%s` color.\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().", - "4": "Material-UI: The color provided to augmentColor(color) is invalid.\nThe color object needs to have a `main` property or a `%s` property.", - "5": "Material-UI: The color provided to augmentColor(color) is invalid.\n`color.main` should be a string, but `%s` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });", - "6": "Material-UI: Unsupported non-unitless line height with grid alignment.\nUse unitless line heights instead.", - "7": "Material-UI: `capitalize(string)` expects a string argument.", - "8": "Material-UI: Unsupported `%s` color.\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().", - "9": "Material-UI: Unsupported `%s` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().", - "10": "Material-UI: unsupported `%s` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.", - "11": "Material-UI: The color%s provided to augmentColor(color) is invalid.\nThe color object needs to have a `main` property or a `%s` property.", - "12": "Material-UI: The color%s provided to augmentColor(color) is invalid.\n`color.main` should be a string, but `%s` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });", + "1": "MUI: Expected valid input target. Did you use a custom `inputComponent` and forget to forward refs? See https://material-ui.com/r/input-component-ref-interface for more info.", + "2": "MUI: The `value` prop must be an array when using the `Select` component with `multiple`.", + "3": "MUI: Unsupported `%s` color.\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().", + "4": "MUI: The color provided to augmentColor(color) is invalid.\nThe color object needs to have a `main` property or a `%s` property.", + "5": "MUI: The color provided to augmentColor(color) is invalid.\n`color.main` should be a string, but `%s` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });", + "6": "MUI: Unsupported non-unitless line height with grid alignment.\nUse unitless line heights instead.", + "7": "MUI: `capitalize(string)` expects a string argument.", + "8": "MUI: Unsupported `%s` color.\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().", + "9": "MUI: Unsupported `%s` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().", + "10": "MUI: unsupported `%s` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.", + "11": "MUI: The color%s provided to augmentColor(color) is invalid.\nThe color object needs to have a `main` property or a `%s` property.", + "12": "MUI: The color%s provided to augmentColor(color) is invalid.\n`color.main` should be a string, but `%s` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });", "13": "Can not find utils in context. It looks like you forgot to wrap your component in LocalizationProvider, or pass dateAdapter prop directly.", - "14": "Material-UI: makeStyles is not longer exported from @mui/material/styles.\nYou have to import it from @mui/styles.\nSee https://material-ui.com/r/migration-v4/#material-ui-core-styles for more details.", - "15": "Material-UI: withStyles is not longer exported from @mui/material/styles.\nYou have to import it from @mui/styles.\nSee https://material-ui.com/r/migration-v4/#material-ui-core-styles for more details.", - "16": "Material-UI: withTheme is not longer exported from @mui/material/styles.\nYou have to import it from @mui/styles.\nSee https://material-ui.com/r/migration-v4/#material-ui-core-styles for more details." + "14": "MUI: makeStyles is not longer exported from @mui/material/styles.\nYou have to import it from @mui/styles.\nSee https://material-ui.com/r/migration-v4/#material-ui-core-styles for more details.", + "15": "MUI: withStyles is not longer exported from @mui/material/styles.\nYou have to import it from @mui/styles.\nSee https://material-ui.com/r/migration-v4/#material-ui-core-styles for more details.", + "16": "MUI: withTheme is not longer exported from @mui/material/styles.\nYou have to import it from @mui/styles.\nSee https://material-ui.com/r/migration-v4/#material-ui-core-styles for more details." } diff --git a/docs/public/static/hiring-toc-dark.png b/docs/public/static/hiring-toc-dark.png new file mode 100644 index 00000000000000..2f52678354b9d4 Binary files /dev/null and b/docs/public/static/hiring-toc-dark.png differ diff --git a/docs/public/static/hiring-toc-light.png b/docs/public/static/hiring-toc-light.png new file mode 100644 index 00000000000000..125e86743eb6df Binary files /dev/null and b/docs/public/static/hiring-toc-light.png differ diff --git a/docs/public/static/images/image-list/bike.jpg b/docs/public/static/images/image-list/bike.jpg new file mode 100644 index 00000000000000..0646f5154ab25b Binary files /dev/null and b/docs/public/static/images/image-list/bike.jpg differ diff --git a/docs/public/static/images/image-list/breakfast.jpg b/docs/public/static/images/image-list/breakfast.jpg new file mode 100644 index 00000000000000..9af6842ff31262 Binary files /dev/null and b/docs/public/static/images/image-list/breakfast.jpg differ diff --git a/docs/public/static/images/image-list/burgers.jpg b/docs/public/static/images/image-list/burgers.jpg new file mode 100644 index 00000000000000..a293a33dacd4f1 Binary files /dev/null and b/docs/public/static/images/image-list/burgers.jpg differ diff --git a/docs/public/static/images/image-list/camera.jpg b/docs/public/static/images/image-list/camera.jpg new file mode 100644 index 00000000000000..f870b196490b00 Binary files /dev/null and b/docs/public/static/images/image-list/camera.jpg differ diff --git a/docs/public/static/images/image-list/hats.jpg b/docs/public/static/images/image-list/hats.jpg new file mode 100644 index 00000000000000..51e7c3cdd6f6c9 Binary files /dev/null and b/docs/public/static/images/image-list/hats.jpg differ diff --git a/docs/public/static/images/image-list/honey.jpg b/docs/public/static/images/image-list/honey.jpg new file mode 100644 index 00000000000000..29fb65474a50ed Binary files /dev/null and b/docs/public/static/images/image-list/honey.jpg differ diff --git a/docs/public/static/images/image-list/morning.jpg b/docs/public/static/images/image-list/morning.jpg new file mode 100644 index 00000000000000..0e2530e5cd0a0a Binary files /dev/null and b/docs/public/static/images/image-list/morning.jpg differ diff --git a/docs/public/static/images/image-list/mushroom.jpg b/docs/public/static/images/image-list/mushroom.jpg new file mode 100644 index 00000000000000..1bcd0495750a96 Binary files /dev/null and b/docs/public/static/images/image-list/mushroom.jpg differ diff --git a/docs/public/static/images/image-list/olive.jpg b/docs/public/static/images/image-list/olive.jpg new file mode 100644 index 00000000000000..6260d2d53484b0 Binary files /dev/null and b/docs/public/static/images/image-list/olive.jpg differ diff --git a/docs/public/static/images/image-list/plant.jpg b/docs/public/static/images/image-list/plant.jpg new file mode 100644 index 00000000000000..e0550cf2b37976 Binary files /dev/null and b/docs/public/static/images/image-list/plant.jpg differ diff --git a/docs/public/static/images/image-list/star.jpg b/docs/public/static/images/image-list/star.jpg new file mode 100644 index 00000000000000..411a865ebcaef8 Binary files /dev/null and b/docs/public/static/images/image-list/star.jpg differ diff --git a/docs/public/static/images/image-list/vegetables.jpg b/docs/public/static/images/image-list/vegetables.jpg new file mode 100644 index 00000000000000..f2c082ba711b5f Binary files /dev/null and b/docs/public/static/images/image-list/vegetables.jpg differ diff --git a/docs/public/static/images/users/coursera.svg b/docs/public/static/images/users/coursera.svg deleted file mode 100644 index 192994e51d6e12..00000000000000 --- a/docs/public/static/images/users/coursera.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/public/static/images/users/spotify.svg b/docs/public/static/images/users/spotify.svg new file mode 100644 index 00000000000000..d0347db9bd7315 --- /dev/null +++ b/docs/public/static/images/users/spotify.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/public/static/manifest.json b/docs/public/static/manifest.json index 62978671be119e..4c319e292c8434 100644 --- a/docs/public/static/manifest.json +++ b/docs/public/static/manifest.json @@ -1,5 +1,5 @@ { - "name": "Material-UI", + "name": "MUI", "short_name": "MUI", "display": "minimal-ui", "start_url": "/", diff --git a/docs/src/components/action/Highlighter.tsx b/docs/src/components/action/Highlighter.tsx index 50e16c21c712d7..dc91a1e3a6dbf9 100644 --- a/docs/src/components/action/Highlighter.tsx +++ b/docs/src/components/action/Highlighter.tsx @@ -15,9 +15,27 @@ export default function Highlighter({ white: '#fff', comfort: 'grey.50', }; + const ref = React.useRef(null); return ( { + if (ref.current) { + ref.current.scrollIntoView({ block: 'nearest' }); + } + if (props.onClick) { + props.onClick(event); + } + }} + onFocusVisible={(event) => { + if (ref.current) { + ref.current.scrollIntoView({ block: 'nearest' }); + } + if (props.onFocusVisible) { + props.onFocusVisible(event); + } + }} sx={{ justifyContent: 'flex-start', textAlign: 'left', @@ -45,6 +63,9 @@ export default function Highlighter({ }, }, }), + '&.Mui-disabled': { + opacity: 0.4, + }, ...props.sx, }} /> diff --git a/docs/src/components/action/Item.tsx b/docs/src/components/action/Item.tsx index 8e801a6aefdf6f..e102981a43e9d5 100644 --- a/docs/src/components/action/Item.tsx +++ b/docs/src/components/action/Item.tsx @@ -14,6 +14,9 @@ export function Group({ desktopColumns = 1, ...props }: { desktopColumns?: numbe display: 'grid', gap: 1, gridTemplateColumns: `repeat(${desktopColumns}, 1fr)`, + '@media (prefers-reduced-motion: no-preference)': { + scrollBehavior: 'smooth', + }, '& > *': { minWidth: { xs: desktopColumns === 1 ? 300 : 225, diff --git a/docs/src/components/action/More.tsx b/docs/src/components/action/More.tsx index dd6be455bc1241..f39ee88bf3c7ef 100644 --- a/docs/src/components/action/More.tsx +++ b/docs/src/components/action/More.tsx @@ -6,9 +6,27 @@ import AddCircleOutlineRounded from '@mui/icons-material/AddCircleOutlineRounded import KeyboardArrowRightRounded from '@mui/icons-material/KeyboardArrowRightRounded'; export default (function More(props: ButtonBaseProps) { + const ref = React.useRef(null); return ( { + if (ref.current) { + ref.current.scrollIntoView({ block: 'nearest' }); + } + if (props.onClick) { + props.onClick(event); + } + }} + onFocusVisible={(event) => { + if (ref.current) { + ref.current.scrollIntoView({ block: 'nearest' }); + } + if (props.onFocusVisible) { + props.onFocusVisible(event); + } + }} sx={{ p: 2, display: 'flex', diff --git a/docs/src/components/action/StylingInfo.tsx b/docs/src/components/action/StylingInfo.tsx index ebec5d6c892df6..1e687b83391a7c 100644 --- a/docs/src/components/action/StylingInfo.tsx +++ b/docs/src/components/action/StylingInfo.tsx @@ -9,8 +9,26 @@ import Link from 'docs/src/modules/components/Link'; import { brandingDarkTheme } from 'docs/src/modules/brandingTheme'; import ROUTES from 'docs/src/route'; -export default function StylingInfo({ appeared, ...props }: { appeared: boolean } & BoxProps) { +export default function StylingInfo({ + appeared, + content, + ...props +}: { appeared: boolean; content?: React.ReactElement } & BoxProps) { const [hidden, setHidden] = React.useState(false); + const defaultContent = ( + + + Own the styling! + + + Build your own design system using the{' '} + + sophisticated theming features + + . You can also start by using Google's Material Design. + + + ); return ( )} - - Own the styling! - - - Build your own design system using the{' '} - - sophisticated theming features - - . You can also start by using Google's Material Design. - + {content || defaultContent} ); diff --git a/docs/src/components/animation/FlashCode.tsx b/docs/src/components/animation/FlashCode.tsx new file mode 100644 index 00000000000000..bfec209f7459e4 --- /dev/null +++ b/docs/src/components/animation/FlashCode.tsx @@ -0,0 +1,24 @@ +import { styled, alpha } from '@mui/material/styles'; +import { shouldForwardProp } from '@mui/system'; + +const FlashCode = styled('div', { + shouldForwardProp: (prop) => + shouldForwardProp(prop) && prop !== 'endLine' && prop !== 'startLine' && prop !== 'lineHeight', +})<{ endLine?: number; startLine?: number; lineHeight?: number | string }>( + ({ theme, startLine = 0, endLine = startLine, lineHeight = '0.75rem' }) => ({ + borderRadius: 2, + pointerEvents: 'none', + position: 'absolute', + left: 0, + right: 0, + top: `calc(${lineHeight} * 1.5 * ${startLine})`, + height: `calc(${lineHeight} * 1.5 * ${endLine - startLine + 1})`, + transition: '0.3s', + ...theme.typography.caption, + backgroundColor: alpha(theme.palette.primary.main, 0.2), + border: '1px solid', + borderColor: theme.palette.primary.dark, + }), +); + +export default FlashCode; diff --git a/docs/src/components/home/AdvancedShowcase.tsx b/docs/src/components/home/AdvancedShowcase.tsx index 9cc16109267da9..00241ad6dd9ede 100644 --- a/docs/src/components/home/AdvancedShowcase.tsx +++ b/docs/src/components/home/AdvancedShowcase.tsx @@ -1,265 +1,16 @@ import * as React from 'react'; -import { DataGrid, GridCellParams, GridColDef } from '@material-ui/data-grid'; -import { debounce } from '@mui/material/utils'; -import { alpha } from '@mui/material/styles'; -import GlobalStyles from '@mui/material/GlobalStyles'; +import { DataGrid, GridCellParams, GridRenderEditCellParams, GridColDef } from '@mui/x-data-grid'; import Box from '@mui/material/Box'; import Paper from '@mui/material/Paper'; -import Chip from '@mui/material/Chip'; -import MenuItem from '@mui/material/MenuItem'; -import ListItemIcon from '@mui/material/ListItemIcon'; -import ListItemText from '@mui/material/ListItemText'; import Typography from '@mui/material/Typography'; -import Tooltip from '@mui/material/Tooltip'; -import Slider from '@mui/material/Slider'; -import Select from '@mui/material/Select'; import ShowcaseContainer from 'docs/src/components/home/ShowcaseContainer'; -import ReportProblemIcon from '@mui/icons-material/ReportProblem'; -import InfoIcon from '@mui/icons-material/Info'; -import AutorenewIcon from '@mui/icons-material/Autorenew'; -import DoneIcon from '@mui/icons-material/Done'; import HighlightedCode from 'docs/src/modules/components/HighlightedCode'; import MarkdownElement from 'docs/src/components/markdown/MarkdownElement'; - -const ProgressBar = React.memo(function ProgressBar(props: ProgressBarProps) { - const { value } = props; - const valueInPercent = value * 100; - - return ( - (theme.palette.mode === 'dark' ? 'primaryDark.700' : 'grey.100'), - }} - > - {`${valueInPercent.toLocaleString()} %`} - (theme.palette.mode === 'dark' ? 'error.700' : 'error.200'), - }), - ...(valueInPercent >= 30 && - valueInPercent <= 70 && { - bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'warning.900' : 'warning.400'), - }), - ...(valueInPercent > 70 && { - bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'success.800' : 'success.300'), - }), - width: `${valueInPercent}%`, - }} - /> - - ); -}); - -interface StatusProps { - status: string; -} - -const Status = React.memo((props: StatusProps) => { - const { status } = props; - let label = status; - if (status === 'PartiallyFilled') { - label = 'Partial'; - } - return ( - alpha(theme.palette.primary[500], 0.1), - color: (theme) => (theme.palette.mode === 'dark' ? 'primary.300' : 'primary.600'), - }), - ...(status === 'Filled' && { - borderColor: 'success.500', - bgcolor: (theme) => alpha(theme.palette.success[500], 0.1), - color: (theme) => (theme.palette.mode === 'dark' ? 'success.500' : 'success.800'), - }), - ...(status === 'PartiallyFilled' && { - borderColor: 'warning.600', - bgcolor: (theme) => alpha(theme.palette.warning[500], 0.1), - color: (theme) => (theme.palette.mode === 'dark' ? 'warning.300' : 'warning.900'), - }), - ...(status === 'Rejected' && { - borderColor: 'error.500', - bgcolor: (theme) => alpha(theme.palette.error[500], 0.1), - color: (theme) => (theme.palette.mode === 'dark' ? 'error.400' : 'error.600'), - }), - }} - /> - ); -}); - -function ValueLabelComponent(props: { - open: boolean; - value: number; - children: React.ReactElement; -}) { - const { children, open, value } = props; - return ( - - {children} - - ); -} - -function EditProgress(props: GridCellParams) { - const { id, value, api, field } = props; - const [valueState, setValueState] = React.useState(Number(value)); - - const updateCellEditProps = React.useCallback( - (newValue) => { - api.setEditCellValue({ id, field, value: newValue }); - }, - [api, field, id], - ); - - const debouncedUpdateCellEditProps = React.useMemo( - () => debounce(updateCellEditProps, 60), - [updateCellEditProps], - ); - - const handleChange = (event: Event, newValue: number | number[]) => { - setValueState(newValue as number); - debouncedUpdateCellEditProps(newValue); - }; - - React.useEffect(() => { - setValueState(Number(value)); - }, [value]); - - const handleRef = (element: any) => { - if (element) { - element.querySelector('[role="slider"]')?.focus(); - } - }; - - return ( - (theme.palette.mode === 'dark' ? 'primaryDark.700' : 'grey.100'), - }, - '& .MuiSlider-track': { - border: 0, - ...(valueState < 0.3 && { - bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'error.800' : 'error.500'), - }), - ...(valueState >= 0.3 && - valueState <= 0.7 && { - bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'warning.800' : 'warning.500'), - }), - ...(valueState > 0.7 && { - bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'success.800' : 'success.500'), - }), - }, - '& .MuiSlider-thumb': { - cursor: 'col-resize', - height: '100%', - width: 5, - borderRadius: '0px', - marginTop: 0, - backgroundColor: alpha('#000000', 0.2), - }, - }} - value={valueState} - max={1} - step={0.00001} - onChange={handleChange} - components={{ - ValueLabel: ValueLabelComponent, - }} - valueLabelDisplay="auto" - valueLabelFormat={(newValue) => `${(newValue * 100).toLocaleString()} %`} - /> - ); -} - -const STATUS_OPTIONS = ['Open', 'PartiallyFilled', 'Filled', 'Rejected']; - -function EditStatus(props: GridCellParams) { - const { id, value, api, field } = props; - - const handleChange = (event: any) => { - api.setEditCellValue({ id, field, value: event.target.value }, event); - if (!event.key) { - api.commitCellChange({ id, field }); - api.setCellMode(id, field, 'view'); - } - }; - - const handleClose = (event: {}, reason: 'backdropClick' | 'escapeKeyDown') => { - if (reason === 'backdropClick') { - api.setCellMode(id, field, 'view'); - } - }; - - return ( - - ); -} +import XGridGlobalStyles from 'docs/src/components/home/XGridGlobalStyles'; +import ProgressBar from 'docs/src/components/x-grid/ProgressBar'; +import EditProgress from 'docs/src/components/x-grid/EditProgress'; +import Status from 'docs/src/components/x-grid/Status'; +import EditStatus from 'docs/src/components/x-grid/EditStatus'; const columns: Array = [ { @@ -280,7 +31,7 @@ const columns: Array = [ renderCell: (params: GridCellParams) => { return ; }, - renderEditCell: (params: GridCellParams) => { + renderEditCell: (params: GridRenderEditCellParams) => { return ; }, }, @@ -293,16 +44,12 @@ const columns: Array = [ renderCell: (params: GridCellParams) => { return ; }, - renderEditCell: (params: GridCellParams) => { + renderEditCell: (params: GridRenderEditCellParams) => { return ; }, }, ]; -interface ProgressBarProps { - value: number; -} - const code = ` svg': { - fontSize: '1.25rem', - }, - }, - // table head elements - '& .MuiDataGrid-menuIcon svg': { - fontSize: '1rem', - }, - '& .MuiDataGrid-columnsContainer': { - borderColor: (theme) => - theme.palette.mode === 'dark' ? 'primaryDark.500' : 'grey.200', - bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'primaryDark.800' : '#fff'), - }, - '& .MuiDataGrid-columnHeaderTitleContainer': { - padding: 0, - }, - '& .MuiDataGrid-columnSeparator': { - display: 'none', - }, - '& .MuiDataGrid-columnHeaderTitle': { - flexGrow: 1, - }, - // ------------------------------- - // table body elements - '& .MuiDataGrid-viewport': { - bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'primaryDark.900' : 'grey.50'), - }, - '& .MuiDataGrid-cell': { - borderColor: (theme) => - theme.palette.mode === 'dark' ? 'primaryDark.700' : 'grey.200', - }, - '& .MuiDataGrid-editInputCell': { - fontSize: '0.75rem', - '& > input': { - px: 1, - }, - }, - '& .MuiDataGrid-cell--editing': { - '& .MuiSelect-root': { - '& .MuiListItemIcon-root': { - display: 'none', - }, - '& .MuiTypography-root': { - fontSize: '0.75rem', - }, - }, - }, - '& .MuiTablePagination-root': { - mr: 1, - '& .MuiIconButton-root': { - '&:not([disabled])': { - color: (theme) => (theme.palette.mode === 'dark' ? '#fff' : 'primary.main'), - }, - borderRadius: 1, - p: 0.5, - border: '1px solid', - bgcolor: (theme) => - theme.palette.mode === 'dark' ? 'primaryDark.600' : 'transparent', - borderColor: (theme) => - theme.palette.mode === 'dark' ? 'primaryDark.600' : 'grey.200', - '&:last-of-type': { - ml: 1, - }, - '& > svg': { - fontSize: '1.25rem', - }, - }, - }, - }, }} preview={ (theme.palette.mode === 'dark' ? 'primaryDark.800' : '#fff'), }} > - + = [ name: 'southwest', alt: 'Southwest logo', width: 125, - height: 19, + height: 52, }, { name: 'boeing', alt: 'Boeing logo', width: 95, - height: 22, + height: 52, }, { name: 'siemens', alt: 'Siemens logo', width: 105, - height: 25, + height: 52, }, { name: 'deloitte', alt: 'Deloitte logo', width: 97, - height: 21, + height: 52, }, { name: 'volvo', alt: 'Volvo logo', width: 131, - height: 18, + height: 52, }, { name: 'unity', alt: 'Unity logo', width: 69, - height: 25, + height: 52, }, ]; diff --git a/docs/src/components/home/CoreShowcase.tsx b/docs/src/components/home/CoreShowcase.tsx index 21a9c818b2ee98..913dccc05ff73a 100644 --- a/docs/src/components/home/CoreShowcase.tsx +++ b/docs/src/components/home/CoreShowcase.tsx @@ -1,6 +1,5 @@ import * as React from 'react'; -import { ThemeProvider, createTheme, useTheme, styled, alpha } from '@mui/material/styles'; -import { shouldForwardProp } from '@mui/system'; +import { ThemeProvider, createTheme, useTheme } from '@mui/material/styles'; import Box from '@mui/material/Box'; import Button from '@mui/material/Button'; import Typography from '@mui/material/Typography'; @@ -12,6 +11,7 @@ import ShowcaseContainer from 'docs/src/components/home/ShowcaseContainer'; import PointerContainer, { Data } from 'docs/src/components/home/ElementPointer'; import TouchAppRounded from '@mui/icons-material/TouchAppRounded'; import StylingInfo from 'docs/src/components/action/StylingInfo'; +import FlashCode from 'docs/src/components/animation/FlashCode'; const darkDesignTokens = getDesignTokens('dark'); @@ -54,24 +54,6 @@ darkBrandingTheme = createTheme(darkBrandingTheme, { }, }); -const FlashCode = styled('div', { - shouldForwardProp: (prop) => - shouldForwardProp(prop) && prop !== 'endLine' && prop !== 'startLine', -})<{ endLine?: number; startLine?: number }>(({ theme, startLine = 0, endLine = 1 }) => ({ - borderRadius: 2, - pointerEvents: 'none', - position: 'absolute', - left: 0, - right: 0, - top: `calc(0.75rem * 1.5 * ${startLine})`, - height: `calc(0.75rem * 1.5 * ${endLine - startLine + 1})`, - transition: '0.3s', - ...theme.typography.caption, - backgroundColor: alpha(theme.palette.primary.main, 0.2), - border: '1px solid', - borderColor: theme.palette.primary.dark, -})); - const lineMapping: Record = { avatar: 2, divider: 13, diff --git a/docs/src/components/home/GetStartedButtons.tsx b/docs/src/components/home/GetStartedButtons.tsx index 584cd0719a5954..8054da89c599c4 100644 --- a/docs/src/components/home/GetStartedButtons.tsx +++ b/docs/src/components/home/GetStartedButtons.tsx @@ -10,8 +10,9 @@ import Link from 'docs/src/modules/components/Link'; export default function GetStartedButtons({ installation = 'npm install @mui/material', + to = ROUTES.documentation, ...props -}: { installation?: string } & BoxProps) { +}: { installation?: string; to?: string } & BoxProps) { const [copied, setCopied] = React.useState(false); const handleCopy = () => { setCopied(true); @@ -30,7 +31,7 @@ export default function GetStartedButtons({ }} > + + ); +} + +export default function XGridFullDemo() { + const [type, setType] = React.useState('Commodity'); + const [size, setSize] = React.useState(100); + const { loading, data, setRowLength, loadNewData } = useDemoData({ + dataSet: type, + rowLength: size, + maxColumns: 40, + editable: true, + }); + + const [pagination, setPagination] = React.useState({ + pagination: false, + autoPageSize: false, + pageSize: undefined, + }); + + const handleApplyClick = (settings: GridConfigOptions) => { + if (size !== settings.size) { + setSize(settings.size); + } + + if (type !== settings.type) { + setType(settings.type); + } + + if (size !== settings.size || type !== settings.type) { + setRowLength(settings.size); + loadNewData(); + } + + const newPaginationSettings: GridPaginationSettings = { + pagination: settings.pagesize !== -1, + autoPageSize: settings.pagesize === 0, + pageSize: settings.pagesize > 0 ? settings.pagesize : undefined, + }; + + setPagination((currentPaginationSettings: GridPaginationSettings): GridPaginationSettings => { + if ( + currentPaginationSettings.pagination === newPaginationSettings.pagination && + currentPaginationSettings.autoPageSize === newPaginationSettings.autoPageSize && + currentPaginationSettings.pageSize === newPaginationSettings.pageSize + ) { + return currentPaginationSettings; + } + return newPaginationSettings; + }); + }; + + return ( + + + {dataGridStyleOverrides} + (theme.palette.mode === 'dark' ? 'primaryDark.900' : '#fff'), + '& .MuiAvatar-root': { width: 24, height: 24, fontSize: 14, fontWeight: 'bold' }, + '& .MuiDataGrid-renderingZone': { + '& .MuiDataGrid-cell': { + bgcolor: (theme) => + theme.palette.mode === 'dark' ? 'primaryDark.800' : 'grey.50', + }, + }, + '& .MuiDataGrid-footerContainer': { + minHeight: 48, + borderTop: '1px solid', + borderColor: (theme) => + theme.palette.mode === 'dark' ? 'primaryDark.600' : 'grey.200', + }, + '& .MuiTablePagination-root': { + fontSize: '0.75rem', + '& p': { + fontSize: '0.75rem', + }, + '& .MuiToolbar-root': { + minHeight: 48, + }, + }, + }, + }} + > + + + + + + + + + + ); +} diff --git a/docs/src/components/productX/XHero.tsx b/docs/src/components/productX/XHero.tsx new file mode 100644 index 00000000000000..8c7d99a9c80575 --- /dev/null +++ b/docs/src/components/productX/XHero.tsx @@ -0,0 +1,201 @@ +import * as React from 'react'; +import { DataGridPro } from '@mui/x-data-grid-pro'; +import { useDemoData } from '@mui/x-data-grid-generator'; +import { red } from '@mui/material/colors'; +import Box from '@mui/material/Box'; +import Divider from '@mui/material/Divider'; +import Paper from '@mui/material/Paper'; +import Typography from '@mui/material/Typography'; +import TextField from '@mui/material/TextField'; +import { DateRange } from '@mui/lab/DateRangePicker'; +import StaticDateRangePicker from '@mui/lab/StaticDateRangePicker'; +import AdapterDateFns from '@mui/lab/AdapterDateFns'; +import LocalizationProvider from '@mui/lab/LocalizationProvider'; +import GradientText from 'docs/src/components/typography/GradientText'; +import GetStartedButtons from 'docs/src/components/home/GetStartedButtons'; +import HeroContainer from 'docs/src/layouts/HeroContainer'; +import IconImage from 'docs/src/components/icon/IconImage'; +import FolderTreeView from 'docs/src/components/showcase/FolderTreeView'; +import ROUTES from 'docs/src/route'; + +const startDate = new Date(); +startDate.setDate(10); +const endDate = new Date(); +endDate.setDate(endDate.getDate() + 28); + +export default function XHero() { + const { loading, data } = useDemoData({ + dataSet: 'Commodity', + rowLength: 10000, + maxColumns: 40, + editable: true, + }); + const [value, setValue] = React.useState>([startDate, endDate]); + return ( + + (theme.palette.mode === 'dark' ? 'primary.400' : 'primary.600')} + sx={{ + display: 'flex', + alignItems: 'center', + justifyContent: { xs: 'center', md: 'flex-start' }, + '& > *': { mr: 1, width: 28, height: 28 }, + }} + > + MUI X + + + Performant +
+ advanced +
components +
+ + Build complex and data-rich applications using a growing list of advanced components. + We're kicking it off with the most powerful Data Grid on the market. + + +
+ } + rightSx={{ + p: { md: 2, lg: 3, xl: 4 }, + }} + right={ + + + + theme.palette.mode === 'dark' ? 'primaryDark.600' : 'grey.100', + }} + > + + Trades, October 2020 + + + svg': { + fontSize: '1.25rem', + }, + }, + '& .MuiDataGrid-columnHeaderTitleContainer': { + padding: 0, + }, + '& .MuiDataGrid-columnHeaderTitle': { + flexGrow: 1, + fontSize: '0.875rem', + }, + '& button, & button > svg': { + fontSize: 16, + }, + '& .MuiDataGrid-viewport': { + '& .MuiDataGrid-cell': { + fontSize: '0.875rem', + color: 'text.secondary', + }, + '& .MuiInputBase-input': { + fontSize: '0.875rem', + px: 0.5, + }, + }, + '& .MuiDataGrid-cell[data-field="status"][data-value="Rejected"]': { + '& .MuiChip-root': { + color: (theme) => (theme.palette.mode === 'dark' ? red[300] : red[500]), + }, + }, + }, + }} + > + + + + + + + Cool Project + + + + + div': { borderRadius: 1, overflow: 'auto', bgcolor: 'transparent' }, + '& .MuiTypography-subtitle1': { + fontSize: '0.875rem', + }, + '& .MuiTypography-caption': { + width: { xs: 28, xl: 32 }, + height: 32, + }, + '& .PrivatePickersSlideTransition-root': { + minWidth: { xs: 268, xl: 300 }, + minHeight: { xs: 238, xl: 288 }, + }, + '& [role="row"]': { + margin: { xs: '4px 0', xl: '6px 0' }, + }, + '& .MuiDateRangePickerDay-root': { + lineHeight: 0, + margin: 0, + }, + '& .MuiPickersDay-root': { + width: { xs: 28, xl: 32 }, + height: { xs: 28, xl: 32 }, + fontWeight: 400, + }, + }} + > + + { + setValue(newValue); + }} + renderInput={(startProps, endProps) => ( + + + to + + + )} + /> + + + + + } + /> + ); +} diff --git a/docs/src/components/productX/XRoadmap.tsx b/docs/src/components/productX/XRoadmap.tsx new file mode 100644 index 00000000000000..4c912619d22039 --- /dev/null +++ b/docs/src/components/productX/XRoadmap.tsx @@ -0,0 +1,190 @@ +import * as React from 'react'; +import { ThemeProvider } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import Button from '@mui/material/Button'; +import Grid from '@mui/material/Grid'; +import Paper from '@mui/material/Paper'; +import KeyboardArrowRightRounded from '@mui/icons-material/KeyboardArrowRightRounded'; +import Section from 'docs/src/layouts/Section'; +import SectionHeadline from 'docs/src/components/typography/SectionHeadline'; +import Link from 'docs/src/modules/components/Link'; +import ROUTES from 'docs/src/route'; +import { brandingDarkTheme } from 'docs/src/modules/brandingTheme'; +import TableChartRounded from '@mui/icons-material/TableChartRounded'; +import DateRangeRounded from '@mui/icons-material/DateRangeRounded'; +import AccountTreeRounded from '@mui/icons-material/AccountTreeRounded'; +import ShowChartRounded from '@mui/icons-material/ShowChartRounded'; +import BarChartRounded from '@mui/icons-material/BarChartRounded'; +import FileUploadRounded from '@mui/icons-material/FileUploadRounded'; +import PendingActionsRounded from '@mui/icons-material/PendingActions'; +import SpeedRounded from '@mui/icons-material/SpeedRounded'; + +export default function XRoadmap() { + function renderList(content: React.ReactElement, nested?: boolean) { + return ( + + {content} + + ); + } + const bullet = ( + + ); + return ( + +
+ + + + + + + + + + + + Released + More updates coming. + {renderList( + + + Data Grid + + Date Picker + + Tree View + , + )} + + + + + Working in progress + Getting there. + {renderList( + + + + + Data Grid + {bullet} + Tree data + {bullet} + Grouping + {bullet} + Column pinning + {bullet} + + And more! + + , + true, + )} + + + + + On the list + Sometime soon… + {renderList( + + + Sparkline + + Charts + + Upload + + Scheduler + + Gauge + , + )} + + + + + +
+
+ ); +} diff --git a/docs/src/components/productX/XTheming.tsx b/docs/src/components/productX/XTheming.tsx new file mode 100644 index 00000000000000..511f05a3baad77 --- /dev/null +++ b/docs/src/components/productX/XTheming.tsx @@ -0,0 +1,189 @@ +import * as React from 'react'; +import { + DataGridPro, + GridColDef, + GridCellParams, + GridRenderEditCellParams, +} from '@mui/x-data-grid-pro'; +import { useDemoData } from '@mui/x-data-grid-generator'; +import { createTheme, ThemeProvider, Theme } from '@mui/material/styles'; +import { red } from '@mui/material/colors'; +import Box from '@mui/material/Box'; +import Grid from '@mui/material/Grid'; +import Typography from '@mui/material/Typography'; +import Paper from '@mui/material/Paper'; +import Section from 'docs/src/layouts/Section'; +import SectionHeadline from 'docs/src/components/typography/SectionHeadline'; +import GradientText from 'docs/src/components/typography/GradientText'; +import Item, { Group } from 'docs/src/components/action/Item'; +import Highlighter from 'docs/src/components/action/Highlighter'; +import SvgTwinkle from 'docs/src/icons/SvgTwinkle'; +import SvgMaterialDesign from 'docs/src/icons/SvgMaterialDesign'; +import XGridGlobalStyles from 'docs/src/components/home/XGridGlobalStyles'; +import ProgressBar from 'docs/src/components/x-grid/ProgressBar'; +import EditProgress from 'docs/src/components/x-grid/EditProgress'; +import Status from 'docs/src/components/x-grid/Status'; +import EditStatus from 'docs/src/components/x-grid/EditStatus'; + +const lightTheme = createTheme(); +const darkTheme = createTheme({ palette: { mode: 'dark' } }); + +const dataGridStyleOverrides = ; + +export default function XTheming() { + const [customized, setCustomized] = React.useState(true); + const { loading, data } = useDemoData({ + dataSet: 'Commodity', + rowLength: 1000, + maxColumns: 40, + editable: true, + }); + const baseFilledQuantityCol = data.columns.find(({ field }) => field === 'filledQuantity'); + const baseStatusCol = data.columns.find(({ field }) => field === 'status'); + function getColumns() { + const columns: Array = [ + { + field: 'desk', + headerName: 'desk', + width: customized ? 72 : 100, + sortable: false, + editable: true, + }, + { + field: 'commodity', + headerName: 'Commodity', + width: customized ? 132 : 160, + editable: true, + }, + { + field: 'traderName', + headerName: 'Trader Name', + width: customized ? 148 : 172, + editable: true, + }, + { + field: 'filledQuantity', + headerName: 'Filled', + ...baseFilledQuantityCol, + width: customized ? 130 : 150, + sortable: false, + editable: true, + ...(customized && { + renderCell: (params: GridCellParams) => { + return ; + }, + renderEditCell: (params: GridRenderEditCellParams) => { + return ; + }, + }), + }, + { + field: 'status', + headerName: 'Status', + ...baseStatusCol, + width: 150, + sortable: false, + editable: true, + ...(customized && { + renderCell: (params: GridCellParams) => { + return ; + }, + renderEditCell: (params: GridRenderEditCellParams) => { + return ; + }, + }), + }, + ]; + return columns; + } + return ( +
+ + + + + Advanced and beautiful + + } + description="Use the sophisticated theming features to make the MUI X components looks exactly as you want. " + /> + + + setCustomized(true)}> + } + title="Custom Theme" + description="Theming allows you to use your brand's design tokens, easily making the components reflect its look and feel." + /> + + setCustomized(false)}> + } + title="Material Design" + description="Every component comes with Google's tried and tested design system ready for use." + /> + + + + + {customized ? ( + + theme.palette.mode === 'dark' ? 'primaryDark.600' : 'grey.200', + }} + > + {dataGridStyleOverrides} + + + ) : ( + { + if (globalTheme.palette.mode === 'dark') { + return darkTheme; + } + return lightTheme; + }} + > + (theme.palette.mode === 'dark' ? red[300] : red[500]), + }, + }, + }} + > + + + + )} + + +
+ ); +} diff --git a/docs/src/components/productX/XTreeViewDemo.tsx b/docs/src/components/productX/XTreeViewDemo.tsx new file mode 100644 index 00000000000000..76a433a6f57b19 --- /dev/null +++ b/docs/src/components/productX/XTreeViewDemo.tsx @@ -0,0 +1,308 @@ +import * as React from 'react'; +import clsx from 'clsx'; +import { styled } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import Paper from '@mui/material/Paper'; +import TreeView from '@mui/lab/TreeView'; +import MuiTreeItem, { useTreeItem, TreeItemProps, TreeItemContentProps } from '@mui/lab/TreeItem'; +import Typography from '@mui/material/Typography'; +import AddBoxOutlined from '@mui/icons-material/AddBoxOutlined'; +import IndeterminateCheckBoxOutlined from '@mui/icons-material/IndeterminateCheckBoxOutlined'; +import FolderRounded from '@mui/icons-material/FolderRounded'; +import FolderOpenRounded from '@mui/icons-material/FolderOpenRounded'; +import PhotoOutlined from '@mui/icons-material/PhotoOutlined'; +import PictureAsPdfOutlined from '@mui/icons-material/PictureAsPdfOutlined'; +import VideocamOutlined from '@mui/icons-material/VideocamOutlined'; +import FourKOutlined from '@mui/icons-material/FourKOutlined'; +import Frame from 'docs/src/components/action/Frame'; + +const CustomContent = React.forwardRef(function CustomContent( + props: TreeItemContentProps & { lastNestedChild?: boolean }, + ref, +) { + const { + lastNestedChild, + classes, + className, + label, + nodeId, + icon: iconProp, + expansionIcon, + displayIcon, + } = props; + + const { + disabled, + expanded, + selected, + focused, + handleExpansion, + handleSelection, + preventSelection, + } = useTreeItem(nodeId); + + const icon = iconProp || expansionIcon || displayIcon; + + const handleMouseDown = (event: React.MouseEvent) => { + preventSelection(event); + }; + + const handleExpansionClick = (event: React.MouseEvent) => { + handleExpansion(event); + handleSelection(event); + }; + + const handleSelectionClick = (event: React.MouseEvent) => { + handleSelection(event); + }; + + const renderExtension = () => { + if (typeof label !== 'string') { + return label; + } + const extension = (label || '').split('.').slice(-1)[0]; + if (extension.match(/(jpg|jpeg|png)/)) { + return ; + } + if (extension === 'pdf') { + return ; + } + if (extension === 'mp4') { + return ; + } + if (extension === 'mkv') { + return ; + } + return ( + + ); + }; + + return ( + /* @ts-ignore -- Key event is handled by the TreeView */ + } + sx={{ + border: 'none', + borderRadius: '5px', + textAlign: 'left', + position: 'relative', + zIndex: 1, + '& svg': { + fontSize: 18, + color: nodeId.startsWith('root') ? 'primary.main' : 'grey.600', + }, + '&:not(.CustomContent-last)': { + '& svg': { + '&:first-of-type': { + fontSize: 14, + color: 'primary.main', + }, + }, + }, + }} + > + {icon} + {lastNestedChild && renderExtension()} + {!lastNestedChild && (expanded ? : )} + + {label} + + + ); +}); + +const StyledTreeItem = styled(MuiTreeItem)(({ theme }) => ({ + paddingTop: 5, + '& .MuiTreeItem-content .MuiTreeItem-label': { + paddingLeft: theme.spacing(0.75), + }, + '& .MuiTreeItem-root': { + position: 'relative', + '&:last-of-type': { + '&:before': { + height: 30 / 2, + }, + }, + '&:before': { + content: '""', + display: 'block', + position: 'absolute', + left: -18, + height: '100%', + width: 2, + backgroundColor: + theme.palette.mode === 'dark' ? theme.palette.primaryDark[500] : theme.palette.grey[200], + }, + }, + '& .MuiTreeItem-content': { + padding: theme.spacing('2px', 0.5), + }, + '& .MuiTreeItem-group': { + marginLeft: 0, + paddingLeft: theme.spacing(3), + '& .MuiTreeItem-content': { + '&:before': { + content: '""', + position: 'absolute', + display: 'block', + width: 24, + height: 2, + backgroundColor: + theme.palette.mode === 'dark' ? theme.palette.primaryDark[500] : theme.palette.grey[200], + top: '50%', + left: 6, + transform: 'translate(-100%, -50%)', + }, + }, + }, +})); + +const TreeItem = ( + props: TreeItemProps & { + ContentProps?: { lastNestedChild?: boolean }; + }, +) => ; + +export default function XDateRangeDemo() { + return ( + + + (theme.palette.mode === 'dark' ? 'primaryDark.900' : '#fff'), + }} + > + } + defaultExpandIcon={} + sx={{ height: { xs: 300, sm: 380 }, overflowY: 'auto', p: 1 }} + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/docs/src/components/showcase/FolderTreeView.tsx b/docs/src/components/showcase/FolderTreeView.tsx new file mode 100644 index 00000000000000..465d245c7390bb --- /dev/null +++ b/docs/src/components/showcase/FolderTreeView.tsx @@ -0,0 +1,193 @@ +import * as React from 'react'; +import clsx from 'clsx'; +import { styled } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import TreeView from '@mui/lab/TreeView'; +import TreeItem, { useTreeItem, TreeItemProps, TreeItemContentProps } from '@mui/lab/TreeItem'; +import Typography from '@mui/material/Typography'; +import KeyboardArrowDownRounded from '@mui/icons-material/KeyboardArrowDownRounded'; +import KeyboardArrowUpRounded from '@mui/icons-material/KeyboardArrowUpRounded'; +import FolderRounded from '@mui/icons-material/FolderRounded'; + +const CustomContent = React.forwardRef(function CustomContent( + props: TreeItemContentProps & { lastNestedChild?: boolean }, + ref, +) { + const { + lastNestedChild, + classes, + className, + label, + nodeId, + icon: iconProp, + expansionIcon, + displayIcon, + } = props; + + const { + disabled, + expanded, + selected, + focused, + handleExpansion, + handleSelection, + preventSelection, + } = useTreeItem(nodeId); + + const icon = iconProp || expansionIcon || displayIcon; + + const handleMouseDown = (event: React.MouseEvent) => { + preventSelection(event); + }; + + const handleExpansionClick = (event: React.MouseEvent) => { + handleExpansion(event); + }; + + const handleSelectionClick = (event: React.MouseEvent) => { + handleSelection(event); + }; + + return ( + /* @ts-ignore -- Key event is handled by the TreeView */ + } + > + {lastNestedChild ? ( + + ) : ( + + )} + + {label} + + {icon} + + ); +}); + +const StyledTreeItem = styled(TreeItem)(({ theme }) => ({ + '& .MuiTreeItem-content': { + border: 'none', + backgroundColor: 'transparent', + borderRadius: 5, + padding: theme.spacing(0.5), + textAlign: 'left', + position: 'relative', + zIndex: 1, + }, + '& .MuiTreeItem-content .MuiTreeItem-label': { + paddingLeft: theme.spacing(1), + }, + '& .MuiTreeItem-root': { + position: 'relative', + '&:last-of-type': { + '&:before': { + height: 34 / 2, + }, + }, + '&:before': { + content: '""', + display: 'block', + position: 'absolute', + left: -18, + height: '100%', + width: 2, + backgroundColor: + theme.palette.mode === 'dark' ? theme.palette.primaryDark[600] : theme.palette.grey[200], + }, + }, + '& .MuiTreeItem-group': { + marginLeft: 0, + paddingLeft: theme.spacing(3), + '& .MuiTreeItem-content': { + '&:before': { + content: '""', + position: 'absolute', + display: 'block', + width: 24, + height: 2, + backgroundColor: + theme.palette.mode === 'dark' ? theme.palette.primaryDark[600] : theme.palette.grey[200], + top: '50%', + left: 6, + transform: 'translate(-100%, -50%)', + }, + }, + }, +})); + +const CustomTreeItem = ( + props: TreeItemProps & { + ContentProps?: { lastNestedChild?: boolean }; + }, +) => ; + +export default function FolderTreeView() { + return ( + } + defaultExpandIcon={} + defaultEndIcon={
} + sx={{ p: 1, overflowY: 'auto' }} + > + + + + + + + + + + + + ); +} diff --git a/docs/src/components/showcase/RealEstateCard.tsx b/docs/src/components/showcase/RealEstateCard.tsx index bdbc83371d8c66..fdebfc48f3fb44 100644 --- a/docs/src/components/showcase/RealEstateCard.tsx +++ b/docs/src/components/showcase/RealEstateCard.tsx @@ -13,6 +13,7 @@ export default function RealEstateCard(props: CardProps) { sx={{ display: 'flex', flexWrap: 'wrap', + backgroundColor: (theme) => (theme.palette.mode === 'dark' ? 'primaryDark.800' : '#fff'), p: 1, zIndex: 1, ...props.sx, diff --git a/docs/src/components/x-grid/EditProgress.tsx b/docs/src/components/x-grid/EditProgress.tsx new file mode 100644 index 00000000000000..fc50df90444328 --- /dev/null +++ b/docs/src/components/x-grid/EditProgress.tsx @@ -0,0 +1,98 @@ +import * as React from 'react'; +import { GridRenderEditCellParams } from '@mui/x-data-grid'; +import { debounce } from '@mui/material/utils'; +import { alpha } from '@mui/material/styles'; +import Slider from '@mui/material/Slider'; +import Tooltip from '@mui/material/Tooltip'; + +function ValueLabelComponent(props: { + open: boolean; + value: number; + children: React.ReactElement; +}) { + const { children, open, value } = props; + return ( + + {children} + + ); +} + +export default function EditProgress(props: GridRenderEditCellParams) { + const { id, value, api, field } = props; + const [valueState, setValueState] = React.useState(Number(value)); + + const updateCellEditProps = React.useCallback( + (newValue) => { + api.setEditCellValue({ id, field, value: newValue }); + }, + [api, field, id], + ); + + const debouncedUpdateCellEditProps = React.useMemo( + () => debounce(updateCellEditProps, 60), + [updateCellEditProps], + ); + + const handleChange = (event: Event, newValue: number | number[]) => { + setValueState(newValue as number); + debouncedUpdateCellEditProps(newValue); + }; + + React.useEffect(() => { + setValueState(Number(value)); + }, [value]); + + const handleRef = (element: any) => { + if (element) { + const input = element.querySelector('input') as null | HTMLInputElement; + if (input) { + input.focus(); + } + } + }; + + return ( + (theme.palette.mode === 'dark' ? 'primaryDark.700' : 'grey.100'), + }, + '& .MuiSlider-track': { + border: 0, + ...(valueState < 0.3 && { + bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'error.800' : 'error.500'), + }), + ...(valueState >= 0.3 && + valueState <= 0.7 && { + bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'warning.800' : 'warning.500'), + }), + ...(valueState > 0.7 && { + bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'success.800' : 'success.500'), + }), + }, + '& .MuiSlider-thumb': { + cursor: 'col-resize', + height: '100%', + width: 5, + borderRadius: '0px', + marginTop: 0, + backgroundColor: alpha('#000000', 0.2), + }, + }} + value={valueState} + max={1} + step={0.00001} + onChange={handleChange} + components={{ + ValueLabel: ValueLabelComponent, + }} + valueLabelDisplay="auto" + valueLabelFormat={(newValue) => `${(newValue * 100).toLocaleString()} %`} + /> + ); +} diff --git a/docs/src/components/x-grid/EditStatus.tsx b/docs/src/components/x-grid/EditStatus.tsx new file mode 100644 index 00000000000000..7cc932cb59dc27 --- /dev/null +++ b/docs/src/components/x-grid/EditStatus.tsx @@ -0,0 +1,75 @@ +import * as React from 'react'; +import { GridRenderEditCellParams } from '@mui/x-data-grid'; +import Select from '@mui/material/Select'; +import MenuItem from '@mui/material/MenuItem'; +import ListItemIcon from '@mui/material/ListItemIcon'; +import ListItemText from '@mui/material/ListItemText'; +import ReportProblemIcon from '@mui/icons-material/ReportProblem'; +import InfoIcon from '@mui/icons-material/Info'; +import AutorenewIcon from '@mui/icons-material/Autorenew'; +import DoneIcon from '@mui/icons-material/Done'; + +const STATUS_OPTIONS = ['Open', 'PartiallyFilled', 'Filled', 'Rejected']; + +export default function EditStatus(props: GridRenderEditCellParams) { + const { id, value, api, field } = props; + + const handleChange = (event: any) => { + api.setEditCellValue({ id, field, value: event.target.value }, event); + if (!event.key) { + api.commitCellChange({ id, field }); + api.setCellMode(id, field, 'view'); + } + }; + + const handleClose = (event: {}, reason: 'backdropClick' | 'escapeKeyDown') => { + if (reason === 'backdropClick') { + api.setCellMode(id, field, 'view'); + } + }; + + return ( + + ); +} diff --git a/docs/src/components/x-grid/ProgressBar.tsx b/docs/src/components/x-grid/ProgressBar.tsx new file mode 100644 index 00000000000000..0f438f2a874391 --- /dev/null +++ b/docs/src/components/x-grid/ProgressBar.tsx @@ -0,0 +1,50 @@ +import * as React from 'react'; +import Box from '@mui/material/Box'; + +interface ProgressBarProps { + value: number; +} + +const ProgressBar = React.memo(function ProgressBar(props: ProgressBarProps) { + const { value } = props; + const valueInPercent = value * 100; + + return ( + (theme.palette.mode === 'dark' ? 'primaryDark.700' : 'grey.100'), + }} + > + {`${valueInPercent.toLocaleString()} %`} + (theme.palette.mode === 'dark' ? 'error.700' : 'error.200'), + }), + ...(valueInPercent >= 30 && + valueInPercent <= 70 && { + bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'warning.900' : 'warning.400'), + }), + ...(valueInPercent > 70 && { + bgcolor: (theme) => (theme.palette.mode === 'dark' ? 'success.800' : 'success.300'), + }), + width: `${valueInPercent}%`, + }} + /> + + ); +}); + +export default ProgressBar; diff --git a/docs/src/components/x-grid/Status.tsx b/docs/src/components/x-grid/Status.tsx new file mode 100644 index 00000000000000..08764eb98ed412 --- /dev/null +++ b/docs/src/components/x-grid/Status.tsx @@ -0,0 +1,49 @@ +import * as React from 'react'; +import { alpha } from '@mui/material/styles'; +import Chip from '@mui/material/Chip'; + +interface StatusProps { + status: string; +} + +const Status = React.memo((props: StatusProps) => { + const { status } = props; + let label = status; + if (status === 'PartiallyFilled') { + label = 'Partial'; + } + return ( + alpha(theme.palette.primary[500], 0.1), + color: (theme) => (theme.palette.mode === 'dark' ? 'primary.300' : 'primary.600'), + }), + ...(status === 'Filled' && { + borderColor: 'success.500', + bgcolor: (theme) => alpha(theme.palette.success[500], 0.1), + color: (theme) => (theme.palette.mode === 'dark' ? 'success.500' : 'success.800'), + }), + ...(status === 'PartiallyFilled' && { + borderColor: 'warning.600', + bgcolor: (theme) => alpha(theme.palette.warning[500], 0.1), + color: (theme) => (theme.palette.mode === 'dark' ? 'warning.300' : 'warning.900'), + }), + ...(status === 'Rejected' && { + borderColor: 'error.500', + bgcolor: (theme) => alpha(theme.palette.error[500], 0.1), + color: (theme) => (theme.palette.mode === 'dark' ? 'error.400' : 'error.600'), + }), + }} + /> + ); +}); + +export default Status; diff --git a/docs/src/modules/branding/BrandingBeginToday.tsx b/docs/src/modules/branding/BrandingBeginToday.tsx index 1d8a1d55e33547..6560feca1f72a9 100644 --- a/docs/src/modules/branding/BrandingBeginToday.tsx +++ b/docs/src/modules/branding/BrandingBeginToday.tsx @@ -58,10 +58,10 @@ export default function BrandingBeginToday() { }} /> - Begin with Material-UI today + Begin with MUI today - Start with Material-UI and discover the benefits + Start with MUI and discover the benefits ``` -For non-Material-UI components, use the `component` prop. +For non-MUI components, use the `component` prop. ```diff - diff --git a/docs/src/pages/components/breadcrumbs/ActiveLastBreadcrumb.js b/docs/src/pages/components/breadcrumbs/ActiveLastBreadcrumb.js index 75ddb90da1e956..7b0414c02c6290 100644 --- a/docs/src/pages/components/breadcrumbs/ActiveLastBreadcrumb.js +++ b/docs/src/pages/components/breadcrumbs/ActiveLastBreadcrumb.js @@ -12,7 +12,7 @@ export default function ActiveLastBreadcrumb() {
- Material-UI + MUI - Material-UI + MUI - Material-UI + MUI - Material-UI + MUI - Material-UI + MUI - Material-UI + MUI , ) { export default function CustomSeparator() { const breadcrumbs = [ - Material-UI + MUI , - Material-UI + MUI - Material-UI + MUI { alert('clicked') }}>Click me + ``` Ten en cuenta que la documentación [evita](/guides/api/#native-properties) mencionar las propiedades nativas (existen varias) en la sección API de los componentes. @@ -151,7 +151,7 @@ Sin embargo: ```jsx ``` diff --git a/docs/src/pages/components/buttons/buttons-fr.md b/docs/src/pages/components/buttons/buttons-fr.md index c10d6b8c3f0b65..a6b3799e47336d 100644 --- a/docs/src/pages/components/buttons/buttons-fr.md +++ b/docs/src/pages/components/buttons/buttons-fr.md @@ -151,7 +151,7 @@ Toutefois : ```jsx ``` diff --git a/docs/src/pages/components/buttons/buttons-ja.md b/docs/src/pages/components/buttons/buttons-ja.md index 8015f24c83257c..d76f8308f78270 100644 --- a/docs/src/pages/components/buttons/buttons-ja.md +++ b/docs/src/pages/components/buttons/buttons-ja.md @@ -78,7 +78,7 @@ For larger or smaller buttons, use the `size` prop. ## Buttons with icons and label -ロゴはプレーンテキストよりも認識しやすいため、ボタンにアイコンを追加してアプリケーションのUXを強化したい場合があります。 たとえば、削除ボタンにごみ箱アイコンを付けるような場合です。 +ロゴはプレーンテキストよりも認識しやすいため、ボタンにアイコンを追加してアプリケーションのUXを強化したい場合があります。 たとえば、削除ボタンにごみ箱アイコンを付けるような場合です。 たとえば、削除ボタンにごみ箱アイコンを付けるような場合です。 たとえば、削除ボタンにごみ箱アイコンを付けるような場合です。 たとえば、削除ボタンにごみ箱アイコンを付けるような場合です。 たとえば、削除ボタンにごみ箱アイコンを付けるような場合です。 たとえば、削除ボタンにごみ箱アイコンを付けるような場合です。 {{"demo": "pages/components/buttons/IconLabelButtons.js"}} diff --git a/docs/src/pages/components/cards/cards-de.md b/docs/src/pages/components/cards/cards-de.md index 768f56ff200dec..b57325b5c9fd5c 100644 --- a/docs/src/pages/components/cards/cards-de.md +++ b/docs/src/pages/components/cards/cards-de.md @@ -5,7 +5,7 @@ githubLabel: 'component: Card' materialDesign: https://material.io/components/cards --- -# Card (karte) +# Karte (Card)

Karten enthalten Inhalte und Aktionen zu einem bestimmten Thema.

diff --git a/docs/src/pages/components/cards/cards-ja.md b/docs/src/pages/components/cards/cards-ja.md index 09dfe155e12912..ea850a0b548508 100644 --- a/docs/src/pages/components/cards/cards-ja.md +++ b/docs/src/pages/components/cards/cards-ja.md @@ -5,7 +5,7 @@ githubLabel: 'component: Card' materialDesign: https://material.io/components/cards --- -# Card (カード) +# Card カード

Cardは一つの主題に関してのコンテンツとアクションを含みます。

diff --git a/docs/src/pages/components/cards/cards-pt.md b/docs/src/pages/components/cards/cards-pt.md index 98624efce5891c..926cb80eb4cd24 100644 --- a/docs/src/pages/components/cards/cards-pt.md +++ b/docs/src/pages/components/cards/cards-pt.md @@ -39,7 +39,7 @@ Exemplo de um cartão usando uma imagem para reforçar o conteúdo. {{"demo": "pages/components/cards/MediaCard.js", "bg": true}} -Por padrão, nós usamos uma combinação de um elemento `<div>` e um *background image* para exibir o componente media. Isto pode ser problemåtico em algumas situaçþes. Por exemplo, você pode querer exibir um vídeo ou uma imagem responsiva. Use a propriedade `component` para estes casos de uso: +Por padrão, nós usamos a combinação de um elemento `
` e uma *imagem de fundo* para exibir a mídia. Isto pode ser problemåtico em algumas situaçþes. Por exemplo, você pode querer exibir um vídeo ou uma imagem responsiva. Use a propriedade `component` para estas situaçþes: {{"demo": "pages/components/cards/ImgMediaCard.js", "bg": true}} diff --git a/docs/src/pages/components/checkboxes/checkboxes-fr.md b/docs/src/pages/components/checkboxes/checkboxes-fr.md index 7e0a2c3b19dd9f..971b8ffc8433af 100644 --- a/docs/src/pages/components/checkboxes/checkboxes-fr.md +++ b/docs/src/pages/components/checkboxes/checkboxes-fr.md @@ -76,8 +76,8 @@ Voici un exemple de personnalisation du composant. Vous pouvez en savoir plus da ## Quand les utiliser -- [Cases à cocher vs. Radio Buttons](https://www.nngroup.com/articles/checkboxes-vs-radio-buttons/) -- [Cases à cocher vs. Switches (interrupteurs)](https://uxplanet.org/checkbox-vs-toggle-switch-7fc6e83f10b8) +- [Checkbox vs. Radio Buttons](https://www.nngroup.com/articles/checkboxes-vs-radio-buttons/) +- [Checkbox vs. Switches (interrupteurs)](https://uxplanet.org/checkbox-vs-toggle-switch-7fc6e83f10b8) ## AccessibilitÊ diff --git a/docs/src/pages/components/checkboxes/checkboxes-pt.md b/docs/src/pages/components/checkboxes/checkboxes-pt.md index 53063f3d6bf0e1..7dc07978fd3b31 100644 --- a/docs/src/pages/components/checkboxes/checkboxes-pt.md +++ b/docs/src/pages/components/checkboxes/checkboxes-pt.md @@ -10,7 +10,7 @@ waiAria: 'https://www.w3.org/TR/wai-aria-practices/#checkbox'

Caixas de seleção permitem ao usuårio selecionar um ou mais itens de um conjunto.

-[Caixas de Seleção](https://material.io/design/components/selection-controls.html#checkboxes) podem ser usadas para ativar ou desativar uma opção. +[Caixas de seleção](https://material.io/design/components/selection-controls.html#checkboxes) podem ser usadas para ativar ou desativar uma opção. Se você tem vårias opçþes aparecendo em uma lista, você pode economizar espaço usando caixas de seleção ao invÊs de interruptores liga/desliga. Se você tem uma única opção, evite usar uma caixa de seleção e use um interruptor de liga/desliga. @@ -76,15 +76,15 @@ Aqui estå um exemplo de customização do componente. Você pode aprender mais ## Quando usar -- [Caixas de Seleção vs. Botþes de Opção](https://www.nngroup.com/articles/checkboxes-vs-radio-buttons/) -- [Caixas de Seleção vs. Interruptores](https://uxplanet.org/checkbox-vs-toggle-switch-7fc6e83f10b8) +- [Caixas de seleção vs. botþes de opção](https://www.nngroup.com/articles/checkboxes-vs-radio-buttons/) +- [Caixas de seleção vs. Interruptores](https://uxplanet.org/checkbox-vs-toggle-switch-7fc6e83f10b8) ## Acessibilidade (WAI-ARIA: https://www.w3.org/TR/wai-aria-practices/#checkbox) - Todos os controles de formulårio devem ter rótulos, e isso inclui os botþes de opção, caixas de seleção e interruptores. Na maioria dos casos, isso Ê feito usando o elemento `