diff --git a/.browserslistrc b/.browserslistrc
index 3630a85dc0733a..6ab4c0c15806ec 100644
--- a/.browserslistrc
+++ b/.browserslistrc
@@ -6,48 +6,131 @@ last 1 safari version
node 14
# Default/Fallback
-# `npx browserslist --mobile-to-desktop "> 0.5%, last 2 versions, Firefox ESR, not dead, not IE 11"` when the last major is released.
-# Manually downgrading to ios_saf 12.4 for iPhone 6 and webpack 4 support.
+# `npx browserslist --mobile-to-desktop "> 0.5%, last 2 versions, Firefox ESR, not dead, safari >= 15.4, iOS >= 15.4"` when the last major is released.
+# Explicit safari versions are here based on the agreed terms in: https://github.com/mui/material-ui/issues/40958#issuecomment-1953215043
+#
+# After you update the version, you might need to run `npx update-browserslist-db@latest` to update caniuse-lite to gather latest browser versions.
+# Otherwise, running `pnpm build` might fail due to unknown browser versions.
+#
# On update, sync references where "#stable-snapshot" is mentioned in the codebase.
[stable]
-and_chr 91
-and_ff 89
-and_qq 10.4
-and_uc 12.12
-android 91
-baidu 7.12
-chrome 90
-edge 91
-firefox 78
-# 12.4 but 12.2-12.5 are treated equally in caniuse-lite.
-# Though caniuse-lite does not supporting finding an exact version in a range which is why `12.4` would result in "Unknown version 12.4 of ios_saf"
-ios_saf 12.2
+and_chr 122
+and_chr 121
+and_ff 123
+and_ff 122
+and_qq 14.9
+and_uc 15.5
+android 122
+android 121
+chrome 122
+chrome 121
+chrome 120
+chrome 119
+chrome 109
+edge 122
+edge 121
+firefox 123
+firefox 122
+firefox 115
+ios_saf 17.4
+ios_saf 17.3
+ios_saf 17.2
+ios_saf 17.1
+ios_saf 17.0
+ios_saf 16.6-16.7
+ios_saf 16.5
+ios_saf 16.4
+ios_saf 16.3
+ios_saf 16.2
+ios_saf 16.1
+ios_saf 16.0
+ios_saf 15.6-15.8
+ios_saf 15.5
+ios_saf 15.4
+kaios 3.0-3.1
kaios 2.5
op_mini all
-op_mob 73
-opera 76
-safari 14
-samsung 13.0
+op_mob 80
+opera 108
+opera 107
+opera 106
+safari 17.4
+safari 17.3
+safari 17.2
+safari 17.1
+safari 17.0
+safari 16.6
+safari 16.5
+safari 16.4
+safari 16.3
+safari 16.2
+safari 16.1
+safari 16.0
+safari 15.6
+safari 15.5
+safari 15.4
+samsung 23
+samsung 22
-# Same as `stable` but with IE 11
[legacy]
ie 11
-and_chr 91
-and_ff 89
-and_qq 10.4
-and_uc 12.12
-android 91
-baidu 7.12
-chrome 90
-edge 91
-firefox 78
-ios_saf 12.2
+and_chr 122
+and_chr 121
+and_ff 123
+and_ff 122
+and_qq 14.9
+and_uc 15.5
+android 122
+android 121
+chrome 122
+chrome 121
+chrome 120
+chrome 119
+chrome 109
+edge 122
+edge 121
+firefox 123
+firefox 122
+firefox 115
+ios_saf 17.4
+ios_saf 17.3
+ios_saf 17.2
+ios_saf 17.1
+ios_saf 17.0
+ios_saf 16.6-16.7
+ios_saf 16.5
+ios_saf 16.4
+ios_saf 16.3
+ios_saf 16.2
+ios_saf 16.1
+ios_saf 16.0
+ios_saf 15.6-15.8
+ios_saf 15.5
+ios_saf 15.4
+kaios 3.0-3.1
kaios 2.5
op_mini all
-op_mob 73
-opera 76
-safari 14
-samsung 13.0
+op_mob 80
+opera 108
+opera 107
+opera 106
+safari 17.4
+safari 17.3
+safari 17.2
+safari 17.1
+safari 17.0
+safari 16.6
+safari 16.5
+safari 16.4
+safari 16.3
+safari 16.2
+safari 16.1
+safari 16.0
+safari 15.6
+safari 15.5
+safari 15.4
+samsung 23
+samsung 22
# snapshot of `npx browserslist "maintained node versions"`
# On update check all #stable-snapshot markers
diff --git a/.circleci/config.yml b/.circleci/config.yml
index e662bbf871ae94..305d7ac6155054 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -132,7 +132,8 @@ jobs:
- run:
name: Check for duplicated packages
command: |
- if [[ $(git diff --name-status master | grep pnpm.lock) == "" ]];
+ # #default-branch-switch
+ if [[ $(git diff --name-status next | grep -E 'pnpm-workspace\.yaml|pnpm-lock.yaml|package\.json') == "" ]];
then
echo "No changes to dependencies detected. Skipping..."
else
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index ee08e27e9519d9..fc0c4f59babfe7 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -19,7 +19,7 @@ jobs:
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7
+ uses: github/codeql-action/init@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
with:
languages: typescript
config-file: ./.github/codeql/codeql-config.yml
@@ -30,4 +30,4 @@ jobs:
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7
+ uses: github/codeql-action/analyze@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml
index f268f0c23959de..b4a63e97879364 100644
--- a/.github/workflows/no-response.yml
+++ b/.github/workflows/no-response.yml
@@ -8,8 +8,10 @@ on:
issue_comment:
types: [created]
schedule:
- # Schedule for five minutes after the hour, every hour
- - cron: '5 * * * *'
+ # These runs in our repos are spread evenly throughout the day to avoid hitting rate limits.
+ # If you change this schedule, consider changing the remaining repositories as well.
+ # Runs at 12 am, 12 pm
+ - cron: '0 0,12 * * *'
permissions: {}
diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml
index 444373cd60ed00..eb89daf450ca4c 100644
--- a/.github/workflows/scorecards.yml
+++ b/.github/workflows/scorecards.yml
@@ -43,6 +43,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: Upload to code-scanning
- uses: github/codeql-action/upload-sarif@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7
+ uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
with:
sarif_file: results.sarif
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3228a93542ad5e..b05444e119e57b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,84 @@
# [Versions](https://mui.com/versions/)
+## v6.0.0-alpha.0
+
+
+
+_Mar 26, 2024_
+
+A big thanks to the 18 contributors who made this release possible. Here are some highlights ✨:
+
+- 🔥 Converted 10+ Material UI components to support static CSS extraction
+- ⬅️ Added RTL support in Pigment CSS (#41570) @brijeshb42
+
+### `@mui/material@6.0.0-alpha.0`
+
+- [BottomNavigation] Convert to support CSS extraction (#41612) @aacevski
+- [AvatarGroup] Convert to support CSS extraction (#41485) @zanivan
+- [Backdrop] Convert to support CSS extraction (#41581) @aacevski
+- [Breadcrumbs] Convert to support CSS extraction (#41496) @aacevski
+- [Card] Convert to support CSS extraction (#41580) @aacevski
+- [Divider] Convert to support CSS extraction (#41366) @sai6855
+- [FormControl] Convert to support CSS extraction (#41613) @aacevski
+- [FormGroup] Convert to support CSS extraction (#41614) @aacevski
+- [MobileStepper] Convert to support CSS extraction (#41533) @aacevski
+- [Modal] Support CSS extraction (#41483) @sai6855
+- [Popover] Convert to support CSS extraction (#41564) @aacevski
+- [Stepper] Convert to support CSS extraction (#41546) @aacevski
+- [Autocomplete] Display options provided to the `options` prop even if loading is true (#41634) @nekoya
+- [Backdrop] Deprecate TransitionComponent (#40677) @harry-whorlow
+- [ButtonGroup] Deprecate composed classes (#41259) @sai6855
+- [StepLabel] Deprecate `componentProps` prop (#41321) @sai6855
+- [Chip] Convert to support CSS extraction (#41592) @DiegoAndai
+
+### `@pigment-css/react@0.0.4`
+
+- Fix evaluation of undefined variables (#41569) @siriwatknp
+- Fix react-modal demos location (#41560) @sai6855
+- [react] RTL Support (#41570) @brijeshb42
+
+### `@mui/system@6.0.0-alpha.0`
+
+- [core] Standardize index pattern (#41574) @DiegoAndai
+- Fix typo to avoid infinite recursion in function call (#41616) @michael-land
+- Move stylesheet generator to `extendTheme` (#41446) @siriwatknp
+
+### Docs
+
+- [joy-ui] Refresh the marketing example on the Color Inversion page (#41497) @cipherlogs
+- [material-ui] Add v5 to v6 migration guide (#41561) @DiegoAndai
+- [system] Add v5 to v6 migration guide (#41575) @DiegoAndai
+- [material-ui][Slider] Remove `valueLabelFormat` from restricted values demo so that the tooltip thumb label displays the same as the value text (#41567) @StylesTrip
+- [pigment-css] Update the RTL section on the readme (#41576) @danilo-leal
+
+### Core
+
+- [blog] Update the callout (#41645) @cherniavskii
+- [blog] Link to Romain's blog post in MUI X v7 announcement post (#41640) @cherniavskii
+- [blog] Blog post with MUI X v7.0.0 annoucement (#41563) @joserodolfofreitas
+- [blog] Add post about remote (#41565) @danilo-leal
+- [core] Restore the pnpm-lock.yaml (#41643) @mnajdova
+- [core] Fix failing CI steps (#41636) @mnajdova
+- [core] Update browser support versions (#41568) @siriwatknp
+- [core] Add instructions to deploying docs guide (#41582) @DiegoAndai
+- [core] Add comment explaining the frequency of no-response action runs (#41555) @michaldudak
+- [core] Init the next branch (#41552) @mnajdova
+- [core] Lower the frequency of no-response action runs (#41553) @michaldudak
+- [core] Update peerDependencies ranges to include v6 packages (#41662) @michaldudak
+- [core] Run pnpm dedupe (#41658) @michaldudak
+- [core] Fix dedupe check (#41657) @Janpot
+- [pigment-css][demo] Add index page for material-ui (#41577) @brijeshb42
+- [pigment-css][demo] Remove app specific pnpm workspace (#41393) @brijeshb42
+- [docs] Add notification for MUI X v7 blog post (#41587) @cherniavskii
+- [docs] MUI X v7 blog post annoucement followup (#41601) @joserodolfofreitas
+- [docs] Update the installation guides to use the next tag (#41558) @mnajdova
+- [docs][material-ui] Fix typo in CSS theme variables customization (#41632) @ZeeshanTamboli
+- [material-ui][docs] Remove deleted page from the sidenav (#41594) @danilo-leal
+- [website] Update pricing table (#41595) @cherniavskii
+- [website] Add stray design adjustments throughout the site (#41547) @danilo-leal
+
+All contributors of this release in alphabetical order: @aacevski, @brijeshb42, @cherniavskii, @cipherlogs, @danilo-leal, @DiegoAndai, @harry-whorlow, @Janpot, @joserodolfofreitas, @michael-land, @michaldudak, @mnajdova, @nekoya, @sai6855, @siriwatknp, @StylesTrip, @zanivan, @ZeeshanTamboli
+
## v5.15.14
@@ -9,7 +88,7 @@ _Mar 18, 2024_
A big thanks to the 15 contributors who made this release possible.
This release was mostly about 🐛 bug fixes and 📚 documentation improvements.
-### `@mui/material@5.15.13`
+### `@mui/material@5.15.14`
- [Accordion] Convert to support CSS extraction (#41221) @mnajdova
- [Autocomplete] Convert to support CSS extraction (#40330) @mnajdova
@@ -12978,7 +13057,7 @@ Here are some highlights ✨:
1. `stable` (default, formerly `esm`) which targets a snapshot (on release) of `> 0.5%, last 2 versions, Firefox ESR, not dead, not IE 11"`
2. `node` (formerly default) which targets a snapshot (on release) of `maintained node versions`
- 3. `legacy` (new) which is `stable` + IE11
+ 3. `legacy` (new) which is `stable` + IE 11
4. `modern` (formerly `es`) which targets the last 1 version of evergreen browsers and active node (currently that is 14
The change yields a 6% reduction in bundle size 📦 (Babel only).
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6c968f9809673b..642641f9f3f8f3 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -25,7 +25,7 @@ Here are a few guidelines that will help you along the way.
## Code of conduct
-We has adopted the [Contributor Covenant](https://www.contributor-covenant.org/) as our code of conduct, and we expect project participants to adhere to it.
+We have adopted the [Contributor Covenant](https://www.contributor-covenant.org/) as our code of conduct, and we expect project participants to adhere to it.
Please read [the full text](https://github.com/mui/.github/blob/master/CODE_OF_CONDUCT.md) to understand what actions will and will not be tolerated.
## A large spectrum of contributions
@@ -72,11 +72,11 @@ git remote add upstream https://github.com/mui/material-ui.git
-3. Synchronize your local `master` branch with the upstream one:
+3. Synchronize your local `next` branch with the upstream one:
```bash
-git checkout master
-git pull upstream master
+git checkout next
+git pull upstream next
```
4. Install the dependencies with pnpm (yarn or npm aren't supported):
@@ -146,7 +146,7 @@ Make sure the following is true:
-- The branch is targeted at `master` for ongoing development. All tests are passing. Code that lands in `master` must be compatible with the latest stable release. It may contain additional features but no breaking changes. We should be able to release a new minor version from the tip of `master` at any time.
+- The branch is targeted at `next` for ongoing development. All tests are passing. Code that lands in `next` must be compatible with the latest alpha/beta release. It may contain additional features but no breaking changes. We should be able to release a new minor version from the tip of `next` at any time.
- If a feature is being added:
- If the result was already achievable with the core library, you've explained why this feature needs to be added to the core.
- If this is a common use case, you've added an example to the documentation.
diff --git a/apps/README.md b/apps/README.md
new file mode 100644
index 00000000000000..0fb64c7b2a5424
--- /dev/null
+++ b/apps/README.md
@@ -0,0 +1,9 @@
+# Pigment CSS apps
+
+To test Pigment CSS demo apps, you can directly run -
+
+`pnpm nx run @app/vite-app:preview` to start vite demo or `pnpm nx run @app/next-app:preview` to start nextjs demo after building automatically.
+
+To start either of the apps in dev mode, just run -
+
+`pnpm nx run @app/vite-app:dev` or `pnpm nx run @app/next-app:dev`
diff --git a/apps/pigment-css-next-app/next.config.js b/apps/pigment-css-next-app/next.config.js
index 076069c4db48e5..70facd067ef4ec 100644
--- a/apps/pigment-css-next-app/next.config.js
+++ b/apps/pigment-css-next-app/next.config.js
@@ -81,32 +81,20 @@ const theme = extendTheme({
},
},
},
+ getSelector: function getSelector(colorScheme, css) {
+ if (colorScheme) {
+ return {
+ [`@media (prefers-color-scheme: ${colorScheme})`]: {
+ ':root': css,
+ },
+ };
+ }
+ return ':root';
+ },
});
-
-// TODO: Fix this from the Material UI side in a separate PR
-theme.palette = theme.colorSchemes.light.palette;
theme.getColorSchemeSelector = (colorScheme) => {
return `@media (prefers-color-scheme: ${colorScheme})`;
};
-const { css: rootCss } = theme.generateCssVars();
-const { css: lightCss } = theme.generateCssVars('light');
-const { css: darkCss } = theme.generateCssVars('dark');
-theme.generateCssVars = (colorScheme) => {
- if (colorScheme === 'dark') {
- return {
- css: darkCss,
- selector: {
- '@media (prefers-color-scheme: dark)': {
- ':root': darkCss,
- },
- },
- };
- }
- if (colorScheme === 'light') {
- return { css: lightCss, selector: ':root' };
- }
- return { css: rootCss, selector: ':root' };
-};
/**
* @type {PigmentOptions}
@@ -116,7 +104,6 @@ const pigmentOptions = {
transformLibraries: ['local-ui-lib'],
sourceMap: true,
displayName: true,
- transformSx: false,
};
/** @type {import('next').NextConfig} */
@@ -127,6 +114,10 @@ const nextConfig = {
typescript: {
ignoreBuildErrors: true,
},
+ devIndicators: {
+ buildActivity: true,
+ buildActivityPosition: 'bottom-right',
+ },
};
module.exports = withPigment(nextConfig, pigmentOptions);
diff --git a/apps/pigment-css-next-app/package.json b/apps/pigment-css-next-app/package.json
index eeff6a21ce1156..aedc0b2125a9a7 100644
--- a/apps/pigment-css-next-app/package.json
+++ b/apps/pigment-css-next-app/package.json
@@ -9,13 +9,14 @@
"clean": "rimraf .next"
},
"dependencies": {
- "@pigment-css/react": "file:../../packages/pigment-css-react",
- "@mui/utils": "file:../../packages/mui-utils/build",
- "@mui/base": "file:../../packages/mui-base/build",
- "@mui/material": "file:../../packages/mui-material/build",
- "@mui/system": "file:../../packages/mui-system/build",
- "@mui/material-nextjs": "file:../../packages/mui-material-nextjs/build",
- "@mui/icons-material": "file:../../packages/mui-icons-material/build",
+ "@pigment-css/react": "workspace:^",
+ "@mui/utils": "workspace:^",
+ "@mui/base": "workspace:^",
+ "@mui/lab": "workspace:^",
+ "@mui/material": "workspace:^",
+ "@mui/system": "workspace:^",
+ "@mui/material-nextjs": "workspace:^",
+ "@mui/icons-material": "workspace:^",
"@emotion/cache": "latest",
"local-ui-lib": "workspace:^",
"react": "^18.2.0",
@@ -23,12 +24,20 @@
"next": "latest"
},
"devDependencies": {
- "@pigment-css/unplugin": "file:../../packages/pigment-css-unplugin",
- "@pigment-css/nextjs-plugin": "file:../../packages/pigment-css-nextjs-plugin",
+ "@pigment-css/nextjs-plugin": "workspace:^",
"@types/node": "^20.5.7",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
- "eslint": "^8.56.0",
- "typescript": "^5.3.3"
+ "eslint": "^8.57.0",
+ "typescript": "^5.4.3"
+ },
+ "nx": {
+ "targets": {
+ "preview": {
+ "dependsOn": [
+ "^build"
+ ]
+ }
+ }
}
}
diff --git a/apps/pigment-css-next-app/src/app/globals.css b/apps/pigment-css-next-app/src/app/globals.css
index 7f5569579ba220..3c8b02ea506b59 100644
--- a/apps/pigment-css-next-app/src/app/globals.css
+++ b/apps/pigment-css-next-app/src/app/globals.css
@@ -17,10 +17,4 @@
color: inherit;
text-decoration: none;
}
-
- @media (prefers-color-scheme: dark) {
- html {
- color-scheme: dark;
- }
- }
}
diff --git a/apps/pigment-css-next-app/src/app/layout.tsx b/apps/pigment-css-next-app/src/app/layout.tsx
index 3907673a0fdf0a..4ae45924829e53 100644
--- a/apps/pigment-css-next-app/src/app/layout.tsx
+++ b/apps/pigment-css-next-app/src/app/layout.tsx
@@ -1,4 +1,5 @@
import type { Metadata } from 'next';
+import { css } from '@pigment-css/react';
import { Inter } from 'next/font/google';
import { AppRouterCacheProvider } from '@mui/material-nextjs/v14-appRouter';
import { ThemeProvider } from '@mui/material/styles';
@@ -18,8 +19,13 @@ export const metadata: Metadata = {
export default function RootLayout(props: { children: React.ReactNode }) {
return (
-
-
+ t.vars.palette.background.default};
+ color: ${({ theme: t }) => t.vars.palette.text.primary};
+ `}`}
+ >
+
{props.children}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/layout.tsx b/apps/pigment-css-next-app/src/app/material-ui/layout.tsx
index 06afb2f9251928..0ee7bd13e9ec99 100644
--- a/apps/pigment-css-next-app/src/app/material-ui/layout.tsx
+++ b/apps/pigment-css-next-app/src/app/material-ui/layout.tsx
@@ -34,6 +34,12 @@ const Main = styled('div')(({ theme }) => ({
border: '1px solid rgb(229, 234, 242)',
borderRadius: '12px',
},
+ ...theme.applyStyles('dark', {
+ '& .demo-container': {
+ backgroundColor: 'rgba(31, 38, 46, 0.1)',
+ border: '1px solid rgba(59, 74, 89, 0.2)',
+ },
+ }),
}));
export default function MaterialUILayout({ children }: { children: React.ReactNode }) {
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-app-bar/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-app-bar/page.tsx
new file mode 100644
index 00000000000000..cf15589d8cab32
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-app-bar/page.tsx
@@ -0,0 +1,100 @@
+'use client';
+import * as React from 'react';
+import BackToTop from '../../../../../../docs/data/material/components/app-bar/BackToTop';
+import BottomAppBar from '../../../../../../docs/data/material/components/app-bar/BottomAppBar';
+import ButtonAppBar from '../../../../../../docs/data/material/components/app-bar/ButtonAppBar';
+import DenseAppBar from '../../../../../../docs/data/material/components/app-bar/DenseAppBar';
+import DrawerAppBar from '../../../../../../docs/data/material/components/app-bar/DrawerAppBar';
+import ElevateAppBar from '../../../../../../docs/data/material/components/app-bar/ElevateAppBar';
+import EnableColorOnDarkAppBar from '../../../../../../docs/data/material/components/app-bar/EnableColorOnDarkAppBar';
+import HideAppBar from '../../../../../../docs/data/material/components/app-bar/HideAppBar';
+import MenuAppBar from '../../../../../../docs/data/material/components/app-bar/MenuAppBar';
+import PrimarySearchAppBar from '../../../../../../docs/data/material/components/app-bar/PrimarySearchAppBar';
+import ProminentAppBar from '../../../../../../docs/data/material/components/app-bar/ProminentAppBar';
+import ResponsiveAppBar from '../../../../../../docs/data/material/components/app-bar/ResponsiveAppBar';
+import SearchAppBar from '../../../../../../docs/data/material/components/app-bar/SearchAppBar';
+
+export default function AppBar() {
+ return (
+
+
+
Back To Top
+
+
+
+
+
+
Bottom App Bar
+
+
+
+
+
+
Button App Bar
+
+
+
+
+
+
Dense App Bar
+
+
+
+
+
+
Drawer App Bar
+
+
+
+
+
+
Elevate App Bar
+
+
+
+
+
+
Enable Color On Dark App Bar
+
+
+
+
+
+
Hide App Bar
+
+
+
+
+
+
Menu App Bar
+
+
+
+
+
+
Primary Search App Bar
+
+
+
+
+
+
Prominent App Bar
+
+
+
+
+
+
Responsive App Bar
+
+
+
+
+
+
Search App Bar
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-backdrop/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-backdrop/page.tsx
new file mode 100644
index 00000000000000..54b664b5a36ba5
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-backdrop/page.tsx
@@ -0,0 +1,13 @@
+'use client';
+import SimpleBackdrop from '../../../../../../docs/data/material/components/backdrop/SimpleBackdrop';
+
+export default function Backdrop() {
+ return (
+
+
Simple Backdrop
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-bottom-navigation/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-bottom-navigation/page.tsx
new file mode 100644
index 00000000000000..835bfff7a9c407
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-bottom-navigation/page.tsx
@@ -0,0 +1,30 @@
+'use client';
+import * as React from 'react';
+import FixedBottomNavigation from '../../../../../../docs/data/material/components/bottom-navigation/FixedBottomNavigation';
+import LabelBottomNavigation from '../../../../../../docs/data/material/components/bottom-navigation/LabelBottomNavigation';
+import SimpleBottomNavigation from '../../../../../../docs/data/material/components/bottom-navigation/SimpleBottomNavigation';
+
+export default function BottomNavigation() {
+ return (
+
+
+
Fixed Bottom Navigation
+
+
+
+
+
+
Label Bottom Navigation
+
+
+
+
+
+
Simple Bottom Navigation
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-breadcrumbs/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-breadcrumbs/page.tsx
new file mode 100644
index 00000000000000..2bc3ae9757a7a7
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-breadcrumbs/page.tsx
@@ -0,0 +1,58 @@
+'use client';
+import * as React from 'react';
+import ActiveLastBreadcrumb from '../../../../../../docs/data/material/components/breadcrumbs/ActiveLastBreadcrumb';
+import BasicBreadcrumbs from '../../../../../../docs/data/material/components/breadcrumbs/BasicBreadcrumbs';
+import CollapsedBreadcrumbs from '../../../../../../docs/data/material/components/breadcrumbs/CollapsedBreadcrumbs';
+import CustomSeparator from '../../../../../../docs/data/material/components/breadcrumbs/CustomSeparator';
+import CustomizedBreadcrumbs from '../../../../../../docs/data/material/components/breadcrumbs/CustomizedBreadcrumbs';
+import IconBreadcrumbs from '../../../../../../docs/data/material/components/breadcrumbs/IconBreadcrumbs';
+import RouterBreadcrumbs from '../../../../../../docs/data/material/components/breadcrumbs/RouterBreadcrumbs';
+
+export default function Breadcrumbs() {
+ return (
+
+
+
Active Last Breadcrumb
+
+
+
+
+
+
Basic Breadcrumbs
+
+
+
+
+
+
Collapsed Breadcrumbs
+
+
+
+
+
+
Custom Separator
+
+
+
+
+
+
Customized Breadcrumbs
+
+
+
+
+
+
Icon Breadcrumbs
+
+
+
+
+
+
Router Breadcrumbs
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-button-group/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-button-group/page.tsx
new file mode 100644
index 00000000000000..73eeddd9668ec6
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-button-group/page.tsx
@@ -0,0 +1,58 @@
+'use client';
+import * as React from 'react';
+import BasicButtonGroup from '../../../../../../docs/data/material/components/button-group/BasicButtonGroup';
+import DisableElevation from '../../../../../../docs/data/material/components/button-group/DisableElevation';
+import GroupOrientation from '../../../../../../docs/data/material/components/button-group/GroupOrientation';
+import GroupSizesColors from '../../../../../../docs/data/material/components/button-group/GroupSizesColors';
+import LoadingButtonGroup from '../../../../../../docs/data/material/components/button-group/LoadingButtonGroup';
+import SplitButton from '../../../../../../docs/data/material/components/button-group/SplitButton';
+import VariantButtonGroup from '../../../../../../docs/data/material/components/button-group/VariantButtonGroup';
+
+export default function ButtonGroup() {
+ return (
+
+
+
Basic Button Group
+
+
+
+
+
+
Disable Elevation
+
+
+
+
+
+
Group Orientation
+
+
+
+
+
+
Group Sizes Colors
+
+
+
+
+
+
Loading Button Group
+
+
+
+
+
+
Split Button
+
+
+
+
+
+
Variant Button Group
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-button/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-button/page.tsx
new file mode 100644
index 00000000000000..a684ae0126c0ee
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-button/page.tsx
@@ -0,0 +1,121 @@
+'use client';
+import * as React from 'react';
+import BasicButtons from '../../../../../../docs/data/material/components/buttons/BasicButtons';
+import ButtonBaseDemo from '../../../../../../docs/data/material/components/buttons/ButtonBaseDemo';
+import ButtonSizes from '../../../../../../docs/data/material/components/buttons/ButtonSizes';
+import ColorButtons from '../../../../../../docs/data/material/components/buttons/ColorButtons';
+import ContainedButtons from '../../../../../../docs/data/material/components/buttons/ContainedButtons';
+import CustomizedButtons from '../../../../../../docs/data/material/components/buttons/CustomizedButtons';
+import DisableElevation from '../../../../../../docs/data/material/components/buttons/DisableElevation';
+import IconButtonColors from '../../../../../../docs/data/material/components/buttons/IconButtonColors';
+import IconButtonSizes from '../../../../../../docs/data/material/components/buttons/IconButtonSizes';
+import IconButtons from '../../../../../../docs/data/material/components/buttons/IconButtons';
+import IconLabelButtons from '../../../../../../docs/data/material/components/buttons/IconLabelButtons';
+import InputFileUpload from '../../../../../../docs/data/material/components/buttons/InputFileUpload';
+import LoadingButtons from '../../../../../../docs/data/material/components/buttons/LoadingButtons';
+import LoadingButtonsTransition from '../../../../../../docs/data/material/components/buttons/LoadingButtonsTransition';
+import OutlinedButtons from '../../../../../../docs/data/material/components/buttons/OutlinedButtons';
+import TextButtons from '../../../../../../docs/data/material/components/buttons/TextButtons';
+
+export default function Buttons() {
+ return (
+
+
+
Basic Buttons
+
+
+
+
+
+
Button Base Demo
+
+
+
+
+
+
Button Sizes
+
+
+
+
+
+
Color Buttons
+
+
+
+
+
+
Contained Buttons
+
+
+
+
+
+
Customized Buttons
+
+
+
+
+
+
Disable Elevation
+
+
+
+
+
+
Icon Button Colors
+
+
+
+
+
+
Icon Button Sizes
+
+
+
+
+
+
Icon Buttons
+
+
+
+
+
+
Icon Label Buttons
+
+
+
+
+
+
Input File Upload
+
+
+
+
+
+
Loading Buttons
+
+
+
+
+
+
Loading Buttons Transition
+
+
+
+
+
+
Outlined Buttons
+
+
+
+
+
+
Text Buttons
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-card/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-card/page.tsx
new file mode 100644
index 00000000000000..4dbe15c5339126
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-card/page.tsx
@@ -0,0 +1,65 @@
+'use client';
+import * as React from 'react';
+import ActionAreaCard from '../../../../../../docs/data/material/components/cards/ActionAreaCard';
+import BasicCard from '../../../../../../docs/data/material/components/cards/BasicCard';
+import ImgMediaCard from '../../../../../../docs/data/material/components/cards/ImgMediaCard';
+import MediaCard from '../../../../../../docs/data/material/components/cards/MediaCard';
+import MediaControlCard from '../../../../../../docs/data/material/components/cards/MediaControlCard';
+import MultiActionAreaCard from '../../../../../../docs/data/material/components/cards/MultiActionAreaCard';
+import OutlinedCard from '../../../../../../docs/data/material/components/cards/OutlinedCard';
+import RecipeReviewCard from '../../../../../../docs/data/material/components/cards/RecipeReviewCard';
+
+export default function Cards() {
+ return (
+
+
+
Action Area Card
+
+
+
+
+
+
Basic Card
+
+
+
+
+
+
Img Media Card
+
+
+
+
+
+
Media Card
+
+
+
+
+
+
Media Control Card
+
+
+
+
+
+
Multi Action Area Card
+
+
+
+
+
+
Outlined Card
+
+
+
+
+
+
Recipe Review Card
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-chip/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-chip/page.tsx
new file mode 100644
index 00000000000000..4b2786f32e6d0b
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-chip/page.tsx
@@ -0,0 +1,93 @@
+'use client';
+import * as React from 'react';
+import AvatarChips from '../../../../../../docs/data/material/components/chips/AvatarChips';
+import BasicChips from '../../../../../../docs/data/material/components/chips/BasicChips';
+import ChipsArray from '../../../../../../docs/data/material/components/chips/ChipsArray';
+import ClickableAndDeletableChips from '../../../../../../docs/data/material/components/chips/ClickableAndDeletableChips';
+import ClickableChips from '../../../../../../docs/data/material/components/chips/ClickableChips';
+import ClickableLinkChips from '../../../../../../docs/data/material/components/chips/ClickableLinkChips';
+import ColorChips from '../../../../../../docs/data/material/components/chips/ColorChips';
+import CustomDeleteIconChips from '../../../../../../docs/data/material/components/chips/CustomDeleteIconChips';
+import DeletableChips from '../../../../../../docs/data/material/components/chips/DeletableChips';
+import IconChips from '../../../../../../docs/data/material/components/chips/IconChips';
+import MultilineChips from '../../../../../../docs/data/material/components/chips/MultilineChips';
+import SizesChips from '../../../../../../docs/data/material/components/chips/SizesChips';
+
+export default function Chips() {
+ return (
+
+
+
Avatar Chips
+
+
+
+
+
+
Basic Chips
+
+
+
+
+
+
Chips Array
+
+
+
+
+
+
Clickable And Deletable Chips
+
+
+
+
+
+
Clickable Chips
+
+
+
+
+
+
Clickable Link Chips
+
+
+
+
+
+
Color Chips
+
+
+
+
+
+
Custom Delete Icon Chips
+
+
+
+
+
+
Deletable Chips
+
+
+
+
+
+
Icon Chips
+
+
+
+
+
+
Multiline Chips
+
+
+
+
+
+
Sizes Chips
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-divider/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-divider/page.tsx
new file mode 100644
index 00000000000000..dc5bb0fa9c9e7d
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-divider/page.tsx
@@ -0,0 +1,58 @@
+'use client';
+import * as React from 'react';
+import DividerText from '../../../../../../docs/data/material/components/dividers/DividerText';
+import DividerVariants from '../../../../../../docs/data/material/components/dividers/DividerVariants';
+import FlexDivider from '../../../../../../docs/data/material/components/dividers/FlexDivider';
+import IntroDivider from '../../../../../../docs/data/material/components/dividers/IntroDivider';
+import ListDividers from '../../../../../../docs/data/material/components/dividers/ListDividers';
+import VerticalDividerMiddle from '../../../../../../docs/data/material/components/dividers/VerticalDividerMiddle';
+import VerticalDividers from '../../../../../../docs/data/material/components/dividers/VerticalDividers';
+
+export default function Dividers() {
+ return (
+
+
+
Divider Text
+
+
+
+
+
+
Divider Variants
+
+
+
+
+
+
Flex Divider
+
+
+
+
+
+
Intro Divider
+
+
+
+
+
+
List Dividers
+
+
+
+
+
+
Vertical Divider Middle
+
+
+
+
+
+
Vertical Dividers
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-modal/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-modal/page.tsx
new file mode 100644
index 00000000000000..763472163e7732
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-modal/page.tsx
@@ -0,0 +1,51 @@
+'use client';
+import * as React from 'react';
+import BasicModal from '../../../../../../docs/data/material/components/modal/BasicModal';
+import KeepMountedModal from '../../../../../../docs/data/material/components/modal/KeepMountedModal';
+import NestedModal from '../../../../../../docs/data/material/components/modal/NestedModal';
+import ServerModal from '../../../../../../docs/data/material/components/modal/ServerModal';
+import SpringModal from '../../../../../../docs/data/material/components/modal/SpringModal';
+import TransitionsModal from '../../../../../../docs/data/material/components/modal/TransitionsModal';
+
+export default function Modal() {
+ return (
+
+
+
Basic Modal
+
+
+
+
+
+
Keep Mounted Modal
+
+
+
+
+
+
Nested Modal
+
+
+
+
+
+
Server Modal
+
+
+
+
+
+
Spring Modal
+
+
+
+
+
+
Transitions Modal
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-popover/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-popover/page.tsx
new file mode 100644
index 00000000000000..95c5049affc815
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-popover/page.tsx
@@ -0,0 +1,37 @@
+'use client';
+import * as React from 'react';
+import BasicPopover from '../../../../../../docs/data/material/components/popover/BasicPopover';
+import MouseOverPopover from '../../../../../../docs/data/material/components/popover/MouseOverPopover';
+import PopoverPopupState from '../../../../../../docs/data/material/components/popover/PopoverPopupState';
+import VirtualElementPopover from '../../../../../../docs/data/material/components/popover/VirtualElementPopover';
+
+export default function Popover() {
+ return (
+
+
+
Basic Popover
+
+
+
+
+
+
Mouse Over Popover
+
+
+
+
+
+
Popover Popup State
+
+
+
+
+
+
Virtual Element Popover
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-next-app/src/app/material-ui/react-stepper/page.tsx b/apps/pigment-css-next-app/src/app/material-ui/react-stepper/page.tsx
new file mode 100644
index 00000000000000..81bc13081eeb64
--- /dev/null
+++ b/apps/pigment-css-next-app/src/app/material-ui/react-stepper/page.tsx
@@ -0,0 +1,79 @@
+'use client';
+import * as React from 'react';
+import CustomizedSteppers from '../../../../../../docs/data/material/components/steppers/CustomizedSteppers';
+import DotsMobileStepper from '../../../../../../docs/data/material/components/steppers/DotsMobileStepper';
+import HorizontalLinearAlternativeLabelStepper from '../../../../../../docs/data/material/components/steppers/HorizontalLinearAlternativeLabelStepper';
+import HorizontalLinearStepper from '../../../../../../docs/data/material/components/steppers/HorizontalLinearStepper';
+import HorizontalNonLinearStepper from '../../../../../../docs/data/material/components/steppers/HorizontalNonLinearStepper';
+import HorizontalStepperWithError from '../../../../../../docs/data/material/components/steppers/HorizontalStepperWithError';
+import ProgressMobileStepper from '../../../../../../docs/data/material/components/steppers/ProgressMobileStepper';
+import SwipeableTextMobileStepper from '../../../../../../docs/data/material/components/steppers/SwipeableTextMobileStepper';
+import TextMobileStepper from '../../../../../../docs/data/material/components/steppers/TextMobileStepper';
+import VerticalLinearStepper from '../../../../../../docs/data/material/components/steppers/VerticalLinearStepper';
+
+export default function Steppers() {
+ return (
+
+
+
- );
-}
diff --git a/apps/pigment-css-vite-app/src/Layout.tsx b/apps/pigment-css-vite-app/src/Layout.tsx
index 06afb2f9251928..321dcacf08c933 100644
--- a/apps/pigment-css-vite-app/src/Layout.tsx
+++ b/apps/pigment-css-vite-app/src/Layout.tsx
@@ -1,7 +1,7 @@
import * as React from 'react';
import { styled } from '@pigment-css/react';
-const Main = styled('div')(({ theme }) => ({
+const Main = styled.main(({ theme }) => ({
display: 'flex',
flexDirection: 'column',
gap: '32px',
diff --git a/apps/pigment-css-vite-app/src/components/ErrorBoundaryFallback.tsx b/apps/pigment-css-vite-app/src/components/ErrorBoundaryFallback.tsx
new file mode 100644
index 00000000000000..74a73000ed37bc
--- /dev/null
+++ b/apps/pigment-css-vite-app/src/components/ErrorBoundaryFallback.tsx
@@ -0,0 +1,21 @@
+import { css } from '@pigment-css/react';
+import Alert from '@mui/material/Alert';
+import { FallbackProps } from 'react-error-boundary';
+
+export function ErrorBoundaryFallback({ error }: FallbackProps) {
+ const err = error as Error;
+ return (
+
+ Error while rendering.
+
+ {err.message}
+
+
+ );
+}
diff --git a/apps/pigment-css-vite-app/src/main.tsx b/apps/pigment-css-vite-app/src/main.tsx
index e0f34c2030ede3..9760ba4a72aef3 100644
--- a/apps/pigment-css-vite-app/src/main.tsx
+++ b/apps/pigment-css-vite-app/src/main.tsx
@@ -1,13 +1,40 @@
import * as ReactDOMClient from 'react-dom/client';
import * as React from 'react';
-import { BrowserRouter as Router, useRoutes } from 'react-router-dom';
+import { BrowserRouter as Router, useLocation, useRoutes } from 'react-router-dom';
import { ThemeProvider, createTheme } from '@mui/material/styles';
+import CircularProgress from '@mui/material/CircularProgress';
import CssBaseline from '@mui/material/CssBaseline';
+import { css } from '@pigment-css/react';
+import { Box } from '@pigment-css/react/Box';
+import { ErrorBoundary } from 'react-error-boundary';
import routes from '~react-pages';
import '@pigment-css/react/styles.css';
+import { ErrorBoundaryFallback } from './components/ErrorBoundaryFallback';
function App() {
- return Loading...}>{useRoutes(routes)};
+ const location = useLocation();
+ return (
+
+
+
+
+ }
+ >
+ {useRoutes(routes)}
+
+
+ );
}
const theme = createTheme({
diff --git a/apps/pigment-css-vite-app/src/pages/index.tsx b/apps/pigment-css-vite-app/src/pages/index.tsx
index 920cff8ecbc115..2037fda5402843 100644
--- a/apps/pigment-css-vite-app/src/pages/index.tsx
+++ b/apps/pigment-css-vite-app/src/pages/index.tsx
@@ -1 +1,11 @@
-export { App as default } from '../App';
+import { Link } from 'react-router-dom';
+
+export default function App() {
+ return (
+
+
+ See Material UI components in action!
+
+
+ );
+}
diff --git a/apps/pigment-css-vite-app/src/pages/material-ui/index.tsx b/apps/pigment-css-vite-app/src/pages/material-ui/index.tsx
new file mode 100644
index 00000000000000..4f78230508237e
--- /dev/null
+++ b/apps/pigment-css-vite-app/src/pages/material-ui/index.tsx
@@ -0,0 +1,51 @@
+import * as React from 'react';
+import { useLocation, matchRoutes, Link } from 'react-router-dom';
+import { css } from '@pigment-css/react';
+import routes from '~react-pages';
+import Layout from '../../Layout';
+
+export default function MaterialIndex() {
+ const location = useLocation();
+ const matchedRoute = React.useMemo(
+ () => matchRoutes(routes, location.pathname)?.[0],
+ [location.pathname],
+ );
+ const childRoutes = matchedRoute?.route.children ?? [];
+
+ return (
+
+
+
Material UI Components
+
+
+
+ );
+}
diff --git a/apps/pigment-css-vite-app/src/pages/material-ui/react-app-bar.tsx b/apps/pigment-css-vite-app/src/pages/material-ui/react-app-bar.tsx
new file mode 100644
index 00000000000000..57b41d25804b34
--- /dev/null
+++ b/apps/pigment-css-vite-app/src/pages/material-ui/react-app-bar.tsx
@@ -0,0 +1,101 @@
+import * as React from 'react';
+import MaterialUILayout from '../../Layout';
+import BackToTop from '../../../../../docs/data/material/components/app-bar/BackToTop.tsx';
+import BottomAppBar from '../../../../../docs/data/material/components/app-bar/BottomAppBar.tsx';
+import ButtonAppBar from '../../../../../docs/data/material/components/app-bar/ButtonAppBar.tsx';
+import DenseAppBar from '../../../../../docs/data/material/components/app-bar/DenseAppBar.tsx';
+import DrawerAppBar from '../../../../../docs/data/material/components/app-bar/DrawerAppBar.tsx';
+import ElevateAppBar from '../../../../../docs/data/material/components/app-bar/ElevateAppBar.tsx';
+import EnableColorOnDarkAppBar from '../../../../../docs/data/material/components/app-bar/EnableColorOnDarkAppBar.tsx';
+import HideAppBar from '../../../../../docs/data/material/components/app-bar/HideAppBar.tsx';
+import MenuAppBar from '../../../../../docs/data/material/components/app-bar/MenuAppBar.tsx';
+import PrimarySearchAppBar from '../../../../../docs/data/material/components/app-bar/PrimarySearchAppBar.tsx';
+import ProminentAppBar from '../../../../../docs/data/material/components/app-bar/ProminentAppBar.tsx';
+import ResponsiveAppBar from '../../../../../docs/data/material/components/app-bar/ResponsiveAppBar.tsx';
+import SearchAppBar from '../../../../../docs/data/material/components/app-bar/SearchAppBar.tsx';
+
+export default function AppBar() {
+ return (
+
+
AppBar
+
+
Back To Top
+
+
+
+
+
+
Bottom App Bar
+
+
+
+
+
+
Button App Bar
+
+
+
+
+
+
Dense App Bar
+
+
+
+
+
+
Drawer App Bar
+
+
+
+
+
+
Elevate App Bar
+
+
+
+
+
+
Enable Color On Dark App Bar
+
+
+
+
+
+
Hide App Bar
+
+
+
+
+
+
Menu App Bar
+
+
+
+
+
+
Primary Search App Bar
+
+
+
+
+
+
Prominent App Bar
+
+
+
+
+
+
Responsive App Bar
+
+
+
+
+
+
Search App Bar
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-vite-app/src/pages/material-ui/react-avatar.tsx b/apps/pigment-css-vite-app/src/pages/material-ui/react-avatar.tsx
index 7b22274b1e6756..0e566dac16a15f 100644
--- a/apps/pigment-css-vite-app/src/pages/material-ui/react-avatar.tsx
+++ b/apps/pigment-css-vite-app/src/pages/material-ui/react-avatar.tsx
@@ -1,4 +1,3 @@
-import * as React from 'react';
import MaterialUILayout from '../../Layout';
import BackgroundLetterAvatars from '../../../../../docs/data/material/components/avatars/BackgroundLetterAvatars.tsx';
import BadgeAvatars from '../../../../../docs/data/material/components/avatars/BadgeAvatars.tsx';
diff --git a/apps/pigment-css-vite-app/src/pages/material-ui/react-breadcrumbs.tsx b/apps/pigment-css-vite-app/src/pages/material-ui/react-breadcrumbs.tsx
new file mode 100644
index 00000000000000..acaf39e31fd638
--- /dev/null
+++ b/apps/pigment-css-vite-app/src/pages/material-ui/react-breadcrumbs.tsx
@@ -0,0 +1,63 @@
+import { ErrorBoundary } from 'react-error-boundary';
+
+import MaterialUILayout from '../../Layout';
+import ActiveLastBreadcrumb from '../../../../../docs/data/material/components/breadcrumbs/ActiveLastBreadcrumb';
+import BasicBreadcrumbs from '../../../../../docs/data/material/components/breadcrumbs/BasicBreadcrumbs';
+import CollapsedBreadcrumbs from '../../../../../docs/data/material/components/breadcrumbs/CollapsedBreadcrumbs';
+import CustomSeparator from '../../../../../docs/data/material/components/breadcrumbs/CustomSeparator';
+import CustomizedBreadcrumbs from '../../../../../docs/data/material/components/breadcrumbs/CustomizedBreadcrumbs';
+import IconBreadcrumbs from '../../../../../docs/data/material/components/breadcrumbs/IconBreadcrumbs';
+import RouterBreadcrumbs from '../../../../../docs/data/material/components/breadcrumbs/RouterBreadcrumbs';
+import { ErrorBoundaryFallback } from '../../components/ErrorBoundaryFallback';
+
+export default function Breadcrumbs() {
+ return (
+
+
Breadcrumbs
+
+
Active Last Breadcrumb
+
+
+
+
+
+
Basic Breadcrumbs
+
+
+
+
+
+
Collapsed Breadcrumbs
+
+
+
+
+
+
Custom Separator
+
+
+
+
+
+
Customized Breadcrumbs
+
+
+
+
+
+
Icon Breadcrumbs
+
+
+
+
+
+
Router Breadcrumbs
+
+
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-vite-app/src/pages/material-ui/react-button-group.tsx b/apps/pigment-css-vite-app/src/pages/material-ui/react-button-group.tsx
new file mode 100644
index 00000000000000..9c320eaeb63a15
--- /dev/null
+++ b/apps/pigment-css-vite-app/src/pages/material-ui/react-button-group.tsx
@@ -0,0 +1,59 @@
+import * as React from 'react';
+import MaterialUILayout from '../../Layout';
+import BasicButtonGroup from '../../../../../docs/data/material/components/button-group/BasicButtonGroup.tsx';
+import DisableElevation from '../../../../../docs/data/material/components/button-group/DisableElevation.tsx';
+import GroupOrientation from '../../../../../docs/data/material/components/button-group/GroupOrientation.tsx';
+import GroupSizesColors from '../../../../../docs/data/material/components/button-group/GroupSizesColors.tsx';
+import LoadingButtonGroup from '../../../../../docs/data/material/components/button-group/LoadingButtonGroup.tsx';
+import SplitButton from '../../../../../docs/data/material/components/button-group/SplitButton.tsx';
+import VariantButtonGroup from '../../../../../docs/data/material/components/button-group/VariantButtonGroup.tsx';
+
+export default function ButtonGroup() {
+ return (
+
+
Button-group
+
+
Basic Button Group
+
+
+
+
+
+
Disable Elevation
+
+
+
+
+
+
Group Orientation
+
+
+
+
+
+
Group Sizes Colors
+
+
+
+
+
+
Loading Button Group
+
+
+
+
+
+
Split Button
+
+
+
+
+
+
Variant Button Group
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-vite-app/src/pages/material-ui/react-button.tsx b/apps/pigment-css-vite-app/src/pages/material-ui/react-button.tsx
new file mode 100644
index 00000000000000..51affe28f44f0a
--- /dev/null
+++ b/apps/pigment-css-vite-app/src/pages/material-ui/react-button.tsx
@@ -0,0 +1,122 @@
+import * as React from 'react';
+import MaterialUILayout from '../../Layout';
+import BasicButtons from '../../../../../docs/data/material/components/buttons/BasicButtons.tsx';
+import ButtonBaseDemo from '../../../../../docs/data/material/components/buttons/ButtonBaseDemo.tsx';
+import ButtonSizes from '../../../../../docs/data/material/components/buttons/ButtonSizes.tsx';
+import ColorButtons from '../../../../../docs/data/material/components/buttons/ColorButtons.tsx';
+import ContainedButtons from '../../../../../docs/data/material/components/buttons/ContainedButtons.tsx';
+import CustomizedButtons from '../../../../../docs/data/material/components/buttons/CustomizedButtons.tsx';
+import DisableElevation from '../../../../../docs/data/material/components/buttons/DisableElevation.tsx';
+import IconButtonColors from '../../../../../docs/data/material/components/buttons/IconButtonColors.tsx';
+import IconButtonSizes from '../../../../../docs/data/material/components/buttons/IconButtonSizes.tsx';
+import IconButtons from '../../../../../docs/data/material/components/buttons/IconButtons.tsx';
+import IconLabelButtons from '../../../../../docs/data/material/components/buttons/IconLabelButtons.tsx';
+import InputFileUpload from '../../../../../docs/data/material/components/buttons/InputFileUpload.tsx';
+import LoadingButtons from '../../../../../docs/data/material/components/buttons/LoadingButtons.tsx';
+import LoadingButtonsTransition from '../../../../../docs/data/material/components/buttons/LoadingButtonsTransition.tsx';
+import OutlinedButtons from '../../../../../docs/data/material/components/buttons/OutlinedButtons.tsx';
+import TextButtons from '../../../../../docs/data/material/components/buttons/TextButtons.tsx';
+
+export default function Buttons() {
+ return (
+
+
Buttons
+
+
Basic Buttons
+
+
+
+
+
+
Button Base Demo
+
+
+
+
+
+
Button Sizes
+
+
+
+
+
+
Color Buttons
+
+
+
+
+
+
Contained Buttons
+
+
+
+
+
+
Customized Buttons
+
+
+
+
+
+
Disable Elevation
+
+
+
+
+
+
Icon Button Colors
+
+
+
+
+
+
Icon Button Sizes
+
+
+
+
+
+
Icon Buttons
+
+
+
+
+
+
Icon Label Buttons
+
+
+
+
+
+
Input File Upload
+
+
+
+
+
+
Loading Buttons
+
+
+
+
+
+
Loading Buttons Transition
+
+
+
+
+
+
Outlined Buttons
+
+
+
+
+
+
Text Buttons
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-vite-app/src/pages/material-ui/react-chip.tsx b/apps/pigment-css-vite-app/src/pages/material-ui/react-chip.tsx
new file mode 100644
index 00000000000000..2727c782aca916
--- /dev/null
+++ b/apps/pigment-css-vite-app/src/pages/material-ui/react-chip.tsx
@@ -0,0 +1,94 @@
+import * as React from 'react';
+import MaterialUILayout from '../../Layout';
+import AvatarChips from '../../../../../docs/data/material/components/chips/AvatarChips.tsx';
+import BasicChips from '../../../../../docs/data/material/components/chips/BasicChips.tsx';
+import ChipsArray from '../../../../../docs/data/material/components/chips/ChipsArray.tsx';
+import ClickableAndDeletableChips from '../../../../../docs/data/material/components/chips/ClickableAndDeletableChips.tsx';
+import ClickableChips from '../../../../../docs/data/material/components/chips/ClickableChips.tsx';
+import ClickableLinkChips from '../../../../../docs/data/material/components/chips/ClickableLinkChips.tsx';
+import ColorChips from '../../../../../docs/data/material/components/chips/ColorChips.tsx';
+import CustomDeleteIconChips from '../../../../../docs/data/material/components/chips/CustomDeleteIconChips.tsx';
+import DeletableChips from '../../../../../docs/data/material/components/chips/DeletableChips.tsx';
+import IconChips from '../../../../../docs/data/material/components/chips/IconChips.tsx';
+import MultilineChips from '../../../../../docs/data/material/components/chips/MultilineChips.tsx';
+import SizesChips from '../../../../../docs/data/material/components/chips/SizesChips.tsx';
+
+export default function Chips() {
+ return (
+
+
Chips
+
+
Avatar Chips
+
+
+
+
+
+
Basic Chips
+
+
+
+
+
+
Chips Array
+
+
+
+
+
+
Clickable And Deletable Chips
+
+
+
+
+
+
Clickable Chips
+
+
+
+
+
+
Clickable Link Chips
+
+
+
+
+
+
Color Chips
+
+
+
+
+
+
Custom Delete Icon Chips
+
+
+
+
+
+
Deletable Chips
+
+
+
+
+
+
Icon Chips
+
+
+
+
+
+
Multiline Chips
+
+
+
+
+
+
Sizes Chips
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-vite-app/src/pages/material-ui/react-divider.tsx b/apps/pigment-css-vite-app/src/pages/material-ui/react-divider.tsx
new file mode 100644
index 00000000000000..df4684b889129d
--- /dev/null
+++ b/apps/pigment-css-vite-app/src/pages/material-ui/react-divider.tsx
@@ -0,0 +1,59 @@
+import * as React from 'react';
+import MaterialUILayout from '../../Layout';
+import DividerText from '../../../../../docs/data/material/components/dividers/DividerText.tsx';
+import DividerVariants from '../../../../../docs/data/material/components/dividers/DividerVariants.tsx';
+import FlexDivider from '../../../../../docs/data/material/components/dividers/FlexDivider.tsx';
+import IntroDivider from '../../../../../docs/data/material/components/dividers/IntroDivider.tsx';
+import ListDividers from '../../../../../docs/data/material/components/dividers/ListDividers.tsx';
+import VerticalDividerMiddle from '../../../../../docs/data/material/components/dividers/VerticalDividerMiddle.tsx';
+import VerticalDividers from '../../../../../docs/data/material/components/dividers/VerticalDividers.tsx';
+
+export default function Dividers() {
+ return (
+
+
Dividers
+
+
Divider Text
+
+
+
+
+
+
Divider Variants
+
+
+
+
+
+
Flex Divider
+
+
+
+
+
+
Intro Divider
+
+
+
+
+
+
List Dividers
+
+
+
+
+
+
Vertical Divider Middle
+
+
+
+
+
+
Vertical Dividers
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-vite-app/src/pages/material-ui/react-modal.tsx b/apps/pigment-css-vite-app/src/pages/material-ui/react-modal.tsx
new file mode 100644
index 00000000000000..8e5341af93c0b3
--- /dev/null
+++ b/apps/pigment-css-vite-app/src/pages/material-ui/react-modal.tsx
@@ -0,0 +1,52 @@
+import * as React from 'react';
+import MaterialUILayout from '../../Layout';
+import BasicModal from '../../../../../docs/data/material/components/modal/BasicModal.tsx';
+import KeepMountedModal from '../../../../../docs/data/material/components/modal/KeepMountedModal.tsx';
+import NestedModal from '../../../../../docs/data/material/components/modal/NestedModal.tsx';
+import ServerModal from '../../../../../docs/data/material/components/modal/ServerModal.tsx';
+import SpringModal from '../../../../../docs/data/material/components/modal/SpringModal.tsx';
+import TransitionsModal from '../../../../../docs/data/material/components/modal/TransitionsModal.tsx';
+
+export default function Modal() {
+ return (
+
+
Modal
+
+
Basic Modal
+
+
+
+
+
+
Keep Mounted Modal
+
+
+
+
+
+
Nested Modal
+
+
+
+
+
+
Server Modal
+
+
+
+
+
+
Spring Modal
+
+
+
+
+
+
Transitions Modal
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-vite-app/src/pages/material-ui/react-stepper.tsx b/apps/pigment-css-vite-app/src/pages/material-ui/react-stepper.tsx
new file mode 100644
index 00000000000000..5f9cc1d0e683d6
--- /dev/null
+++ b/apps/pigment-css-vite-app/src/pages/material-ui/react-stepper.tsx
@@ -0,0 +1,80 @@
+import * as React from 'react';
+import MaterialUILayout from '../../Layout';
+import CustomizedSteppers from '../../../../../docs/data/material/components/steppers/CustomizedSteppers.tsx';
+import DotsMobileStepper from '../../../../../docs/data/material/components/steppers/DotsMobileStepper.tsx';
+import HorizontalLinearAlternativeLabelStepper from '../../../../../docs/data/material/components/steppers/HorizontalLinearAlternativeLabelStepper.tsx';
+import HorizontalLinearStepper from '../../../../../docs/data/material/components/steppers/HorizontalLinearStepper.tsx';
+import HorizontalNonLinearStepper from '../../../../../docs/data/material/components/steppers/HorizontalNonLinearStepper.tsx';
+import HorizontalStepperWithError from '../../../../../docs/data/material/components/steppers/HorizontalStepperWithError.tsx';
+import ProgressMobileStepper from '../../../../../docs/data/material/components/steppers/ProgressMobileStepper.tsx';
+import SwipeableTextMobileStepper from '../../../../../docs/data/material/components/steppers/SwipeableTextMobileStepper.tsx';
+import TextMobileStepper from '../../../../../docs/data/material/components/steppers/TextMobileStepper.tsx';
+import VerticalLinearStepper from '../../../../../docs/data/material/components/steppers/VerticalLinearStepper.tsx';
+
+export default function Steppers() {
+ return (
+
+
Steppers
+
+
Customized Steppers
+
+
+
+
+
+
Dots Mobile Stepper
+
+
+
+
+
+
Horizontal Linear Alternative Label Stepper
+
+
+
+
+
+
Horizontal Linear Stepper
+
+
+
+
+
+
Horizontal Non Linear Stepper
+
+
+
+
+
+
Horizontal Stepper With Error
+
+
+
+
+
+
Progress Mobile Stepper
+
+
+
+
+
+
Swipeable Text Mobile Stepper
+
+
+
+
+
+
Text Mobile Stepper
+
+
+
+
+
+
Vertical Linear Stepper
+
+
+
+
+
+ );
+}
diff --git a/apps/pigment-css-vite-app/vite-env.d.ts b/apps/pigment-css-vite-app/vite-env.d.ts
index 5c48b9640e969a..f07ec82ef8602f 100644
--- a/apps/pigment-css-vite-app/vite-env.d.ts
+++ b/apps/pigment-css-vite-app/vite-env.d.ts
@@ -1,2 +1,2 @@
///
-///
+///
diff --git a/apps/pigment-css-vite-app/vite.config.ts b/apps/pigment-css-vite-app/vite.config.ts
index 814f407f2231db..031cd34a6f7571 100644
--- a/apps/pigment-css-vite-app/vite.config.ts
+++ b/apps/pigment-css-vite-app/vite.config.ts
@@ -1,59 +1,66 @@
+import * as path from 'node:path';
import { defineConfig, splitVendorChunkPlugin } from 'vite';
import reactPlugin from '@vitejs/plugin-react';
import Pages from 'vite-plugin-pages';
import { pigment } from '@pigment-css/vite-plugin';
import { experimental_extendTheme as extendTheme } from '@mui/material/styles';
-const theme = extendTheme();
-
-// TODO: Fix this from the Material UI side in a separate PR
-theme.palette = theme.colorSchemes.light.palette;
+const theme = extendTheme({
+ getSelector: function getSelector(colorScheme, css) {
+ if (colorScheme) {
+ return {
+ [`@media (prefers-color-scheme: ${colorScheme})`]: {
+ ':root': css,
+ },
+ };
+ }
+ return ':root';
+ },
+});
theme.getColorSchemeSelector = (colorScheme) => {
return `@media (prefers-color-scheme: ${colorScheme})`;
};
-const { css: rootCss } = theme.generateCssVars();
-const { css: lightCss } = theme.generateCssVars('light');
-const { css: darkCss } = theme.generateCssVars('dark');
-theme.generateCssVars = (colorScheme) => {
- if (colorScheme === 'dark') {
- return {
- css: darkCss,
- selector: {
- '@media (prefers-color-scheme: dark)': {
- ':root': darkCss,
- },
- },
- };
- }
- if (colorScheme === 'light') {
- return { css: lightCss, selector: ':root' };
- }
- return { css: rootCss, selector: ':root' };
-};
export default defineConfig({
plugins: [
- reactPlugin({ include: /\.(mdx|js|jsx|ts|tsx)$/ }),
+ reactPlugin({
+ include: /\.(mdx|js|jsx|ts|tsx)$/,
+ babel: {
+ presets: [
+ [
+ '@babel/preset-react',
+ {
+ runtime: 'automatic',
+ },
+ ],
+ '@babel/preset-typescript',
+ ],
+ },
+ }),
pigment({
theme,
transformLibraries: ['local-ui-lib', '@mui/material'],
sourceMap: true,
displayName: true,
- transformSx: false,
}),
Pages(),
splitVendorChunkPlugin(),
],
resolve: {
alias: [
- {
- find: /^@mui\/system\/(.*)/,
- replacement: '@mui/system/esm/$1',
- },
{
find: /^@mui\/icons-material\/(.*)/,
replacement: '@mui/icons-material/esm/$1',
},
+ {
+ find: /^@pigment-css\/react$/,
+ // There is a weird issue on the CI where Vite/Rollup isn't able to resolve
+ // the path for pigment-css/react in this monodrep. This is a temporary workaround. It does not
+ // affect local development or end-user projects.
+ replacement: path.resolve(
+ path.join(process.cwd(), 'node_modules/@pigment-css/react/build/index.mjs'),
+ ),
+ },
],
},
});
diff --git a/apps/pnpm-lock.yaml b/apps/pnpm-lock.yaml
index 0df1319ac41672..ecd3a0782023dc 100644
--- a/apps/pnpm-lock.yaml
+++ b/apps/pnpm-lock.yaml
@@ -1374,13 +1374,13 @@ importers:
version: file:../packages/mui-base/build(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/icons-material':
specifier: file:../../packages/mui-icons-material/build
- version: file:../packages/mui-icons-material/build(@mui/material@5.15.12)(@types/react@18.2.55)(react@18.2.0)
+ version: file:../packages/mui-icons-material/build(@mui/material@5.15.13)(@types/react@18.2.55)(react@18.2.0)
'@mui/material':
specifier: file:../../packages/mui-material/build
version: file:../packages/mui-material/build(@emotion/react@11.11.4)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/material-nextjs':
specifier: file:../../packages/mui-material-nextjs/build
- version: file:../packages/mui-material-nextjs/build(@emotion/cache@11.11.0)(@mui/material@5.15.12)(@types/react@18.2.55)(next@14.1.3)(react@18.2.0)
+ version: file:../packages/mui-material-nextjs/build(@emotion/cache@11.11.0)(@mui/material@5.15.13)(@types/react@18.2.55)(next@14.1.3)(react@18.2.0)
'@mui/system':
specifier: file:../../packages/mui-system/build
version: file:../packages/mui-system/build(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
@@ -1432,7 +1432,7 @@ importers:
version: file:../packages/mui-base/build(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/icons-material':
specifier: file:../../packages/mui-icons-material/build
- version: file:../packages/mui-icons-material/build(@mui/material@5.15.12)(@types/react@18.2.55)(react@18.2.0)
+ version: file:../packages/mui-icons-material/build(@mui/material@5.15.13)(@types/react@18.2.55)(react@18.2.0)
'@mui/material':
specifier: file:../../packages/mui-material/build
version: file:../packages/mui-material/build(@emotion/react@11.11.4)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
@@ -8991,7 +8991,7 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- file:../packages/mui-icons-material/build(@mui/material@5.15.12)(@types/react@18.2.55)(react@18.2.0):
+ file:../packages/mui-icons-material/build(@mui/material@5.15.13)(@types/react@18.2.55)(react@18.2.0):
resolution: {directory: ../packages/mui-icons-material/build, type: directory}
id: file:../packages/mui-icons-material/build
name: '@mui/icons-material'
@@ -9010,7 +9010,7 @@ packages:
react: 18.2.0
dev: false
- file:../packages/mui-material-nextjs/build(@emotion/cache@11.11.0)(@mui/material@5.15.12)(@types/react@18.2.55)(next@14.1.3)(react@18.2.0):
+ file:../packages/mui-material-nextjs/build(@emotion/cache@11.11.0)(@mui/material@5.15.13)(@types/react@18.2.55)(next@14.1.3)(react@18.2.0):
resolution: {directory: ../packages/mui-material-nextjs/build, type: directory}
id: file:../packages/mui-material-nextjs/build
name: '@mui/material-nextjs'
diff --git a/apps/pnpm-workspace.yaml b/apps/pnpm-workspace.yaml
deleted file mode 100644
index da23d95e53e26f..00000000000000
--- a/apps/pnpm-workspace.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-packages:
- - 'local-ui-lib'
- - 'pigment-*'
- - '../packages/waterfall'
- - '../packages-internal/docs-utils'
- - '../packages/test-utils'
- - '../packages-internal/*'
- - '../packages/mui-*'
- - '../packages/pigment-*'
diff --git a/benchmark/package.json b/benchmark/package.json
index 48ca1c919ad051..5716765dcb00c3 100644
--- a/benchmark/package.json
+++ b/benchmark/package.json
@@ -21,7 +21,7 @@
"@styled-system/css": "^5.1.5",
"benchmark": "^2.1.4",
"docs": "workspace:^",
- "express": "^4.18.3",
+ "express": "^4.19.2",
"fs-extra": "^11.2.0",
"jss": "^10.10.0",
"playwright": "^1.42.1",
diff --git a/docs/data/base/getting-started/quickstart/quickstart.md b/docs/data/base/getting-started/quickstart/quickstart.md
index 0bcf49c0652a79..9ffbd4d16ded6d 100644
--- a/docs/data/base/getting-started/quickstart/quickstart.md
+++ b/docs/data/base/getting-started/quickstart/quickstart.md
@@ -10,18 +10,24 @@ If you're using Next.js 13.4 or later, check out the [Next.js App Router guide](
`@mui/base` is completely standalone – run one of the following commands to add Base UI to your React project:
+:::info
+The `next` tag is used to download the latest pre-release, v6 version. Remove it to get the current stable version.
+:::
+
+
+
```bash npm
-npm install @mui/base
+npm install @mui/base@next
```
```bash yarn
-yarn add @mui/base
+yarn add @mui/base@next
```
```bash pnpm
-pnpm add @mui/base
+pnpm add @mui/base@next
```
diff --git a/docs/data/base/guides/working-with-tailwind-css/working-with-tailwind-css.md b/docs/data/base/guides/working-with-tailwind-css/working-with-tailwind-css.md
index 92cf9f71fa4ad9..78b3d3e30a554c 100644
--- a/docs/data/base/guides/working-with-tailwind-css/working-with-tailwind-css.md
+++ b/docs/data/base/guides/working-with-tailwind-css/working-with-tailwind-css.md
@@ -31,8 +31,14 @@ We'll use [`create-react-app` with TypeScript](https://create-react-app.dev/docs
After you have created the project, follow the instructions given on the [Tailwind CSS installation page](https://tailwindcss.com/docs/guides/create-react-app) in order to configure `tailwind`.
Next, install `@mui/base` in the project:
+:::info
+The `next` tag is used to download the latest pre-release, v6 version. Remove it to get the current stable version.
+:::
+
+
+
```bash
-npm install @mui/base
+npm install @mui/base@next
```
## Adding the player markup
diff --git a/docs/data/joy/components/accordion/AccordionTransition.js b/docs/data/joy/components/accordion/AccordionTransition.js
index de2d4476fcba53..15908702f1506d 100644
--- a/docs/data/joy/components/accordion/AccordionTransition.js
+++ b/docs/data/joy/components/accordion/AccordionTransition.js
@@ -9,7 +9,7 @@ import Radio from '@mui/joy/Radio';
import Stack from '@mui/joy/Stack';
import Typography from '@mui/joy/Typography';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
export default function AccordionTransition() {
const [transition, setTransition] = React.useState('0.2s ease');
diff --git a/docs/data/joy/components/badge/BadgeAlignment.js b/docs/data/joy/components/badge/BadgeAlignment.js
index 7f680cd6156126..4d0c4ac31ef6ad 100644
--- a/docs/data/joy/components/badge/BadgeAlignment.js
+++ b/docs/data/joy/components/badge/BadgeAlignment.js
@@ -6,7 +6,7 @@ import IconButton from '@mui/joy/IconButton';
import ArrowUpward from '@mui/icons-material/ArrowUpward';
import ArrowDownward from '@mui/icons-material/ArrowDownward';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
export default function BadgeAlignment() {
const [anchorOrigin, setAnchorOrigin] = React.useState({
diff --git a/docs/data/joy/components/badge/BadgeAlignment.tsx b/docs/data/joy/components/badge/BadgeAlignment.tsx
index 37171c79fe3161..26cef0321dd2f4 100644
--- a/docs/data/joy/components/badge/BadgeAlignment.tsx
+++ b/docs/data/joy/components/badge/BadgeAlignment.tsx
@@ -6,7 +6,7 @@ import IconButton from '@mui/joy/IconButton';
import ArrowUpward from '@mui/icons-material/ArrowUpward';
import ArrowDownward from '@mui/icons-material/ArrowDownward';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
export default function BadgeAlignment() {
const [anchorOrigin, setAnchorOrigin] = React.useState(
diff --git a/docs/data/joy/components/grid/InteractiveGrid.js b/docs/data/joy/components/grid/InteractiveGrid.js
index c2faa3bb5819c6..6752884b6f1483 100644
--- a/docs/data/joy/components/grid/InteractiveGrid.js
+++ b/docs/data/joy/components/grid/InteractiveGrid.js
@@ -6,7 +6,7 @@ import RadioGroup from '@mui/joy/RadioGroup';
import Radio from '@mui/joy/Radio';
import Sheet from '@mui/joy/Sheet';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
export default function InteractiveGrid() {
diff --git a/docs/data/joy/components/grid/InteractiveGrid.tsx b/docs/data/joy/components/grid/InteractiveGrid.tsx
index 00b0a52f1975a0..8059be0f4b3260 100644
--- a/docs/data/joy/components/grid/InteractiveGrid.tsx
+++ b/docs/data/joy/components/grid/InteractiveGrid.tsx
@@ -6,7 +6,7 @@ import RadioGroup from '@mui/joy/RadioGroup';
import Radio from '@mui/joy/Radio';
import Sheet from '@mui/joy/Sheet';
import { GridDirection } from '@mui/system';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
type GridItemsAlignment =
diff --git a/docs/data/joy/components/grid/SpacingGrid.js b/docs/data/joy/components/grid/SpacingGrid.js
index 79d8eac75e8775..20971a1813de88 100644
--- a/docs/data/joy/components/grid/SpacingGrid.js
+++ b/docs/data/joy/components/grid/SpacingGrid.js
@@ -6,7 +6,7 @@ import RadioGroup from '@mui/joy/RadioGroup';
import Radio from '@mui/joy/Radio';
import Sheet from '@mui/joy/Sheet';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
export default function SpacingGrid() {
const [spacing, setSpacing] = React.useState(2);
diff --git a/docs/data/joy/components/grid/SpacingGrid.tsx b/docs/data/joy/components/grid/SpacingGrid.tsx
index 6ae4b326be60a8..ebb3466624480a 100644
--- a/docs/data/joy/components/grid/SpacingGrid.tsx
+++ b/docs/data/joy/components/grid/SpacingGrid.tsx
@@ -6,7 +6,7 @@ import RadioGroup from '@mui/joy/RadioGroup';
import Radio from '@mui/joy/Radio';
import Sheet from '@mui/joy/Sheet';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
export default function SpacingGrid() {
const [spacing, setSpacing] = React.useState(2);
diff --git a/docs/data/joy/components/stack/InteractiveStack.js b/docs/data/joy/components/stack/InteractiveStack.js
index 0ec70fd492dc6c..d5142c84f95783 100644
--- a/docs/data/joy/components/stack/InteractiveStack.js
+++ b/docs/data/joy/components/stack/InteractiveStack.js
@@ -8,7 +8,7 @@ import Radio from '@mui/joy/Radio';
import Stack from '@mui/joy/Stack';
import { styled } from '@mui/joy/styles';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
const Item = styled(Sheet)(({ theme }) => ({
...theme.typography['body-sm'],
diff --git a/docs/data/joy/components/stack/InteractiveStack.tsx b/docs/data/joy/components/stack/InteractiveStack.tsx
index 17cf59c88e3c4d..971adbb6a0f9c3 100644
--- a/docs/data/joy/components/stack/InteractiveStack.tsx
+++ b/docs/data/joy/components/stack/InteractiveStack.tsx
@@ -8,7 +8,7 @@ import Radio from '@mui/joy/Radio';
import Stack, { StackProps } from '@mui/joy/Stack';
import { styled } from '@mui/joy/styles';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
const Item = styled(Sheet)(({ theme }) => ({
...theme.typography['body-sm'],
diff --git a/docs/data/joy/customization/approaches/ButtonThemes.js b/docs/data/joy/customization/approaches/ButtonThemes.js
index 558e3bb782cc1a..ee359cacdf3162 100644
--- a/docs/data/joy/customization/approaches/ButtonThemes.js
+++ b/docs/data/joy/customization/approaches/ButtonThemes.js
@@ -6,7 +6,7 @@ import FormLabel from '@mui/joy/FormLabel';
import Select from '@mui/joy/Select';
import Option from '@mui/joy/Option';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
const githubTheme = extendTheme({
cssVarPrefix: 'gh',
diff --git a/docs/data/joy/getting-started/installation/installation.md b/docs/data/joy/getting-started/installation/installation.md
index 4f1b53ec6624cf..341b00918886b7 100644
--- a/docs/data/joy/getting-started/installation/installation.md
+++ b/docs/data/joy/getting-started/installation/installation.md
@@ -6,17 +6,23 @@
Run one of the following commands to add Joy UI to your project:
+:::info
+The `next` tag is used to download the latest pre-release, v6 version. Remove it to get the current stable version.
+:::
+
+
+
```bash npm
-npm install @mui/joy @emotion/react @emotion/styled
+npm install @mui/joy@next @emotion/react @emotion/styled
```
```bash yarn
-yarn add @mui/joy @emotion/react @emotion/styled
+yarn add @mui/joy@next @emotion/react @emotion/styled
```
```bash pnpm
-pnpm add @mui/joy @emotion/react @emotion/styled
+pnpm add @mui/joy@next @emotion/react @emotion/styled
```
diff --git a/docs/data/joy/integrations/icon-libraries/icon-libraries.md b/docs/data/joy/integrations/icon-libraries/icon-libraries.md
index b36c8dd5cf793a..bd0192f0351031 100644
--- a/docs/data/joy/integrations/icon-libraries/icon-libraries.md
+++ b/docs/data/joy/integrations/icon-libraries/icon-libraries.md
@@ -13,8 +13,12 @@ This section assumes that you've already installed Joy UI in your app—see [In
#### yarn
+:::info
+The `next` tag is used to download the latest pre-release, v6 version. Remove it to get the current stable version.
+:::
+
```bash
-yarn add @mui/icons-material @mui/material
+yarn add @mui/icons-material@next @mui/material@next
```
:::warning
@@ -39,8 +43,14 @@ You can keep track of the progress in [this issue](https://github.com/mui/materi
#### npm
+:::info
+The `next` tag is used to download the latest pre-release, v6 version. Remove it to get the current stable version.
+:::
+
+
+
```bash
-npm install @mui/icons-material @mui/material
+npm install @mui/icons-material@next @mui/material@next
```
:::warning
diff --git a/docs/data/joy/main-features/automatic-adjustment/ListThemes.js b/docs/data/joy/main-features/automatic-adjustment/ListThemes.js
index cb7a7976d56b70..828ebe8d50fc04 100644
--- a/docs/data/joy/main-features/automatic-adjustment/ListThemes.js
+++ b/docs/data/joy/main-features/automatic-adjustment/ListThemes.js
@@ -10,7 +10,7 @@ import Option from '@mui/joy/Option';
import ArticleRoundedIcon from '@mui/icons-material/ArticleRounded';
import ToggleOffRoundedIcon from '@mui/icons-material/ToggleOffRounded';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
export default function ListThemes() {
const [preset, setPreset] = React.useState('');
diff --git a/docs/data/joy/main-features/color-inversion/ColorInversionMarketing.js b/docs/data/joy/main-features/color-inversion/ColorInversionMarketing.js
index 6b7d09f473cf0e..a7d4251827ab8f 100644
--- a/docs/data/joy/main-features/color-inversion/ColorInversionMarketing.js
+++ b/docs/data/joy/main-features/color-inversion/ColorInversionMarketing.js
@@ -1,5 +1,5 @@
import * as React from 'react';
-
+import { useTheme } from '@mui/joy/styles';
import Box from '@mui/joy/Box';
import Button from '@mui/joy/Button';
import IconButton from '@mui/joy/IconButton';
@@ -7,6 +7,7 @@ import Typography from '@mui/joy/Typography';
import Sheet from '@mui/joy/Sheet';
import ArrowForwardIcon from '@mui/icons-material/ArrowForward';
import ColorLensRoundedIcon from '@mui/icons-material/ColorLensRounded';
+import InvertColorsIcon from '@mui/icons-material/InvertColors';
/**
* Design credit: https://flutter.dev/
@@ -14,71 +15,113 @@ import ColorLensRoundedIcon from '@mui/icons-material/ColorLensRounded';
export default function ColorInversionMarketing() {
const [color, setColor] = React.useState('primary');
+ const [solid, setSolid] = React.useState(true);
+ const theme = useTheme();
+
+ const shade = (x) => theme.vars.palette[color][x];
+ const color1 = solid ? shade(800) : shade(600);
+ const color2 = solid ? shade(600) : shade(200);
+ const color3 = shade(900);
+ const gradient1 = `${color1}, ${color2} 65%`;
+ const gradient2 = `${color1} 65%, ${color3}`;
+ const textColor = { color: solid ? shade(50) : shade(700) };
+
+ const buttonStyles = {
+ borderRadius: 99,
+ '&:hover': {
+ '& .MuiButton-endDecorator': { transform: 'translate(4px, 0px)' },
+ },
+ '& span': { transition: '0.15s' },
+ };
+
return (
-
- Get started
-
+
@@ -64,7 +70,9 @@ export default function ColorInversionSurface() {
);
return (
-
+
{creditCard}
{React.cloneElement(creditCard, { variant: 'soft' })}
diff --git a/docs/data/material/components/about-the-lab/about-the-lab.md b/docs/data/material/components/about-the-lab/about-the-lab.md
index 138aaa0a6384b2..5119f8e01eb3f2 100644
--- a/docs/data/material/components/about-the-lab/about-the-lab.md
+++ b/docs/data/material/components/about-the-lab/about-the-lab.md
@@ -19,18 +19,24 @@ For a component to be ready to move to the core, the following criteria are cons
To install and save in your `package.json` dependencies, run one of the following commands:
+:::info
+The `next` tag is used to download the latest pre-release, v6 version. Remove it to get the current stable version.
+:::
+
+
+
```bash npm
-npm install @mui/lab @mui/material
+npm install @mui/lab@next @mui/material@next
```
```bash yarn
-yarn add @mui/lab @mui/material
+yarn add @mui/lab@next @mui/material@next
```
```bash pnpm
-pnpm add @mui/lab @mui/material
+pnpm add @mui/lab@next @mui/material@next
```
diff --git a/docs/data/material/components/accordion/accordion.md b/docs/data/material/components/accordion/accordion.md
index 2f5f9cb24e9eef..719a1a7ca78261 100644
--- a/docs/data/material/components/accordion/accordion.md
+++ b/docs/data/material/components/accordion/accordion.md
@@ -80,7 +80,7 @@ Learn more about controlled and uncontrolled components in the [React documentat
### Only one expanded at a time
Use the `expanded` prop with React's `useState` hook to allow only one Accordion item to be expanded at a time.
-The demo below also shows a bit of visual customziation.
+The demo below also shows a bit of visual customization.
{{"demo": "CustomizedAccordions.js", "bg": true}}
diff --git a/docs/data/material/components/app-bar/BackToTop.js b/docs/data/material/components/app-bar/BackToTop.js
index ea7f7c46ef194c..6e454039aa54a8 100644
--- a/docs/data/material/components/app-bar/BackToTop.js
+++ b/docs/data/material/components/app-bar/BackToTop.js
@@ -48,7 +48,7 @@ function ScrollTop(props) {
}
ScrollTop.propTypes = {
- children: PropTypes.element.isRequired,
+ children: PropTypes.element,
/**
* Injected by the documentation to work in an iframe.
* You won't need it on your project.
diff --git a/docs/data/material/components/app-bar/BackToTop.tsx b/docs/data/material/components/app-bar/BackToTop.tsx
index 567ba0f51abe12..87eca489bf5c9f 100644
--- a/docs/data/material/components/app-bar/BackToTop.tsx
+++ b/docs/data/material/components/app-bar/BackToTop.tsx
@@ -16,7 +16,7 @@ interface Props {
* You won't need it on your project.
*/
window?: () => Window;
- children: React.ReactElement;
+ children?: React.ReactElement;
}
function ScrollTop(props: Props) {
diff --git a/docs/data/material/components/app-bar/ElevateAppBar.js b/docs/data/material/components/app-bar/ElevateAppBar.js
index 38c700c1f25447..1679f75e66c806 100644
--- a/docs/data/material/components/app-bar/ElevateAppBar.js
+++ b/docs/data/material/components/app-bar/ElevateAppBar.js
@@ -19,13 +19,15 @@ function ElevationScroll(props) {
target: window ? window() : undefined,
});
- return React.cloneElement(children, {
- elevation: trigger ? 4 : 0,
- });
+ return children
+ ? React.cloneElement(children, {
+ elevation: trigger ? 4 : 0,
+ })
+ : null;
}
ElevationScroll.propTypes = {
- children: PropTypes.element.isRequired,
+ children: PropTypes.element,
/**
* Injected by the documentation to work in an iframe.
* You won't need it on your project.
diff --git a/docs/data/material/components/app-bar/ElevateAppBar.tsx b/docs/data/material/components/app-bar/ElevateAppBar.tsx
index 2f077ee6723d20..195908dcaf13fe 100644
--- a/docs/data/material/components/app-bar/ElevateAppBar.tsx
+++ b/docs/data/material/components/app-bar/ElevateAppBar.tsx
@@ -13,7 +13,7 @@ interface Props {
* You won't need it on your project.
*/
window?: () => Window;
- children: React.ReactElement;
+ children?: React.ReactElement;
}
function ElevationScroll(props: Props) {
@@ -27,9 +27,11 @@ function ElevationScroll(props: Props) {
target: window ? window() : undefined,
});
- return React.cloneElement(children, {
- elevation: trigger ? 4 : 0,
- });
+ return children
+ ? React.cloneElement(children, {
+ elevation: trigger ? 4 : 0,
+ })
+ : null;
}
export default function ElevateAppBar(props: Props) {
diff --git a/docs/data/material/components/app-bar/HideAppBar.js b/docs/data/material/components/app-bar/HideAppBar.js
index ce03ed56243c08..0753b6dd25b77b 100644
--- a/docs/data/material/components/app-bar/HideAppBar.js
+++ b/docs/data/material/components/app-bar/HideAppBar.js
@@ -20,13 +20,13 @@ function HideOnScroll(props) {
return (
- {children}
+ {children ?? }
);
}
HideOnScroll.propTypes = {
- children: PropTypes.element.isRequired,
+ children: PropTypes.element,
/**
* Injected by the documentation to work in an iframe.
* You won't need it on your project.
diff --git a/docs/data/material/components/app-bar/HideAppBar.tsx b/docs/data/material/components/app-bar/HideAppBar.tsx
index 907ebfe124a2aa..4bc84bfc663305 100644
--- a/docs/data/material/components/app-bar/HideAppBar.tsx
+++ b/docs/data/material/components/app-bar/HideAppBar.tsx
@@ -14,7 +14,7 @@ interface Props {
* You won't need it on your project.
*/
window?: () => Window;
- children: React.ReactElement;
+ children?: React.ReactElement;
}
function HideOnScroll(props: Props) {
@@ -28,7 +28,7 @@ function HideOnScroll(props: Props) {
return (
- {children}
+ {children ?? }
);
}
diff --git a/docs/data/material/components/app-bar/app-bar.md b/docs/data/material/components/app-bar/app-bar.md
index 976f9b2dab6dc8..cadf49e610d6ea 100644
--- a/docs/data/material/components/app-bar/app-bar.md
+++ b/docs/data/material/components/app-bar/app-bar.md
@@ -62,7 +62,7 @@ A prominent app bar.
When you render the app bar position fixed, the dimension of the element doesn't impact the rest of the page. This can cause some part of your content to be invisible, behind the app bar. Here are 3 possible solutions:
-1. You can use `position="sticky"` instead of fixed. ⚠️ sticky is not supported by IE11.
+1. You can use `position="sticky"` instead of fixed. ⚠️ sticky is not supported by IE 11.
2. You can render a second `` component:
```jsx
diff --git a/docs/data/material/components/cards/cards.md b/docs/data/material/components/cards/cards.md
index d36aa82992f0d4..764ce8c558cb8f 100644
--- a/docs/data/material/components/cards/cards.md
+++ b/docs/data/material/components/cards/cards.md
@@ -60,7 +60,7 @@ By default, we use the combination of a `
` element and a _background image_
{{"demo": "ImgMediaCard.js", "bg": true}}
:::warning
-When `component="img"`, CardMedia relies on `object-fit` for centering the image. It's not supported by IE11.
+When `component="img"`, CardMedia relies on `object-fit` for centering the image. It's not supported by IE 11.
:::
## Primary action
diff --git a/docs/data/material/components/icons/icons.md b/docs/data/material/components/icons/icons.md
index 8bf166dd4b7d34..fa1e8c49403b64 100644
--- a/docs/data/material/components/icons/icons.md
+++ b/docs/data/material/components/icons/icons.md
@@ -26,17 +26,23 @@ You can [search the full list of these icons](/material-ui/material-icons/).
Run one of the following commands to install it and save it to your `package.json` dependencies:
+:::info
+The `next` tag is used to download the latest pre-release, v6 version. Remove it to get the current stable version.
+:::
+
+
+
```bash npm
-npm install @mui/icons-material
+npm install @mui/icons-material@next
```
```bash yarn
-yarn add @mui/icons-material
+yarn add @mui/icons-material@next
```
```bash pnpm
-pnpm add @mui/icons-material
+pnpm add @mui/icons-material@next
```
diff --git a/docs/data/material/components/material-icons/material-icons.md b/docs/data/material/components/material-icons/material-icons.md
index fcc8997547c097..bb54929acc1204 100644
--- a/docs/data/material/components/material-icons/material-icons.md
+++ b/docs/data/material/components/material-icons/material-icons.md
@@ -18,18 +18,24 @@ includes the 2,100+ official [Material Icons](https://fonts.google.com/icons?ico
It depends on `@mui/material`, which requires Emotion packages.
Use one of the following commands to install it:
+:::info
+The `next` tag is used to download the latest pre-release, v6 version. Remove it to get the current stable version.
+:::
+
+
+
```bash npm
-npm install @mui/icons-material @mui/material @emotion/styled @emotion/react
+npm install @mui/icons-material@next @mui/material@next @emotion/styled @emotion/react
```
```bash yarn
-yarn add @mui/icons-material @mui/material @emotion/styled @emotion/react
+yarn add @mui/icons-material@next @mui/material@next @emotion/styled @emotion/react
```
```bash pnpm
-pnpm add @mui/icons-material @mui/material @emotion/styled @emotion/react
+pnpm add @mui/icons-material@next @mui/material@next @emotion/styled @emotion/react
```
diff --git a/docs/data/material/components/progress/progress.md b/docs/data/material/components/progress/progress.md
index 45deb2642dd285..a21cf09fa9e0ce 100644
--- a/docs/data/material/components/progress/progress.md
+++ b/docs/data/material/components/progress/progress.md
@@ -142,7 +142,7 @@ You can solve the latter with:
@keyframes circular-rotate {
0% {
transform: rotate(0deg);
- /* Fix IE11 wobbly */
+ /* Fix IE 11 wobbly */
transform-origin: 50% 50%;
}
100% {
diff --git a/docs/data/material/components/slider/DiscreteSliderValues.js b/docs/data/material/components/slider/DiscreteSliderValues.js
index 7a801e3ad05619..82aa964ab98eb4 100644
--- a/docs/data/material/components/slider/DiscreteSliderValues.js
+++ b/docs/data/material/components/slider/DiscreteSliderValues.js
@@ -25,17 +25,12 @@ function valuetext(value) {
return `${value}°C`;
}
-function valueLabelFormat(value) {
- return marks.findIndex((mark) => mark.value === value) + 1;
-}
-
export default function DiscreteSliderValues() {
return (
mark.value === value) + 1;
-}
-
export default function DiscreteSliderValues() {
return (
[
{
diff --git a/docs/data/material/getting-started/installation/installation.md b/docs/data/material/getting-started/installation/installation.md
index ffcc22d222f0dc..5be405621bd99a 100644
--- a/docs/data/material/getting-started/installation/installation.md
+++ b/docs/data/material/getting-started/installation/installation.md
@@ -6,18 +6,24 @@
Run one of the following commands to add Material UI to your project:
+:::info
+The `next` tag is used to download the latest pre-release, v6 version. Remove it to get the current stable version.
+:::
+
+
+
```bash npm
-npm install @mui/material @emotion/react @emotion/styled
+npm install @mui/material@next @emotion/react @emotion/styled
```
```bash yarn
-yarn add @mui/material @emotion/react @emotion/styled
+yarn add @mui/material@next @emotion/react @emotion/styled
```
```bash pnpm
-pnpm add @mui/material @emotion/react @emotion/styled
+pnpm add @mui/material@next @emotion/react @emotion/styled
```
diff --git a/docs/data/material/getting-started/supported-platforms/supported-platforms.md b/docs/data/material/getting-started/supported-platforms/supported-platforms.md
index 735db9911dafaa..51b971f5c4e50e 100644
--- a/docs/data/material/getting-started/supported-platforms/supported-platforms.md
+++ b/docs/data/material/getting-started/supported-platforms/supported-platforms.md
@@ -9,9 +9,9 @@ You don't need to provide any JavaScript polyfill as it manages unsupported brow
-| Edge | Firefox | Chrome | Safari (macOS) | Safari (iOS) | IE |
-| :---- | :------ | :----- | :------------- | :----------- | :------------------- |
-| >= 91 | >= 78 | >= 90 | >= 14 | >= 12.5 | 11 (partial support) |
+| Edge | Firefox | Chrome | Safari (macOS) | Safari (iOS) | IE |
+| :----- | :------ | :----- | :------------- | :----------- | :------------------- |
+| >= 121 | >= 115 | >= 109 | >= 15.4 | >= 15.4 | 11 (partial support) |
diff --git a/docs/data/material/getting-started/templates/blog/README.md b/docs/data/material/getting-started/templates/blog/README.md
index c582b088659a33..f2305a49255eec 100644
--- a/docs/data/material/getting-started/templates/blog/README.md
+++ b/docs/data/material/getting-started/templates/blog/README.md
@@ -4,7 +4,7 @@
-1. Copy the files into your project, or one of the [example projects](https://github.com/mui/material-ui/tree/master/examples).
+1. Copy the files into your project, or one of the [example projects](https://github.com/mui/material-ui/tree/next/examples).
2. Make sure your project has the required dependencies: @mui/material, @mui/icons-material, @emotion/styled, @emotion/react, markdown-to-jsx.
3. Import and use the `Blog` component.
@@ -12,4 +12,4 @@
-View the demo at https://mui.com/material-ui/getting-started/templates/blog/.
+View the demo at https://next.mui.com/material-ui/getting-started/templates/blog/.
diff --git a/docs/data/material/getting-started/templates/checkout/README.md b/docs/data/material/getting-started/templates/checkout/README.md
index 9b6fb03b6cce10..1e23cde07e4e70 100644
--- a/docs/data/material/getting-started/templates/checkout/README.md
+++ b/docs/data/material/getting-started/templates/checkout/README.md
@@ -4,7 +4,7 @@
-1. Copy the files into your project, or one of the [example projects](https://github.com/mui/material-ui/tree/master/examples).
+1. Copy the files into your project, or one of the [example projects](https://github.com/mui/material-ui/tree/next/examples).
2. Make sure your project has the required dependencies: @mui/material, @emotion/styled, @emotion/react.
3. Import and use the `Checkout` component.
@@ -12,4 +12,4 @@
-View the demo at https://mui.com/material-ui/getting-started/templates/checkout/.
+View the demo at https://next.mui.com/material-ui/getting-started/templates/checkout/.
diff --git a/docs/data/material/getting-started/templates/dashboard/README.md b/docs/data/material/getting-started/templates/dashboard/README.md
index 3415051ae20be5..56b0c8c1bbdbf7 100644
--- a/docs/data/material/getting-started/templates/dashboard/README.md
+++ b/docs/data/material/getting-started/templates/dashboard/README.md
@@ -4,7 +4,7 @@
-1. Copy the files into your project, or one of the [example projects](https://github.com/mui/material-ui/tree/master/examples).
+1. Copy the files into your project, or one of the [example projects](https://github.com/mui/material-ui/tree/next/examples).
2. Make sure your project has the required dependencies: @mui/material, @mui/icons-material, @emotion/styled, @emotion/react, @mui/x-charts.
3. Import and use the `Dashboard` component.
@@ -12,4 +12,4 @@
-View the demo at https://mui.com/material-ui/getting-started/templates/dashboard/.
+View the demo at https://next.mui.com/material-ui/getting-started/templates/dashboard/.
diff --git a/docs/data/material/getting-started/templates/landing-page/README.md b/docs/data/material/getting-started/templates/landing-page/README.md
index 23250f5a04f07c..618f90ce5939ef 100644
--- a/docs/data/material/getting-started/templates/landing-page/README.md
+++ b/docs/data/material/getting-started/templates/landing-page/README.md
@@ -4,7 +4,7 @@
-1. Copy the files into your project, or one of the [example projects](https://github.com/mui/material-ui/tree/master/examples).
+1. Copy the files into your project, or one of the [example projects](https://github.com/mui/material-ui/tree/next/examples).
2. Make sure your project has the required dependencies: @mui/material, @mui/icons-material, @emotion/styled, @emotion/react.
3. Import and use the `LandingPage` component.
@@ -12,4 +12,4 @@
-View the demo at https://mui.com/material-ui/getting-started/templates/landing-page/.
+View the demo at https://next.mui.com/material-ui/getting-started/templates/landing-page/.
diff --git a/docs/data/material/getting-started/templates/pricing/README.md b/docs/data/material/getting-started/templates/pricing/README.md
index f0c845cb6368a3..e5b41bad100a87 100644
--- a/docs/data/material/getting-started/templates/pricing/README.md
+++ b/docs/data/material/getting-started/templates/pricing/README.md
@@ -4,7 +4,7 @@
-1. Copy the files into your project, or one of the [example projects](https://github.com/mui/material-ui/tree/master/examples).
+1. Copy the files into your project, or one of the [example projects](https://github.com/mui/material-ui/tree/next/examples).
2. Make sure your project has the required dependencies: @mui/material, @mui/icons-material, @emotion/styled, @emotion/react.
3. Import and use the `Pricing` component.
@@ -12,4 +12,4 @@
-View the demo at https://mui.com/material-ui/getting-started/templates/pricing/.
+View the demo at https://next.mui.com/material-ui/getting-started/templates/pricing/.
diff --git a/docs/data/material/getting-started/templates/sign-in-side/Content.js b/docs/data/material/getting-started/templates/sign-in-side/Content.js
new file mode 100644
index 00000000000000..f656245d4816c1
--- /dev/null
+++ b/docs/data/material/getting-started/templates/sign-in-side/Content.js
@@ -0,0 +1,71 @@
+import * as React from 'react';
+import Stack from '@mui/material/Stack';
+import Typography from '@mui/material/Typography';
+
+import AutoFixHighRoundedIcon from '@mui/icons-material/AutoFixHighRounded';
+import ConstructionRoundedIcon from '@mui/icons-material/ConstructionRounded';
+import SettingsSuggestRoundedIcon from '@mui/icons-material/SettingsSuggestRounded';
+import ThumbUpAltRoundedIcon from '@mui/icons-material/ThumbUpAltRounded';
+
+import { SitemarkIcon } from './CustomIcons';
+
+const items = [
+ {
+ icon: ,
+ title: 'Adaptable performance',
+ description:
+ 'Our product effortlessly adjusts to your needs, boosting efficiency and simplifying your tasks.',
+ },
+ {
+ icon: ,
+ title: 'Built to last',
+ description:
+ 'Experience unmatched durability that goes above and beyond with lasting investment.',
+ },
+ {
+ icon: ,
+ title: 'Great user experience',
+ description:
+ 'Integrate our product into your routine with an intuitive and easy-to-use interface.',
+ },
+ {
+ icon: ,
+ title: 'Innovative functionality',
+ description:
+ 'Stay ahead with features that set new standards, addressing your evolving needs better than the rest.',
+ },
+];
+
+export default function Content() {
+ return (
+
+
+ {items.map((item) => (
+
+ {item.icon}
+
+
+ {item.title}
+
+
+ {item.description}
+
+
+
+ ))}
+
+ );
+}
diff --git a/docs/data/material/getting-started/templates/sign-in-side/Content.tsx b/docs/data/material/getting-started/templates/sign-in-side/Content.tsx
new file mode 100644
index 00000000000000..f656245d4816c1
--- /dev/null
+++ b/docs/data/material/getting-started/templates/sign-in-side/Content.tsx
@@ -0,0 +1,71 @@
+import * as React from 'react';
+import Stack from '@mui/material/Stack';
+import Typography from '@mui/material/Typography';
+
+import AutoFixHighRoundedIcon from '@mui/icons-material/AutoFixHighRounded';
+import ConstructionRoundedIcon from '@mui/icons-material/ConstructionRounded';
+import SettingsSuggestRoundedIcon from '@mui/icons-material/SettingsSuggestRounded';
+import ThumbUpAltRoundedIcon from '@mui/icons-material/ThumbUpAltRounded';
+
+import { SitemarkIcon } from './CustomIcons';
+
+const items = [
+ {
+ icon: ,
+ title: 'Adaptable performance',
+ description:
+ 'Our product effortlessly adjusts to your needs, boosting efficiency and simplifying your tasks.',
+ },
+ {
+ icon: ,
+ title: 'Built to last',
+ description:
+ 'Experience unmatched durability that goes above and beyond with lasting investment.',
+ },
+ {
+ icon: ,
+ title: 'Great user experience',
+ description:
+ 'Integrate our product into your routine with an intuitive and easy-to-use interface.',
+ },
+ {
+ icon: ,
+ title: 'Innovative functionality',
+ description:
+ 'Stay ahead with features that set new standards, addressing your evolving needs better than the rest.',
+ },
+];
+
+export default function Content() {
+ return (
+
+
+ {items.map((item) => (
+
+ {item.icon}
+
This guide explains how and why to migrate from Material UI v5 to v6.
+
+## Start using the alpha release
+
+In the `package.json` file, change the package version from `latest` to `next`.
+
+```diff title="package.json"
+-"@mui/material": "latest",
++"@mui/material": "next",
+```
+
+Using `next` ensures your project always uses the latest v6 alpha release.
+Alternatively, you can also target and fix it to a specific version, for example, `6.0.0-alpha.0`.
+
+## Breaking changes
+
+Since v6 is a new major release, it contains some changes that affect the public API.
+The steps you need to take to migrate from Material UI v5 to v6 are described below.
+
+:::info
+This list is a work in progress.
+Expect updates as new breaking changes are introduced.
+:::
diff --git a/docs/data/material/pages.ts b/docs/data/material/pages.ts
index f8b1c0914d34cb..ee15159b9f27f6 100644
--- a/docs/data/material/pages.ts
+++ b/docs/data/material/pages.ts
@@ -195,11 +195,6 @@ const pages: MuiPage[] = [
pathname: '/material-ui/guides',
title: 'How-to guides',
children: [
- {
- pathname: '/material-ui/guides/material-3-components',
- title: 'Material Design 3 components',
- newFeature: true,
- },
{ pathname: '/material-ui/guides/minimizing-bundle-size' },
{ pathname: '/material-ui/guides/server-rendering' },
{ pathname: '/material-ui/guides/responsive-ui', title: 'Responsive UI' },
@@ -274,6 +269,16 @@ const pages: MuiPage[] = [
pathname: '/material-ui/migration/pickers-migration',
title: 'Migration from @material-ui/pickers',
},
+ {
+ pathname: '/material-ui/migration/v6',
+ subheader: 'Upgrade to v6',
+ children: [
+ {
+ pathname: '/material-ui/migration/migration-v5',
+ title: 'Migrating to v6',
+ },
+ ],
+ },
{
pathname: '/material-ui/migration/v5',
subheader: 'Upgrade to v5',
diff --git a/docs/data/styles/advanced/advanced.md b/docs/data/styles/advanced/advanced.md
index 5e5d2bfea0009d..f56a62d16ac91b 100644
--- a/docs/data/styles/advanced/advanced.md
+++ b/docs/data/styles/advanced/advanced.md
@@ -417,16 +417,12 @@ It's a must-do for static pages, but it needs to be put in balance with not doin
There is [an official Gatsby plugin](https://github.com/hupe1980/gatsby-plugin-material-ui) that enables server-side rendering for `@mui/styles`.
Refer to the plugin's page for setup and usage instructions.
-
-
Refer to [this example Gatsby project](https://github.com/mui/material-ui/tree/v4.x/examples/gatsby) for an usage example.
### Next.js Pages Router
You need to have a custom `pages/_document.js`, then copy [this logic](https://github.com/mui/material-ui/blob/v4.x/examples/nextjs/pages/_document.js#L52-L59) to inject the server-side rendered styles into the `` element.
-
-
Refer to [this example project](https://github.com/mui/material-ui/tree/v4.x/examples/nextjs) for an up-to-date usage example.
## Class names
diff --git a/docs/data/styles/basics/basics.md b/docs/data/styles/basics/basics.md
index f654a750ce5d72..deab3798fbaeb8 100644
--- a/docs/data/styles/basics/basics.md
+++ b/docs/data/styles/basics/basics.md
@@ -17,10 +17,14 @@ Please use [`@mui/system`](/system/getting-started/) instead.
To install and save in your `package.json` dependencies, run:
+:::info
+The `next` tag is used to download the latest pre-release, v6 version. Remove it to get the current stable version.
+:::
+
```bash
-npm install @mui/styles
+npm install @mui/styles@next
```
## Getting started
diff --git a/docs/data/system/experimental-api/css-theme-variables/CreateCssVarsProvider.js b/docs/data/system/experimental-api/css-theme-variables/CreateCssVarsProvider.js
index 29dc5a22612732..7a051d679ec189 100644
--- a/docs/data/system/experimental-api/css-theme-variables/CreateCssVarsProvider.js
+++ b/docs/data/system/experimental-api/css-theme-variables/CreateCssVarsProvider.js
@@ -35,7 +35,7 @@ const darkColorScheme = {
};
function extendTheme({ cssVarPrefix = 'system-demo' } = {}) {
- const { vars: themeVars, generateCssVars } = prepareCssVars(
+ const { vars: themeVars, ...params } = prepareCssVars(
{
colorSchemes: {
light: lightColorScheme,
@@ -54,11 +54,11 @@ function extendTheme({ cssVarPrefix = 'system-demo' } = {}) {
// ... any other objects independent of color-scheme,
// like fontSizes, spacing etc
vars: themeVars,
- generateCssVars,
palette: {
...lightColorScheme.palette,
colorScheme: 'light',
},
+ ...params,
};
return theme;
diff --git a/docs/data/system/experimental-api/css-theme-variables/CreateCssVarsProvider.tsx b/docs/data/system/experimental-api/css-theme-variables/CreateCssVarsProvider.tsx
index 3ffe7c60179c68..489ad641a0bbc5 100644
--- a/docs/data/system/experimental-api/css-theme-variables/CreateCssVarsProvider.tsx
+++ b/docs/data/system/experimental-api/css-theme-variables/CreateCssVarsProvider.tsx
@@ -13,9 +13,7 @@ type Theme = {
palette: {
colorScheme: 'light' | 'dark';
} & (typeof lightColorScheme)['palette'];
- vars: ReturnType['vars'];
- generateCssVars: ReturnType['generateCssVars'];
-};
+} & ReturnType;
const lightColorScheme = {
palette: {
@@ -47,7 +45,7 @@ const darkColorScheme = {
};
function extendTheme({ cssVarPrefix = 'system-demo' } = {}) {
- const { vars: themeVars, generateCssVars } = prepareCssVars(
+ const { vars: themeVars, ...params } = prepareCssVars(
{
colorSchemes: {
light: lightColorScheme,
@@ -66,11 +64,11 @@ function extendTheme({ cssVarPrefix = 'system-demo' } = {}) {
// ... any other objects independent of color-scheme,
// like fontSizes, spacing etc
vars: themeVars,
- generateCssVars,
palette: {
...lightColorScheme.palette,
colorScheme: 'light',
},
+ ...params,
};
return theme;
diff --git a/docs/data/system/getting-started/installation/installation.md b/docs/data/system/getting-started/installation/installation.md
index 3fe69f67219c12..325db1402f6063 100644
--- a/docs/data/system/getting-started/installation/installation.md
+++ b/docs/data/system/getting-started/installation/installation.md
@@ -6,18 +6,20 @@
Run one of the following commands to add MUI System to your project:
+
+
```bash npm
-npm install @mui/system @emotion/react @emotion/styled
+npm install @mui/system@next @emotion/react @emotion/styled
```
```bash yarn
-yarn add @mui/system @emotion/react @emotion/styled
+yarn add @mui/system@next @emotion/react @emotion/styled
```
```bash pnpm
-pnpm add @mui/system @emotion/react @emotion/styled
+pnpm add @mui/system@next @emotion/react @emotion/styled
```
@@ -39,18 +41,24 @@ Please note that [react](https://www.npmjs.com/package/react) is a peer dependen
MUI System uses [Emotion](https://emotion.sh/docs/introduction) as its default styling engine.
If you want to use [styled-components](https://styled-components.com/) instead, run one of the following commands:
+:::info
+The `next` tag is used to download the latest pre-release, v6 version. Remove it to get the current stable version.
+:::
+
+
+
```bash npm
-npm install @mui/system @mui/styled-engine-sc styled-components
+npm install @mui/system@next @mui/styled-engine-sc@next styled-components
```
```bash yarn
-yarn add @mui/system @mui/styled-engine-sc styled-components
+yarn add @mui/system@next @mui/styled-engine-sc@next styled-components
```
```bash pnpm
-pnpm add @mui/system @mui/styled-engine-sc styled-components
+pnpm add @mui/system@next @mui/styled-engine-sc@next styled-components
```
diff --git a/docs/data/system/getting-started/usage/usage.md b/docs/data/system/getting-started/usage/usage.md
index 5c2603a88cde17..487340ad2b1585 100644
--- a/docs/data/system/getting-started/usage/usage.md
+++ b/docs/data/system/getting-started/usage/usage.md
@@ -163,7 +163,7 @@ Runtime performance takes a hit.
-Visit the [benchmark folder](https://github.com/mui/material-ui/tree/master/benchmark/browser) for a reproduction of the metrics above.
+Visit the [benchmark folder](https://github.com/mui/material-ui/tree/next/benchmark/browser) for a reproduction of the metrics above.
We believe that for most use cases it's fast enough, but there are simple workarounds when performance becomes critical.
For instance, when rendering a list with many items, you can use a CSS child selector to have a single "style injection" point (using d. for the wrapper and a. for each item).
diff --git a/docs/data/system/migration/migration-v5/migration-v5.md b/docs/data/system/migration/migration-v5/migration-v5.md
new file mode 100644
index 00000000000000..dc9fa51622a50c
--- /dev/null
+++ b/docs/data/system/migration/migration-v5/migration-v5.md
@@ -0,0 +1,41 @@
+# Migrating to v6
+
+
This guide explains how and why to migrate from MUI System v5 to v6.
+
+## Start using the alpha release
+
+In the `package.json` file, change the package version from `latest` to `next`.
+
+```diff title="package.json"
+-"@mui/system": "latest",
++"@mui/system": "next",
+```
+
+Using `next` ensures your project always uses the latest v6 alpha release.
+Alternatively, you can also target and fix it to a specific version, for example, `6.0.0-alpha.0`.
+
+## Breaking changes
+
+Since v6 is a new major release, it contains some changes that affect the public API.
+The steps you need to take to migrate from MUI System v5 to v6 are described below.
+
+:::info
+This list is a work in progress.
+Expect updates as new breaking changes are introduced.
+:::
+
+### Root code is now ESM
+
+The ESM code, previously under the `esm/` build, has been moved to the root of the package.
+The CommonJS code, previously on the root, has been moved to the `node/` build.
+
+:::info
+This is an intermediate step to prepare for adding the `exports` field to the `package.json` file.
+If you have trouble using this new structure, please wait for the future update which adds the `exports` field.
+You can follow progress on https://github.com/mui/material-ui/issues/30671.
+:::
+
+### GridProps type
+
+The `cssGrid` function's `GridProps` type has been renamed to `CssGridProps`.
+This is to avoid collision with the `GridProps` type corresponding to the `Grid` component props.
diff --git a/docs/data/system/pages.ts b/docs/data/system/pages.ts
index bb0128c4abd2e1..d55ef46cced61c 100644
--- a/docs/data/system/pages.ts
+++ b/docs/data/system/pages.ts
@@ -42,6 +42,16 @@ const pages: readonly MuiPage[] = [
{ pathname: '/system/react-stack', title: 'Stack' },
],
},
+ {
+ pathname: '/system/migration',
+ title: 'Migration',
+ children: [
+ {
+ pathname: '/system/migration/migration-v5',
+ title: 'Migrating to v6',
+ },
+ ],
+ },
{
title: 'APIs',
pathname: '/system/api',
diff --git a/docs/mui-vale/styles/MUI/MuiBrandName.yml b/docs/mui-vale/styles/MUI/MuiBrandName.yml
index 3a5251f2ccf622..b5274f773657c7 100644
--- a/docs/mui-vale/styles/MUI/MuiBrandName.yml
+++ b/docs/mui-vale/styles/MUI/MuiBrandName.yml
@@ -3,7 +3,7 @@
# For example, Apple does this meticulously with their brand name: https://www.apple.com/macbook-air/.
# Also read https://www.chrisdpeters.com/blog/using-non-breaking-spaces-to-help-with-branding/ for why.
extends: substitution
-message: Use a non-breaking space for brand name ('%s' instead of '%s')
+message: Use a non-breaking space (option+space on Mac, Alt+0160 on Windows or AltGr+Space on Linux, instead of space) for brand name ('%s' instead of '%s')
level: error
ignorecase: true
# swap maps tokens in form of bad: good
diff --git a/docs/next.config.mjs b/docs/next.config.mjs
index af21536fa13b78..825504dbeb620f 100644
--- a/docs/next.config.mjs
+++ b/docs/next.config.mjs
@@ -189,7 +189,7 @@ export default withDocsInfra({
// docs-infra
LIB_VERSION: pkg.version,
SOURCE_CODE_REPO: 'https://github.com/mui/material-ui',
- SOURCE_GITHUB_BRANCH: 'master', // #default-branch-switch
+ SOURCE_GITHUB_BRANCH: 'next', // #default-branch-switch
GITHUB_TEMPLATE_DOCS_FEEDBACK: '4.docs-feedback.yml',
BUILD_ONLY_ENGLISH_LOCALE: String(buildOnlyEnglishLocale),
// MUI Core related
diff --git a/docs/notifications.json b/docs/notifications.json
index 0a0682df5b747e..149da78cf1a4bf 100644
--- a/docs/notifications.json
+++ b/docs/notifications.json
@@ -17,6 +17,6 @@
{
"id": 81,
"title": "Introducing MUI X v7",
- "text": "This new version is packed with new components, exciting features, improved usability, and developer experience. Check out the announcement blog post."
+ "text": "The new version is packed with new components, exciting features, improved usability, and developer experience. Check out the announcement blog post."
}
]
diff --git a/docs/package.json b/docs/package.json
index 653dc392d2682b..d309a8556c2336 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -9,7 +9,7 @@
"build:clean": "rimraf .next && pnpm build",
"build-sw": "node ./scripts/buildServiceWorker.js",
"dev": "next dev",
- "deploy": "git push -f material-ui-docs master:latest",
+ "deploy": "git push -f material-ui-docs next:next",
"icons": "rimraf --glob public/static/icons/* && node ./scripts/buildIcons.js",
"start": "next start",
"create-playground": "cpy --cwd=scripts playground.template.tsx ../../pages/playground --rename=index.tsx",
@@ -44,18 +44,18 @@
"@mui/system": "workspace:^",
"@mui/types": "workspace:^",
"@mui/utils": "workspace:^",
- "@mui/x-charts": "6.19.5",
- "@mui/x-data-grid": "7.0.0-beta.7",
- "@mui/x-data-grid-generator": "7.0.0-beta.7",
- "@mui/x-data-grid-premium": "7.0.0-beta.7",
- "@mui/x-data-grid-pro": "7.0.0-beta.7",
- "@mui/x-date-pickers": "6.19.7",
- "@mui/x-date-pickers-pro": "6.19.7",
+ "@mui/x-charts": "6.19.8",
+ "@mui/x-data-grid": "7.0.0",
+ "@mui/x-data-grid-generator": "7.0.0",
+ "@mui/x-data-grid-premium": "7.0.0",
+ "@mui/x-data-grid-pro": "7.0.0",
+ "@mui/x-date-pickers": "6.19.8",
+ "@mui/x-date-pickers-pro": "6.19.8",
"@mui/x-license-pro": "6.10.2",
"@mui/x-tree-view": "6.17.0",
"@popperjs/core": "^2.11.8",
"@react-spring/web": "^9.7.3",
- "autoprefixer": "^10.4.18",
+ "autoprefixer": "^10.4.19",
"autosuggest-highlight": "^3.3.4",
"babel-plugin-module-resolver": "^5.0.0",
"babel-plugin-optimize-clsx": "^2.6.2",
@@ -80,12 +80,12 @@
"jss-rtl": "^0.3.0",
"lodash": "^4.17.21",
"lz-string": "^1.5.0",
- "markdown-to-jsx": "^7.4.3",
+ "markdown-to-jsx": "^7.4.5",
"material-ui-popup-state": "^5.0.10",
"next": "^13.5.1",
"notistack": "3.0.1",
"nprogress": "^0.2.0",
- "postcss": "^8.4.35",
+ "postcss": "^8.4.38",
"postcss-import": "^15.1.0",
"prop-types": "^15.8.1",
"react": "^18.2.0",
@@ -119,11 +119,11 @@
"@mui/internal-scripts": "workspace:^",
"@mui-internal/test-utils": "workspace:^",
"@types/autosuggest-highlight": "^3.2.3",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/css-mediaquery": "^0.1.4",
"@types/json2mq": "^0.2.2",
- "@types/node": "^18.19.25",
- "@types/prop-types": "^15.7.11",
+ "@types/node": "^18.19.28",
+ "@types/prop-types": "^15.7.12",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
"@types/react-swipeable-views": "^0.13.5",
diff --git a/docs/pages/_app.js b/docs/pages/_app.js
index 1fde5b141d7e4d..368a3b67247530 100644
--- a/docs/pages/_app.js
+++ b/docs/pages/_app.js
@@ -171,6 +171,7 @@ function AppWrapper(props) {
href: `https://next.mui.com${languagePrefix}/material-ui/getting-started/`,
},
{ text: `v${materialPkgJson.version}`, current: true },
+ { text: `v5`, href: `https://mui.com${languagePrefix}/material-ui/getting-started/` },
{
text: 'v4',
href: `https://v4.mui.com${languagePrefix}/getting-started/installation/`,
@@ -201,6 +202,7 @@ function AppWrapper(props) {
href: `https://next.mui.com${languagePrefix}/system/getting-started/`,
},
{ text: `v${systemPkgJson.version}`, current: true },
+ { text: 'v5', href: `https://mui.com${languagePrefix}/system/getting-started/` },
{ text: 'v4', href: `https://v4.mui.com${languagePrefix}/system/basics/` },
{
text: 'View all versions',
diff --git a/docs/pages/_document.js b/docs/pages/_document.js
index ecd5633bf5a5b3..a800959e8aa63b 100644
--- a/docs/pages/_document.js
+++ b/docs/pages/_document.js
@@ -9,7 +9,7 @@ import { getInitColorSchemeScript as getMuiInitColorSchemeScript } from '@mui/ma
import { getInitColorSchemeScript as getJoyInitColorSchemeScript } from '@mui/joy/styles';
import { pathnameToLanguage } from 'docs/src/modules/utils/helpers';
import createEmotionCache from 'docs/src/createEmotionCache';
-import { getMetaThemeColor } from 'docs/src/modules/brandingTheme';
+import { getMetaThemeColor } from '@mui/docs/branding';
// You can find a benchmark of the available CSS minifiers under
// https://github.com/GoalSmashers/css-minification-benchmark
diff --git a/docs/pages/blog/2020.md b/docs/pages/blog/2020.md
index 97e953f791cd04..ec3f7aee46de80 100644
--- a/docs/pages/blog/2020.md
+++ b/docs/pages/blog/2020.md
@@ -85,7 +85,7 @@ We will release the next major iteration of the library. A highlight of the key
- Breaking changes on the API to make it more intuitive.
- Add full support for React strict mode. We recommend to enable it.
- Improve the performance of MUI System by a x3-x5 [factor](https://github.com/mui/material-ui/issues/21657#issuecomment-707140999).
-- Reduce bundle size: split IE11 into a different bundle [-6kB](https://github.com/mui/material-ui/pull/22814#issuecomment-700995216), migrate to Emotion [-5kB](https://github.com/mui/material-ui/pull/23308#issuecomment-718748835), Popper.js v2 upgrade [-700B](https://github.com/mui/material-ui/pull/21761#issuecomment-657135498).
+- Reduce bundle size: split IE 11 into a different bundle [-6kB](https://github.com/mui/material-ui/pull/22814#issuecomment-700995216), migrate to Emotion [-5kB](https://github.com/mui/material-ui/pull/23308#issuecomment-718748835), Popper.js v2 upgrade [-700B](https://github.com/mui/material-ui/pull/21761#issuecomment-657135498).
- Improve the documentation website: search shortcut, page rating, fast material icons copy button, etc.
And [much more](https://github.com/mui/material-ui/issues/20012).
diff --git a/docs/pages/careers.tsx b/docs/pages/careers.tsx
index f4d2472df7dfa9..c1abb1f4579da4 100644
--- a/docs/pages/careers.tsx
+++ b/docs/pages/careers.tsx
@@ -2,7 +2,7 @@ import * as React from 'react';
import { styled, alpha } from '@mui/material/styles';
import Box from '@mui/material/Box';
import Divider from '@mui/material/Divider';
-import Grid from '@mui/material/Grid';
+import Grid from '@mui/material/Unstable_Grid2';
import Stack from '@mui/material/Stack';
import Paper from '@mui/material/Paper';
import Button from '@mui/material/Button';
@@ -339,12 +339,13 @@ function RemoteAwardCard() {
>
{/* Perks & benefits */}
-
+
-
+
-
-
-
-
-
-
-
- {companyInfo.map(({ title, description, routeUrl }) => (
-
-
- {title}
-
-
- {description}
-
-
- Learn more{' '}
-
-
-
- ))}
-
-
-
+
+
+
+ {companyInfo.map(({ title, description, routeUrl }) => (
+
+
+ {title}
+
+
+ {description}
+
+
+ Learn more{' '}
+
+
+
+ ))}
+
@@ -584,11 +588,11 @@ export default function Careers() {
Frequently asked questions
-
+
{renderFAQItem(0, true)}
{renderFAQItem(1)}
-
+
{renderFAQItem(2)}
+
+
+
+
+
+
diff --git a/docs/pages/material-ui/api/backdrop.json b/docs/pages/material-ui/api/backdrop.json
index 318540dc332363..8f868d0823d1ac 100644
--- a/docs/pages/material-ui/api/backdrop.json
+++ b/docs/pages/material-ui/api/backdrop.json
@@ -14,11 +14,17 @@
},
"invisible": { "type": { "name": "bool" }, "default": "false" },
"slotProps": {
- "type": { "name": "shape", "description": "{ root?: object }" },
+ "type": {
+ "name": "shape",
+ "description": "{ root?: func | object, transition?: func | object }"
+ },
"default": "{}"
},
"slots": {
- "type": { "name": "shape", "description": "{ root?: elementType }" },
+ "type": {
+ "name": "shape",
+ "description": "{ root?: elementType, transition?: elementType }"
+ },
"default": "{}"
},
"sx": {
@@ -28,7 +34,12 @@
},
"additionalInfo": { "sx": true }
},
- "TransitionComponent": { "type": { "name": "elementType" }, "default": "Fade" },
+ "TransitionComponent": {
+ "type": { "name": "elementType" },
+ "default": "Fade",
+ "deprecated": true,
+ "deprecationInfo": "Use slots.transition instead. This prop will be removed in v7. How to migrate."
+ },
"transitionDuration": {
"type": {
"name": "union",
@@ -41,18 +52,26 @@
"import Backdrop from '@mui/material/Backdrop';",
"import { Backdrop } from '@mui/material';"
],
+ "slots": [
+ {
+ "name": "root",
+ "description": "The component that renders the root.",
+ "default": "'div'",
+ "class": "MuiBackdrop-root"
+ },
+ {
+ "name": "transition",
+ "description": "The component that renders the transition.\n[Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.",
+ "default": "Fade",
+ "class": null
+ }
+ ],
"classes": [
{
"key": "invisible",
"className": "MuiBackdrop-invisible",
"description": "Styles applied to the root element if `invisible={true}`.",
"isGlobal": false
- },
- {
- "key": "root",
- "className": "MuiBackdrop-root",
- "description": "Styles applied to the root element.",
- "isGlobal": false
}
],
"spread": true,
diff --git a/docs/pages/material-ui/api/badge.json b/docs/pages/material-ui/api/badge.json
index 8a4b1b694ac28f..9f3612604ff53f 100644
--- a/docs/pages/material-ui/api/badge.json
+++ b/docs/pages/material-ui/api/badge.json
@@ -20,14 +20,18 @@
"component": { "type": { "name": "elementType" } },
"components": {
"type": { "name": "shape", "description": "{ Badge?: elementType, Root?: elementType }" },
- "default": "{}"
+ "default": "{}",
+ "deprecated": true,
+ "deprecationInfo": "use the slots prop instead. This prop will be removed in v7. How to migrate."
},
"componentsProps": {
"type": {
"name": "shape",
"description": "{ badge?: func | object, root?: func | object }"
},
- "default": "{}"
+ "default": "{}",
+ "deprecated": true,
+ "deprecationInfo": "use the slotProps prop instead. This prop will be removed in v7. How to migrate."
},
"invisible": { "type": { "name": "bool" }, "default": "false" },
"max": { "type": { "name": "number" }, "default": "99" },
diff --git a/docs/pages/material-ui/api/button-group.json b/docs/pages/material-ui/api/button-group.json
index 16a90311dfbd13..88121829c7f353 100644
--- a/docs/pages/material-ui/api/button-group.json
+++ b/docs/pages/material-ui/api/button-group.json
@@ -47,6 +47,18 @@
"import { ButtonGroup } from '@mui/material';"
],
"classes": [
+ {
+ "key": "colorPrimary",
+ "className": "MuiButtonGroup-colorPrimary",
+ "description": "Styles applied to the root element if `color=\"primary\"`",
+ "isGlobal": false
+ },
+ {
+ "key": "colorSecondary",
+ "className": "MuiButtonGroup-colorSecondary",
+ "description": "Styles applied to the root element if `color=\"secondary\"`",
+ "isGlobal": false
+ },
{
"key": "contained",
"className": "MuiButtonGroup-contained",
@@ -87,102 +99,125 @@
"key": "groupedContained",
"className": "MuiButtonGroup-groupedContained",
"description": "Styles applied to the children if `variant=\"contained\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedContainedHorizontal",
"className": "MuiButtonGroup-groupedContainedHorizontal",
"description": "Styles applied to the children if `variant=\"contained\"` and `orientation=\"horizontal\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedContainedPrimary",
"className": "MuiButtonGroup-groupedContainedPrimary",
"description": "Styles applied to the children if `variant=\"contained\"` and `color=\"primary\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedContainedSecondary",
"className": "MuiButtonGroup-groupedContainedSecondary",
"description": "Styles applied to the children if `variant=\"contained\"` and `color=\"secondary\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedContainedVertical",
"className": "MuiButtonGroup-groupedContainedVertical",
"description": "Styles applied to the children if `variant=\"contained\"` and `orientation=\"vertical\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedHorizontal",
"className": "MuiButtonGroup-groupedHorizontal",
"description": "Styles applied to the children if `orientation=\"horizontal\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedOutlined",
"className": "MuiButtonGroup-groupedOutlined",
"description": "Styles applied to the children if `variant=\"outlined\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedOutlinedHorizontal",
"className": "MuiButtonGroup-groupedOutlinedHorizontal",
"description": "Styles applied to the children if `variant=\"outlined\"` and `orientation=\"horizontal\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedOutlinedPrimary",
"className": "MuiButtonGroup-groupedOutlinedPrimary",
"description": "Styles applied to the children if `variant=\"outlined\"` and `color=\"primary\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedOutlinedSecondary",
"className": "MuiButtonGroup-groupedOutlinedSecondary",
"description": "Styles applied to the children if `variant=\"outlined\"` and `color=\"secondary\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedOutlinedVertical",
"className": "MuiButtonGroup-groupedOutlinedVertical",
"description": "Styles applied to the children if `variant=\"outlined\"` and `orientation=\"vertical\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedText",
"className": "MuiButtonGroup-groupedText",
"description": "Styles applied to the children if `variant=\"text\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedTextHorizontal",
"className": "MuiButtonGroup-groupedTextHorizontal",
"description": "Styles applied to the children if `variant=\"text\"` and `orientation=\"horizontal\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedTextPrimary",
"className": "MuiButtonGroup-groupedTextPrimary",
"description": "Styles applied to the children if `variant=\"text\"` and `color=\"primary\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedTextSecondary",
"className": "MuiButtonGroup-groupedTextSecondary",
"description": "Styles applied to the children if `variant=\"text\"` and `color=\"secondary\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedTextVertical",
"className": "MuiButtonGroup-groupedTextVertical",
"description": "Styles applied to the children if `variant=\"text\"` and `orientation=\"vertical\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedVertical",
"className": "MuiButtonGroup-groupedVertical",
"description": "Styles applied to the children if `orientation=\"vertical\"`.",
+ "isGlobal": false,
+ "isDeprecated": true
+ },
+ {
+ "key": "horizontal",
+ "className": "MuiButtonGroup-horizontal",
+ "description": "Styles applied to the root element if `orientation=\"horizontal\"`.",
"isGlobal": false
},
{
diff --git a/docs/pages/material-ui/api/step-label.json b/docs/pages/material-ui/api/step-label.json
index 2f77fe012d8ec7..cc855fad1f48fa 100644
--- a/docs/pages/material-ui/api/step-label.json
+++ b/docs/pages/material-ui/api/step-label.json
@@ -4,13 +4,19 @@
"classes": { "type": { "name": "object" }, "additionalInfo": { "cssApi": true } },
"componentsProps": {
"type": { "name": "shape", "description": "{ label?: object }" },
- "default": "{}"
+ "default": "{}",
+ "deprecated": true,
+ "deprecationInfo": "use the slotProps prop instead. This prop will be removed in v7. How to migrate."
},
"error": { "type": { "name": "bool" }, "default": "false" },
"icon": { "type": { "name": "node" } },
"optional": { "type": { "name": "node" } },
"slotProps": {
- "type": { "name": "shape", "description": "{ label?: object }" },
+ "type": { "name": "shape", "description": "{ label?: func | object }" },
+ "default": "{}"
+ },
+ "slots": {
+ "type": { "name": "shape", "description": "{ label?: elementType }" },
"default": "{}"
},
"StepIconComponent": { "type": { "name": "elementType" } },
@@ -28,6 +34,14 @@
"import StepLabel from '@mui/material/StepLabel';",
"import { StepLabel } from '@mui/material';"
],
+ "slots": [
+ {
+ "name": "label",
+ "description": "The component that renders the label.",
+ "default": "span",
+ "class": "MuiStepLabel-label"
+ }
+ ],
"classes": [
{
"key": "active",
@@ -71,12 +85,6 @@
"description": "Styles applied to the `icon` container element.",
"isGlobal": false
},
- {
- "key": "label",
- "className": "MuiStepLabel-label",
- "description": "Styles applied to the label element that wraps `children`.",
- "isGlobal": false
- },
{
"key": "labelContainer",
"className": "MuiStepLabel-labelContainer",
diff --git a/docs/pages/material-ui/migration/migration-v5.js b/docs/pages/material-ui/migration/migration-v5.js
new file mode 100644
index 00000000000000..abd12b1320853c
--- /dev/null
+++ b/docs/pages/material-ui/migration/migration-v5.js
@@ -0,0 +1,7 @@
+import * as React from 'react';
+import MarkdownDocs from 'docs/src/modules/components/MarkdownDocs';
+import * as pageProps from 'docs/data/material/migration/migration-v5/migration-v5.md?muiMarkdown';
+
+export default function Page() {
+ return ;
+}
diff --git a/docs/pages/system/migration/migration-v5.js b/docs/pages/system/migration/migration-v5.js
new file mode 100644
index 00000000000000..12a51489d3bcef
--- /dev/null
+++ b/docs/pages/system/migration/migration-v5.js
@@ -0,0 +1,7 @@
+import * as React from 'react';
+import MarkdownDocs from 'docs/src/modules/components/MarkdownDocs';
+import * as pageProps from 'docs/data/system/migration/migration-v5/migration-v5.md?muiMarkdown';
+
+export default function Page() {
+ return ;
+}
diff --git a/docs/public/static/branding/about/illustrations/team-globe-distribution-dark.png b/docs/public/static/branding/about/illustrations/team-globe-distribution-dark.png
index 8b59dc339963b1..6fc3e470b0666c 100644
Binary files a/docs/public/static/branding/about/illustrations/team-globe-distribution-dark.png and b/docs/public/static/branding/about/illustrations/team-globe-distribution-dark.png differ
diff --git a/docs/public/static/branding/about/illustrations/team-globe-distribution-light.png b/docs/public/static/branding/about/illustrations/team-globe-distribution-light.png
index 57efc00531a072..69fa20cb434963 100644
Binary files a/docs/public/static/branding/about/illustrations/team-globe-distribution-light.png and b/docs/public/static/branding/about/illustrations/team-globe-distribution-light.png differ
diff --git a/docs/public/static/images/templates/dashboard.png b/docs/public/static/images/templates/dashboard.png
index f7144c30b4d471..2a10b08116f94f 100644
Binary files a/docs/public/static/images/templates/dashboard.png and b/docs/public/static/images/templates/dashboard.png differ
diff --git a/docs/public/static/images/templates/sign-in-side.png b/docs/public/static/images/templates/sign-in-side.png
index 4679e890e0c5d6..fb00a2d01160fb 100644
Binary files a/docs/public/static/images/templates/sign-in-side.png and b/docs/public/static/images/templates/sign-in-side.png differ
diff --git a/docs/public/static/images/templates/sign-in.png b/docs/public/static/images/templates/sign-in.png
index f84f919cd80139..597b57ae1d1356 100644
Binary files a/docs/public/static/images/templates/sign-in.png and b/docs/public/static/images/templates/sign-in.png differ
diff --git a/docs/public/static/images/templates/sign-up.png b/docs/public/static/images/templates/sign-up.png
index 4ca49c4f2f84b2..b92eca0b42a10a 100644
Binary files a/docs/public/static/images/templates/sign-up.png and b/docs/public/static/images/templates/sign-up.png differ
diff --git a/docs/public/static/images/templates/templates-images/dark-background.png b/docs/public/static/images/templates/templates-images/dark-background.png
new file mode 100644
index 00000000000000..eb7b1921cf0cc6
Binary files /dev/null and b/docs/public/static/images/templates/templates-images/dark-background.png differ
diff --git a/docs/public/static/images/templates/templates-images/light-background.png b/docs/public/static/images/templates/templates-images/light-background.png
new file mode 100644
index 00000000000000..0476ae5d66e50e
Binary files /dev/null and b/docs/public/static/images/templates/templates-images/light-background.png differ
diff --git a/docs/src/BrandingCssVarsProvider.tsx b/docs/src/BrandingCssVarsProvider.tsx
index 8365b4a886caa6..6cd467f1c10f9d 100644
--- a/docs/src/BrandingCssVarsProvider.tsx
+++ b/docs/src/BrandingCssVarsProvider.tsx
@@ -7,7 +7,7 @@ import {
} from '@mui/material/styles';
import CssBaseline from '@mui/material/CssBaseline';
import { NextNProgressBar } from 'docs/src/modules/components/AppFrame';
-import { getDesignTokens, getThemedComponents } from 'docs/src/modules/brandingTheme';
+import { getDesignTokens, getThemedComponents } from '@mui/docs/branding';
import SkipLink from 'docs/src/modules/components/SkipLink';
import MarkdownLinks from 'docs/src/modules/components/MarkdownLinks';
diff --git a/docs/src/BrandingProvider.tsx b/docs/src/BrandingProvider.tsx
index 7c5cf6a60d31b4..29f4ba3bcbcd72 100644
--- a/docs/src/BrandingProvider.tsx
+++ b/docs/src/BrandingProvider.tsx
@@ -1,19 +1,4 @@
-import * as React from 'react';
-import { ThemeProvider, useTheme } from '@mui/material/styles';
-import { brandingDarkTheme, brandingLightTheme } from 'docs/src/modules/brandingTheme';
+// Backwards compatibility for Toolpad and X.
+// TODO: remove when Toolpad and X migrated to `@mui/docs/branding`
-interface BrandingProviderProps {
- children: React.ReactNode;
- /**
- * If not `undefined`, the provider is considered nesting and does not render NextNProgressBar & CssBaseline
- */
- mode: 'light' | 'dark';
-}
-
-export default function BrandingProvider(props: BrandingProviderProps) {
- const { children, mode: modeProp } = props;
- const upperTheme = useTheme();
- const mode = modeProp || upperTheme.palette.mode;
- const theme = mode === 'dark' ? brandingDarkTheme : brandingLightTheme;
- return theme : theme}>{children};
-}
+export { BrandingProvider as default } from '@mui/docs/branding';
diff --git a/docs/src/components/about/AboutEnd.tsx b/docs/src/components/about/AboutEnd.tsx
index 02562b245b617a..cdb88fd0eb1e28 100644
--- a/docs/src/components/about/AboutEnd.tsx
+++ b/docs/src/components/about/AboutEnd.tsx
@@ -48,7 +48,7 @@ export default function AboutEnd() {
alt="A map illustration with pins loosely positioned where team members from MUI are located."
loading="lazy"
sx={(theme) => ({
- mt: -8,
+ mt: -20,
display: { xs: 'none', sm: 'block' },
width: '100%',
aspectRatio: '231/145',
diff --git a/docs/src/components/about/HowToSupport.tsx b/docs/src/components/about/HowToSupport.tsx
index 3c01595592fe34..99bc248bd1db31 100644
--- a/docs/src/components/about/HowToSupport.tsx
+++ b/docs/src/components/about/HowToSupport.tsx
@@ -1,7 +1,7 @@
import * as React from 'react';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
-import Grid from '@mui/material/Grid';
+import Grid from '@mui/material/Unstable_Grid2';
import Paper from '@mui/material/Paper';
import Typography from '@mui/material/Typography';
import KeyboardArrowRightRounded from '@mui/icons-material/KeyboardArrowRightRounded';
@@ -12,7 +12,7 @@ import GradientText from 'docs/src/components/typography/GradientText';
import { Link } from '@mui/docs/Link';
import Section from 'docs/src/layouts/Section';
import SectionHeadline from 'docs/src/components/typography/SectionHeadline';
-import { GlowingIconContainer } from 'docs/src/components/action/InfoCard';
+import { GlowingIconContainer } from '@mui/docs/InfoCard';
function Widget({
children,
@@ -72,7 +72,7 @@ export default function HowToSupport() {
description=""
/>
-
+ }
title="Give feedback"
@@ -96,7 +96,7 @@ export default function HowToSupport() {
-
+ }
title="Join the community"
@@ -157,7 +157,7 @@ export default function HowToSupport() {
-
+ }
title="Support us financially"
diff --git a/docs/src/components/about/OurValues.tsx b/docs/src/components/about/OurValues.tsx
index ad9db9243c4c73..bf29a93161d228 100644
--- a/docs/src/components/about/OurValues.tsx
+++ b/docs/src/components/about/OurValues.tsx
@@ -1,7 +1,7 @@
import * as React from 'react';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
-import Grid from '@mui/material/Grid';
+import Grid from '@mui/material/Unstable_Grid2';
import Paper from '@mui/material/Paper';
import Typography from '@mui/material/Typography';
import KeyboardArrowRightRounded from '@mui/icons-material/KeyboardArrowRightRounded';
@@ -70,7 +70,7 @@ export default function OurValues() {
{values.map(({ title, description, darkIcon, lightIcon, height, width }) => (
-
+ ({
@@ -90,14 +90,14 @@ export default function OurValues() {
>
({
background: `${lightIcon}`,
...theme.applyDarkStyles({
background: `${darkIcon}`,
}),
})}
- width={width}
- height={height}
/>
diff --git a/docs/src/components/about/Team.tsx b/docs/src/components/about/Team.tsx
index 087e43d93fbb8f..38e49b5f9d112c 100644
--- a/docs/src/components/about/Team.tsx
+++ b/docs/src/components/about/Team.tsx
@@ -5,7 +5,7 @@ import Button from '@mui/material/Button';
import Container from '@mui/material/Container';
import Divider from '@mui/material/Divider';
import IconButton from '@mui/material/IconButton';
-import Grid from '@mui/material/Grid';
+import Grid from '@mui/material/Unstable_Grid2';
import Paper, { PaperProps } from '@mui/material/Paper';
import Typography from '@mui/material/Typography';
import Tooltip from '@mui/material/Tooltip';
@@ -369,7 +369,7 @@ export default function Team() {
...profileJson,
};
return (
-
+
);
@@ -389,7 +389,7 @@ export default function Team() {
{contributors.map((profile) => (
-
+
))}
@@ -404,7 +404,7 @@ export default function Team() {
{emeriti.map((profile) => (
-
+
))}
diff --git a/docs/src/components/action/InfoCard.tsx b/docs/src/components/action/InfoCard.tsx
index 45ba7e23cbfdb6..9dc1f1de938493 100644
--- a/docs/src/components/action/InfoCard.tsx
+++ b/docs/src/components/action/InfoCard.tsx
@@ -1,114 +1,5 @@
-import * as React from 'react';
-import { alpha } from '@mui/material/styles';
-import Box from '@mui/material/Box';
-import Paper from '@mui/material/Paper';
-import Typography, { TypographyProps } from '@mui/material/Typography';
-import { Link, LinkProps } from '@mui/docs/Link';
+// Backwards compatibility for Toolpad and X.
+// TODO: remove when Toolpad and X migrated to `@mui/docs/InfoCard`
-interface GlowingIconContainerProps {
- icon: React.ReactNode;
-}
-
-export function GlowingIconContainer({ icon }: GlowingIconContainerProps) {
- return (
- ({
- width: 40,
- height: 40,
- display: 'flex',
- justifyContent: 'center',
- alignItems: 'center',
- flexShrink: 0,
- borderRadius: 1,
- border: '1px solid',
- borderColor: 'primary.200',
- bgcolor: 'primary.50',
- boxShadow: `0px 1px 6px 0px ${alpha(
- theme.palette.primary[500],
- 0.4,
- )}, 0px 2px 30px 0px rgba(234, 237, 241, 0.3) inset`,
- ...theme.applyDarkStyles({
- borderColor: alpha(theme.palette.primary[400], 0.6),
- bgcolor: 'primary.900',
- boxShadow: `0 2px 6px 0 ${alpha(
- theme.palette.primary[600],
- 0.4,
- )}, 0px 2px 30px 0px rgba(0, 0, 0, 0.25) inset`,
- }),
- })}
- >
- {icon}
-
- );
-}
-
-interface InfoCardProps {
- classNameDescription?: string;
- classNameTitle?: string;
- dense?: boolean;
- description?: string;
- icon?: React.ReactNode;
- link?: string;
- prefetch?: LinkProps['prefetch'];
- svg?: React.ReactNode;
- title: string;
- titleProps?: TypographyProps;
-}
-
-export default function InfoCard(props: InfoCardProps) {
- const {
- classNameDescription,
- classNameTitle,
- dense,
- description,
- icon,
- link,
- svg,
- title,
- titleProps,
- ...other
- } = props;
- return (
- ({
- p: dense ? 2.5 : 3.5,
- height: '100%',
- background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
- ...theme.applyDarkStyles({
- bgcolor: 'primaryDark.900',
- background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
- borderColor: 'primaryDark.700',
- }),
- })}
- {...other}
- >
- {svg && svg}
- {icon && }
-
- {title}
-
-
- {description}
-
-
- );
-}
+export * from '@mui/docs/InfoCard';
+export { InfoCard as default } from '@mui/docs/InfoCard';
diff --git a/docs/src/components/banner/AppFrameBanner.tsx b/docs/src/components/banner/AppFrameBanner.tsx
index 139c369d36773b..de435e12058550 100644
--- a/docs/src/components/banner/AppFrameBanner.tsx
+++ b/docs/src/components/banner/AppFrameBanner.tsx
@@ -35,9 +35,9 @@ export default function AppFrameBanner() {
fontWeight: 'medium',
textWrap: 'nowrap',
maxHeight: '34px',
- backgroundColor: (theme.vars || theme).palette.primary[50],
+ backgroundColor: alpha(theme.palette.primary[50], 0.8),
border: '1px solid',
- borderColor: (theme.vars || theme).palette.grey[200],
+ borderColor: (theme.vars || theme).palette.divider,
borderRadius: 1,
transition: 'all 150ms ease',
'&:hover, &:focus-visible': {
@@ -47,11 +47,10 @@ export default function AppFrameBanner() {
}),
(theme) =>
theme.applyDarkStyles({
- backgroundColor: alpha(theme.palette.primary[900], 0.2),
- borderColor: (theme.vars || theme).palette.primaryDark[700],
+ backgroundColor: alpha(theme.palette.primary[900], 0.15),
'&:hover, &:focus-visible': {
- backgroundColor: alpha(theme.palette.primary[900], 0.6),
- borderColor: (theme.vars || theme).palette.primary[800],
+ backgroundColor: alpha(theme.palette.primary[900], 0.4),
+ borderColor: (theme.vars || theme).palette.primary[900],
},
}),
]}
diff --git a/docs/src/components/home/DiamondSponsors.tsx b/docs/src/components/home/DiamondSponsors.tsx
index 2746ae899018e9..2f8bbcea77d127 100644
--- a/docs/src/components/home/DiamondSponsors.tsx
+++ b/docs/src/components/home/DiamondSponsors.tsx
@@ -1,6 +1,6 @@
import * as React from 'react';
import { useInView } from 'react-intersection-observer';
-import Grid from '@mui/material/Grid';
+import Grid from '@mui/material/Unstable_Grid2';
import Paper from '@mui/material/Paper';
import IconButton from '@mui/material/IconButton';
import Typography from '@mui/material/Typography';
@@ -46,8 +46,8 @@ export default function DiamondSponsors() {
sx={(theme) => ({
mt: 4,
mb: 1.5,
- background: `linear-gradient(90deg, ${(theme.vars || theme).palette.primary[400]} 50%, ${
- (theme.vars || theme).palette.primary[700]
+ background: `linear-gradient(45deg, ${(theme.vars || theme).palette.primary[400]} 50%, ${
+ (theme.vars || theme).palette.primary[800]
} 100%)`,
WebkitBackgroundClip: 'text',
WebkitTextFillColor: 'transparent',
@@ -57,12 +57,12 @@ export default function DiamondSponsors() {
{DIAMONDs.map((item) => (
-
+
))}
{spotIsAvailable && (
-
+
{GOLDs.map((item) => (
-
+
))}
-
+
@@ -120,14 +121,6 @@ export default function GoldSponsors() {
target="_blank"
rel="noopener"
color="primary"
- sx={(theme) => ({
- mr: 2,
- border: '1px solid',
- borderColor: 'grey.300',
- ...theme.applyDarkStyles({
- borderColor: 'primaryDark.600',
- }),
- })}
>
diff --git a/docs/src/components/home/MaterialDesignComponents.tsx b/docs/src/components/home/MaterialDesignComponents.tsx
index 6796c028965c8e..c83c844faec8c4 100644
--- a/docs/src/components/home/MaterialDesignComponents.tsx
+++ b/docs/src/components/home/MaterialDesignComponents.tsx
@@ -34,7 +34,7 @@ import VerifiedUserRounded from '@mui/icons-material/VerifiedUserRounded';
import HelpCenterRounded from '@mui/icons-material/HelpCenterRounded';
import ROUTES from 'docs/src/route';
import { Link } from '@mui/docs/Link';
-import { getDesignTokens, getThemedComponents } from 'docs/src/modules/brandingTheme';
+import { getDesignTokens, getThemedComponents } from '@mui/docs/branding';
const Grid = styled('div')(({ theme }) => [
{
diff --git a/docs/src/components/home/ValueProposition.tsx b/docs/src/components/home/ValueProposition.tsx
index ace718a99fa456..b66739a422fcdb 100644
--- a/docs/src/components/home/ValueProposition.tsx
+++ b/docs/src/components/home/ValueProposition.tsx
@@ -1,6 +1,6 @@
import * as React from 'react';
import Typography from '@mui/material/Typography';
-import Grid from '@mui/material/Grid';
+import Grid from '@mui/material/Unstable_Grid2';
import InvertColorsRoundedIcon from '@mui/icons-material/InvertColorsRounded';
import HandymanRoundedIcon from '@mui/icons-material/HandymanRounded';
import ArticleRoundedIcon from '@mui/icons-material/ArticleRounded';
@@ -8,7 +8,7 @@ import AccessibilityNewRounded from '@mui/icons-material/AccessibilityNewRounded
import GradientText from 'docs/src/components/typography/GradientText';
import Section from 'docs/src/layouts/Section';
import SectionHeadline from 'docs/src/components/typography/SectionHeadline';
-import InfoCard from 'docs/src/components/action/InfoCard';
+import { InfoCard } from '@mui/docs/InfoCard';
const content = [
{
@@ -51,7 +51,7 @@ export default function ValueProposition() {
/>
{content.map(({ icon, title, description }) => (
-
+
))}
diff --git a/docs/src/components/productBaseUI/BaseUIEnd.tsx b/docs/src/components/productBaseUI/BaseUIEnd.tsx
index c1c01797cfcbe2..7704cd55575665 100644
--- a/docs/src/components/productBaseUI/BaseUIEnd.tsx
+++ b/docs/src/components/productBaseUI/BaseUIEnd.tsx
@@ -6,7 +6,7 @@ import ListItem from '@mui/material/ListItem';
import Typography from '@mui/material/Typography';
import CompareIcon from '@mui/icons-material/Compare';
import StyleRoundedIcon from '@mui/icons-material/StyleRounded';
-import { GlowingIconContainer } from 'docs/src/components/action/InfoCard';
+import { GlowingIconContainer } from '@mui/docs/InfoCard';
import GetStartedButtons from 'docs/src/components/home/GetStartedButtons';
import Section from 'docs/src/layouts/Section';
import SectionHeadline from 'docs/src/components/typography/SectionHeadline';
diff --git a/docs/src/components/productBaseUI/BaseUISummary.tsx b/docs/src/components/productBaseUI/BaseUISummary.tsx
index a7b98a436718f7..310b4e5a1d8c7a 100644
--- a/docs/src/components/productBaseUI/BaseUISummary.tsx
+++ b/docs/src/components/productBaseUI/BaseUISummary.tsx
@@ -1,14 +1,14 @@
import * as React from 'react';
import Box from '@mui/material/Box';
import Typography from '@mui/material/Typography';
-import Grid from '@mui/material/Grid';
+import Grid from '@mui/material/Unstable_Grid2';
import StyleRoundedIcon from '@mui/icons-material/StyleRounded';
import AccessibilityNewRounded from '@mui/icons-material/AccessibilityNewRounded';
import PhishingRoundedIcon from '@mui/icons-material/PhishingRounded';
import Section from 'docs/src/layouts/Section';
import SectionHeadline from 'docs/src/components/typography/SectionHeadline';
import GradientText from 'docs/src/components/typography/GradientText';
-import InfoCard from 'docs/src/components/action/InfoCard';
+import { InfoCard } from '@mui/docs/InfoCard';
const content = [
{
@@ -50,7 +50,7 @@ export default function BaseUISummary() {
{content.map(({ icon, title, description, link }) => (
-
+
))}
diff --git a/docs/src/components/productCore/CoreProducts.tsx b/docs/src/components/productCore/CoreProducts.tsx
index 331e3c80228ff8..0ffb8a767b9261 100644
--- a/docs/src/components/productCore/CoreProducts.tsx
+++ b/docs/src/components/productCore/CoreProducts.tsx
@@ -1,7 +1,7 @@
import * as React from 'react';
import Grid from '@mui/material/Grid';
import Section from 'docs/src/layouts/Section';
-import InfoCard from 'docs/src/components/action/InfoCard';
+import { InfoCard } from '@mui/docs/InfoCard';
// Note: All of the commented code will be put back in once logos for each Core product are done.
diff --git a/docs/src/components/productDesignKit/DesignKitValues.tsx b/docs/src/components/productDesignKit/DesignKitValues.tsx
index 06cb9895752d30..72bca07d667fdf 100644
--- a/docs/src/components/productDesignKit/DesignKitValues.tsx
+++ b/docs/src/components/productDesignKit/DesignKitValues.tsx
@@ -1,12 +1,12 @@
import * as React from 'react';
import Typography from '@mui/material/Typography';
-import Grid from '@mui/material/Grid';
+import Grid from '@mui/material/Unstable_Grid2';
import Palette from '@mui/icons-material/Palette';
import LibraryBooks from '@mui/icons-material/LibraryBooks';
import CodeRounded from '@mui/icons-material/CodeRounded';
import GradientText from 'docs/src/components/typography/GradientText';
import Section from 'docs/src/layouts/Section';
-import InfoCard from 'docs/src/components/action/InfoCard';
+import { InfoCard } from '@mui/docs/InfoCard';
const content = [
{
@@ -41,7 +41,7 @@ function DesignKitValues() {
{content.map(({ icon, title, description }) => (
-
+
))}
diff --git a/docs/src/components/productMaterial/MaterialEnd.tsx b/docs/src/components/productMaterial/MaterialEnd.tsx
index 99d91ad0c83dd6..be40de0a8cfb73 100644
--- a/docs/src/components/productMaterial/MaterialEnd.tsx
+++ b/docs/src/components/productMaterial/MaterialEnd.tsx
@@ -6,7 +6,7 @@ import ListItem from '@mui/material/ListItem';
import Typography from '@mui/material/Typography';
import CompareIcon from '@mui/icons-material/Compare';
import StyleRoundedIcon from '@mui/icons-material/StyleRounded';
-import { GlowingIconContainer } from 'docs/src/components/action/InfoCard';
+import { GlowingIconContainer } from '@mui/docs/InfoCard';
import GetStartedButtons from 'docs/src/components/home/GetStartedButtons';
import Section from 'docs/src/layouts/Section';
import SectionHeadline from 'docs/src/components/typography/SectionHeadline';
diff --git a/docs/src/components/productMaterial/MaterialHero.tsx b/docs/src/components/productMaterial/MaterialHero.tsx
index 0df46b622ac450..dd37121529358d 100644
--- a/docs/src/components/productMaterial/MaterialHero.tsx
+++ b/docs/src/components/productMaterial/MaterialHero.tsx
@@ -59,7 +59,7 @@ import IconImage from 'docs/src/components/icon/IconImage';
import HeroContainer from 'docs/src/layouts/HeroContainer';
import GetStartedButtons from 'docs/src/components/home/GetStartedButtons';
import GradientText from 'docs/src/components/typography/GradientText';
-import { getDesignTokens } from 'docs/src/modules/brandingTheme';
+import { getDesignTokens } from '@mui/docs/branding';
import { Link } from '@mui/docs/Link';
import ROUTES from 'docs/src/route';
diff --git a/docs/src/components/productX/XPlans.tsx b/docs/src/components/productX/XPlans.tsx
index 2b5b04a6938f67..2d5c310ba47fdd 100644
--- a/docs/src/components/productX/XPlans.tsx
+++ b/docs/src/components/productX/XPlans.tsx
@@ -6,7 +6,7 @@ import Section from 'docs/src/layouts/Section';
import SectionHeadline from 'docs/src/components/typography/SectionHeadline';
import GradientText from 'docs/src/components/typography/GradientText';
import ROUTES from 'docs/src/route';
-import InfoCard from 'docs/src/components/action/InfoCard';
+import { InfoCard } from '@mui/docs/InfoCard';
import IconImage from 'docs/src/components/icon/IconImage';
import GetStartedButtons from 'docs/src/components/home/GetStartedButtons';
diff --git a/docs/src/layouts/AppFooter.tsx b/docs/src/layouts/AppFooter.tsx
index d8655f2d9cc87d..c0894f21ec8e3f 100644
--- a/docs/src/layouts/AppFooter.tsx
+++ b/docs/src/layouts/AppFooter.tsx
@@ -53,7 +53,7 @@ export default function AppFooter(props: AppFooterProps) {
-
+
Keep up to date
@@ -70,7 +70,7 @@ export default function AppFooter(props: AppFooterProps) {
}}
>
-
+
Products
@@ -93,7 +93,7 @@ export default function AppFooter(props: AppFooterProps) {
-
+
Resources
@@ -113,7 +113,7 @@ export default function AppFooter(props: AppFooterProps) {
-
+
Explore
@@ -133,7 +133,7 @@ export default function AppFooter(props: AppFooterProps) {
-
+
Company
diff --git a/docs/src/layouts/Section.tsx b/docs/src/layouts/Section.tsx
index e15d60292d7586..ff7a0a4d837551 100644
--- a/docs/src/layouts/Section.tsx
+++ b/docs/src/layouts/Section.tsx
@@ -42,13 +42,13 @@ const Section = React.forwardRef(function Sectio
(theme) => ({
...(bg === 'gradient'
? {
- background: `linear-gradient(180deg, #FFF 0%, ${
+ background: `linear-gradient(#FFF 0%, ${
(theme.vars || theme).palette.primary[50]
} 100%)`,
...theme.applyDarkStyles({
- background: `linear-gradient(180deg, ${
+ background: `linear-gradient(${
(theme.vars || theme).palette.primaryDark[900]
- } 0%, ${alpha(theme.palette.primary[900], 0.16)} 100%)`,
+ } 0%, ${alpha(theme.palette.primary[900], 0.2)} 100%)`,
}),
}
: {
diff --git a/docs/src/modules/brandingTheme.ts b/docs/src/modules/brandingTheme.ts
index 763ea0e811bac0..b96d36bb7e25a1 100644
--- a/docs/src/modules/brandingTheme.ts
+++ b/docs/src/modules/brandingTheme.ts
@@ -1,1317 +1,4 @@
-import { CSSObject } from '@mui/system';
-import type {} from '@mui/material/themeCssVarsAugmentation';
-import ArrowDropDownRounded from '@mui/icons-material/ArrowDropDownRounded';
-import { createTheme, ThemeOptions, Theme, alpha } from '@mui/material/styles';
+// Backwards compatibility for Toolpad and X.
+// TODO: remove when Toolpad and X migrated to `@mui/docs/branding`
-interface ApplyDarkStyles {
- (scheme: CSSObject): CSSObject;
-}
-
-declare module '@mui/material/styles' {
- interface Theme {
- applyDarkStyles: ApplyDarkStyles;
- }
-}
-
-declare module '@mui/material/styles/createPalette' {
- interface ColorRange {
- 50: string;
- 100: string;
- 200: string;
- 300: string;
- 400: string;
- 500: string;
- 600: string;
- 700: string;
- 800: string;
- 900: string;
- }
-
- interface PaletteColor extends ColorRange {}
-
- interface Palette {
- primaryDark: PaletteColor;
- gradients: {
- lightGrayRadio: string;
- stylizedRadio: string;
- linearSubtle: string;
- };
- }
-
- interface TypeText {
- tertiary: string;
- }
-}
-
-declare module '@mui/material/styles/createTypography' {
- interface TypographyOptions {
- fontWeightSemiBold?: number;
- fontWeightExtraBold?: number;
- fontFamilyCode?: string;
- fontFamilySystem?: string;
- }
-
- interface Typography {
- fontWeightSemiBold: number;
- fontWeightExtraBold: number;
- fontFamilyCode: string;
- fontFamilySystem: string;
- }
-}
-
-declare module '@mui/material/Chip' {
- interface ChipPropsColorOverrides {
- grey: true;
- }
-}
-
-declare module '@mui/material/SvgIcon' {
- interface SvgIconPropsColorOverrides {
- danger: true;
- }
- interface SvgIconPropsSizeOverrides {
- xs: true;
- sm: true;
- md: true;
- lg: true;
- xl: true;
- xl2: true;
- xl3: true;
- xl4: true;
- }
-}
-
-// TODO: enable this once types conflict is fixed
-// declare module '@mui/material/Button' {
-// interface ButtonPropsVariantOverrides {
-// code: true;
-// }
-// }
-
-const defaultTheme = createTheme();
-
-export const blue = {
- 50: '#EBF5FF',
- 100: '#CCE5FF',
- 200: '#99CCFF',
- 300: '#66B2FF',
- 400: '#3399FF',
- main: '#0073E6',
- 500: '#0073E6',
- 600: '#006BD6',
- 700: '#0061C2',
- 800: '#004C99',
- 900: '#003A75',
-};
-export const blueDark = {
- 50: '#EAEDF1',
- 100: '#DAE0E7',
- 200: '#ACBAC8',
- 300: '#7B91A7',
- main: '#7B91A7',
- 400: '#4B5E71',
- 500: '#3B4A59',
- 600: '#2F3A46',
- 700: '#1F262E', // contrast 13.64:1
- 800: '#141A1F',
- 900: '#101418',
-};
-export const grey = {
- 50: '#F3F6F9',
- 100: '#E5EAF2',
- 200: '#DAE2ED',
- 300: '#C5D0E0', // vs blueDark 900: WCAG 11.6 AAA, APCA 78 Best for text
- 400: '#AEBACB', // vs blueDark 900: WCAG 9 AAA, APCA 63.3 Ok for text
- 500: '#99A7BB', // vs blueDark 900: WCAG 7.5 AAA, APCA 54.3 Only for large text
- 600: '#6F7F95', // vs white bg: WCAG 4.1 AA, APCA 68.7 Ok for text
- 700: '#576375', // vs white bg: WCAG 8.3 AAA, APCA 88.7 Best for text
- 800: '#303740', // vs white bg: WCAG 11.9 AAA, APCA 97.3 Best for text
- 900: '#1C2025',
-};
-export const error = {
- 50: '#FFF0F1',
- 100: '#FFDBDE',
- 200: '#FFBDC2',
- 300: '#FF99A2',
- 400: '#FF7A86',
- 500: '#FF505F',
- main: '#EB0014', // contrast 4.63:1
- 600: '#EB0014',
- 700: '#C70011',
- 800: '#94000D',
- 900: '#570007',
-};
-export const success = {
- 50: '#E9FBF0',
- 100: '#C6F6D9',
- 200: '#9AEFBC',
- 300: '#6AE79C',
- 400: '#3EE07F',
- 500: '#21CC66',
- 600: '#1DB45A',
- 700: '#1AA251',
- 800: '#178D46',
- 900: '#0F5C2E',
-};
-export const warning = {
- 50: '#FFF9EB',
- 100: '#FFF3C1',
- 200: '#FFECA1',
- 300: '#FFDC48', // vs blueDark900: WCAG 10.4 AAA, APCA 72 Ok for text
- 400: '#F4C000', // vs blueDark900: WCAG 6.4 AA normal, APCA 48 Only large text
- 500: '#DEA500', // vs blueDark900: WCAG 8 AAA normal, APCA 58 Only large text
- main: '#DEA500',
- 600: '#D18E00', // vs blueDark900: WCAG 6.4 AA normal, APCA 48 Only large text
- 700: '#AB6800', // vs white bg: WCAG 4.4 AA large, APCA 71 Ok for text
- 800: '#8C5800', // vs white bg: WCAG 5.9 AAA large, APCA 80 Best for text
- 900: '#5A3600', // vs white bg: WCAG 10.7 AAA, APCA 95 Best for text
-};
-// context on the Advanced Perceptual Contrast Algorithm (APCA) used above here: https://github.com/w3c/wcag/issues/695
-
-const systemFont = [
- '-apple-system',
- 'BlinkMacSystemFont',
- '"Segoe UI"',
- 'Roboto',
- '"Helvetica Neue"',
- 'Arial',
- 'sans-serif',
- '"Apple Color Emoji"',
- '"Segoe UI Emoji"',
- '"Segoe UI Symbol"',
-];
-
-export const getMetaThemeColor = (mode: 'light' | 'dark') => {
- const themeColor = {
- light: blue[600],
- dark: blueDark[900],
- };
- return themeColor[mode];
-};
-
-export const getDesignTokens = (mode: 'light' | 'dark') =>
- ({
- palette: {
- primary: {
- ...blue,
- ...(mode === 'dark' && {
- main: blue[400],
- }),
- },
- secondary: {
- ...grey,
- ...(mode === 'light' && {
- main: blueDark[100],
- contrastText: blueDark[600],
- }),
- ...(mode === 'dark' && {
- main: blueDark[700],
- contrastText: blueDark[600],
- }),
- },
- divider: mode === 'dark' ? alpha(blueDark[500], 0.2) : grey[100],
- primaryDark: blueDark,
- mode,
- ...(mode === 'dark' && {
- background: {
- default: blueDark[900],
- paper: alpha(blueDark[800], 0.8),
- },
- }),
- common: {
- black: '#0B0D0E',
- },
- text: {
- ...(mode === 'light' && {
- primary: grey[900],
- secondary: grey[800],
- tertiary: grey[700],
- }),
- ...(mode === 'dark' && {
- primary: '#fff',
- secondary: grey[400],
- tertiary: grey[500],
- }),
- },
- grey: {
- ...grey,
- ...(mode === 'light' && {
- main: grey[100],
- contrastText: grey[600],
- }),
- ...(mode === 'dark' && {
- main: grey[700],
- contrastText: grey[600],
- }),
- },
- error,
- success: {
- ...success,
- ...(mode === 'dark' && {
- main: '#1DB45A', // contrast 6.17:1 (blueDark.800)
- }),
- ...(mode === 'light' && {
- main: '#1AA251', // contrast 3.31:1
- }),
- },
- warning,
- gradients: {
- lightGrayRadio:
- 'radial-gradient(50% 50% at 50% 50%, #F0F7FF 0%, rgba(240, 247, 255, 0.05) 100%)',
- stylizedRadio:
- mode === 'dark'
- ? 'linear-gradient(rgba(0 0 0 / 0.1), rgba(0 0 0 / 0.1)), linear-gradient(254.86deg, rgba(0, 58, 117, 0.18) 0%, rgba(11, 13, 14, 0.3) 49.98%, rgba(0, 76, 153, 0.21) 100.95%)'
- : 'linear-gradient(rgba(255 255 255 / 0.3), rgba(255 255 255 / 0.3)), linear-gradient(254.86deg, rgba(194, 224, 255, 0.12) 0%, rgba(194, 224, 255, 0.12) 0%, rgba(255, 255, 255, 0.3) 49.98%, rgba(240, 247, 255, 0.3) 100.95%)',
- linearSubtle:
- mode === 'light'
- ? `linear-gradient(to top right, ${alpha(blue[50], 0.3)} 40%, ${alpha(
- grey[50],
- 0.2,
- )} 100%)`
- : `linear-gradient(to top right, ${alpha(blue[900], 0.1)} 40%, ${alpha(
- blueDark[800],
- 0.2,
- )} 100%)`,
- },
- },
- shape: {
- borderRadius: 12,
- },
- spacing: 8,
- typography: {
- fontFamily: ['"IBM Plex Sans"', ...systemFont].join(','),
- // Match VS Code
- // https://github.com/microsoft/vscode/blob/b38691f611d1ce3ef437c67a1b047c757b7b4e53/src/vs/editor/common/config/editorOptions.ts#L4578-L4580
- // https://github.com/microsoft/vscode/blob/d950552131d7350a45dac8b59bf179469c36c2ac/src/vs/editor/standalone/browser/standalone-tokens.css#L10
- fontFamilyCode: [
- 'Menlo', // macOS
- 'Consolas', // Windows
- '"Droid Sans Mono"', // Linux
- 'monospace', // fallback
- ].join(','),
- fontFamilyTagline: ['"General Sans"', ...systemFont].join(','),
- fontFamilySystem: systemFont.join(','),
- fontWeightSemiBold: 600,
- fontWeightExtraBold: 800,
- h1: {
- fontFamily: ['"General Sans"', ...systemFont].join(','),
- fontSize: 'clamp(2.5rem, 1.125rem + 3.5vw, 3.5em)',
- fontWeight: 600,
- lineHeight: 78 / 70,
- letterSpacing: -0.2,
- ...(mode === 'light' && {
- color: blueDark[900],
- }),
- },
- h2: {
- fontFamily: ['"General Sans"', ...systemFont].join(','),
- fontSize: 'clamp(1.5rem, 0.9643rem + 1.4286vw, 2.25rem)',
- fontWeight: 600,
- lineHeight: 44 / 36,
- letterSpacing: -0.2,
- color: mode === 'dark' ? grey[100] : blueDark[700],
- },
- h3: {
- fontFamily: ['"General Sans"', ...systemFont].join(','),
- fontSize: defaultTheme.typography.pxToRem(36),
- lineHeight: 44 / 36,
- letterSpacing: 0.2,
- },
- h4: {
- fontFamily: ['"General Sans"', ...systemFont].join(','),
- fontSize: defaultTheme.typography.pxToRem(30),
- lineHeight: 42 / 28,
- letterSpacing: 0.2,
- },
- h5: {
- fontSize: defaultTheme.typography.pxToRem(24),
- lineHeight: 36 / 24,
- letterSpacing: 0.1,
- color: mode === 'dark' ? blue[300] : blue.main,
- },
- h6: {
- fontSize: defaultTheme.typography.pxToRem(20),
- lineHeight: 30 / 20,
- },
- button: {
- textTransform: 'initial',
- fontWeight: 700,
- letterSpacing: 0,
- },
- subtitle1: {
- fontSize: defaultTheme.typography.pxToRem(18),
- lineHeight: 24 / 18,
- letterSpacing: 0,
- fontWeight: 500,
- },
- body1: {
- fontSize: defaultTheme.typography.pxToRem(16), // 16px
- lineHeight: 24 / 16,
- letterSpacing: 0,
- },
- body2: {
- fontSize: defaultTheme.typography.pxToRem(14), // 14px
- lineHeight: 21 / 14,
- letterSpacing: 0,
- },
- caption: {
- display: 'inline-block',
- fontSize: defaultTheme.typography.pxToRem(12), // 12px
- lineHeight: 18 / 12,
- letterSpacing: 0,
- fontWeight: 700,
- },
- allVariants: {
- scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',
- },
- },
- /**
- * This utility exists to help transitioning to CSS variables page by page (prevent dark mode flicker).
- * It will use the proper styling method based on the theme because the component might be on the page that does not support CSS variables yet.
- *
- * 😓 Without this utility:
- * {
- * ...theme.vars ? {
- * color: theme.vars.palette.primary.main,
- * [theme.getColorScheme('dark')]: {
- * color: '#fff',
- * }
- * } : {
- * color: theme.palette.mode === 'dark' ? '#fff' : theme.palette.primary.main,
- * }
- * }
- *
- * 🤩 Using the utility:
- * {
- * color: (theme.vars || theme).palette.primary.main,
- * ...theme.applyDarkStyles({
- * color: '#fff',
- * }),
- * }
- *
- * -------------------------------------------------------------------------------------------------
- * 💡 This util should be used in an array if the styles contain pseudo classes or nested selectors:
- *
- * ❌ There is a chance that the upper selectors could be overridden
- * {
- * // the whole selector could be overridden
- * '&::before': {
- * color: ...
- * },
- * ...theme.applyDarkStyles({
- * '&::before': {
- * color: ...
- * }
- * })
- * }
- *
- * ✅ use an array (supports in both emotion and styled-components)
- * Only the `color` will be overridden in dark mode.
- * [
- * '&::before': {
- * color: ...
- * },
- * theme.applyDarkStyles({
- * '&::before': {
- * color: ...
- * }
- * })
- * ]
- */
- applyDarkStyles(css: Parameters[0]) {
- return (this as Theme).applyStyles('dark', css);
- },
- }) as ThemeOptions;
-
-export function getThemedComponents(): ThemeOptions {
- return {
- components: {
- MuiAlert: {
- styleOverrides: {
- root: {
- padding: '12px 16px',
- },
- standardWarning: ({ theme }) => [
- {
- backgroundColor: alpha(theme.palette.warning[50], 0.5),
- color: (theme.vars || theme).palette.grey[900],
- border: '1px solid',
- borderColor: alpha(theme.palette.warning[600], 0.3),
- '& .MuiAlert-icon': {
- color: (theme.vars || theme).palette.warning[700],
- },
- },
- theme.applyDarkStyles({
- backgroundColor: alpha(theme.palette.warning[700], 0.2),
- color: (theme.vars || theme).palette.warning[50],
- '& .MuiAlert-icon': {
- color: (theme.vars || theme).palette.warning[200],
- },
- }),
- ],
- icon: {
- paddingTop: 12,
- paddingBottom: 0,
- },
- },
- },
- MuiButtonBase: {
- defaultProps: {
- disableTouchRipple: true,
- disableRipple: true,
- },
- styleOverrides: {
- root: ({ theme }) => ({
- transition: 'all 100ms ease-in',
- '&:focus-visible': {
- outline: `3px solid ${alpha(theme.palette.primary[500], 0.5)}`,
- outlineOffset: '2px',
- },
- }),
- },
- },
- MuiButton: {
- defaultProps: {
- disableElevation: true,
- },
- styleOverrides: {
- root: ({ theme, ownerState }) => ({
- transition: 'all 120ms ease-in',
- ...(ownerState.size === 'large' && {
- ...theme.typography.body1,
- lineHeight: 21 / 16,
- padding: theme.spacing('8px', '10px', '10px', '12px'),
- fontWeight: theme.typography.fontWeightSemiBold,
- borderRadius: 10,
- '& > span': { transition: '0.2s', marginLeft: 4 },
- '&:hover > span': { transform: 'translateX(2px)' },
- }),
- ...(ownerState.size === 'medium' && {
- fontSize: defaultTheme.typography.pxToRem(15),
- padding: theme.spacing('8px', '12px', '8px', '14px'),
- fontWeight: theme.typography.fontWeightSemiBold,
- borderRadius: 8,
- '& > span': { transition: '0.2s', marginLeft: 4 },
- '&:hover > span': { transform: 'translateX(2px)' },
- }),
- ...(ownerState.size === 'small' && {
- padding: theme.spacing('6px', 1),
- fontFamily: theme.typography.fontFamily,
- fontSize: defaultTheme.typography.pxToRem(13),
- fontWeight: theme.typography.fontWeightSemiBold,
- borderRadius: 8,
- '& .MuiButton-startIcon': {
- transition: '0.15s',
- marginRight: 4,
- marginLeft: -1,
- },
- '& .MuiButton-endIcon': {
- transition: '0.15s',
- marginLeft: 4,
- },
- '&:hover': {
- '& .MuiButton-startIcon': { transform: 'translateX(-2px)' },
- '& .MuiButton-endIcon': { transform: 'translateX(2px)' },
- },
- }),
- ...(ownerState.variant === 'outlined' &&
- ownerState.color === 'secondary' && {
- color: (theme.vars || theme).palette.text.primary,
- backgroundColor: alpha(theme.palette.primaryDark[50], 0.3),
- borderColor: (theme.vars || theme).palette.primaryDark[100],
- boxShadow: `${alpha(theme.palette.grey[50], 0.5)} 0 2px 0.5px inset, ${alpha(
- theme.palette.grey[100],
- 0.5,
- )} 0 -2px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`,
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primaryDark[50],
- },
- ...theme.applyDarkStyles({
- color: (theme.vars || theme).palette.primaryDark[100],
- borderColor: alpha(theme.palette.primaryDark[600], 0.5),
- backgroundColor: alpha(theme.palette.primaryDark[700], 0.4),
- boxShadow: `${alpha(theme.palette.primaryDark[600], 0.1)} 0 2px 0 inset, ${alpha(theme.palette.primaryDark[900], 0.5)} 0 -2px 1px inset, ${theme.palette.common.black} 0 1px 2px 0`,
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primaryDark[700],
- },
- }),
- }),
- ...(ownerState.variant === 'outlined' &&
- ownerState.color === 'primary' && {
- color: (theme.vars || theme).palette.primary[600],
- backgroundColor: alpha(theme.palette.primary[50], 0.3),
- borderColor: (theme.vars || theme).palette.primary[100],
- boxShadow: `${theme.palette.primary[50]} 0 2px 0.5px inset, ${alpha(
- theme.palette.primary[100],
- 0.2,
- )} 0 -3px 0 inset, ${alpha(theme.palette.primary[100], 0.3)} 0 1px 2px 0`,
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primary[50],
- borderColor: (theme.vars || theme).palette.primary[300],
- },
- ...theme.applyDarkStyles({
- color: (theme.vars || theme).palette.primary[200],
- borderColor: alpha(theme.palette.primary[900], 0.7),
- backgroundColor: alpha(theme.palette.primary[900], 0.2),
- boxShadow: `${alpha(theme.palette.primary[900], 0.1)} 0 2px 1px inset, ${alpha(
- theme.palette.common.black,
- 0.5,
- )} 0 -3px 0 inset, ${theme.palette.common.black} 0 1px 2px 0`,
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primary[900],
- borderColor: (theme.vars || theme).palette.primary[700],
- },
- }),
- }),
- ...(ownerState.variant === 'contained' &&
- ownerState.color === 'primary' && {
- color: '#fff',
- textShadow: `0 1px 1px ${alpha(theme.palette.common.black, 0.6)}`,
- backgroundColor: (theme.vars || theme).palette.primary[500],
- backgroundImage: `linear-gradient(180deg, ${alpha(
- theme.palette.primary[500],
- 0.6,
- )} 0%, ${theme.palette.primary[600]} 100%)`,
- boxShadow: `${theme.palette.primary[400]} 0 2px 0.5px inset, ${theme.palette.primary[700]} 0 -3px 1px inset, ${alpha(theme.palette.common.black, 0.1)} 0 2px 4px 0`,
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primary[700],
- },
- '&:active': {
- backgroundColor: (theme.vars || theme).palette.primaryDark[700],
- },
- }),
- ...(ownerState.variant === 'text' && {
- color: (theme.vars || theme).palette.primary[600],
- ...theme.applyDarkStyles({
- color: (theme.vars || theme).palette.primary[300],
- }),
- }),
- }),
- },
- variants: [
- {
- // @ts-ignore internal repo module augmentation issue
- props: { variant: 'code' },
- style: ({ theme }) => [
- {
- cursor: 'copy',
- padding: 0,
- width: 'max-content',
- backgroundColor: 'transparent',
- color: (theme.vars || theme).palette.grey[600],
- fontFamily: theme.typography.fontFamilyCode,
- fontWeight: 400,
- fontSize: defaultTheme.typography.pxToRem(12),
- lineHeight: 21 / 14,
- letterSpacing: 0,
- WebkitFontSmoothing: 'subpixel-antialiased',
- '& .MuiButton-startIcon': {
- color: (theme.vars || theme).palette.grey[400],
- },
- '& .MuiButton-endIcon': {
- display: 'inline-block',
- position: 'absolute',
- color: (theme.vars || theme).palette.primary.main,
- right: -22,
- top: -1,
- opacity: 0,
- transitionProperty: 'opacity',
- transitionDuration: '100ms',
- transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',
- },
- '&:hover, &.Mui-focusVisible': {
- backgroundColor: 'transparent',
- color: (theme.vars || theme).palette.primary.main,
- '& .MuiButton-endIcon': {
- color: (theme.vars || theme).palette.primary.main,
- opacity: 1,
- },
- },
- },
- theme.applyDarkStyles({
- '& .MuiButton-endIcon': {
- color: (theme.vars || theme).palette.primary[300],
- },
- '&:hover, &.Mui-focusVisible': {
- color: (theme.vars || theme).palette.primary[300],
- '& .MuiButton-endIcon': {
- opacity: 1,
- },
- },
- }),
- ],
- },
- {
- // @ts-ignore internal repo module augmentation issue
- props: { variant: 'codeOutlined' },
- style: ({ theme }) => [
- {
- display: 'inline-block',
- justifyContent: 'start',
- overflowX: 'hidden',
- whiteSpace: 'nowrap',
- textOverflow: 'ellipsis',
- position: 'relative',
- border: '1px solid',
- color: (theme.vars || theme).palette.grey[900],
- backgroundColor: alpha(theme.palette.primary[50], 0.3),
- borderColor: (theme.vars || theme).palette.grey[200],
- boxShadow: `0px 2px 2px ${alpha(
- theme.palette.primary[100],
- 0.2,
- )}, inset 0px 4px 4px ${alpha(theme.palette.primary[100], 0.2)}`,
- fontFamily: theme.typography.fontFamilyCode,
- fontWeight: 400,
- fontSize: defaultTheme.typography.pxToRem(12),
- lineHeight: 21 / 14,
- letterSpacing: 0,
- WebkitFontSmoothing: 'subpixel-antialiased',
- '& .MuiButton-endIcon': {
- display: 'inline-block',
- position: 'absolute',
- top: 12,
- right: 0,
- marginRight: 10,
- color: (theme.vars || theme).palette.grey[600],
- },
- '&:hover, &.Mui-focusVisible': {
- borderColor: (theme.vars || theme).palette.primary.main,
- backgroundColor: (theme.vars || theme).palette.primary[50],
- color: (theme.vars || theme).palette.primary[600],
- '& .MuiButton-endIcon': {
- color: (theme.vars || theme).palette.primary.main,
- },
- },
- } as const,
- theme.applyDarkStyles({
- color: (theme.vars || theme).palette.grey[500],
- borderColor: (theme.vars || theme).palette.primaryDark[600],
- backgroundColor: (theme.vars || theme).palette.primaryDark[700],
- boxShadow: '0px 2px 2px #0B0D0E, inset 0px 4px 4px rgba(20, 25, 31, 0.3)',
- '& .MuiButton-endIcon': {
- color: (theme.vars || theme).palette.grey[400],
- },
- '&:hover, &.Mui-focusVisible': {
- backgroundColor: (theme.vars || theme).palette.primary[900],
- color: (theme.vars || theme).palette.primary[100],
- '& .MuiButton-endIcon': {
- color: (theme.vars || theme).palette.primary[300],
- },
- },
- }),
- ],
- },
- {
- // @ts-ignore internal repo module augmentation issue
- props: { variant: 'link' },
- style: ({ theme }) => ({
- marginBottom: 1,
- fontSize: theme.typography.pxToRem(14),
- fontWeight: theme.typography.fontWeightBold,
- color: (theme.vars || theme).palette.primary[600],
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primary[50],
- },
- ...theme.applyDarkStyles({
- color: (theme.vars || theme).palette.primary[300],
- '&:hover': {
- backgroundColor: alpha(theme.palette.primary[800], 0.3),
- },
- }),
- }),
- },
- ],
- },
- MuiIconButton: {
- variants: [
- {
- props: { color: 'primary' },
- style: ({ theme }) => [
- {
- height: 34,
- width: 34,
- border: `1px solid`,
- borderColor: (theme.vars || theme).palette.grey[200],
- color: (theme.vars || theme).palette.primary[500],
- borderRadius: theme.shape.borderRadius,
- boxShadow: `inset 0 1px 2px ${
- (theme.vars || theme).palette.grey[50]
- }, 0 1px 0.5px ${alpha(theme.palette.grey[100], 0.6)}`,
- '&:hover': {
- borderColor: (theme.vars || theme).palette.grey[300],
- background: (theme.vars || theme).palette.grey[50],
- },
- },
- theme.applyDarkStyles({
- borderColor: (theme.vars || theme).palette.primaryDark[700],
- color: (theme.vars || theme).palette.primary[300],
- boxShadow: `inset 0 1px 1px ${
- (theme.vars || theme).palette.primaryDark[900]
- }, 0 1px 0.5px ${(theme.vars || theme).palette.common.black}`,
- '&:hover': {
- borderColor: (theme.vars || theme).palette.primaryDark[600],
- background: alpha(theme.palette.primaryDark[700], 0.4),
- },
- }),
- ],
- },
- {
- props: { color: 'info' },
- style: ({ theme }) => [
- {
- height: 34,
- width: 34,
- border: `1px solid`,
- borderColor: (theme.vars || theme).palette.grey[200],
- color: (theme.vars || theme).palette.grey[600],
- borderRadius: theme.shape.borderRadius,
- boxShadow: `inset 0 1px 2px ${
- (theme.vars || theme).palette.grey[50]
- }, 0 1px 0.5px ${alpha(theme.palette.grey[100], 0.6)}`,
- '&:hover': {
- color: (theme.vars || theme).palette.primary.main,
- borderColor: (theme.vars || theme).palette.grey[300],
- background: (theme.vars || theme).palette.grey[50],
- },
- },
- theme.applyDarkStyles({
- borderColor: (theme.vars || theme).palette.primaryDark[700],
- color: (theme.vars || theme).palette.grey[400],
- boxShadow: `inset 0 1px 1px ${
- (theme.vars || theme).palette.primaryDark[900]
- }, 0 1px 0.5px ${(theme.vars || theme).palette.common.black}`,
- '&:hover': {
- color: (theme.vars || theme).palette.primary[400],
- borderColor: (theme.vars || theme).palette.primaryDark[600],
- background: alpha(theme.palette.primaryDark[700], 0.4),
- },
- }),
- ],
- },
- ],
- },
- MuiMenu: {
- styleOverrides: {
- paper: ({ theme }) => [
- {
- minWidth: 160,
- color: (theme.vars || theme).palette.text.secondary,
- backgroundImage: 'none',
- border: '1px solid',
- backgroundColor: (theme.vars || theme).palette.background.paper,
- borderColor: (theme.vars || theme).palette.grey[200],
- '& .MuiMenuItem-root': {
- fontSize: theme.typography.pxToRem(14),
- fontWeight: 500,
- '&:hover, &:focus': {
- backgroundColor: (theme.vars || theme).palette.grey[50],
- },
- '&:focus-visible': {
- outline: 'none',
- },
- '&.Mui-selected': {
- fontWeight: 500,
- color: (theme.vars || theme).palette.primary[600],
- backgroundColor: alpha(theme.palette.primary[100], 0.6),
- },
- },
- },
- theme.applyDarkStyles({
- backgroundColor: (theme.vars || theme).palette.primaryDark[900],
- borderColor: (theme.vars || theme).palette.primaryDark[700],
- '& .MuiMenuItem-root': {
- '&:hover, &:focus': {
- backgroundColor: (theme.vars || theme).palette.primaryDark[700],
- },
- '&.Mui-selected': {
- color: (theme.vars || theme).palette.primary[300],
- backgroundColor: alpha(theme.palette.primary[900], 0.4),
- },
- },
- }),
- ],
- },
- },
- MuiPopover: {
- styleOverrides: {
- paper: ({ theme }) => ({
- boxShadow: '0px 4px 20px rgba(170, 180, 190, 0.3)',
- ...theme.applyDarkStyles({
- boxShadow: '0px 4px 20px rgba(0, 0, 0, 0.5)',
- }),
- }),
- },
- },
- MuiDivider: {
- styleOverrides: {
- root: ({ theme }) => ({
- borderColor: (theme.vars || theme).palette.grey[100],
- ...theme.applyDarkStyles({
- borderColor: alpha(theme.palette.primaryDark[700], 0.8),
- }),
- }),
- },
- },
- MuiLink: {
- defaultProps: {
- underline: 'none',
- },
- styleOverrides: {
- root: ({ theme }) => ({
- display: 'inline-flex',
- alignItems: 'center',
- fontWeight: theme.typography.fontWeightSemiBold,
- '&.MuiTypography-body1 > svg': {
- marginTop: 2,
- },
- '& svg:last-child': {
- marginLeft: 2,
- },
- '&:focus-visible': {
- outline: `3px solid ${alpha(theme.palette.primary[500], 0.5)}`,
- outlineOffset: '2px',
- },
- }),
- },
- variants: [
- {
- props: { color: 'primary' },
- style: ({ theme }) => [
- {
- color: (theme.vars || theme).palette.primary[600],
- '&:hover': {
- color: (theme.vars || theme).palette.primary[700],
- },
- },
- theme.applyDarkStyles({
- color: (theme.vars || theme).palette.primary[300],
- '&:hover': {
- color: (theme.vars || theme).palette.primary[200],
- },
- }),
- ],
- },
- ],
- },
- MuiChip: {
- styleOverrides: {
- root: ({ ownerState: { color, variant }, theme }) => ({
- fontWeight: theme.typography.fontWeightSemiBold,
- paddingBottom: 0.2,
- ...(variant === 'outlined' &&
- color === 'default' && {
- backgroundColor: alpha(theme.palette.grey[50], 0.5),
- color: (theme.vars || theme).palette.grey[900],
- borderColor: (theme.vars || theme).palette.grey[200],
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.grey[100],
- color: (theme.vars || theme).palette.grey[900],
- },
- ...theme.applyDarkStyles({
- backgroundColor: alpha(theme.palette.primaryDark[700], 0.4),
- color: (theme.vars || theme).palette.grey[300],
- borderColor: alpha(theme.palette.primaryDark[500], 0.5),
- '&:hover': {
- color: (theme.vars || theme).palette.grey[300],
- backgroundColor: (theme.vars || theme).palette.primaryDark[700],
- },
- }),
- }),
- ...(variant === 'outlined' &&
- color === 'info' && {
- backgroundColor: alpha(theme.palette.grey[50], 0.5),
- color: (theme.vars || theme).palette.grey[900],
- borderColor: (theme.vars || theme).palette.grey[200],
- ...theme.applyDarkStyles({
- color: (theme.vars || theme).palette.grey[300],
- backgroundColor: alpha(theme.palette.primaryDark[700], 0.5),
- borderColor: (theme.vars || theme).palette.primaryDark[600],
- }),
- }),
- ...(variant === 'outlined' &&
- color === 'primary' && {
- borderColor: (theme.vars || theme).palette.primary[100],
- backgroundColor: (theme.vars || theme).palette.primary[50],
- ...theme.applyDarkStyles({
- color: (theme.vars || theme).palette.primary[300],
- borderColor: alpha(theme.palette.primary[500], 0.2),
- backgroundColor: alpha(theme.palette.primary[700], 0.2),
- }),
- }),
- ...(variant === 'outlined' &&
- color === 'success' && {
- borderColor: (theme.vars || theme).palette.success[100],
- backgroundColor: (theme.vars || theme).palette.success[50],
- color: (theme.vars || theme).palette.success[900],
- ...theme.applyDarkStyles({
- color: (theme.vars || theme).palette.success[300],
- borderColor: alpha(theme.palette.success[300], 0.2),
- background: alpha(theme.palette.success[800], 0.2),
- }),
- }),
- ...(variant === 'filled' && {
- ...(color === 'default' && {
- border: '1px solid transparent',
- color: (theme.vars || theme).palette.primary[700],
- backgroundColor: alpha(theme.palette.primary[100], 0.5),
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primary[100],
- },
- ...theme.applyDarkStyles({
- color: '#fff',
- backgroundColor: alpha(theme.palette.primaryDark[500], 0.8),
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primaryDark[600],
- },
- }),
- }),
- ...(color === 'primary' && {
- color: (theme.vars || theme).palette.primary[600],
- backgroundColor: alpha(theme.palette.primary[100], 0.4),
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primary[100],
- },
- '& .MuiChip-deleteIcon': {
- color: (theme.vars || theme).palette.primary[600],
- '&:hover': {
- color: (theme.vars || theme).palette.primary[700],
- },
- },
- ...theme.applyDarkStyles({
- color: (theme.vars || theme).palette.primary[100],
- backgroundColor: alpha(theme.palette.primary[800], 0.5),
- '&:hover': {
- backgroundColor: alpha(theme.palette.primary[900], 0.5),
- },
- '& .MuiChip-deleteIcon': {
- color: (theme.vars || theme).palette.primary[100],
- '&:hover': {
- color: (theme.vars || theme).palette.primary[50],
- },
- },
- }),
- }),
- }),
- // for labelling product in the search
- // @ts-ignore internal repo module augmentation issue
- ...(variant === 'light' && {
- ...(color === 'default' && {
- color: (theme.vars || theme).palette.primary[700],
- backgroundColor: alpha(theme.palette.primary[100], 0.3),
- ...theme.applyDarkStyles({
- color: (theme.vars || theme).palette.primary[200],
- backgroundColor: alpha(theme.palette.primaryDark[700], 0.5),
- }),
- }),
- ...(color === 'warning' && {
- color: (theme.vars || theme).palette.warning[900],
- backgroundColor: (theme.vars || theme).palette.warning[100],
- ...theme.applyDarkStyles({
- color: '#fff',
- backgroundColor: (theme.vars || theme).palette.warning[900],
- }),
- }),
- ...(color === 'success' && {
- color: (theme.vars || theme).palette.success[900],
- backgroundColor: (theme.vars || theme).palette.success[100],
- ...theme.applyDarkStyles({
- color: '#fff',
- backgroundColor: (theme.vars || theme).palette.success[900],
- }),
- }),
- }),
- }),
- },
- },
- MuiList: {
- styleOverrides: {
- root: {
- padding: 0,
- },
- },
- },
- MuiListItemButton: {
- styleOverrides: {
- root: ({ theme }) => [
- {
- padding: '8px',
- textTransform: 'none',
- fontWeight: 500,
- fontSize: theme.typography.pxToRem(14),
- color: theme.palette.grey[700],
- borderRadius: 0,
- '&:hover': {
- backgroundColor: theme.palette.grey[50],
- },
- '&.Mui-selected': {
- borderRadius: 10,
- border: '1px solid',
- color: (theme.vars || theme).palette.primary[500],
- borderColor: `${(theme.vars || theme).palette.primary[500]} !important`,
- backgroundColor: (theme.vars || theme).palette.primary[50],
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primary[100],
- },
- },
- } as const,
- theme.applyDarkStyles({
- color: theme.palette.grey[300],
- '&:hover': {
- backgroundColor: alpha(theme.palette.primaryDark[700], 0.4),
- },
- '&.Mui-selected': {
- color: '#fff',
- borderColor: `${(theme.vars || theme).palette.primary[700]} !important`,
- backgroundColor: (theme.vars || theme).palette.primaryDark[700],
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primaryDark[600],
- },
- },
- }),
- ],
- },
- },
- MuiSelect: {
- defaultProps: {
- IconComponent: ArrowDropDownRounded,
- },
- styleOverrides: {
- iconFilled: {
- top: 'calc(50% - .25em)',
- },
- },
- },
- MuiTab: {
- defaultProps: {
- disableTouchRipple: true,
- },
- },
- MuiPaper: {
- styleOverrides: {
- root: ({ theme, ownerState }) => [
- {
- backgroundImage: 'none',
- backgroundColor: '#fff',
- '&[href]': {
- textDecorationLine: 'none',
- },
- transition: theme.transitions.create(['border', 'box-shadow'], {
- duration: theme.transitions.duration.shortest,
- }),
- ...(ownerState.variant === 'outlined' && {
- display: 'block',
- borderColor: (theme.vars || theme).palette.grey[100],
- '&[href]': {
- textDecorationLine: 'none',
- boxShadow: `inset 0 1px 2px ${
- (theme.vars || theme).palette.grey[50]
- }, 0 1px 2px ${alpha(theme.palette.grey[100], 0.6)}`,
- '&:hover': {
- borderColor: (theme.vars || theme).palette.primary[200],
- boxShadow: `0px 2px 8px ${(theme.vars || theme).palette.primary[100]}`,
- },
- '&:focus-visible': {
- outline: `3px solid ${alpha(theme.palette.primary[500], 0.5)}`,
- outlineOffset: '2px',
- },
- },
- ':is(a&), :is(button&)': {
- '&:hover': {
- borderColor: (theme.vars || theme).palette.primary[200],
- boxShadow: `0px 4px 16px ${(theme.vars || theme).palette.grey[200]}`,
- },
- },
- }),
- },
- theme.applyDarkStyles({
- backgroundColor: (theme.vars || theme).palette.primaryDark[900],
- ...(ownerState.variant === 'outlined' && {
- borderColor: (theme.vars || theme).palette.primaryDark[700],
- backgroundColor: alpha(theme.palette.primaryDark[800], 0.6),
- '&[href]': {
- textDecorationLine: 'none',
- boxShadow: `inset 0 1px 1px ${
- (theme.vars || theme).palette.primaryDark[900]
- }, 0 1px 2px ${(theme.vars || theme).palette.common.black}`,
- '&:hover': {
- borderColor: alpha(theme.palette.primary[600], 0.5),
- boxShadow: `0px 2px 8px ${alpha(theme.palette.primary[900], 0.6)}`,
- },
- },
- ':is(a&), :is(button&)': {
- '&:hover': {
- boxShadow: `0px 4px 24px ${(theme.vars || theme).palette.common.black}`,
- },
- },
- }),
- }),
- ],
- },
- },
- MuiTableCell: {
- styleOverrides: {
- root: ({ theme, ownerState }) => ({
- padding: theme.spacing(1, 2),
- borderColor: (theme.vars || theme).palette.divider,
- ...(ownerState.variant === 'head' && {
- color: (theme.vars || theme).palette.text.primary,
- fontWeight: 700,
- }),
- ...(ownerState.variant === 'body' && {
- color: (theme.vars || theme).palette.text.secondary,
- }),
- }),
- },
- },
- MuiToggleButtonGroup: {
- styleOverrides: {
- root: ({ theme }) => ({
- backgroundColor: '#fff',
- ...theme.applyDarkStyles({
- backgroundColor: (theme.vars || theme).palette.primaryDark[900],
- }),
- }),
- },
- },
- MuiToggleButton: {
- styleOverrides: {
- root: ({ theme, ownerState }) => [
- {
- textTransform: 'none',
- fontWeight: 'medium',
- color: theme.palette.text.secondary,
- borderColor: theme.palette.grey[200],
- ...(ownerState.size === 'small' && {
- padding: '0.375rem 0.75rem',
- }),
- '&.Mui-selected': {
- color: (theme.vars || theme).palette.primary[700],
- borderColor: `${(theme.vars || theme).palette.primary[500]} !important`,
- backgroundColor: (theme.vars || theme).palette.primary[50],
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primary[100],
- },
- },
- } as const,
- theme.applyDarkStyles({
- borderColor: theme.palette.primaryDark[700],
- '&:hover': {
- backgroundColor: alpha(theme.palette.primaryDark[600], 0.2),
- },
- '&.Mui-selected': {
- color: (theme.vars || theme).palette.primary[200],
- borderColor: `${(theme.vars || theme).palette.primary[700]} !important`,
- backgroundColor: alpha(theme.palette.primary[900], 0.4),
- '&:hover': {
- backgroundColor: alpha(theme.palette.primary[900], 0.8),
- borderColor: `${(theme.vars || theme).palette.primary[400]} !important`,
- },
- },
- }),
- ],
- },
- },
- MuiTooltip: {
- styleOverrides: {
- tooltip: {
- borderRadius: 6,
- padding: '6px 12px',
- },
- },
- },
- MuiSwitch: {
- styleOverrides: {
- root: {
- width: 32,
- height: 20,
- padding: 0,
- '& .MuiSwitch-switchBase': {
- '&.Mui-checked': {
- transform: 'translateX(11px)',
- color: '#fff',
- },
- },
- },
- switchBase: {
- height: 20,
- width: 20,
- padding: 0,
- color: '#fff',
- '&.Mui-checked + .MuiSwitch-track': {
- opacity: 1,
- },
- },
- track: ({ theme }) => ({
- opacity: 1,
- borderRadius: 32,
- backgroundColor: theme.palette.grey[400],
- ...theme.applyDarkStyles({
- backgroundColor: theme.palette.grey[800],
- }),
- }),
- thumb: {
- flexShrink: 0,
- width: '14px',
- height: '14px',
- },
- },
- },
- MuiPaginationItem: {
- styleOverrides: {
- root: ({ theme }) => [
- {
- textTransform: 'none',
- fontWeight: theme.typography.fontWeightSemiBold,
- color: theme.palette.grey[700],
- borderColor: theme.palette.grey[200],
- borderRadius: '8px',
- '&.Mui-selected': {
- color: (theme.vars || theme).palette.primary[500],
- borderColor: `${(theme.vars || theme).palette.primary[500]} !important`,
- backgroundColor: (theme.vars || theme).palette.primary[50],
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primary[100],
- },
- },
- } as const,
- theme.applyDarkStyles({
- color: theme.palette.grey[200],
- borderColor: theme.palette.primaryDark[700],
- '&.Mui-selected': {
- color: theme.palette.primary[100],
- borderColor: `${(theme.vars || theme).palette.primary[700]} !important`,
- backgroundColor: alpha(theme.palette.primary[900], 0.5),
- '&:hover': {
- backgroundColor: alpha(theme.palette.primary[900], 0.8),
- },
- },
- }),
- ],
- },
- },
- MuiCssBaseline: {
- defaultProps: {
- enableColorScheme: true,
- },
- styleOverrides: {
- html: {
- overflowY: 'scroll',
- // TODO add support for it,
- // https://github.com/mui/material-ui/issues/40748
- // scrollbarGutter: 'stable',
- },
- },
- },
- },
- };
-}
-
-export const brandingDarkTheme = createTheme({
- ...getDesignTokens('dark'),
- ...getThemedComponents(),
-});
-
-export const brandingLightTheme = createTheme({
- ...getDesignTokens('light'),
- ...getThemedComponents(),
-});
+export * from '@mui/docs/branding';
diff --git a/docs/src/modules/components/ApiPage.js b/docs/src/modules/components/ApiPage.js
index 80781fd2724f25..abf1775d1768fd 100644
--- a/docs/src/modules/components/ApiPage.js
+++ b/docs/src/modules/components/ApiPage.js
@@ -13,7 +13,7 @@ import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
import MarkdownElement from 'docs/src/modules/components/MarkdownElement';
import AppLayoutDocs from 'docs/src/modules/components/AppLayoutDocs';
import Ad from 'docs/src/modules/components/Ad';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
import PropertiesSection, {
getPropsToC,
} from 'docs/src/modules/components/ApiPage/sections/PropertiesSection';
diff --git a/docs/src/modules/components/ApiPage/ApiWarning.tsx b/docs/src/modules/components/ApiPage/ApiWarning.tsx
index f1b6a5dcd11f55..be5457e4e48a48 100644
--- a/docs/src/modules/components/ApiPage/ApiWarning.tsx
+++ b/docs/src/modules/components/ApiPage/ApiWarning.tsx
@@ -6,7 +6,7 @@ import WarningRoundedIcon from '@mui/icons-material/WarningRounded';
import {
brandingDarkTheme as darkTheme,
brandingLightTheme as lightTheme,
-} from 'docs/src/modules/brandingTheme';
+} from '@mui/docs/branding';
const StyledAlert = styled(Alert)(
({ theme }) => ({
diff --git a/docs/src/modules/components/ApiPage/list/ClassesList.tsx b/docs/src/modules/components/ApiPage/list/ClassesList.tsx
index d7366af1b60239..9923913965eeeb 100644
--- a/docs/src/modules/components/ApiPage/list/ClassesList.tsx
+++ b/docs/src/modules/components/ApiPage/list/ClassesList.tsx
@@ -10,7 +10,7 @@ import ExpandableApiItem, {
import {
brandingLightTheme as lightTheme,
brandingDarkTheme as darkTheme,
-} from 'docs/src/modules/brandingTheme';
+} from '@mui/docs/branding';
import ApiWarning from 'docs/src/modules/components/ApiPage/ApiWarning';
const StyledApiItem = styled(ExpandableApiItem)(
diff --git a/docs/src/modules/components/ApiPage/list/ExpandableApiItem.tsx b/docs/src/modules/components/ApiPage/list/ExpandableApiItem.tsx
index 5f5a076ea250dc..bf8d7ec1d833a0 100644
--- a/docs/src/modules/components/ApiPage/list/ExpandableApiItem.tsx
+++ b/docs/src/modules/components/ApiPage/list/ExpandableApiItem.tsx
@@ -7,7 +7,7 @@ import { Divider, IconButton, SxProps } from '@mui/material';
import {
brandingDarkTheme as darkTheme,
brandingLightTheme as lightTheme,
-} from 'docs/src/modules/brandingTheme';
+} from '@mui/docs/branding';
type DescriptionType = 'props' | 'classes' | 'CSS' | 'slots';
diff --git a/docs/src/modules/components/ApiPage/list/PropertiesList.tsx b/docs/src/modules/components/ApiPage/list/PropertiesList.tsx
index 801349f37cc536..4b941670f15ae3 100644
--- a/docs/src/modules/components/ApiPage/list/PropertiesList.tsx
+++ b/docs/src/modules/components/ApiPage/list/PropertiesList.tsx
@@ -6,7 +6,7 @@ import { useTranslate } from '@mui/docs/i18n';
import {
brandingDarkTheme as darkTheme,
brandingLightTheme as lightTheme,
-} from 'docs/src/modules/brandingTheme';
+} from '@mui/docs/branding';
import ExpandableApiItem, {
ApiItemContaier,
} from 'docs/src/modules/components/ApiPage/list/ExpandableApiItem';
diff --git a/docs/src/modules/components/ApiPage/list/SlotsList.tsx b/docs/src/modules/components/ApiPage/list/SlotsList.tsx
index f205d62009f5fd..d05c5a859fa45e 100644
--- a/docs/src/modules/components/ApiPage/list/SlotsList.tsx
+++ b/docs/src/modules/components/ApiPage/list/SlotsList.tsx
@@ -4,7 +4,7 @@ import { styled, alpha } from '@mui/material/styles';
import {
brandingLightTheme as lightTheme,
brandingDarkTheme as darkTheme,
-} from 'docs/src/modules/brandingTheme';
+} from '@mui/docs/branding';
import { useTranslate } from '@mui/docs/i18n';
import ExpandableApiItem, {
ApiItemContaier,
diff --git a/docs/src/modules/components/ApiPage/table/ClassesTable.tsx b/docs/src/modules/components/ApiPage/table/ClassesTable.tsx
index f2546202208eb1..b0b687e10ad9a0 100644
--- a/docs/src/modules/components/ApiPage/table/ClassesTable.tsx
+++ b/docs/src/modules/components/ApiPage/table/ClassesTable.tsx
@@ -5,7 +5,7 @@ import { styled, alpha } from '@mui/material/styles';
import {
brandingDarkTheme as darkTheme,
brandingLightTheme as lightTheme,
-} from 'docs/src/modules/brandingTheme';
+} from '@mui/docs/branding';
import { getHash } from 'docs/src/modules/components/ApiPage/list/ClassesList';
import StyledTableContainer from 'docs/src/modules/components/ApiPage/table/StyledTableContainer';
import { useTranslate } from '@mui/docs/i18n';
diff --git a/docs/src/modules/components/ApiPage/table/PropertiesTable.tsx b/docs/src/modules/components/ApiPage/table/PropertiesTable.tsx
index cf52eef9036d60..b734f241b2c6ed 100644
--- a/docs/src/modules/components/ApiPage/table/PropertiesTable.tsx
+++ b/docs/src/modules/components/ApiPage/table/PropertiesTable.tsx
@@ -5,7 +5,7 @@ import { useTranslate } from '@mui/docs/i18n';
import {
brandingDarkTheme as darkTheme,
brandingLightTheme as lightTheme,
-} from 'docs/src/modules/brandingTheme';
+} from '@mui/docs/branding';
import { Properties, getHash } from 'docs/src/modules/components/ApiPage/list/PropertiesList';
import StyledTableContainer from 'docs/src/modules/components/ApiPage/table/StyledTableContainer';
import ApiWarning from 'docs/src/modules/components/ApiPage/ApiWarning';
diff --git a/docs/src/modules/components/ApiPage/table/SlotsTable.tsx b/docs/src/modules/components/ApiPage/table/SlotsTable.tsx
index d08c3e68aa3133..bdaaf23ef987fe 100644
--- a/docs/src/modules/components/ApiPage/table/SlotsTable.tsx
+++ b/docs/src/modules/components/ApiPage/table/SlotsTable.tsx
@@ -5,7 +5,7 @@ import { styled, alpha } from '@mui/material/styles';
import {
brandingDarkTheme as darkTheme,
brandingLightTheme as lightTheme,
-} from 'docs/src/modules/brandingTheme';
+} from '@mui/docs/branding';
import { SlotsFormatedParams, getHash } from 'docs/src/modules/components/ApiPage/list/SlotsList';
import StyledTableContainer from 'docs/src/modules/components/ApiPage/table/StyledTableContainer';
diff --git a/docs/src/modules/components/ApiPage/table/StyledTableContainer.tsx b/docs/src/modules/components/ApiPage/table/StyledTableContainer.tsx
index a9be6a2fa5150a..c0222301382202 100644
--- a/docs/src/modules/components/ApiPage/table/StyledTableContainer.tsx
+++ b/docs/src/modules/components/ApiPage/table/StyledTableContainer.tsx
@@ -1,5 +1,5 @@
import { styled, alpha } from '@mui/material/styles';
-import { brandingDarkTheme as darkTheme } from 'docs/src/modules/brandingTheme';
+import { brandingDarkTheme as darkTheme } from '@mui/docs/branding';
const StyledTableContainer = styled('div')(
({ theme }) => ({
diff --git a/docs/src/modules/components/AppSearch.js b/docs/src/modules/components/AppSearch.js
index 00e9cc24183998..0cf3f3da46828e 100644
--- a/docs/src/modules/components/AppSearch.js
+++ b/docs/src/modules/components/AppSearch.js
@@ -54,7 +54,7 @@ const SearchButton = styled('button')(({ theme }) => [
cursor: 'pointer',
transitionProperty: 'all',
transitionDuration: '150ms',
- boxShadow: `inset 0 -1px 1px ${(theme.vars || theme).palette.grey[100]}, 0 1px 0.5px ${alpha(
+ boxShadow: `inset 0 -1px 0 ${(theme.vars || theme).palette.grey[100]}, 0 1px 0.5px ${alpha(
theme.palette.grey[100],
0.6,
)}`,
diff --git a/docs/src/modules/components/AppSettingsDrawer.js b/docs/src/modules/components/AppSettingsDrawer.js
index 8b04f7d36e3dd6..1bde4081dbfd62 100644
--- a/docs/src/modules/components/AppSettingsDrawer.js
+++ b/docs/src/modules/components/AppSettingsDrawer.js
@@ -66,14 +66,25 @@ export default function AppSettingsDrawer(props) {
open={open}
PaperProps={{
elevation: 0,
- sx: { width: { xs: 310, sm: 360 }, borderRadius: '10px 0px 0px 10px' },
+ sx: {
+ width: { xs: 310, sm: 360 },
+ borderRadius: '10px 0px 0px 10px',
+ border: '1px solid',
+ borderColor: 'divider',
+ },
}}
{...other}
>
-
+
{t('settings.settings')}
@@ -157,8 +168,8 @@ export default function AppSettingsDrawer(props) {
href="/material-ui/customization/color/#playground"
data-ga-event-category="settings"
data-ga-event-action="colors"
- size="medium"
variant="outlined"
+ size="small"
fullWidth
>
{t('settings.editDocsColors')}
diff --git a/docs/src/modules/components/BackToTop.tsx b/docs/src/modules/components/BackToTop.tsx
index a3366f7f626fb4..38b35e541700e3 100644
--- a/docs/src/modules/components/BackToTop.tsx
+++ b/docs/src/modules/components/BackToTop.tsx
@@ -35,7 +35,13 @@ export default function BackToTop() {
return (
-
+ ({
- backgroundColor: (theme.vars || theme).palette.primary[100],
- boxShadow: `0px 4px 20px rgba(170, 180, 190, 0.3)`,
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primary[200],
- },
- '&:active': {
- boxShadow: `0px 4px 20px rgba(170, 180, 190, 0.6)`,
- },
- }),
- (theme) =>
- theme.applyDarkStyles({
- backgroundColor: (theme.vars || theme).palette.primaryDark[400],
- boxShadow: `0px 4px 20px rgba(0, 0, 0, 0.5)`,
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette.primaryDark[500],
- },
- '&:active': {
- boxShadow: `0px 4px 20px rgba(0, 0, 0, 0.7)`,
- },
- }),
- ]}
size="small"
aria-label={t('backToTop')}
onClick={handleClick}
data-ga-event-category="docs"
data-ga-event-action="click-back-to-top"
+ sx={(theme) => ({
+ backgroundColor: (theme.vars || theme).palette.primary[50],
+ border: `1px solid ${(theme.vars || theme).palette.primary[200]}`,
+ boxShadow: `0px 4px 12px rgba(0, 0, 0, 0.1)`,
+ '&:hover': {
+ backgroundColor: (theme.vars || theme).palette.primary[200],
+ },
+ ...theme.applyDarkStyles({
+ backgroundColor: (theme.vars || theme).palette.primary[900],
+ borderColor: (theme.vars || theme).palette.primary[700],
+ boxShadow: `0px 4px 12px rgba(0, 0, 0, 0.8)`,
+ '&:hover': {
+ backgroundColor: (theme.vars || theme).palette.primary[800],
+ },
+ }),
+ })}
>
({
diff --git a/docs/src/modules/components/Demo.js b/docs/src/modules/components/Demo.js
index 12cdd5d9c5e1d2..4bebe7324c9390 100644
--- a/docs/src/modules/components/Demo.js
+++ b/docs/src/modules/components/Demo.js
@@ -21,9 +21,8 @@ import { useCodeStyling } from 'docs/src/modules/utils/codeStylingSolution';
import { CODE_VARIANTS, CODE_STYLING } from 'docs/src/modules/constants';
import { useUserLanguage, useTranslate } from '@mui/docs/i18n';
import stylingSolutionMapping from 'docs/src/modules/utils/stylingSolutionMapping';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider, blue, blueDark, grey } from '@mui/docs/branding';
import DemoToolbarRoot from 'docs/src/modules/components/DemoToolbarRoot';
-import { blue, blueDark, grey } from 'docs/src/modules/brandingTheme';
/**
* Removes leading spaces (indentation) present in the `.tsx` previews
diff --git a/docs/src/modules/components/DemoEditor.tsx b/docs/src/modules/components/DemoEditor.tsx
index 8877685b09e47d..e32390019b3f63 100644
--- a/docs/src/modules/components/DemoEditor.tsx
+++ b/docs/src/modules/components/DemoEditor.tsx
@@ -8,7 +8,7 @@ import MarkdownElement from 'docs/src/modules/components/MarkdownElement';
import CodeCopyButton from 'docs/src/modules/components/CodeCopyButton';
import { useTranslate } from '@mui/docs/i18n';
import { useCodeCopy } from 'docs/src/modules/utils/CodeCopy';
-import { blueDark } from 'docs/src/modules/brandingTheme';
+import { blueDark } from '@mui/docs/branding';
const StyledMarkdownElement = styled(MarkdownElement)(({ theme }) => [
{
diff --git a/docs/src/modules/components/DemoSandbox.js b/docs/src/modules/components/DemoSandbox.js
index 57ebf0ace75a40..56134daf603efd 100644
--- a/docs/src/modules/components/DemoSandbox.js
+++ b/docs/src/modules/components/DemoSandbox.js
@@ -13,7 +13,7 @@ import { useTheme, styled, createTheme, ThemeProvider } from '@mui/material/styl
import rtl from 'jss-rtl';
import DemoErrorBoundary from 'docs/src/modules/components/DemoErrorBoundary';
import { useTranslate } from '@mui/docs/i18n';
-import { getDesignTokens } from 'docs/src/modules/brandingTheme';
+import { getDesignTokens } from '@mui/docs/branding';
import { highDensity } from 'docs/src/modules/components/ThemeContext';
const iframeDefaultJoyTheme = extendTheme({
diff --git a/docs/src/modules/components/DiamondSponsors.js b/docs/src/modules/components/DiamondSponsors.js
index 8e4b9d7d0f47ab..cdd753cb98009b 100644
--- a/docs/src/modules/components/DiamondSponsors.js
+++ b/docs/src/modules/components/DiamondSponsors.js
@@ -17,10 +17,7 @@ const NativeLink = styled('a')(({ theme }) => ({
border: '1px solid',
borderColor: (theme.vars || theme).palette.divider,
transition: theme.transitions.create(['color', 'border-color']),
- boxShadow: `inset 0 1px 1px ${(theme.vars || theme).palette.grey[50]}, 0 1px 2px ${alpha(
- theme.palette.grey[100],
- 0.6,
- )}`,
+ boxShadow: `${alpha(theme.palette.grey[50], 0.5)} 0 1px 0 inset, ${alpha(theme.palette.grey[100], 0.3)} 0 -2px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`,
'&:hover': {
backgroundColor: (theme.vars || theme).palette.grey[50],
},
@@ -32,9 +29,7 @@ const NativeLink = styled('a')(({ theme }) => ({
display: 'inline-block',
},
...theme.applyDarkStyles({
- boxShadow: `inset 0 1px 1px ${(theme.vars || theme).palette.primaryDark[900]}, 0 1px 0.5px ${
- (theme.vars || theme).palette.common.black
- }`,
+ boxShadow: `${alpha(theme.palette.primaryDark[600], 0.15)} 0 1px 0 inset, ${(theme.vars || theme).palette.common.black} 0 -2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 1px 2px 0`,
'&:hover': {
backgroundColor: (theme.vars || theme).palette.primaryDark[800],
borderColor: (theme.vars || theme).palette.primaryDark[600],
@@ -127,24 +122,18 @@ export default function DiamondSponsors() {
borderRadius: 1,
border: '1px dashed',
transition: theme.transitions.create(['color', 'border-color', 'background-color']),
- backgroundColor: alpha(theme.palette.primary[50], 0.5),
- borderColor: (theme.vars || theme).palette.grey[200],
- boxShadow: `inset 0 1px 1px ${
- (theme.vars || theme).palette.grey[50]
- }, 0 1px 2px ${alpha(theme.palette.grey[100], 0.5)}`,
+ backgroundColor: alpha(theme.palette.grey[50], 0.5),
+ borderColor: (theme.vars || theme).palette.grey[300],
'&:hover': {
backgroundColor: alpha(theme.palette.primary[100], 0.5),
borderColor: (theme.vars || theme).palette.primary[300],
},
...theme.applyDarkStyles({
- backgroundColor: alpha(theme.palette.primary[700], 0.1),
- borderColor: alpha(theme.palette.primary[400], 0.2),
- boxShadow: `inset 0 1px 1px ${
- (theme.vars || theme).palette.primaryDark[800]
- }, 0 1px 0.5px ${(theme.vars || theme).palette.common.black}`,
+ backgroundColor: alpha(theme.palette.primaryDark[700], 0.2),
+ borderColor: (theme.vars || theme).palette.primaryDark[700],
'&:hover': {
backgroundColor: alpha(theme.palette.primary[700], 0.2),
- borderColor: (theme.vars || theme).palette.primary[400],
+ borderColor: (theme.vars || theme).palette.primary[800],
},
}),
})}
diff --git a/docs/src/modules/components/EditPage.js b/docs/src/modules/components/EditPage.js
index d8b16b3067ee3b..3136dcee771934 100644
--- a/docs/src/modules/components/EditPage.js
+++ b/docs/src/modules/components/EditPage.js
@@ -10,6 +10,12 @@ export default function EditPage(props) {
const { sourceLocation } = props;
const t = useTranslate();
const userLanguage = useUserLanguage();
+
+ if (!sourceLocation) {
+ // An empty div such that the footer layout stays unchanged.
+ return ;
+ }
+
const CROWDIN_ROOT_URL = 'https://crowdin.com/project/material-ui-docs/';
const crowdInLocale = LOCALES[userLanguage] || userLanguage;
const crowdInPath = sourceLocation.substring(0, sourceLocation.lastIndexOf('/'));
diff --git a/docs/src/modules/components/HighlightedCode.test.js b/docs/src/modules/components/HighlightedCode.test.js
index 8129c9ee38def0..05f7f1b627a523 100644
--- a/docs/src/modules/components/HighlightedCode.test.js
+++ b/docs/src/modules/components/HighlightedCode.test.js
@@ -2,7 +2,7 @@ import * as React from 'react';
import { expect } from 'chai';
import { createRenderer } from '@mui-internal/test-utils';
import { ThemeProvider, createTheme } from '@mui/material/styles';
-import { getDesignTokens } from 'docs/src/modules/brandingTheme';
+import { getDesignTokens } from '@mui/docs/branding';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
describe('HighlightedCode', () => {
diff --git a/docs/src/modules/components/JoyStartingLinksCollection.js b/docs/src/modules/components/JoyStartingLinksCollection.js
index 78aaf32ef30167..fd789c58e134f9 100644
--- a/docs/src/modules/components/JoyStartingLinksCollection.js
+++ b/docs/src/modules/components/JoyStartingLinksCollection.js
@@ -3,7 +3,7 @@ import Grid from '@mui/material/Unstable_Grid2';
import InstallDesktopRoundedIcon from '@mui/icons-material/InstallDesktopRounded';
import WebRoundedIcon from '@mui/icons-material/WebRounded';
import DrawRoundedIcon from '@mui/icons-material/DrawRounded';
-import InfoCard from 'docs/src/components/action/InfoCard';
+import { InfoCard } from '@mui/docs/InfoCard';
const content = [
{
diff --git a/docs/src/modules/components/JoyThemeBuilder.tsx b/docs/src/modules/components/JoyThemeBuilder.tsx
index e668edbed5979e..fa274153726f15 100644
--- a/docs/src/modules/components/JoyThemeBuilder.tsx
+++ b/docs/src/modules/components/JoyThemeBuilder.tsx
@@ -60,7 +60,7 @@ import DescriptionOutlinedIcon from '@mui/icons-material/DescriptionOutlined';
import DarkMode from '@mui/icons-material/DarkMode';
import LightMode from '@mui/icons-material/LightMode';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
import codeSandbox from 'docs/src/modules/sandbox/CodeSandbox';
import sourceJoyTemplates, { TemplateData } from 'docs/src/modules/joy/sourceJoyTemplates';
import extractTemplates from 'docs/src/modules/utils/extractTemplates';
diff --git a/docs/src/modules/components/JoyUsageDemo.tsx b/docs/src/modules/components/JoyUsageDemo.tsx
index 3816f8cb40912c..8928e277af5ef7 100644
--- a/docs/src/modules/components/JoyUsageDemo.tsx
+++ b/docs/src/modules/components/JoyUsageDemo.tsx
@@ -18,7 +18,7 @@ import Select from '@mui/joy/Select';
import Sheet from '@mui/joy/Sheet';
import Switch from '@mui/joy/Switch';
import Typography from '@mui/joy/Typography';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
const shallowEqual = (item1: { [k: string]: any }, item2: { [k: string]: any }) => {
diff --git a/docs/src/modules/components/JoyVariablesDemo.tsx b/docs/src/modules/components/JoyVariablesDemo.tsx
index 2926d05efc4f63..2d4392d3059bf3 100644
--- a/docs/src/modules/components/JoyVariablesDemo.tsx
+++ b/docs/src/modules/components/JoyVariablesDemo.tsx
@@ -13,7 +13,7 @@ import Input, { inputClasses } from '@mui/joy/Input';
import ReplayRoundedIcon from '@mui/icons-material/ReplayRounded';
import KeyboardArrowDown from '@mui/icons-material/KeyboardArrowDown';
import HighlightedCode from 'docs/src/modules/components/HighlightedCode';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
interface DataItem {
var: string;
diff --git a/docs/src/modules/components/MarkdownDocs.js b/docs/src/modules/components/MarkdownDocs.js
index d97703653a0fd9..9d12aef4dad2c5 100644
--- a/docs/src/modules/components/MarkdownDocs.js
+++ b/docs/src/modules/components/MarkdownDocs.js
@@ -8,7 +8,7 @@ import RichMarkdownElement from 'docs/src/modules/components/RichMarkdownElement
import { pathnameToLanguage } from 'docs/src/modules/utils/helpers';
import AppLayoutDocs from 'docs/src/modules/components/AppLayoutDocs';
import { useUserLanguage } from '@mui/docs/i18n';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
import Ad from 'docs/src/modules/components/Ad';
import AdGuest from 'docs/src/modules/components/AdGuest';
diff --git a/docs/src/modules/components/MarkdownDocsV2.js b/docs/src/modules/components/MarkdownDocsV2.js
index 37cb3f4c931048..96d6f972945cc9 100644
--- a/docs/src/modules/components/MarkdownDocsV2.js
+++ b/docs/src/modules/components/MarkdownDocsV2.js
@@ -12,7 +12,7 @@ import RichMarkdownElement from 'docs/src/modules/components/RichMarkdownElement
import { pathnameToLanguage } from 'docs/src/modules/utils/helpers';
import AppLayoutDocs from 'docs/src/modules/components/AppLayoutDocs';
import { useTranslate, useUserLanguage } from '@mui/docs/i18n';
-import BrandingProvider from 'docs/src/BrandingProvider';
+import { BrandingProvider } from '@mui/docs/branding';
import Ad from 'docs/src/modules/components/Ad';
import { HEIGHT as AppFrameHeight } from 'docs/src/modules/components/AppFrame';
import { HEIGHT as TabsHeight } from 'docs/src/modules/components/ComponentPageTabs';
diff --git a/docs/src/modules/components/MarkdownElement.js b/docs/src/modules/components/MarkdownElement.js
index e18b2ed63aefa8..1b2b6a0816f49c 100644
--- a/docs/src/modules/components/MarkdownElement.js
+++ b/docs/src/modules/components/MarkdownElement.js
@@ -5,7 +5,7 @@ import { alpha, darken, styled } from '@mui/material/styles';
import {
brandingDarkTheme as darkTheme,
brandingLightTheme as lightTheme,
-} from 'docs/src/modules/brandingTheme';
+} from '@mui/docs/branding';
const Root = styled('div')(
({ theme }) => ({
diff --git a/docs/src/modules/components/MaterialStartingLinksCollection.js b/docs/src/modules/components/MaterialStartingLinksCollection.js
index bd6e06ca553e3a..fe209a71381e6b 100644
--- a/docs/src/modules/components/MaterialStartingLinksCollection.js
+++ b/docs/src/modules/components/MaterialStartingLinksCollection.js
@@ -5,7 +5,7 @@ import WebRoundedIcon from '@mui/icons-material/WebRounded';
import DrawRoundedIcon from '@mui/icons-material/DrawRounded';
import PlayCircleFilledWhiteRoundedIcon from '@mui/icons-material/PlayCircleFilledWhiteRounded';
import DesignServicesRoundedIcon from '@mui/icons-material/DesignServicesRounded';
-import InfoCard from 'docs/src/components/action/InfoCard';
+import { InfoCard } from '@mui/docs/InfoCard';
const content = [
{
diff --git a/docs/src/modules/components/MaterialUIComponents/MaterialUtilComponents.js b/docs/src/modules/components/MaterialUIComponents/MaterialUtilComponents.js
index 254ad2fd0291c2..6bc020895cf542 100644
--- a/docs/src/modules/components/MaterialUIComponents/MaterialUtilComponents.js
+++ b/docs/src/modules/components/MaterialUIComponents/MaterialUtilComponents.js
@@ -1,6 +1,6 @@
import * as React from 'react';
import Grid from '@mui/material/Unstable_Grid2';
-import InfoCard from 'docs/src/components/action/InfoCard';
+import { InfoCard } from '@mui/docs/InfoCard';
import HighlightAltRoundedIcon from '@mui/icons-material/HighlightAltRounded';
import CssRoundedIcon from '@mui/icons-material/CssRounded';
import DnsRoundedIcon from '@mui/icons-material/DnsRounded';
diff --git a/docs/src/modules/components/MaterialUIDesignResources.js b/docs/src/modules/components/MaterialUIDesignResources.js
index a88061cfd131b2..51f5affd1be9c0 100644
--- a/docs/src/modules/components/MaterialUIDesignResources.js
+++ b/docs/src/modules/components/MaterialUIDesignResources.js
@@ -1,6 +1,6 @@
import * as React from 'react';
import Grid from '@mui/material/Unstable_Grid2';
-import InfoCard from 'docs/src/components/action/InfoCard';
+import { InfoCard } from '@mui/docs/InfoCard';
const content = [
{
diff --git a/docs/src/modules/components/MaterialUIExampleCollection.js b/docs/src/modules/components/MaterialUIExampleCollection.js
index 15fb508ee72374..d53eddf8147e59 100644
--- a/docs/src/modules/components/MaterialUIExampleCollection.js
+++ b/docs/src/modules/components/MaterialUIExampleCollection.js
@@ -13,78 +13,78 @@ const examples = [
name: 'Next.js App Router',
label: 'View JS example',
tsLabel: 'View TS example',
- link: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-nextjs',
- tsLink: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-nextjs-ts',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-nextjs',
+ tsLink: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-nextjs-ts',
src: '/static/images/examples/next.svg',
},
{
name: 'Vite.js',
label: 'View JS example',
tsLabel: 'View TS example',
- link: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-vite',
- tsLink: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-vite-ts',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-vite',
+ tsLink: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-vite-ts',
src: '/static/images/examples/vite.svg',
},
{
name: 'Next.js Pages Router',
label: 'View JS example',
tsLabel: 'View TS example',
- link: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-nextjs-pages-router',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-nextjs-pages-router',
tsLink:
- 'https://github.com/mui/material-ui/tree/master/examples/material-ui-nextjs-pages-router-ts',
+ 'https://github.com/mui/material-ui/tree/next/examples/material-ui-nextjs-pages-router-ts',
src: '/static/images/examples/next.svg',
},
{
name: 'Remix',
label: 'View TS example',
- link: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-remix-ts',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-remix-ts',
src: '/static/images/examples/remix.svg',
},
{
name: 'Tailwind CSS + CRA',
label: 'View TS example',
- link: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-cra-tailwind-ts',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-cra-tailwind-ts',
src: '/static/images/examples/tailwindcss.svg',
},
{
name: 'Create React App',
label: 'View JS example',
tsLabel: 'View TS example',
- link: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-cra',
- tsLink: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-cra-ts',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-cra',
+ tsLink: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-cra-ts',
src: '/static/images/examples/cra.svg',
},
{
name: 'styled-components',
label: 'View JS example',
tsLabel: 'View TS example',
- link: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-cra-styled-components',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-cra-styled-components',
tsLink:
- 'https://github.com/mui/material-ui/tree/master/examples/material-ui-cra-styled-components-ts',
+ 'https://github.com/mui/material-ui/tree/next/examples/material-ui-cra-styled-components-ts',
src: '/static/images/examples/styled.png',
},
{
name: 'Preact',
label: 'View JS example',
- link: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-preact',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-preact',
src: '/static/images/examples/preact.svg',
},
{
name: 'CDN',
label: 'View JS example',
- link: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-via-cdn',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-via-cdn',
src: ,
},
{
name: 'Express.js (server-rendered)',
label: 'View JS example',
- link: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-express-ssr',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-express-ssr',
src: '/static/images/examples/express.png',
},
{
name: 'Gatsby',
label: 'View JS example',
- link: 'https://github.com/mui/material-ui/tree/master/examples/material-ui-gatsby',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-gatsby',
src: '/static/images/examples/gatsby.svg',
},
{
diff --git a/docs/src/modules/components/ThemeContext.js b/docs/src/modules/components/ThemeContext.js
index 46713fcf715e8b..1ae7af3bea639c 100644
--- a/docs/src/modules/components/ThemeContext.js
+++ b/docs/src/modules/components/ThemeContext.js
@@ -10,11 +10,7 @@ import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/u
import { getCookie } from 'docs/src/modules/utils/helpers';
import useLazyCSS from 'docs/src/modules/utils/useLazyCSS';
import { useUserLanguage } from '@mui/docs/i18n';
-import {
- getDesignTokens,
- getThemedComponents,
- getMetaThemeColor,
-} from 'docs/src/modules/brandingTheme';
+import { getDesignTokens, getThemedComponents, getMetaThemeColor } from '@mui/docs/branding';
import useMediaQuery from '@mui/material/useMediaQuery';
import useLocalStorageState from '@mui/utils/useLocalStorageState';
diff --git a/docs/src/modules/components/ThemeViewer.tsx b/docs/src/modules/components/ThemeViewer.tsx
index f709c8e4db8df3..6db97b5221fb91 100644
--- a/docs/src/modules/components/ThemeViewer.tsx
+++ b/docs/src/modules/components/ThemeViewer.tsx
@@ -6,7 +6,7 @@ import ExpandIcon from '@mui/icons-material/ExpandMore';
import CollapseIcon from '@mui/icons-material/ChevronRight';
import { TreeView } from '@mui/x-tree-view/TreeView';
import { TreeItem as MuiTreeItem, treeItemClasses } from '@mui/x-tree-view/TreeItem';
-import { blue, blueDark } from 'docs/src/modules/brandingTheme';
+import { blue, blueDark } from '@mui/docs/branding';
function getType(value: any) {
if (Array.isArray(value)) {
diff --git a/docs/src/modules/components/TopLayoutCareers.js b/docs/src/modules/components/TopLayoutCareers.js
index 95daa634e83f0f..0c16563b87b4c7 100644
--- a/docs/src/modules/components/TopLayoutCareers.js
+++ b/docs/src/modules/components/TopLayoutCareers.js
@@ -29,7 +29,11 @@ export default function TopLayoutCareers(props) {
return (
-
+
diff --git a/docs/src/modules/sandbox/CodeSandbox.test.js b/docs/src/modules/sandbox/CodeSandbox.test.js
index 16f745b352da2a..16249c8dc4500c 100644
--- a/docs/src/modules/sandbox/CodeSandbox.test.js
+++ b/docs/src/modules/sandbox/CodeSandbox.test.js
@@ -33,7 +33,7 @@ describe('CodeSandbox', () => {
'https://github.com/mui/material-ui/blob/v5.7.0/docs/data/material/components/buttons/BasicButtons.js',
dependencies: {
react: 'latest',
- '@mui/material': 'latest',
+ '@mui/material': 'next',
'react-dom': 'latest',
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
@@ -123,7 +123,7 @@ ReactDOM.createRoot(document.querySelector("#root")).render(
'https://github.com/mui/material-ui/blob/v5.7.0/docs/data/material/components/buttons/BasicButtons.tsx',
dependencies: {
react: 'latest',
- '@mui/material': 'latest',
+ '@mui/material': 'next',
'react-dom': 'latest',
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
@@ -230,7 +230,7 @@ ReactDOM.createRoot(document.querySelector("#root")!).render(
expect(result.dependencies).to.deep.equal({
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
- '@mui/material': 'latest',
+ '@mui/material': 'next',
'@types/react': 'latest',
'@types/react-dom': 'latest',
react: 'latest',
diff --git a/docs/src/modules/sandbox/Dependencies.test.js b/docs/src/modules/sandbox/Dependencies.test.js
index 71b4f6b1cba69b..94eca04aab7ac6 100644
--- a/docs/src/modules/sandbox/Dependencies.test.js
+++ b/docs/src/modules/sandbox/Dependencies.test.js
@@ -40,8 +40,8 @@ const styles = theme => ({
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
'@foo-bar/bip': 'latest',
- '@mui/material': 'latest',
- '@mui/base': 'latest',
+ '@mui/material': 'next',
+ '@mui/base': 'next',
'prop-types': 'latest',
});
});
@@ -71,7 +71,7 @@ const suggestions = [
'react-dom': 'latest',
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
- '@mui/material': 'latest',
+ '@mui/material': 'next',
'@unexisting/thing': 'latest',
'autosuggest-highlight': 'latest',
'prop-types': 'latest',
@@ -100,8 +100,8 @@ import { LocalizationProvider as MuiPickersLocalizationProvider, KeyboardTimePic
'prop-types': 'latest',
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
- '@mui/material': 'latest',
- '@mui/lab': 'latest',
+ '@mui/material': 'next',
+ '@mui/lab': 'next',
});
});
@@ -127,8 +127,8 @@ import 'exceljs';
'prop-types': 'latest',
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
- '@mui/material': 'latest',
- '@mui/lab': 'latest',
+ '@mui/material': 'next',
+ '@mui/lab': 'next',
exceljs: 'latest',
});
});
@@ -146,8 +146,8 @@ import 'exceljs';
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
'@foo-bar/bip': 'latest',
- '@mui/material': 'latest',
- '@mui/base': 'latest',
+ '@mui/material': 'next',
+ '@mui/base': 'next',
'@types/foo-bar__bip': 'latest',
'@types/prop-types': 'latest',
'@types/react-dom': 'latest',
@@ -167,7 +167,7 @@ import 'exceljs';
'react-dom': 'latest',
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
- '@mui/material': 'latest',
+ '@mui/material': 'next',
'@types/react-dom': 'latest',
'@types/react': 'latest',
typescript: 'latest',
@@ -195,8 +195,8 @@ import {
'react-dom': 'latest',
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
- '@mui/material': 'latest',
- '@mui/lab': 'latest',
+ '@mui/material': 'next',
+ '@mui/lab': 'next',
});
});
@@ -215,8 +215,8 @@ import lab from '@mui/lab';
'react-dom': 'latest',
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
- '@mui/material': 'latest',
- '@mui/lab': 'latest',
+ '@mui/material': 'next',
+ '@mui/lab': 'next',
});
});
@@ -517,10 +517,10 @@ export default function EmailExample() {
'react-dom': 'latest',
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
- '@mui/icons-material': 'latest',
- '@mui/joy': 'latest',
- '@mui/material': 'latest',
- '@mui/system': 'latest',
+ '@mui/icons-material': 'next',
+ '@mui/joy': 'next',
+ '@mui/material': 'next',
+ '@mui/system': 'next',
'@types/react': 'latest',
'@types/react-dom': 'latest',
typescript: 'latest',
diff --git a/docs/src/modules/sandbox/Dependencies.ts b/docs/src/modules/sandbox/Dependencies.ts
index 12f82f92ad9799..c943c19e0729f4 100644
--- a/docs/src/modules/sandbox/Dependencies.ts
+++ b/docs/src/modules/sandbox/Dependencies.ts
@@ -49,7 +49,7 @@ export default function SandboxDependencies(
process.env.SOURCE_CODE_REPO !== 'https://github.com/mui/material-ui'
) {
// #default-branch-switch
- return 'latest';
+ return 'next';
}
const shortSha = commitRef.slice(0, 8);
return `https://pkg.csb.dev/mui/material-ui/commit/${shortSha}/@mui/${packageName}`;
diff --git a/docs/src/modules/sandbox/StackBlitz.test.js b/docs/src/modules/sandbox/StackBlitz.test.js
index 0d25c2a95c77b7..67bc0625b4cf80 100644
--- a/docs/src/modules/sandbox/StackBlitz.test.js
+++ b/docs/src/modules/sandbox/StackBlitz.test.js
@@ -83,7 +83,7 @@ ReactDOM.createRoot(document.querySelector("#root")).render(
},
dependencies: {
react: 'latest',
- '@mui/material': 'latest',
+ '@mui/material': 'next',
'react-dom': 'latest',
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
@@ -186,7 +186,7 @@ ReactDOM.createRoot(document.querySelector("#root")!).render(
},
dependencies: {
react: 'latest',
- '@mui/material': 'latest',
+ '@mui/material': 'next',
'react-dom': 'latest',
'@emotion/react': 'latest',
'@emotion/styled': 'latest',
diff --git a/docs/translations/api-docs/backdrop/backdrop.json b/docs/translations/api-docs/backdrop/backdrop.json
index 3b9559dfff07b0..b439692f008532 100644
--- a/docs/translations/api-docs/backdrop/backdrop.json
+++ b/docs/translations/api-docs/backdrop/backdrop.json
@@ -16,12 +16,8 @@
"description": "If true, the backdrop is invisible. It can be used when rendering a popover or a custom select component."
},
"open": { "description": "If true, the component is shown." },
- "slotProps": {
- "description": "The extra props for the slot components. You can override the existing props or add new ones. This prop is an alias for the componentsProps prop, which will be deprecated in the future."
- },
- "slots": {
- "description": "The components used for each slot inside. This prop is an alias for the components prop, which will be deprecated in the future."
- },
+ "slotProps": { "description": "The props used for each slot inside." },
+ "slots": { "description": "The components used for each slot inside." },
"sx": {
"description": "The system prop that allows defining system overrides as well as additional CSS styles."
},
@@ -37,7 +33,10 @@
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the root element",
"conditions": "invisible={true}"
- },
- "root": { "description": "Styles applied to the root element." }
+ }
+ },
+ "slotDescriptions": {
+ "root": "The component that renders the root.",
+ "transition": "The component that renders the transition. Follow this guide to learn more about the requirements for this component."
}
}
diff --git a/docs/translations/api-docs/badge/badge.json b/docs/translations/api-docs/badge/badge.json
index 8b765118a3a5f6..cd14dae0e8c1b1 100644
--- a/docs/translations/api-docs/badge/badge.json
+++ b/docs/translations/api-docs/badge/badge.json
@@ -11,11 +11,9 @@
"component": {
"description": "The component used for the root node. Either a string to use a HTML element or a component."
},
- "components": {
- "description": "The components used for each slot inside. This prop is an alias for the slots prop. It's recommended to use the slots prop instead."
- },
+ "components": { "description": "The components used for each slot inside." },
"componentsProps": {
- "description": "The extra props for the slot components. You can override the existing props or add new ones. This prop is an alias for the slotProps prop. It's recommended to use the slotProps prop instead, as componentsProps will be deprecated in the future."
+ "description": "The extra props for the slot components. You can override the existing props or add new ones."
},
"invisible": { "description": "If true, the badge is invisible." },
"max": { "description": "Max count to show." },
diff --git a/docs/translations/api-docs/button-group/button-group.json b/docs/translations/api-docs/button-group/button-group.json
index a4d761a2f23f79..f3d4332d76ef50 100644
--- a/docs/translations/api-docs/button-group/button-group.json
+++ b/docs/translations/api-docs/button-group/button-group.json
@@ -30,6 +30,12 @@
"variant": { "description": "The variant to use." }
},
"classDescriptions": {
+ "colorPrimary": {
+ "description": "Styles applied to the root element if color="primary""
+ },
+ "colorSecondary": {
+ "description": "Styles applied to the root element if color="secondary""
+ },
"contained": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the root element",
@@ -58,87 +64,109 @@
"groupedContained": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"contained\""
+ "conditions": "variant=\"contained\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-contained and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedContainedHorizontal": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"contained\" and orientation=\"horizontal\""
+ "conditions": "variant=\"contained\" and orientation=\"horizontal\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-contained , .MuiButtonGroup-horizontal and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedContainedPrimary": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"contained\" and color=\"primary\""
+ "conditions": "variant=\"contained\" and color=\"primary\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-contained , .MuiButtonGroup-colorPrimary and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedContainedSecondary": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"contained\" and color=\"secondary\""
+ "conditions": "variant=\"contained\" and color=\"secondary\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-contained , .MuiButtonGroup-colorSecondary and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedContainedVertical": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"contained\" and orientation=\"vertical\""
+ "conditions": "variant=\"contained\" and orientation=\"vertical\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-contained , .MuiButtonGroup-vertical and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedHorizontal": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "orientation=\"horizontal\""
+ "conditions": "orientation=\"horizontal\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-horizontal and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedOutlined": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"outlined\""
+ "conditions": "variant=\"outlined\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-outlined and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedOutlinedHorizontal": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"outlined\" and orientation=\"horizontal\""
+ "conditions": "variant=\"outlined\" and orientation=\"horizontal\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-outlined , .MuiButtonGroup-horizontal and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedOutlinedPrimary": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"outlined\" and color=\"primary\""
+ "conditions": "variant=\"outlined\" and color=\"primary\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-outlined , .MuiButtonGroup-colorPrimary and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedOutlinedSecondary": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"outlined\" and color=\"secondary\""
+ "conditions": "variant=\"outlined\" and color=\"secondary\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-outlined , .MuiButtonGroup-colorSecondary and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedOutlinedVertical": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"outlined\" and orientation=\"vertical\""
+ "conditions": "variant=\"outlined\" and orientation=\"vertical\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-outlined , .MuiButtonGroup-vertical and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedText": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"text\""
+ "conditions": "variant=\"text\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-text and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedTextHorizontal": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"text\" and orientation=\"horizontal\""
+ "conditions": "variant=\"text\" and orientation=\"horizontal\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-text , .MuiButtonGroup-horizontal and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedTextPrimary": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"text\" and color=\"primary\""
+ "conditions": "variant=\"text\" and color=\"primary\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-text , .MuiButtonGroup-colorPrimary and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedTextSecondary": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"text\" and color=\"secondary\""
+ "conditions": "variant=\"text\" and color=\"secondary\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-text , .MuiButtonGroup-colorSecondary and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedTextVertical": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "variant=\"text\" and orientation=\"vertical\""
+ "conditions": "variant=\"text\" and orientation=\"vertical\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-text , .MuiButtonGroup-vertical and .MuiButtonGroup-grouped classes instead. How to migrate"
},
"groupedVertical": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "orientation=\"vertical\""
+ "conditions": "orientation=\"vertical\"",
+ "deprecationInfo": "Combine the .MuiButtonGroup-vertical and .MuiButtonGroup-grouped classes instead. How to migrate"
+ },
+ "horizontal": {
+ "description": "Styles applied to {{nodeName}} if {{conditions}}.",
+ "nodeName": "the root element",
+ "conditions": "orientation=\"horizontal\""
},
"lastButton": {
"description": "Styles applied to {{nodeName}}.",
diff --git a/docs/translations/api-docs/step-label/step-label.json b/docs/translations/api-docs/step-label/step-label.json
index 48a77b4b7f3ade..7a68d574ce6f9d 100644
--- a/docs/translations/api-docs/step-label/step-label.json
+++ b/docs/translations/api-docs/step-label/step-label.json
@@ -10,6 +10,7 @@
"icon": { "description": "Override the default label of the step icon." },
"optional": { "description": "The optional node to display." },
"slotProps": { "description": "The props used for each slot inside." },
+ "slots": { "description": "The components used for each slot inside." },
"StepIconComponent": {
"description": "The component to render in place of the StepIcon."
},
@@ -55,10 +56,6 @@
"description": "Styles applied to {{nodeName}}.",
"nodeName": "the icon container element"
},
- "label": {
- "description": "Styles applied to {{nodeName}}.",
- "nodeName": "the label element that wraps children"
- },
"labelContainer": {
"description": "Styles applied to {{nodeName}}.",
"nodeName": "the container element which wraps label and optional"
@@ -69,5 +66,6 @@
"nodeName": "the root element",
"conditions": "orientation=\"vertical\""
}
- }
+ },
+ "slotDescriptions": { "label": "The component that renders the label." }
}
diff --git a/docs/translations/translations.json b/docs/translations/translations.json
index 8f2b913c50c525..98890158834ba8 100644
--- a/docs/translations/translations.json
+++ b/docs/translations/translations.json
@@ -26,6 +26,8 @@
"/system/react-container": "Container",
"/system/react-grid": "Grid",
"/system/react-stack": "Stack",
+ "/system/migration": "Migration",
+ "/system/migration/migration-v5": "Migrating to v6",
"/system/experimental-api": "Experimental APIs",
"/system/experimental-api/configure-the-sx-prop": "Configure the sx prop",
"/system/experimental-api/css-theme-variables": "CSS Theme Variables",
@@ -235,7 +237,6 @@
"/material-ui/customization/z-index": "z-index",
"/material-ui/customization/transitions": "Transitions",
"/material-ui/guides": "How-to guides",
- "/material-ui/guides/material-3-components": "Material Design 3 components",
"/material-ui/guides/minimizing-bundle-size": "Minimizing bundle size",
"/material-ui/guides/server-rendering": "Server rendering",
"/material-ui/guides/responsive-ui": "Responsive UI",
@@ -261,6 +262,8 @@
"/material-ui/migration/migrating-from-deprecated-apis": "Migrating from deprecated APIs",
"/material-ui/migration/migration-grid-v2": "Migrating to Grid v2",
"/material-ui/migration/pickers-migration": "Migration from @material-ui/pickers",
+ "Upgrade to v6": "Upgrade to v6",
+ "/material-ui/migration/migration-v5": "Migrating to v6",
"Upgrade to v5": "Upgrade to v5",
"/material-ui/migration/migration-v4": "Migrating to v5: getting started",
"/material-ui/migration/v5-style-changes": "Breaking changes: style and theme",
diff --git a/examples/.eslintrc.js b/examples/.eslintrc.js
index 3b559e5a7c5b7a..1cfca7d337a8ca 100644
--- a/examples/.eslintrc.js
+++ b/examples/.eslintrc.js
@@ -12,4 +12,12 @@ module.exports = {
// create-vite generates .jsx
'react/jsx-filename-extension': 'off',
},
+ overrides: [
+ {
+ files: ['pigment-css-remix-ts/**/*.*'],
+ rules: {
+ 'react/react-in-jsx-scope': 'off',
+ },
+ },
+ ],
};
diff --git a/examples/base-ui-cra-ts/README.md b/examples/base-ui-cra-ts/README.md
index 7938f7fca126d0..2029b19cd297d5 100644
--- a/examples/base-ui-cra-ts/README.md
+++ b/examples/base-ui-cra-ts/README.md
@@ -11,7 +11,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/base-ui-cra-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/base-ui-cra-ts
cd base-ui-cra-ts
```
@@ -26,6 +26,6 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/base-ui-cra-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/base-ui-cra-ts)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/base-ui-cra-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/base-ui-cra-ts)
diff --git a/examples/base-ui-cra-ts/package.json b/examples/base-ui-cra-ts/package.json
index 427498085b9f0c..12a532a52261a3 100644
--- a/examples/base-ui-cra-ts/package.json
+++ b/examples/base-ui-cra-ts/package.json
@@ -3,7 +3,7 @@
"version": "5.0.0",
"private": true,
"dependencies": {
- "@mui/base": "latest",
+ "@mui/base": "next",
"@types/react": "latest",
"@types/react-dom": "latest",
"react": "latest",
diff --git a/examples/base-ui-cra/README.md b/examples/base-ui-cra/README.md
index b30905698d8d41..ba507114f7029d 100644
--- a/examples/base-ui-cra/README.md
+++ b/examples/base-ui-cra/README.md
@@ -11,7 +11,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/base-ui-cra
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/base-ui-cra
cd base-ui-cra
```
@@ -26,6 +26,6 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/base-ui-cra)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/base-ui-cra)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/base-ui-cra)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/base-ui-cra)
diff --git a/examples/base-ui-cra/package.json b/examples/base-ui-cra/package.json
index b7367974062f6c..339c479c7ebfd0 100644
--- a/examples/base-ui-cra/package.json
+++ b/examples/base-ui-cra/package.json
@@ -3,7 +3,7 @@
"version": "5.0.0",
"private": true,
"dependencies": {
- "@mui/base": "latest",
+ "@mui/base": "next",
"react": "latest",
"react-dom": "latest",
"react-scripts": "latest"
diff --git a/examples/base-ui-nextjs-tailwind-ts/README.md b/examples/base-ui-nextjs-tailwind-ts/README.md
index 3f256ef21693d1..4810c38b4c01ea 100644
--- a/examples/base-ui-nextjs-tailwind-ts/README.md
+++ b/examples/base-ui-nextjs-tailwind-ts/README.md
@@ -9,7 +9,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/base-ui-nextjs-tailwind-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/base-ui-nextjs-tailwind-ts
cd base-ui-nextjs-tailwind-ts
```
@@ -24,9 +24,9 @@ or
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/base-ui-nextjs-tailwind-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/base-ui-nextjs-tailwind-ts)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/base-ui-nextjs-tailwind-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/base-ui-nextjs-tailwind-ts)
## Learn more
diff --git a/examples/base-ui-nextjs-tailwind-ts/package.json b/examples/base-ui-nextjs-tailwind-ts/package.json
index df7aa7bf90f276..9d0b4aa4b0c9cc 100644
--- a/examples/base-ui-nextjs-tailwind-ts/package.json
+++ b/examples/base-ui-nextjs-tailwind-ts/package.json
@@ -10,7 +10,7 @@
"post-update": "echo \"codesandbox preview only, need an update\" && pnpm update --latest"
},
"dependencies": {
- "@mui/base": "latest",
+ "@mui/base": "next",
"clsx": "latest",
"next": "latest",
"react": "latest",
diff --git a/examples/base-ui-vite-tailwind-ts/README.md b/examples/base-ui-vite-tailwind-ts/README.md
index 4545337ebfed16..fb1f58b18a3714 100644
--- a/examples/base-ui-vite-tailwind-ts/README.md
+++ b/examples/base-ui-vite-tailwind-ts/README.md
@@ -10,8 +10,10 @@
Download the example [or clone the repo](https://github.com/mui/material-ui):
+
+
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/base-ui-vite-tailwind-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/base-ui-vite-tailwind-ts
cd base-ui-vite-tailwind-ts
```
@@ -26,6 +28,6 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/base-ui-vite-tailwind-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/base-ui-vite-tailwind-ts)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/base-ui-vite-tailwind-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/next/master/examples/base-ui-vite-tailwind-ts)
diff --git a/examples/base-ui-vite-tailwind-ts/package.json b/examples/base-ui-vite-tailwind-ts/package.json
index 030161a63f0991..a3ae0ef04d711f 100644
--- a/examples/base-ui-vite-tailwind-ts/package.json
+++ b/examples/base-ui-vite-tailwind-ts/package.json
@@ -10,7 +10,7 @@
"preview": "vite preview"
},
"dependencies": {
- "@mui/base": "latest",
+ "@mui/base": "next",
"react": "latest",
"react-dom": "latest"
},
diff --git a/examples/base-ui-vite-tailwind/README.md b/examples/base-ui-vite-tailwind/README.md
index 37e997ae9ec3ee..c9eae3c65e2acc 100644
--- a/examples/base-ui-vite-tailwind/README.md
+++ b/examples/base-ui-vite-tailwind/README.md
@@ -10,8 +10,10 @@
Download the example [or clone the repo](https://github.com/mui/material-ui):
+
+
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/base-ui-vite-tailwind
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/base-ui-vite-tailwind
cd base-ui-vite-tailwind
```
@@ -26,6 +28,6 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/base-ui-vite-tailwind)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/base-ui-vite-tailwind)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/base-ui-vite-tailwind)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/base-ui-vite-tailwind)
diff --git a/examples/base-ui-vite-tailwind/package.json b/examples/base-ui-vite-tailwind/package.json
index eae01e51904be7..6f7b1369696907 100644
--- a/examples/base-ui-vite-tailwind/package.json
+++ b/examples/base-ui-vite-tailwind/package.json
@@ -9,7 +9,7 @@
"preview": "vite preview"
},
"dependencies": {
- "@mui/base": "latest",
+ "@mui/base": "next",
"react": "latest",
"react-dom": "latest"
},
diff --git a/examples/joy-ui-cra-ts/README.md b/examples/joy-ui-cra-ts/README.md
index 01765382b76618..e0de9c863fc936 100644
--- a/examples/joy-ui-cra-ts/README.md
+++ b/examples/joy-ui-cra-ts/README.md
@@ -9,7 +9,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/joy-ui-cra-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/joy-ui-cra-ts
cd joy-ui-cra-ts
```
@@ -24,13 +24,13 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/joy-ui-cra-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/joy-ui-cra-ts)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/joy-ui-cra-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/joy-ui-cra-ts)
## What's next?
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/joy-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/joy-ui/getting-started/templates/) section.
diff --git a/examples/joy-ui-cra-ts/package.json b/examples/joy-ui-cra-ts/package.json
index f49142ca1fb58c..d49a7ef9051791 100644
--- a/examples/joy-ui-cra-ts/package.json
+++ b/examples/joy-ui-cra-ts/package.json
@@ -5,7 +5,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/joy": "latest",
+ "@mui/joy": "next",
"@types/react": "latest",
"@types/react-dom": "latest",
"react": "latest",
diff --git a/examples/joy-ui-nextjs-ts/README.md b/examples/joy-ui-nextjs-ts/README.md
index 796dc1137db89c..5be78719e54c3a 100644
--- a/examples/joy-ui-nextjs-ts/README.md
+++ b/examples/joy-ui-nextjs-ts/README.md
@@ -9,7 +9,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/joy-ui-nextjs-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/joy-ui-nextjs-ts
cd joy-ui-nextjs-ts
```
@@ -26,9 +26,9 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/joy-ui-nextjs-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/joy-ui-nextjs-ts)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/joy-ui-nextjs-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/joy-ui-nextjs-ts)
## Learn more
@@ -42,4 +42,4 @@ To learn more about this example:
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/joy-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/joy-ui/getting-started/templates/) section.
diff --git a/examples/joy-ui-nextjs-ts/package.json b/examples/joy-ui-nextjs-ts/package.json
index 78e7e100f18cf0..8dd964dab2ca4e 100644
--- a/examples/joy-ui-nextjs-ts/package.json
+++ b/examples/joy-ui-nextjs-ts/package.json
@@ -13,7 +13,7 @@
"@emotion/cache": "latest",
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/joy": "latest",
+ "@mui/joy": "next",
"next": "latest",
"react": "latest",
"react-dom": "latest"
diff --git a/examples/joy-ui-vite-ts/README.md b/examples/joy-ui-vite-ts/README.md
index d4132910765647..573ee7874108e2 100644
--- a/examples/joy-ui-vite-ts/README.md
+++ b/examples/joy-ui-vite-ts/README.md
@@ -8,8 +8,10 @@
Download the example [or clone the repo](https://github.com/mui/material-ui):
+
+
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/joy-ui-vite-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/joy-ui-vite-ts
cd joy-ui-vite-ts
```
@@ -24,9 +26,9 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/joy-ui-vite-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/joy-ui-vite-ts)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/joy-ui-vite-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/joy-ui-vite-ts)
## The idea behind the example
@@ -38,4 +40,4 @@ It includes `@mui/joy` and it's peer dependencies.
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/joy-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/joy-ui/getting-started/templates/) section.
diff --git a/examples/joy-ui-vite-ts/package.json b/examples/joy-ui-vite-ts/package.json
index a48b10f9b57a6d..b2ec5a6b0b3cab 100644
--- a/examples/joy-ui-vite-ts/package.json
+++ b/examples/joy-ui-vite-ts/package.json
@@ -12,7 +12,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/joy": "latest",
+ "@mui/joy": "next",
"react": "latest",
"react-dom": "latest"
},
diff --git a/examples/material-ui-cra-styled-components-ts/README.md b/examples/material-ui-cra-styled-components-ts/README.md
index 4fa59826c2ab3b..e4fe2372157f31 100644
--- a/examples/material-ui-cra-styled-components-ts/README.md
+++ b/examples/material-ui-cra-styled-components-ts/README.md
@@ -23,7 +23,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-cra-styled-components-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-cra-styled-components-ts
cd material-ui-cra-styled-components-ts
```
@@ -40,7 +40,7 @@ npm start
Note that CodeSandbox is not supporting react-app-rewired, yet you can [still see the code](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-cra-styled-components-ts).
-The following link leverages this demo: https://mui.com/material-ui/integrations/interoperability/#change-the-default-styled-engine with Parcel's alias feature within the `package.json`.
+The following link leverages this demo: https://next.mui.com/material-ui/integrations/interoperability/#change-the-default-styled-engine with Parcel's alias feature within the `package.json`.
[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/styled-components-interoperability-w9z9d)
@@ -57,4 +57,4 @@ Note, the version 5 of `@mui/styled-engine-sc` is compatible with version 5 of `
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-cra-styled-components-ts/package.json b/examples/material-ui-cra-styled-components-ts/package.json
index 966c65fe21652c..b1ebe2eec3f1ee 100644
--- a/examples/material-ui-cra-styled-components-ts/package.json
+++ b/examples/material-ui-cra-styled-components-ts/package.json
@@ -3,9 +3,9 @@
"version": "5.0.0",
"private": true,
"dependencies": {
- "@mui/lab": "latest",
- "@mui/material": "latest",
- "@mui/styled-engine-sc": "^6.0.0",
+ "@mui/lab": "next",
+ "@mui/material": "next",
+ "@mui/styled-engine-sc": "next",
"@testing-library/jest-dom": "latest",
"@testing-library/react": "latest",
"@testing-library/user-event": "latest",
diff --git a/examples/material-ui-cra-styled-components/README.md b/examples/material-ui-cra-styled-components/README.md
index e4a94251ed7bc8..b8f29298bc033a 100644
--- a/examples/material-ui-cra-styled-components/README.md
+++ b/examples/material-ui-cra-styled-components/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-cra-styled-components
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-cra-styled-components
cd material-ui-cra-styled-components
```
@@ -24,7 +24,7 @@ npm start
Note that CodeSandbox is not supporting react-app-rewired, yet you can [still see the code](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-cra-styled-components).
-The following link leverages this demo: https://mui.com/material-ui/integrations/interoperability/#change-the-default-styled-engine with Parcel's alias feature within the `package.json`.
+The following link leverages this demo: https://next.mui.com/material-ui/integrations/interoperability/#change-the-default-styled-engine with Parcel's alias feature within the `package.json`.
[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/styled-components-interoperability-w9z9d)
@@ -41,4 +41,4 @@ Note, the version 5 of `@mui/styled-engine-sc` is compatible with version 5 of `
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-cra-styled-components/package.json b/examples/material-ui-cra-styled-components/package.json
index 1d4a7b240a15af..e0ab5b95a41d9e 100644
--- a/examples/material-ui-cra-styled-components/package.json
+++ b/examples/material-ui-cra-styled-components/package.json
@@ -3,9 +3,9 @@
"version": "5.0.0",
"private": true,
"dependencies": {
- "@mui/material": "latest",
- "@mui/lab": "latest",
- "@mui/styled-engine-sc": "^6.0.0",
+ "@mui/material": "next",
+ "@mui/lab": "next",
+ "@mui/styled-engine-sc": "next",
"@testing-library/jest-dom": "latest",
"@testing-library/react": "latest",
"@testing-library/user-event": "latest",
diff --git a/examples/material-ui-cra-tailwind-ts/README.md b/examples/material-ui-cra-tailwind-ts/README.md
index 79033b58047bc7..86a1d1a8421c0d 100644
--- a/examples/material-ui-cra-tailwind-ts/README.md
+++ b/examples/material-ui-cra-tailwind-ts/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-cra-tailwind-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-cra-tailwind-ts
cd material-ui-cra-tailwind-ts
```
@@ -22,12 +22,10 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-cra-tailwind-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-cra-tailwind-ts)
## The idea behind the example
-
-
This example demonstrates how you can use [Tailwind CSS](https://tailwindcss.com/) and [Create React App](https://github.com/facebookincubator/create-react-app) together with Material UI.
It includes `@mui/material` and its peer dependencies, including [Emotion](https://emotion.sh/docs/introduction), the default style engine in Material UI v5.
@@ -36,4 +34,4 @@ It includes `@mui/material` and its peer dependencies, including [Emotion](https
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-cra-tailwind-ts/package.json b/examples/material-ui-cra-tailwind-ts/package.json
index 7e5501badd283f..9eb5a216e038a9 100644
--- a/examples/material-ui-cra-tailwind-ts/package.json
+++ b/examples/material-ui-cra-tailwind-ts/package.json
@@ -5,7 +5,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"@testing-library/jest-dom": "latest",
"@testing-library/react": "latest",
"@testing-library/user-event": "latest",
diff --git a/examples/material-ui-cra-ts/README.md b/examples/material-ui-cra-ts/README.md
index 61123d67d1aa92..fcceed26f12f77 100644
--- a/examples/material-ui-cra-ts/README.md
+++ b/examples/material-ui-cra-ts/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-cra-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-cra-ts
cd material-ui-cra-ts
```
@@ -22,19 +22,19 @@ or:
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-cra-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/material-ui-cra-ts)
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-cra-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-cra-ts)
## The idea behind the example
This example demonstrates how you can use Material UI with [Create React App](https://github.com/facebookincubator/create-react-app) in [TypeScript](https://github.com/Microsoft/TypeScript).
It includes `@mui/material` and its peer dependencies, including [Emotion](https://emotion.sh/docs/introduction), the default style engine in Material UI v5.
-If you prefer, you can [use styled-components instead](https://mui.com/material-ui/integrations/interoperability/#styled-components).
+If you prefer, you can [use styled-components instead](https://next.mui.com/material-ui/integrations/interoperability/#styled-components).
## What's next?
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-cra-ts/package.json b/examples/material-ui-cra-ts/package.json
index 943a2266ee3186..3e67fb74443fe6 100644
--- a/examples/material-ui-cra-ts/package.json
+++ b/examples/material-ui-cra-ts/package.json
@@ -5,7 +5,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"@types/react": "latest",
"@types/react-dom": "latest",
"react": "latest",
diff --git a/examples/material-ui-cra/README.md b/examples/material-ui-cra/README.md
index 8fb09165686f79..20998ef50776f6 100644
--- a/examples/material-ui-cra/README.md
+++ b/examples/material-ui-cra/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-cra
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-cra
cd material-ui-cra
```
@@ -22,9 +22,9 @@ or:
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-cra)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/material-ui-cra)
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-cra)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-cra)
## The idea behind the example
@@ -32,11 +32,11 @@ or:
This example demonstrates how you can use [Create React App](https://github.com/facebookincubator/create-react-app) with Material UI.
It includes `@mui/material` and its peer dependencies, including [Emotion](https://emotion.sh/docs/introduction), the default style engine in Material UI v5.
-If you prefer, you can [use styled-components instead](https://mui.com/material-ui/integrations/interoperability/#styled-components).
+If you prefer, you can [use styled-components instead](https://next.mui.com/material-ui/integrations/interoperability/#styled-components).
## What's next?
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-cra/package.json b/examples/material-ui-cra/package.json
index b7490d21c0d880..e564d3c240a503 100644
--- a/examples/material-ui-cra/package.json
+++ b/examples/material-ui-cra/package.json
@@ -11,7 +11,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"react": "latest",
"react-dom": "latest",
"react-scripts": "latest"
diff --git a/examples/material-ui-express-ssr/README.md b/examples/material-ui-express-ssr/README.md
index f82396af5d50b3..5618dc2949c70e 100644
--- a/examples/material-ui-express-ssr/README.md
+++ b/examples/material-ui-express-ssr/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-express-ssr
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-express-ssr
cd material-ui-express-ssr
```
@@ -22,20 +22,20 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-express-ssr)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-express-ssr)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-express-ssr)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/material-ui-express-ssr)
## The idea behind the example
-This is the reference implementation of the [Server Rendering tutorial](https://mui.com/material-ui/guides/server-rendering/).
+This is the reference implementation of the [Server Rendering tutorial](https://next.mui.com/material-ui/guides/server-rendering/).
The example project includes `@mui/material` and its peer dependencies, including [Emotion](https://emotion.sh/docs/introduction), the default style engine in Material UI v5.
-If you prefer, you can [use styled-components instead](https://mui.com/material-ui/integrations/interoperability/#styled-components).
+If you prefer, you can [use styled-components instead](https://next.mui.com/material-ui/integrations/interoperability/#styled-components).
## What's next?
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-express-ssr/package.json b/examples/material-ui-express-ssr/package.json
index 70631b8b2b9155..247b74df4cc922 100644
--- a/examples/material-ui-express-ssr/package.json
+++ b/examples/material-ui-express-ssr/package.json
@@ -15,7 +15,7 @@
"@emotion/react": "latest",
"@emotion/styled": "latest",
"@emotion/server": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"babel-loader": "latest",
"cross-env": "latest",
"express": "latest",
diff --git a/examples/material-ui-gatsby/README.md b/examples/material-ui-gatsby/README.md
index f08f8e84e91f87..35bd45b72b4750 100644
--- a/examples/material-ui-gatsby/README.md
+++ b/examples/material-ui-gatsby/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-gatsby
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-gatsby
cd material-ui-gatsby
```
@@ -22,11 +22,11 @@ npm run develop
The project uses [Gatsby](https://github.com/gatsbyjs/gatsby), which is a static site generator for React.
It includes `@mui/material` and its peer dependencies, including [Emotion](https://emotion.sh/docs/introduction), the default style engine in Material UI v5.
-If you prefer, you can [use styled-components instead](https://mui.com/material-ui/integrations/interoperability/#styled-components).
+If you prefer, you can [use styled-components instead](https://next.mui.com/material-ui/integrations/interoperability/#styled-components).
## What's next?
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-gatsby/package.json b/examples/material-ui-gatsby/package.json
index a705fd375a4fed..817e3e8e4d1b30 100644
--- a/examples/material-ui-gatsby/package.json
+++ b/examples/material-ui-gatsby/package.json
@@ -10,7 +10,7 @@
"@emotion/react": "latest",
"@emotion/server": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"gatsby": "latest",
"gatsby-plugin-react-helmet": "latest",
"react": "latest",
diff --git a/examples/material-ui-nextjs-pages-router-ts/README.md b/examples/material-ui-nextjs-pages-router-ts/README.md
index d3adb3fd4065f6..905124355f1d42 100644
--- a/examples/material-ui-nextjs-pages-router-ts/README.md
+++ b/examples/material-ui-nextjs-pages-router-ts/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-nextjs-pages-router-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-nextjs-pages-router-ts
cd material-ui-nextjs-pages-router-ts
```
@@ -22,27 +22,27 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-nextjs-pages-router-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-nextjs-pages-router-ts)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-nextjs-pages-router-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/material-ui-nextjs-pages-router-ts)
## The idea behind the example
**Note:** This example is set up to use the Next.js Pages Router.
As of Next.js 13.4, the newer App Router pattern is stable.
-We recommend starting new projects with the [Material UI with Next.js (App Router) example](https://github.com/mui/material-ui/tree/master/examples/material-ui-nextjs-ts) unless you need (or prefer) the Pages Router.
+We recommend starting new projects with the [Material UI with Next.js (App Router) example](https://github.com/mui/material-ui/tree/next/examples/material-ui-nextjs-ts) unless you need (or prefer) the Pages Router.
The project uses [Next.js](https://github.com/vercel/next.js), which is a framework for server-rendered React apps.
-It includes `@mui/material` and its peer dependencies, including [Emotion](https://emotion.sh/docs/introduction), the default style engine in Material UI v5. If you prefer, you can [use styled-components instead](https://mui.com/material-ui/integrations/interoperability/#styled-components).
+It includes `@mui/material` and its peer dependencies, including [Emotion](https://emotion.sh/docs/introduction), the default style engine in Material UI v5. If you prefer, you can [use styled-components instead](https://next.mui.com/material-ui/integrations/interoperability/#styled-components).
## The link component
The [example folder](https://github.com/mui/material-ui/tree/HEAD/examples/material-ui-nextjs-pages-router-ts) provides an adapter for the use of [Next.js's Link component](https://nextjs.org/docs/pages/api-reference/components/link) with Material UI.
-More information [in the documentation](https://mui.com/material-ui/integrations/routing/#next-js-pages-router).
+More information [in the documentation](https://next.mui.com/material-ui/integrations/routing/#next-js-pages-router).
## What's next?
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-nextjs-pages-router-ts/package.json b/examples/material-ui-nextjs-pages-router-ts/package.json
index 1b522774bc1e53..269e388c33e9b0 100644
--- a/examples/material-ui-nextjs-pages-router-ts/package.json
+++ b/examples/material-ui-nextjs-pages-router-ts/package.json
@@ -14,9 +14,9 @@
"@emotion/react": "latest",
"@emotion/server": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
- "@mui/material-nextjs": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
+ "@mui/material-nextjs": "next",
"next": "latest",
"react": "latest",
"react-dom": "latest"
diff --git a/examples/material-ui-nextjs-pages-router/README.md b/examples/material-ui-nextjs-pages-router/README.md
index 5aaa617e16a4fa..116dc4659fd8a6 100644
--- a/examples/material-ui-nextjs-pages-router/README.md
+++ b/examples/material-ui-nextjs-pages-router/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-nextjs-pages-router
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-nextjs-pages-router
cd material-ui-nextjs-pages-router
```
@@ -22,28 +22,28 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-nextjs-pages-router)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-nextjs-pages-router)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-nextjs-pages-router)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/material-ui-nextjs-pages-router)
## The idea behind the example
**Note:** This example is set up to use the Next.js Pages Router.
As of Next.js 13.4, the newer App Router pattern is stable.
-We recommend starting new projects with the [Material UI with Next.js (App Router) example](https://github.com/mui/material-ui/tree/master/examples/material-ui-nextjs) unless you need (or prefer) the Pages Router.
+We recommend starting new projects with the [Material UI with Next.js (App Router) example](https://github.com/mui/material-ui/tree/next/examples/material-ui-nextjs) unless you need (or prefer) the Pages Router.
The project uses [Next.js](https://github.com/vercel/next.js), which is a framework for server-rendered React apps.
It includes `@mui/material` and its peer dependencies, including [Emotion](https://emotion.sh/docs/introduction), the default style engine in Material UI v5.
-If you prefer, you can [use styled-components instead](https://mui.com/material-ui/integrations/interoperability/#styled-components).
+If you prefer, you can [use styled-components instead](https://next.mui.com/material-ui/integrations/interoperability/#styled-components).
## The Link component
The [example folder](https://github.com/mui/material-ui/tree/HEAD/examples/material-ui-nextjs-pages-router) provides an adapter for the use of [Next.js's Link component](https://nextjs.org/docs/pages/api-reference/components/link) with Material UI.
-More information [in the documentation](https://mui.com/material-ui/integrations/routing/#next-js-pages-router).
+More information [in the documentation](https://next.mui.com/material-ui/integrations/routing/#next-js-pages-router).
## What's next?
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-nextjs-pages-router/package.json b/examples/material-ui-nextjs-pages-router/package.json
index a246af69d94433..c092584d7e7da0 100644
--- a/examples/material-ui-nextjs-pages-router/package.json
+++ b/examples/material-ui-nextjs-pages-router/package.json
@@ -14,9 +14,9 @@
"@emotion/react": "latest",
"@emotion/server": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
- "@mui/material-nextjs": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
+ "@mui/material-nextjs": "next",
"next": "latest",
"prop-types": "latest",
"react": "latest",
diff --git a/examples/material-ui-nextjs-ts-v4-v5-migration/README.md b/examples/material-ui-nextjs-ts-v4-v5-migration/README.md
index 45c5bd369f2ed0..7226e5db8251e2 100644
--- a/examples/material-ui-nextjs-ts-v4-v5-migration/README.md
+++ b/examples/material-ui-nextjs-ts-v4-v5-migration/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-nextjs-ts-v4-v5-migration
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-nextjs-ts-v4-v5-migration
cd material-ui-nextjs-ts-v4-v5-migration
```
@@ -22,21 +22,21 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-nextjs-ts-v4-v5-migration)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-nextjs-ts-v4-v5-migration)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-nextjs-ts-v4-v5-migration)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/material-ui-nextjs-ts-v4-v5-migration)
## The idea behind the example
The project uses [Next.js](https://github.com/vercel/next.js), which is a framework for server-rendered React apps.
-It includes `@mui/material` and its peer dependencies, including [Emotion](https://emotion.sh/docs/introduction), the default style engine in Material UI v5. If you prefer, you can [use styled-components instead](https://mui.com/material-ui/integrations/interoperability/#styled-components).
+It includes `@mui/material` and its peer dependencies, including [Emotion](https://emotion.sh/docs/introduction), the default style engine in Material UI v5. If you prefer, you can [use styled-components instead](https://next.mui.com/material-ui/integrations/interoperability/#styled-components).
It also includes `@mui/styles`, the legacy styling solution that uses JSS as an engine.
It provides all the necessary config for working with both Emotion and JSS for server-side rendering.
The project is intended as a basic starter for migrating your application from v4 to v5, as it lets the JSS style overrides take precedence over the default styles passed to the components by Emotion.
-It demonstrates what results after handling v5's breaking changes to the [theme](https://mui.com/material-ui/migration/v5-style-changes/) and [components](https://mui.com/material-ui/migration/v5-component-changes/).
+It demonstrates what results after handling v5's breaking changes to the [theme](https://next.mui.com/material-ui/migration/v5-style-changes/) and [components](https://next.mui.com/material-ui/migration/v5-component-changes/).
## The Link component
Next.js Pages Router has [a custom Link component](https://nextjs.org/docs/pages/api-reference/components/link).
The example folder provides adapters for usage with Material UI.
-You can find more information [in the documentation](https://mui.com/material-ui/integrations/routing/#next-js-pages-router).
+You can find more information [in the documentation](https://next.mui.com/material-ui/integrations/routing/#next-js-pages-router).
diff --git a/examples/material-ui-nextjs-ts-v4-v5-migration/package.json b/examples/material-ui-nextjs-ts-v4-v5-migration/package.json
index a67c1d3d9aebd5..5de92715b5ff57 100644
--- a/examples/material-ui-nextjs-ts-v4-v5-migration/package.json
+++ b/examples/material-ui-nextjs-ts-v4-v5-migration/package.json
@@ -14,9 +14,9 @@
"@emotion/react": "latest",
"@emotion/server": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
- "@mui/material-nextjs": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
+ "@mui/material-nextjs": "next",
"@mui/styles": "latest",
"autoprefixer": "latest",
"clean-css": "latest",
diff --git a/examples/material-ui-nextjs-ts/README.md b/examples/material-ui-nextjs-ts/README.md
index df5d86c065a2a4..976964f5bf95b0 100644
--- a/examples/material-ui-nextjs-ts/README.md
+++ b/examples/material-ui-nextjs-ts/README.md
@@ -9,7 +9,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-nextjs-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-nextjs-ts
cd material-ui-nextjs-ts
```
@@ -26,9 +26,9 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-nextjs-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-nextjs-ts)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-nextjs-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/material-ui-nextjs-ts)
## Learn more
@@ -42,4 +42,4 @@ To learn more about this example:
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-nextjs-ts/package.json b/examples/material-ui-nextjs-ts/package.json
index 429d960765034e..77fe396f077013 100644
--- a/examples/material-ui-nextjs-ts/package.json
+++ b/examples/material-ui-nextjs-ts/package.json
@@ -13,9 +13,9 @@
"@emotion/cache": "latest",
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
- "@mui/material-nextjs": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
+ "@mui/material-nextjs": "next",
"next": "latest",
"react": "latest",
"react-dom": "latest"
diff --git a/examples/material-ui-nextjs/README.md b/examples/material-ui-nextjs/README.md
index 98ea0fabe4fc94..13eacf4492aac3 100644
--- a/examples/material-ui-nextjs/README.md
+++ b/examples/material-ui-nextjs/README.md
@@ -9,7 +9,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-nextjs
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-nextjs
cd material-ui-nextjs
```
@@ -26,20 +26,20 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-nextjs)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-nextjs)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-nextjs)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/material-ui-nextjs)
## Learn more
To learn more about this example:
- [Next.js documentation](https://nextjs.org/docs) - learn about Next.js features and API.
-- [Customizing Material UI](https://mui.com/material-ui/customization/how-to-customize/) - approaches to customizing Material UI.
+- [Customizing Material UI](https://next.mui.com/material-ui/customization/how-to-customize/) - approaches to customizing Material UI.
## What's next?
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-nextjs/package.json b/examples/material-ui-nextjs/package.json
index af1228ce229f01..b7429c67bf7080 100644
--- a/examples/material-ui-nextjs/package.json
+++ b/examples/material-ui-nextjs/package.json
@@ -12,9 +12,9 @@
"@emotion/cache": "latest",
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
- "@mui/material-nextjs": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
+ "@mui/material-nextjs": "next",
"eslint": "latest",
"eslint-config-next": "latest",
"next": "latest",
diff --git a/examples/material-ui-preact/README.md b/examples/material-ui-preact/README.md
index 9bc17eb026f674..a712c3bf6be9db 100644
--- a/examples/material-ui-preact/README.md
+++ b/examples/material-ui-preact/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-preact
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-preact
cd material-ui-preact
```
@@ -28,11 +28,11 @@ It includes `@mui/material` and its peer dependencies, including [Emotion](https
-If you prefer, you can [use styled-components instead](https://mui.com/material-ui/integrations/interoperability/#styled-components).
+If you prefer, you can [use styled-components instead](https://next.mui.com/material-ui/integrations/interoperability/#styled-components).
## What's next?
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-preact/package.json b/examples/material-ui-preact/package.json
index 47394d072c47b6..1c055c4c6ecc12 100644
--- a/examples/material-ui-preact/package.json
+++ b/examples/material-ui-preact/package.json
@@ -6,7 +6,7 @@
"@babel/helper-builder-react-jsx": "latest",
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"@testing-library/jest-dom": "latest",
"@testing-library/react": "latest",
"@testing-library/user-event": "latest",
diff --git a/examples/material-ui-remix-ts/README.md b/examples/material-ui-remix-ts/README.md
index 2f2fd82886d918..147b6bce1f7066 100644
--- a/examples/material-ui-remix-ts/README.md
+++ b/examples/material-ui-remix-ts/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-remix-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-remix-ts
cd material-ui-remix-ts
```
@@ -22,19 +22,19 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-remix-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-remix-ts)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-remix-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/material-ui-remix-ts)
## The idea behind the example
The project uses [Remix](https://remix.run/), which is a full stack web framework.
It includes `@mui/material` and its peer dependencies, including [Emotion](https://emotion.sh/docs/introduction), the default style engine in Material UI v5.
-If you prefer, you can [use styled-components instead](https://mui.com/material-ui/integrations/interoperability/#styled-components).
+If you prefer, you can [use styled-components instead](https://next.mui.com/material-ui/integrations/interoperability/#styled-components).
## What's next?
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-remix-ts/package.json b/examples/material-ui-remix-ts/package.json
index 53bb95073a3688..e32d75a114d90d 100644
--- a/examples/material-ui-remix-ts/package.json
+++ b/examples/material-ui-remix-ts/package.json
@@ -13,7 +13,7 @@
"@emotion/react": "latest",
"@emotion/server": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"@remix-run/css-bundle": "latest",
"@remix-run/node": "latest",
"@remix-run/react": "latest",
diff --git a/examples/material-ui-via-cdn/README.md b/examples/material-ui-via-cdn/README.md
index 5034856a72f0c7..fea6b75a3cce21 100644
--- a/examples/material-ui-via-cdn/README.md
+++ b/examples/material-ui-via-cdn/README.md
@@ -4,8 +4,10 @@
Download the example [or clone the repo](https://github.com/mui/material-ui):
+
+
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-via-cdn
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-via-cdn
cd material-ui-via-cdn
```
@@ -23,7 +25,7 @@ The client has to download the entire library, regardless of which components ar
-[The live preview.](https://rawcdn.githack.com/mui/material-ui/master/examples/material-ui-via-cdn/index.html)
+[The live preview.](https://rawcdn.githack.com/mui/material-ui/next/examples/material-ui-via-cdn/index.html)
## UMD releases
@@ -37,6 +39,6 @@ We are providing two Universal Module Definition (UMD) files:
## What's next?
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-vite-ts/README.md b/examples/material-ui-vite-ts/README.md
index a0cf054adef4c5..65838939855f34 100644
--- a/examples/material-ui-vite-ts/README.md
+++ b/examples/material-ui-vite-ts/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-vite-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-vite-ts
cd material-ui-vite-ts
```
@@ -22,9 +22,9 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-vite-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-vite-ts)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-vite-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/material-ui-vite-ts)
## The idea behind the example
@@ -36,4 +36,4 @@ It includes `@mui/material` and its peer dependencies, including [Emotion](https
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-vite-ts/package.json b/examples/material-ui-vite-ts/package.json
index f8b6eefe8053d1..82545735254b39 100644
--- a/examples/material-ui-vite-ts/package.json
+++ b/examples/material-ui-vite-ts/package.json
@@ -11,8 +11,8 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
"react": "latest",
"react-dom": "latest"
},
diff --git a/examples/material-ui-vite/README.md b/examples/material-ui-vite/README.md
index 4ef312c42b8b84..5dea6e71b7c2b8 100644
--- a/examples/material-ui-vite/README.md
+++ b/examples/material-ui-vite/README.md
@@ -7,7 +7,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-ui-vite
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/material-ui-vite
cd material-ui-vite
```
@@ -22,9 +22,9 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/material-ui-vite)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/material-ui-vite)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/material-ui-vite)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/material-ui-vite)
## The idea behind the example
@@ -36,4 +36,4 @@ It includes `@mui/material` and its peer dependencies, including [Emotion](https
You now have a working example project.
-You can head back to the documentation and continue by browsing the [templates](https://mui.com/material-ui/getting-started/templates/) section.
+You can head back to the documentation and continue by browsing the [templates](https://next.mui.com/material-ui/getting-started/templates/) section.
diff --git a/examples/material-ui-vite/package.json b/examples/material-ui-vite/package.json
index 71c02e87add914..7ad6bbab50d540 100644
--- a/examples/material-ui-vite/package.json
+++ b/examples/material-ui-vite/package.json
@@ -10,7 +10,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"react": "latest",
"react-dom": "latest"
},
diff --git a/examples/pigment-css-nextjs-ts/README.md b/examples/pigment-css-nextjs-ts/README.md
index a8a18cd92a5f6b..2f8b866e4d9fe8 100644
--- a/examples/pigment-css-nextjs-ts/README.md
+++ b/examples/pigment-css-nextjs-ts/README.md
@@ -9,7 +9,7 @@ Download the example [or clone the repo](https://github.com/mui/material-ui):
```bash
-curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/pigment-css-nextjs-ts
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/pigment-css-nextjs-ts
cd pigment-css-nextjs-ts
```
@@ -26,13 +26,13 @@ or:
-[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/master/examples/pigment-css-nextjs-ts)
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/pigment-css-nextjs-ts)
-[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/master/examples/pigment-css-nextjs-ts)
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/pigment-css-nextjs-ts)
## Learn more
To learn more about this example:
-- [Pigment CSS documentation](https://github.com/mui/material-ui/blob/master/packages/pigment-css-react/README.md) - learn more about Pigment CSS features and APIs.
+- [Pigment CSS documentation](https://github.com/mui/material-ui/blob/next/packages/pigment-css-react/README.md) - learn more about Pigment CSS features and APIs.
- [Next.js documentation](https://nextjs.org/docs) - learn about Next.js features and APIs.
diff --git a/examples/pigment-css-nextjs-ts/package.json b/examples/pigment-css-nextjs-ts/package.json
index b2579629a61906..f0cbed14e0dc94 100644
--- a/examples/pigment-css-nextjs-ts/package.json
+++ b/examples/pigment-css-nextjs-ts/package.json
@@ -10,13 +10,13 @@
"post-update": "echo \"codesandbox preview only, need an update\" && pnpm update --latest"
},
"dependencies": {
- "@pigment-css/react": "latest",
+ "@pigment-css/react": "next",
"react": "latest",
"react-dom": "latest",
"next": "latest"
},
"devDependencies": {
- "@pigment-css/nextjs-plugin": "latest",
+ "@pigment-css/nextjs-plugin": "next",
"@types/node": "latest",
"@types/react": "latest",
"@types/react-dom": "latest",
diff --git a/examples/pigment-css-remix-ts/.gitignore b/examples/pigment-css-remix-ts/.gitignore
new file mode 100644
index 00000000000000..80ec311f4ff554
--- /dev/null
+++ b/examples/pigment-css-remix-ts/.gitignore
@@ -0,0 +1,5 @@
+node_modules
+
+/.cache
+/build
+.env
diff --git a/examples/pigment-css-remix-ts/.stackblitzrc b/examples/pigment-css-remix-ts/.stackblitzrc
new file mode 100644
index 00000000000000..09e22c0da2fc3a
--- /dev/null
+++ b/examples/pigment-css-remix-ts/.stackblitzrc
@@ -0,0 +1,3 @@
+{
+ "startCommand": "npm run dev"
+}
diff --git a/examples/pigment-css-remix-ts/README.md b/examples/pigment-css-remix-ts/README.md
new file mode 100644
index 00000000000000..b4f664d958df04
--- /dev/null
+++ b/examples/pigment-css-remix-ts/README.md
@@ -0,0 +1,34 @@
+# Pigment CSS - Remix with TypeScript example project
+
+## How to use
+
+Download the example [or clone the repo](https://github.com/mui/material-ui):
+
+
+
+```bash
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/pigment-css-remix-ts
+cd pigment-css-remix-ts
+```
+
+Install it and run:
+
+```bash
+npm install
+npm run dev
+```
+
+or:
+
+
+
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/pigment-css-remix-ts)
+
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/pigment-css-remix-ts)
+
+## Learn more
+
+To learn more about this example:
+
+- [Pigment CSS documentation](https://github.com/mui/material-ui/blob/next/packages/pigment-css-react/README.md) - learn more about Pigment CSS features and APIs.
+- [Remix documentation](https://remix.run/docs) - learn about Remix features and APIs.
diff --git a/examples/pigment-css-remix-ts/app/augment.d.ts b/examples/pigment-css-remix-ts/app/augment.d.ts
new file mode 100644
index 00000000000000..f4b2cbccbac936
--- /dev/null
+++ b/examples/pigment-css-remix-ts/app/augment.d.ts
@@ -0,0 +1,18 @@
+import type { ExtendTheme } from '@pigment-css/react/theme';
+
+declare module '@pigment-css/react/theme' {
+ export interface ThemeArgs {
+ theme: ExtendTheme<{
+ colorScheme: 'light' | 'dark';
+ tokens: {
+ palette: {
+ background: string;
+ foreground: string;
+ primary: string;
+ primaryForeground: string;
+ border: string;
+ };
+ };
+ }>;
+ }
+}
diff --git a/examples/pigment-css-remix-ts/app/entry.client.tsx b/examples/pigment-css-remix-ts/app/entry.client.tsx
new file mode 100644
index 00000000000000..9285c83c7d4495
--- /dev/null
+++ b/examples/pigment-css-remix-ts/app/entry.client.tsx
@@ -0,0 +1,18 @@
+/**
+ * By default, Remix will handle hydrating your app on the client for you.
+ * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨
+ * For more information, see https://remix.run/file-conventions/entry.client
+ */
+
+import { RemixBrowser } from '@remix-run/react';
+import * as React from 'react';
+import * as ReactDOMClient from 'react-dom/client';
+
+React.startTransition(() => {
+ ReactDOMClient.hydrateRoot(
+ document,
+
+
+ ,
+ );
+});
diff --git a/examples/pigment-css-remix-ts/app/entry.server.tsx b/examples/pigment-css-remix-ts/app/entry.server.tsx
new file mode 100644
index 00000000000000..7f7421885a0f38
--- /dev/null
+++ b/examples/pigment-css-remix-ts/app/entry.server.tsx
@@ -0,0 +1,122 @@
+/**
+ * By default, Remix will handle generating the HTTP Response for you.
+ * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨
+ * For more information, see https://remix.run/file-conventions/entry.server
+ */
+
+import { PassThrough } from 'node:stream';
+
+import type { AppLoadContext, EntryContext } from '@remix-run/node';
+import { createReadableStreamFromReadable } from '@remix-run/node';
+import { RemixServer } from '@remix-run/react';
+import { isbot } from 'isbot';
+import * as ReactDOMServer from 'react-dom/server';
+
+const ABORT_DELAY = 5_000;
+
+export default function handleRequest(
+ request: Request,
+ responseStatusCode: number,
+ responseHeaders: Headers,
+ remixContext: EntryContext,
+ // This is ignored so we can keep it in the template for visibility. Feel
+ // free to delete this parameter in your app if you're not using it!
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ loadContext: AppLoadContext,
+) {
+ return isbot(request.headers.get('user-agent') || '')
+ ? handleBotRequest(request, responseStatusCode, responseHeaders, remixContext)
+ : handleBrowserRequest(request, responseStatusCode, responseHeaders, remixContext);
+}
+
+function handleBotRequest(
+ request: Request,
+ responseStatusCode: number,
+ responseHeaders: Headers,
+ remixContext: EntryContext,
+) {
+ return new Promise((resolve, reject) => {
+ let shellRendered = false;
+ const { pipe, abort } = renderToPipeableStream(
+ ,
+ {
+ onAllReady() {
+ shellRendered = true;
+ const body = new PassThrough();
+ const stream = createReadableStreamFromReadable(body);
+
+ responseHeaders.set('Content-Type', 'text/html');
+
+ resolve(
+ new Response(stream, {
+ headers: responseHeaders,
+ status: responseStatusCode,
+ }),
+ );
+
+ pipe(body);
+ },
+ onShellError(error: unknown) {
+ reject(error);
+ },
+ onError(error: unknown) {
+ responseStatusCode = 500;
+ // Log streaming rendering errors from inside the shell. Don't log
+ // errors encountered during initial shell rendering since they'll
+ // reject and get logged in handleDocumentRequest.
+ if (shellRendered) {
+ console.error(error);
+ }
+ },
+ },
+ );
+
+ setTimeout(abort, ABORT_DELAY);
+ });
+}
+
+function handleBrowserRequest(
+ request: Request,
+ responseStatusCode: number,
+ responseHeaders: Headers,
+ remixContext: EntryContext,
+) {
+ return new Promise((resolve, reject) => {
+ let shellRendered = false;
+ const { pipe, abort } = ReactDOMServer.renderToPipeableStream(
+ ,
+ {
+ onShellReady() {
+ shellRendered = true;
+ const body = new PassThrough();
+ const stream = createReadableStreamFromReadable(body);
+
+ responseHeaders.set('Content-Type', 'text/html');
+
+ resolve(
+ new Response(stream, {
+ headers: responseHeaders,
+ status: responseStatusCode,
+ }),
+ );
+
+ pipe(body);
+ },
+ onShellError(error: unknown) {
+ reject(error);
+ },
+ onError(error: unknown) {
+ responseStatusCode = 500;
+ // Log streaming rendering errors from inside the shell. Don't log
+ // errors encountered during initial shell rendering since they'll
+ // reject and get logged in handleDocumentRequest.
+ if (shellRendered) {
+ console.error(error);
+ }
+ },
+ },
+ );
+
+ setTimeout(abort, ABORT_DELAY);
+ });
+}
diff --git a/examples/pigment-css-remix-ts/app/root.tsx b/examples/pigment-css-remix-ts/app/root.tsx
new file mode 100644
index 00000000000000..bc08b4c113bfc4
--- /dev/null
+++ b/examples/pigment-css-remix-ts/app/root.tsx
@@ -0,0 +1,31 @@
+import { Links, Meta, Outlet, Scripts, ScrollRestoration } from '@remix-run/react';
+import { css } from '@pigment-css/react';
+import '@pigment-css/react/styles.css';
+
+export function Layout({ children }: { children: React.ReactNode }) {
+ return (
+
+
+
+
+
+
+
+
+
+ {children}
+
+
+
+
+ );
+}
+
+export default function App() {
+ return ;
+}
diff --git a/examples/pigment-css-remix-ts/app/routes/_index.tsx b/examples/pigment-css-remix-ts/app/routes/_index.tsx
new file mode 100644
index 00000000000000..845e6c7b4e6c09
--- /dev/null
+++ b/examples/pigment-css-remix-ts/app/routes/_index.tsx
@@ -0,0 +1,201 @@
+import type { MetaFunction } from '@remix-run/node';
+import { styled, css, keyframes } from '@pigment-css/react';
+
+export const meta: MetaFunction = () => [
+ {
+ title: 'Pigment CSS + Remix + Typescript Example',
+ },
+ { name: 'description', content: 'Welcome to Pigment CSS demo with Remix!' },
+];
+
+const scale = keyframes({
+ to: { scale: 'var(--s2)' },
+});
+
+const Link = styled.a(({ theme }) => ({
+ fontSize: '1rem',
+ background: 'rgba(0 0 0 / 0.04)',
+ padding: '0.8rem 1rem',
+ letterSpacing: '1px',
+ borderRadius: '8px',
+ textAlign: 'center',
+ ...theme.applyStyles('dark', {
+ background: 'rgba(255 255 255 / 0.1)',
+ }),
+ variants: [
+ {
+ props: { outlined: true },
+ style: {
+ background: 'transparent',
+ color: `hsl(${theme.vars.palette.primary})`,
+ border: `1px solid hsl(${theme.vars.palette.border})`,
+ },
+ },
+ ],
+}));
+
+const Bubble = styled('span')({
+ height: 'var(--size, 100%)',
+ aspectRatio: '1',
+ background: 'radial-gradient(hsl(var(--h) 100% 70%) 25%, transparent 50%)',
+ position: 'absolute',
+ display: 'inline-block',
+ left: 'var(--x, 0)',
+ top: 'var(--y, 0)',
+ scale: '0',
+ translate: '-50% -50%',
+ mixBlendMode: 'multiply',
+ filter: 'blur(2px)',
+ animation: `${scale} var(--s, 2s) var(--d, 0s) infinite alternate`,
+});
+
+function randomBetween(min: number, max: number) {
+ return Math.floor(Math.random() * (max - min + 1) + min);
+}
+
+function generateBubbleVars() {
+ return `
+ --x: ${randomBetween(10, 90)}%;
+ --y: ${randomBetween(15, 85)}%;
+ --h: ${randomBetween(0, 360)};
+ --s2: ${randomBetween(2, 6)};
+ --d: -${randomBetween(250, 400) / 1000}s;
+ --s: ${randomBetween(3, 6)}s;
+ `;
+}
+
+export default function Index() {
+ return (
+
+