diff --git a/docs/src/components/header/HeaderNavDropdown.tsx b/docs/src/components/header/HeaderNavDropdown.tsx
index b48ed4d0a64b44..e625a7443e7fa6 100644
--- a/docs/src/components/header/HeaderNavDropdown.tsx
+++ b/docs/src/components/header/HeaderNavDropdown.tsx
@@ -71,8 +71,8 @@ const PRODUCTS = [
href: ROUTES.productTemplates,
},
{
- name: 'Design kits',
- description: 'Our components available in your favorite design tool.',
+ name: 'Design Kits',
+ description: 'Material UI components in your favorite design tool.',
href: ROUTES.productDesignKits,
},
{
diff --git a/docs/src/components/home/CompaniesGrid.tsx b/docs/src/components/home/CompaniesGrid.tsx
index 2591dda6a9be02..691f9aefc3e043 100644
--- a/docs/src/components/home/CompaniesGrid.tsx
+++ b/docs/src/components/home/CompaniesGrid.tsx
@@ -1,5 +1,5 @@
import * as React from 'react';
-import Grid from '@mui/material/Grid';
+import Grid from '@mui/material/Unstable_Grid2';
import IconImage, { IconImageProps } from 'docs/src/components/icon/IconImage';
export const CORE_CUSTOMERS: Array = [
@@ -189,7 +189,6 @@ export default function CompaniesGrid({ data }: { data: Array })
{data.map((imgProps) => (
({
objectFit: 'cover',
transitionProperty: 'all',
transitionDuration: '150ms',
- boxShadow: '0px 4px 20px rgba(61, 71, 82, 0.25)',
+ boxShadow: '0 4px 20px rgba(61, 71, 82, 0.2)',
...theme.applyDarkStyles({
borderColor: (theme.vars || theme).palette.grey[800],
- boxShadow: '0px 4px 20px rgba(0, 0, 0, 0.6)',
+ boxShadow: '0 4px 20px rgba(0, 0, 0, 0.6)',
}),
}));
@@ -40,23 +40,26 @@ const Anchor = styled('a')(({ theme }) => [
{
display: 'inline-block',
position: 'relative',
- transitionProperty: 'all',
- transitionDuration: '150ms',
+ transition: 'all 120ms ease',
borderRadius: '50%',
border: '1px solid',
borderColor: (theme.vars || theme).palette.grey[200],
- boxShadow: `0px 2px 12px ${alpha(theme.palette.primary[200], 0.3)}`,
+ boxShadow: `0 2px 12px ${alpha(theme.palette.primary[200], 0.3)}`,
+ backgroundColor: '#FFF',
'&:hover, &:focus': {
borderColor: (theme.vars || theme).palette.primary[300],
- boxShadow: `0px 4px 20px ${alpha(theme.palette.primary[400], 0.3)}`,
+ boxShadow: `0 4px 20px ${alpha(theme.palette.primary[400], 0.3)}`,
+ backgroundColor: (theme.vars || theme).palette.primary[50],
},
} as const,
theme.applyDarkStyles({
- borderColor: (theme.vars || theme).palette.primary[900],
- boxShadow: `0px 2px 12px ${alpha(theme.palette.primaryDark[800], 0.5)}`,
+ backgroundColor: alpha(theme.palette.primaryDark[900], 0.8),
+ borderColor: (theme.vars || theme).palette.primaryDark[600],
+ boxShadow: `0 2px 12px ${alpha(theme.palette.primaryDark[800], 0.5)}`,
'&:hover, &:focus': {
+ backgroundColor: alpha(theme.palette.primary[900], 0.8),
borderColor: (theme.vars || theme).palette.primary[700],
- boxShadow: `0 2px 20px 0 ${alpha(theme.palette.primary[800], 0.5)}`,
+ boxShadow: `0 2px 16px 0 ${alpha(theme.palette.primary[800], 0.5)}`,
},
}),
]);
@@ -94,18 +97,12 @@ const DesignToolLogo = React.forwardRef<
({
- display: 'flex',
- backgroundColor: '#FFF',
- p: 2,
- borderRadius: '50%',
- ...theme.applyDarkStyles({
- backgroundColor: alpha(theme.palette.primary[900], 0.5),
- }),
- }),
+ sx={{
+ display: 'flex',
+ p: 2,
+ borderRadius: '50%',
...(Array.isArray(props.sx) ? props.sx : [props.sx]),
- ]}
+ }}
>
({
- filter: 'drop-shadow(-8px 4px 20px rgba(61, 71, 82, 0.2))',
transition: '0.4s',
display: 'block',
height: 'auto',
- borderRadius: '10px',
+ borderRadius: 6,
+ border: '1px solid',
+ borderColor: theme.palette.divider,
+ filter: `drop-shadow(-2px 4px 6px ${alpha(theme.palette.grey[500], 0.5)})`,
...theme.applyDarkStyles({
- filter: 'drop-shadow(-8px 4px 20px rgba(0, 0, 0, 0.4))',
+ filter: `drop-shadow(-2px 4px 6px ${alpha(theme.palette.common.black, 0.2)})`,
+ borderColor: theme.palette.primaryDark[600],
}),
}));
-export default function TemplateDemo() {
+interface MaterialFigmaComponentsProps {
+ fadeIn?: boolean;
+}
+
+export function MaterialFigmaComponents({ fadeIn }: MaterialFigmaComponentsProps) {
+ return (
+
+
+ theme.applyDarkStyles({
+ '&:hover': {
+ '& img': {
+ filter: 'drop-shadow(-16px 12px 20px rgba(0, 0, 0, 0.4))',
+ },
+ },
+ }),
+ ]}
+ >
+
+ theme.applyDarkStyles({
+ content: `url(/static/branding/design-kits/Button-dark.jpeg)`,
+ })
+ }
+ />
+
+ theme.applyDarkStyles({
+ content: `url(/static/branding/design-kits/Alert-dark.jpeg)`,
+ })
+ }
+ />
+
+ theme.applyDarkStyles({
+ content: `url(/static/branding/design-kits/Slider-dark.jpeg)`,
+ })
+ }
+ />
+
+
+ );
+}
+
+export function MaterialDesignKitInfo() {
+ return (
+
+
+
+ Available in:
+
+ img': { width: 20, height: 20 } }}>
+
+
+
+
+
+
+ We frequently update them to stay up-to-date with the latest release.
+
+
+ }
+ >
+ Buy it now
+
+
+ }
+ >
+ Figma Preview
+
+
+
+ );
+}
+
+export default function DesignKitsDemo() {
const [demo, setDemo] = React.useState(DEMOS[0]);
const icons = {
[DEMOS[0]]: ,
@@ -41,15 +200,15 @@ export default function TemplateDemo() {
return (
-
+
- Upgrade your design workflow
+ Enhance your design workflow
}
- description="The Design kits contain many of the Material UI components with states, variations, colors, typography, and icons. We frequently update it to sync with the most up-to-date release."
+ description="The Design Kits contain many of the Material UI components with states, variations, colors, typography, and icons."
/>
{DEMOS.map((name) => (
@@ -67,102 +226,19 @@ export default function TemplateDemo() {
/>
-
+
-
-
- theme.applyDarkStyles({
- '&:hover': {
- '& img': {
- filter: 'drop-shadow(-16px 12px 20px rgba(0, 0, 0, 0.4))',
- },
- },
- }),
- ]}
- >
-
- theme.applyDarkStyles({
- content: `url(/static/branding/design-kits/Button-dark.jpeg)`,
- })
- }
- />
-
- theme.applyDarkStyles({
- content: `url(/static/branding/design-kits/Alert-dark.jpeg)`,
- })
- }
- />
-
- theme.applyDarkStyles({
- content: `url(/static/branding/design-kits/Slider-dark.jpeg)`,
- })
- }
- />
-
-
+ ({
@@ -179,8 +255,8 @@ export default function TemplateDemo() {
({
@@ -196,47 +272,7 @@ export default function TemplateDemo() {
/>
-
-
-
- Available for:
-
- img': { width: 26, height: 26 } }}>
-
-
-
-
-
- }
- sx={{
- ml: { xs: 0, sm: 'auto' },
- color: 'primary.300',
- width: { xs: '100%', sm: 'fit-content' },
- }}
- >
- Buy now
-
-
+
diff --git a/docs/src/components/productDesignKit/DesignKitFAQ.tsx b/docs/src/components/productDesignKit/DesignKitFAQ.tsx
index 5e4f052cc9a4c3..25ab7e0e454d5f 100644
--- a/docs/src/components/productDesignKit/DesignKitFAQ.tsx
+++ b/docs/src/components/productDesignKit/DesignKitFAQ.tsx
@@ -1,7 +1,6 @@
import * as React from 'react';
import { styled } from '@mui/material/styles';
-import Box from '@mui/material/Box';
-import Grid from '@mui/material/Grid';
+import Grid from '@mui/material/Unstable_Grid2';
import Button from '@mui/material/Button';
import KeyboardArrowRightRounded from '@mui/icons-material/KeyboardArrowRightRounded';
import Paper from '@mui/material/Paper';
@@ -31,18 +30,27 @@ const faqData = [
The number of licenses purchased must correspond to the maximum number of editors working
concurrently in a 24 hour period. An editor is somebody contributing changes to the designed
- screens that use the UI kits. No licenses are required for viewing the designs.
+ screens that use the Design Kits. No licenses are required for viewing the designs.
),
},
{
- summary: 'The UI kit got an update. How do I get it?',
+ summary: 'The Design Kit got an update. How do I get it?',
detail: (
We'll send you an email when a new release is available. You can access the item on the{' '}
download page
- of your store account. You can find a detailed description of the changes under the
- "Changelog" tab on this page.
+ of your store account and find a detailed description of the changes under
+ the"Changelog" tab on this page.
+
+ ),
+ },
+ {
+ summary: 'Is the Material UI Sync plugin paid?',
+ detail: (
+
+ No. We're still in alpha mode and rolling out more features progressively, as per your
+ feedback. We might introduce paid tiers in the future, though.
),
},
@@ -64,7 +72,7 @@ const faqData = [
detail: (
We aim to keep feature parity between the Figma, Sketch, and Adobe XD kits where possible.
- We have a 50% off coupon for past customers who want to switch between two design tools.
+ We have a 50% off coupon for past customers who want to switch between them.
),
},
@@ -77,7 +85,7 @@ const Accordion = styled(MuiAccordion)(({ theme }) => ({
borderRadius: theme.shape.borderRadius,
},
'&:hover': {
- boxShadow: '1px 1px 20px 0 rgb(90 105 120 / 20%)',
+ boxShadow: '1px 1px 8px 0 rgb(90 105 120 / 20%)',
},
'&:not(:last-of-type)': {
marginBottom: theme.spacing(2),
@@ -142,12 +150,12 @@ export default function DesignKitFAQ() {
Frequently asked questions
-
+
{renderItem(0)}
{renderItem(1)}
{renderItem(2)}
-
+
{renderItem(3)}
{renderItem(4)}
-
-
- Got any questions unanswered or need more help?
-
-
-
+
+ Got any questions unanswered or need more help?
+
+
From community help to premium business support, we're here to help.
Material UI
@@ -46,16 +44,12 @@ export default function TemplateHero() {
Pick your favorite design tool to enjoy and use Material UI components. Boost
consistency and facilitate communication when working with developers.
- }
- sx={{ width: { xs: '100%', sm: 'auto' } }}
- >
- Buy now
-
+
}
right={
@@ -69,9 +63,10 @@ export default function TemplateHero() {
width: '100%',
height: '100%',
zIndex: 1,
- background: `linear-gradient(90deg, ${
- (theme.vars || theme).palette.primaryDark[900]
- } 1%, ${alpha(theme.palette.primaryDark[900], 0.5)})`,
+ background: `linear-gradient(90deg, ${alpha(
+ theme.palette.primaryDark[900],
+ 0.8,
+ )} 1%, ${alpha(theme.palette.primaryDark[900], 0.1)})`,
opacity: 0,
...theme.applyDarkStyles({
opacity: 1,
diff --git a/docs/src/components/productDesignKit/DesignKitValues.tsx b/docs/src/components/productDesignKit/DesignKitValues.tsx
index 72bca07d667fdf..489f8105933d8d 100644
--- a/docs/src/components/productDesignKit/DesignKitValues.tsx
+++ b/docs/src/components/productDesignKit/DesignKitValues.tsx
@@ -3,10 +3,11 @@ import Typography from '@mui/material/Typography';
import Grid from '@mui/material/Unstable_Grid2';
import Palette from '@mui/icons-material/Palette';
import LibraryBooks from '@mui/icons-material/LibraryBooks';
+import { InfoCard } from '@mui/docs/InfoCard';
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 '@mui/docs/InfoCard';
+import SectionHeadline from 'docs/src/components/typography/SectionHeadline';
const content = [
{
@@ -25,21 +26,23 @@ const content = [
icon: ,
title: 'For developers',
description:
- 'Effortlessly communicate with designers using the same language around the MUI Core components props and variants.',
+ 'Effortlessly communicate with designers using the same language around the Material UI components props and variants.',
},
];
-function DesignKitValues() {
+export default function DesignKitValues() {
return (
-
-
- Collaboration
-
-
- Be more efficient designing and developing with the same
- library
-
-
+
+
+ Be more efficient designing and developing with the same
+ library
+
+ }
+ />
+
{content.map(({ icon, title, description }) => (
@@ -49,5 +52,3 @@ function DesignKitValues() {
);
}
-
-export default DesignKitValues;
diff --git a/docs/src/components/productDesignKit/SyncFeatures.tsx b/docs/src/components/productDesignKit/SyncFeatures.tsx
new file mode 100644
index 00000000000000..d2973f10529665
--- /dev/null
+++ b/docs/src/components/productDesignKit/SyncFeatures.tsx
@@ -0,0 +1,395 @@
+import * as React from 'react';
+import { styled, alpha } from '@mui/material/styles';
+import Box from '@mui/material/Box';
+import Grid from '@mui/material/Unstable_Grid2';
+import Button from '@mui/material/Button';
+import Typography from '@mui/material/Typography';
+import Fade from '@mui/material/Fade';
+import FormatShapesRoundedIcon from '@mui/icons-material/FormatShapesRounded';
+import SvgStorybook from 'docs/src/icons/SvgStorybook';
+import ImagesearchRollerRoundedIcon from '@mui/icons-material/ImagesearchRollerRounded';
+import Section from 'docs/src/layouts/Section';
+import SectionHeadline from 'docs/src/components/typography/SectionHeadline';
+import GradientText from 'docs/src/components/typography/GradientText';
+import Item, { Group } from 'docs/src/components/action/Item';
+import Highlighter from 'docs/src/components/action/Highlighter';
+import Frame from 'docs/src/components/action/Frame';
+import { Link } from '@mui/docs/Link';
+
+const Image = styled('img')(({ theme }) => ({
+ transition: '0.4s',
+ display: 'block',
+ height: 'auto',
+ borderRadius: 6,
+ border: '1px solid',
+ borderColor: theme.palette.divider,
+ filter: `drop-shadow(-2px 4px 6px ${alpha(theme.palette.grey[500], 0.5)})`,
+ ...theme.applyDarkStyles({
+ filter: `drop-shadow(-2px 4px 6px ${alpha(theme.palette.common.black, 0.2)})`,
+ borderColor: theme.palette.primaryDark[600],
+ }),
+}));
+
+export default function ConnectFeatures() {
+ const [index, setIndex] = React.useState(0);
+ function getSelectedProps(i: number) {
+ return {
+ selected: index === i,
+ sx: { '& svg': { opacity: index === i ? 1 : 0.5 } },
+ };
+ }
+ return (
+
+
+
+
+ The way developers and designers ship faster
+
+ }
+ description="The Sync plugin is perfect for designing and developing using the MaterialĀ UI React library and Design Kit."
+ />
+
+ setIndex(0)}>
+ }
+ title="Theme customization"
+ description="Generate theme code with custom colors, typography styles, shadows, spacing values, and border-radius."
+ />
+
+ setIndex(1)}>
+ }
+ title="Component customization"
+ description="Fully customize a component's design across multiple states and then generate the corresponding theme code."
+ />
+
+ setIndex(2)}>
+ }
+ title="Preview your changes on Storybook"
+ description="Quickly visualize all the changes you run through Sync on a built-in Storybook preview instance."
+ />
+
+
+
+
+
+
+
+ {index === 0 && (
+
+ ({
+ width: '100%',
+ height: '100%',
+ '& img': {
+ position: 'absolute',
+ '&:nth-of-type(1)': {
+ visibility: { xs: 'hidden', sm: 'visible' },
+ width: { xs: 240, sm: 600 },
+ top: 100,
+ left: '50%',
+ transform: 'translate(-40%)',
+ },
+ '&:nth-of-type(2)': {
+ width: { xs: 240, sm: 560 },
+ top: { xs: 100, sm: 40 },
+ left: { xs: '60%', sm: '40%' },
+ transform: {
+ xs: 'scale(1.8) translate(-20%)',
+ sm: 'scale(1) translate(0%)',
+ },
+ },
+ },
+ '&:hover': {
+ '& img': {
+ '&:nth-of-type(2)': {
+ top: { xs: 100, sm: 60 },
+ transform: {
+ xs: 'scale(1.8) translate(-20%)',
+ sm: 'scale(1.1) translate(-15%)',
+ },
+ filter: {
+ xs: 'auto',
+ sm: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.grey[600],
+ 0.5,
+ )})`,
+ },
+ },
+ },
+ },
+ ...theme.applyDarkStyles({
+ '&:hover': {
+ '& img': {
+ '&:nth-of-type(2)': {
+ filter: {
+ xs: 'auto',
+ sm: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.common.black,
+ 0.8,
+ )})`,
+ },
+ },
+ filter: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.common.black,
+ 0.2,
+ )})`,
+ },
+ },
+ }),
+ })}
+ >
+
+ theme.applyDarkStyles({
+ content: `url(/static/branding/design-kits/sync-base1-dark.png)`,
+ })
+ }
+ />
+
+ theme.applyDarkStyles({
+ content: `url(/static/branding/design-kits/sync-shot1-dark.png)`,
+ })
+ }
+ />
+
+
+ )}
+ {index === 1 && (
+
+ ({
+ width: '100%',
+ height: '100%',
+ '& img': {
+ position: 'absolute',
+ '&:nth-of-type(1)': {
+ visibility: { xs: 'hidden', sm: 'visible' },
+ width: { xs: 240, sm: 600 },
+ top: 100,
+ left: '50%',
+ transform: 'translate(-40%)',
+ },
+ '&:nth-of-type(2)': {
+ width: { xs: 240, sm: 560 },
+ top: { xs: 100, sm: 40 },
+ left: { xs: '60%', sm: '50%' },
+ transform: {
+ xs: 'scale(1.8) translate(-20%)',
+ sm: 'none',
+ },
+ },
+ },
+ '&:hover': {
+ '& img': {
+ '&:nth-of-type(2)': {
+ top: { xs: 100, sm: 60 },
+ transform: {
+ xs: 'scale(1.8) translate(-20%)',
+ sm: 'scale(1.1) translate(-30%)',
+ },
+ filter: {
+ xs: 'auto',
+ sm: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.grey[600],
+ 0.5,
+ )})`,
+ },
+ },
+ },
+ },
+ ...theme.applyDarkStyles({
+ '&:hover': {
+ '& img': {
+ '&:nth-of-type(2)': {
+ filter: {
+ xs: 'auto',
+ sm: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.common.black,
+ 0.8,
+ )})`,
+ },
+ },
+ filter: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.common.black,
+ 0.2,
+ )})`,
+ },
+ },
+ }),
+ })}
+ >
+
+ theme.applyDarkStyles({
+ content: `url(/static/branding/design-kits/sync-base2-dark.png)`,
+ })
+ }
+ />
+
+ theme.applyDarkStyles({
+ content: `url(/static/branding/design-kits/material-sync-dark.png)`,
+ })
+ }
+ />
+
+
+ )}
+ {index === 2 && (
+
+ ({
+ width: '100%',
+ height: '100%',
+ '& img': {
+ position: 'absolute',
+ '&:nth-of-type(1)': {
+ visibility: { xs: 'hidden', sm: 'visible' },
+ width: { xs: 240, sm: 600 },
+ top: 100,
+ left: '50%',
+ transform: 'translate(-40%)',
+ },
+ '&:nth-of-type(2)': {
+ width: { xs: 240, sm: 560 },
+ top: { xs: 100, sm: 40 },
+ left: { xs: '60%', sm: '40%' },
+ transform: {
+ xs: 'scale(1.8) translate(-20%)',
+ sm: 'none',
+ },
+ },
+ },
+ '&:hover': {
+ '& img': {
+ '&:nth-of-type(2)': {
+ top: { xs: 100, sm: 60 },
+ transform: {
+ xs: 'scale(1.8) translate(-20%)',
+ sm: 'scale(1.1) translate(-25%)',
+ },
+ filter: {
+ xs: 'auto',
+ sm: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.grey[600],
+ 0.5,
+ )})`,
+ },
+ },
+ },
+ },
+ ...theme.applyDarkStyles({
+ '&:hover': {
+ '& img': {
+ '&:nth-of-type(2)': {
+ filter: {
+ xs: 'auto',
+ sm: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.common.black,
+ 0.8,
+ )})`,
+ },
+ },
+ filter: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.common.black,
+ 0.2,
+ )})`,
+ },
+ },
+ }),
+ })}
+ >
+
+ theme.applyDarkStyles({
+ content: `url(/static/branding/design-kits/sync-base2-dark.png)`,
+ })
+ }
+ />
+
+ theme.applyDarkStyles({
+ content: `url(/static/branding/design-kits/sync-shot3-dark.png)`,
+ })
+ }
+ />
+
+
+ )}
+
+
+
+
+ Get the beta version of Material UI Sync now!
+
+
+ There's still a lot to do, and we're looking forward to hearing from all
+ of you.
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/src/components/productMaterial/MaterialDesignKits.tsx b/docs/src/components/productMaterial/MaterialDesignKits.tsx
index ef65d052dee64a..20cb16e9d070cf 100644
--- a/docs/src/components/productMaterial/MaterialDesignKits.tsx
+++ b/docs/src/components/productMaterial/MaterialDesignKits.tsx
@@ -1,244 +1,204 @@
import * as React from 'react';
-import { styled } from '@mui/material/styles';
+import { styled, alpha } from '@mui/material/styles';
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 Fade from '@mui/material/Fade';
import Typography from '@mui/material/Typography';
-import LaunchRounded from '@mui/icons-material/LaunchRounded';
-import TextFieldsRounded from '@mui/icons-material/TextFieldsRounded';
-import WidgetsRounded from '@mui/icons-material/WidgetsRounded';
-import ToggleOnRounded from '@mui/icons-material/ToggleOnRounded';
+import ExtensionRoundedIcon from '@mui/icons-material/ExtensionRounded';
+import DrawRoundedIcon from '@mui/icons-material/DrawRounded';
import Section from 'docs/src/layouts/Section';
import SectionHeadline from 'docs/src/components/typography/SectionHeadline';
import GradientText from 'docs/src/components/typography/GradientText';
import Item, { Group } from 'docs/src/components/action/Item';
import Highlighter from 'docs/src/components/action/Highlighter';
-import More from 'docs/src/components/action/More';
import Frame from 'docs/src/components/action/Frame';
+import {
+ MaterialDesignKitInfo,
+ MaterialFigmaComponents,
+} from 'docs/src/components/productDesignKit/DesignKitDemo';
import { Link } from '@mui/docs/Link';
-const DEMOS = ['Components', 'Branding', 'Iconography'];
-
const Image = styled('img')(({ theme }) => ({
- filter: 'drop-shadow(-2px 4px 4px rgba(61, 71, 82, 0.1))',
transition: '0.4s',
display: 'block',
height: 'auto',
- borderRadius: '10px',
+ borderRadius: 6,
+ border: '1px solid',
+ borderColor: theme.palette.divider,
+ filter: `drop-shadow(-2px 4px 6px ${alpha(theme.palette.grey[500], 0.5)})`,
...theme.applyDarkStyles({
- filter: 'drop-shadow(-2px 4px 4px rgba(0, 0, 0, 0.3))',
+ filter: `drop-shadow(-2px 4px 6px ${alpha(theme.palette.common.black, 0.2)})`,
+ borderColor: theme.palette.primaryDark[600],
}),
}));
-export default function MaterialDesignKits() {
- const [demo, setDemo] = React.useState(DEMOS[0]);
- const icons = {
- [DEMOS[0]]: ,
- [DEMOS[1]]: ,
- [DEMOS[2]]: ,
- };
+interface MaterialDesignKitsProps {
+ gradient?: boolean;
+}
+
+export default function MaterialDesignKits({ gradient }: MaterialDesignKitsProps) {
+ const [customized, setCustomized] = React.useState(true);
+
return (
-
+
-
-
-
- Enhance your design workflow
-
- }
- description="The Design kits contain many of the Material UI components with states, variations, colors, typography, and icons. We frequently update it to sync with the most up-to-date release."
- />
-
-
- {DEMOS.map((name) => (
- setDemo(name)}>
-
-
- ))}
-
+
+
+ Enhance your design workflow
+
+ }
+ description="Reach out for the Figma Design Kit and the Sync plugin to bridge the gap between development and design when using Material UI."
+ />
+
+ setCustomized(true)}>
+ }
+ title="Design Kit"
+ description="Get many Material UI components with states, variations, colors, typography, and icons on your preferred design tool."
+ />
+
+ setCustomized(false)}>
+ }
+ title="Sync plugin"
+ description="Quickly generate a Material UI theme file with token and component customizations done on Figma."
+ />
+
-
+
-
+
+ ({
+ display: !customized ? 'auto' : 'none',
+ width: '100%',
+ height: '100%',
+ '& img': {
+ position: 'absolute',
+ '&:nth-of-type(1)': {
+ visibility: { xs: 'hidden', sm: 'visible' },
+ width: { xs: 240, sm: 600 },
+ top: 100,
left: '50%',
- width: { xs: 240, sm: 300 },
- '&:nth-of-type(1)': {
- top: 120,
- transform: 'translate(-70%)',
+ transform: 'translate(-40%)',
+ },
+ '&:nth-of-type(2)': {
+ width: { xs: 240, sm: 560 },
+ top: { xs: 100, sm: 40 },
+ left: { xs: '60%', sm: '60%' },
+ transform: {
+ xs: 'scale(1.8) translate(-20%)',
+ sm: 'none',
},
+ },
+ },
+ '&:hover': {
+ '& img': {
'&:nth-of-type(2)': {
- top: 80,
- transform: 'translate(-50%)',
- },
- '&:nth-of-type(3)': {
- top: 40,
- transform: 'translate(-30%)',
+ top: { xs: 100, sm: 60 },
+ transform: {
+ xs: 'scale(1.8) translate(-20%)',
+ sm: 'scale(1.1) translate(-30%)',
+ },
+ filter: {
+ xs: 'auto',
+ sm: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.grey[600],
+ 0.5,
+ )})`,
+ },
},
},
+ },
+ ...theme.applyDarkStyles({
'&:hover': {
'& img': {
- filter: 'drop-shadow(-16px 12px 20px rgba(61, 71, 82, 0.2))',
- '&:nth-of-type(1)': {
- top: 0,
- transform: 'scale(0.8) translate(-108%) rotateY(30deg)',
- },
'&:nth-of-type(2)': {
- top: 40,
- transform: 'scale(0.8) translate(-54%) rotateY(30deg)',
- },
- '&:nth-of-type(3)': {
- top: 40,
- transform: 'scale(0.8) translate(-0%) rotateY(30deg)',
+ filter: {
+ xs: 'auto',
+ sm: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.common.black,
+ 0.8,
+ )})`,
+ },
},
+ filter: `drop-shadow(-16px 12px 20px ${alpha(
+ theme.palette.common.black,
+ 0.2,
+ )})`,
},
},
- },
- (theme) =>
- theme.applyDarkStyles({
- '&:hover': {
- '& img': {
- filter: 'drop-shadow(-16px 12px 20px rgba(0, 0, 0, 0.4))',
- },
- },
- }),
- ]}
+ }),
+ })}
>
theme.applyDarkStyles({
- content: `url(/static/branding/design-kits/Button-dark.jpeg)`,
+ content: `url(/static/branding/design-kits/sync-base2-dark.png)`,
})
}
/>
theme.applyDarkStyles({
- content: `url(/static/branding/design-kits/Alert-dark.jpeg)`,
- })
- }
- />
-
- theme.applyDarkStyles({
- content: `url(/static/branding/design-kits/Slider-dark.jpeg)`,
+ content: `url(/static/branding/design-kits/material-sync-dark.png)`,
})
}
/>
-
- ({
- width: { sm: 400 },
- position: 'absolute',
- left: '50%',
- top: '50%',
- transform: 'translate(-50%, -50%)',
- ...theme.applyDarkStyles({
- content: `url(/static/branding/design-kits/Colors-dark.jpeg)`,
- }),
- })}
- />
-
-
- ({
- width: { sm: 500 },
- position: 'absolute',
- left: '50%',
- top: 60,
- transform: 'translate(-40%)',
- ...theme.applyDarkStyles({
- content: `url(/static/branding/design-kits/Icons-dark.jpeg)`,
- }),
- })}
- />
-
-
-
-
- Available for:
+ {customized ? (
+
+ ) : (
+
+
+ Get the beta version of Material UI Sync now!
+
+
+ There's still a lot to do, and we're looking forward to hearing from all
+ of you.
- img': { width: 26, height: 26 } }}>
-
-
-
+
+
+
-
- }
- sx={{
- ml: { xs: 0, sm: 'auto' },
- color: 'primary.300',
- width: { xs: '100%', sm: 'fit-content' },
- }}
- >
- Buy now
-
-
+
+ )}
diff --git a/docs/src/components/productMaterial/MaterialEnd.tsx b/docs/src/components/productMaterial/MaterialEnd.tsx
index be40de0a8cfb73..e3308a4e06a972 100644
--- a/docs/src/components/productMaterial/MaterialEnd.tsx
+++ b/docs/src/components/productMaterial/MaterialEnd.tsx
@@ -1,5 +1,6 @@
import * as React from 'react';
import { alpha } from '@mui/material/styles';
+import Box from '@mui/material/Box';
import Grid from '@mui/material/Unstable_Grid2';
import List from '@mui/material/List';
import ListItem from '@mui/material/ListItem';
@@ -14,9 +15,14 @@ import GradientText from 'docs/src/components/typography/GradientText';
import { Link } from '@mui/docs/Link';
import ROUTES from 'docs/src/route';
-export default function MaterialEnd() {
+interface MaterialEndProps {
+ noFaq?: boolean;
+}
+
+export default function MaterialEnd({ noFaq }: MaterialEndProps) {
return (
-
-
+ {noFaq ? (
+
@@ -49,44 +56,70 @@ export default function MaterialEnd() {
secondaryUrl={ROUTES.freeTemplates}
altInstallation="npm install @mui/material @emotion/react @emotion/styled"
/>
-
-
- li': { alignItems: 'flex-start' } }}>
-
- } />
-
-
- Material UI vs. Base UI
-
-
- Material UI implements Google's Material Design whereas Base UI features many
- of the same components, but without the Material Design implementation.
-
-
-
-
- } />
-
-
- Does it support Material Design 3?
-
-
- The adoption of Material Design 3 is tentatively planned for Material UI v7. See
- the{' '}
-
- the release schedule
- {' '}
- and follow{' '}
-
- this GitHub issue
- {' '}
- for future updates.
+
+ ) : (
+
+
+
+ Join our global community
-
-
-
+ }
+ description={
+
+ Material UI wouldn't be possible without our global community of
+ contributors. Join us today to get help when you need it, and lend a hand when you
+ can.
+
+ }
+ />
+
+
+
+ li': { alignItems: 'flex-start' } }}>
+
+ } />
+
+
+ Material UI vs. Base UI
+
+
+ Material UI implements Google's Material Design whereas Base UI features
+ many of the same components, but without the Material Design implementation.
+
+
+
+
+ } />
+
+
+ Does it support Material Design 3?
+
+
+ The adoption of Material Design 3 is tentatively planned for Material UI v7. See
+ the{' '}
+
+ the release schedule
+ {' '}
+ and follow{' '}
+
+ this GitHub issue
+ {' '}
+ for future updates.
+
+