Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export default function StandaloneToggleButton() {
value="check"
selected={selected}
onChange={() => setSelected((prevSelected) => !prevSelected)}
aria-label="mark as done"
>
<CheckIcon />
</ToggleButton>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export default function StandaloneToggleButton() {
value="check"
selected={selected}
onChange={() => setSelected((prevSelected) => !prevSelected)}
aria-label="mark as done"
>
<CheckIcon />
</ToggleButton>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
value="check"
selected={selected}
onChange={() => setSelected((prevSelected) => !prevSelected)}
aria-label="mark as done"
>
<CheckIcon />
</ToggleButton>
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import Box from '@mui/material/Box';
import ToggleButton from '@mui/material/ToggleButton';

const colors = [
'standard',
'primary',
'secondary',
'error',
'info',
'success',
'warning',
];

export default function ToggleButtonA11yColorMatrix() {
return (
<Box
sx={{
color: 'text.primary',
display: 'grid',
gap: 1,
'& > div': {
display: 'flex',
flexWrap: 'wrap',
gap: 1,
},
}}
>
{[false, true].map((selected) => (
<div key={String(selected)}>
{colors.map((color) => (
<ToggleButton
key={`${color}-${selected}`}
value={`${color}-${selected}`}
color={color}
selected={selected}
>
{color}
</ToggleButton>
))}
</div>
))}
</Box>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import Box from '@mui/material/Box';
import ToggleButton from '@mui/material/ToggleButton';

const colors = [
'standard',
'primary',
'secondary',
'error',
'info',
'success',
'warning',
] as const;

export default function ToggleButtonA11yColorMatrix() {
return (
<Box
sx={{
color: 'text.primary',
display: 'grid',
gap: 1,
'& > div': {
display: 'flex',
flexWrap: 'wrap',
gap: 1,
},
}}
>
{[false, true].map((selected) => (
<div key={String(selected)}>
{colors.map((color) => (
<ToggleButton
key={`${color}-${selected}`}
value={`${color}-${selected}`}
color={color}
selected={selected}
>
{color}
</ToggleButton>
))}
</div>
))}
</Box>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{[false, true].map((selected) => (
<div key={String(selected)}>
{colors.map((color) => (
<ToggleButton
key={`${color}-${selected}`}
value={`${color}-${selected}`}
color={color}
selected={selected}
>
{color}
</ToggleButton>
))}
</div>
))}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import * as React from 'react';
import Stack from '@mui/material/Stack';
import ToggleButton from '@mui/material/ToggleButton';

const CustomDivButton = React.forwardRef(function CustomDivButton(props, ref) {
return <div ref={ref} {...props} />;
});

export default function ToggleButtonA11yNonNative() {
return (
<Stack spacing={2} direction="row">
<ToggleButton
component={CustomDivButton}
nativeButton={false}
value="on"
selected
>
Non-native pressed
</ToggleButton>
<ToggleButton component={CustomDivButton} nativeButton={false} value="off">
Non-native
</ToggleButton>
<ToggleButton
component={CustomDivButton}
nativeButton={false}
value="disabled"
disabled
>
Disabled non-native
</ToggleButton>
</Stack>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import * as React from 'react';
import Stack from '@mui/material/Stack';
import ToggleButton from '@mui/material/ToggleButton';

const CustomDivButton = React.forwardRef<
HTMLDivElement,
React.HTMLAttributes<HTMLDivElement>
>(function CustomDivButton(props, ref) {
return <div ref={ref} {...props} />;
});

export default function ToggleButtonA11yNonNative() {
return (
<Stack spacing={2} direction="row">
<ToggleButton
component={CustomDivButton}
nativeButton={false}
value="on"
selected
>
Non-native pressed
</ToggleButton>
<ToggleButton component={CustomDivButton} nativeButton={false} value="off">
Non-native
</ToggleButton>
<ToggleButton
component={CustomDivButton}
nativeButton={false}
value="disabled"
disabled
>
Disabled non-native
</ToggleButton>
</Stack>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import Stack from '@mui/material/Stack';
import ToggleButton from '@mui/material/ToggleButton';
import FormatBoldIcon from '@mui/icons-material/FormatBold';

export default function ToggleButtonA11ySemanticStates() {
return (
<Stack spacing={2}>
<Stack direction="row" spacing={2}>
<ToggleButton value="off" selected={false}>
Not pressed
</ToggleButton>
<ToggleButton value="on" selected>
Pressed
</ToggleButton>
<ToggleButton value="disabled" disabled>
Disabled
</ToggleButton>
</Stack>
<Stack direction="row" spacing={2}>
<ToggleButton value="bold-on" selected aria-label="Bold">
<FormatBoldIcon />
</ToggleButton>
<ToggleButton value="bold-off" aria-label="Bold">
<FormatBoldIcon />
</ToggleButton>
</Stack>
<Stack direction="row" spacing={2} sx={{ alignItems: 'center' }}>
<ToggleButton value="small" size="small" aria-label="Bold, small">
<FormatBoldIcon />
</ToggleButton>
<ToggleButton value="medium" size="medium" aria-label="Bold, medium">
<FormatBoldIcon />
</ToggleButton>
<ToggleButton value="large" size="large" aria-label="Bold, large">
<FormatBoldIcon />
</ToggleButton>
</Stack>
</Stack>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import Stack from '@mui/material/Stack';
import ToggleButton from '@mui/material/ToggleButton';
import FormatBoldIcon from '@mui/icons-material/FormatBold';

export default function ToggleButtonA11ySemanticStates() {
return (
<Stack spacing={2}>
<Stack direction="row" spacing={2}>
<ToggleButton value="off" selected={false}>
Not pressed
</ToggleButton>
<ToggleButton value="on" selected>
Pressed
</ToggleButton>
<ToggleButton value="disabled" disabled>
Disabled
</ToggleButton>
</Stack>
<Stack direction="row" spacing={2}>
<ToggleButton value="bold-on" selected aria-label="Bold">
<FormatBoldIcon />
</ToggleButton>
<ToggleButton value="bold-off" aria-label="Bold">
<FormatBoldIcon />
</ToggleButton>
</Stack>
<Stack direction="row" spacing={2} sx={{ alignItems: 'center' }}>
<ToggleButton value="small" size="small" aria-label="Bold, small">
<FormatBoldIcon />
</ToggleButton>
<ToggleButton value="medium" size="medium" aria-label="Bold, medium">
<FormatBoldIcon />
</ToggleButton>
<ToggleButton value="large" size="large" aria-label="Bold, large">
<FormatBoldIcon />
</ToggleButton>
</Stack>
</Stack>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import Box from '@mui/material/Box';
import Stack from '@mui/material/Stack';
import ToggleButton from '@mui/material/ToggleButton';

export default function ToggleButtonA11yTextSpacing() {
return (
<Stack spacing={2} sx={{ maxWidth: 320 }}>
<ToggleButton
value="settings"
selected
sx={{
justifyContent: 'flex-start',
lineHeight: 1.5,
letterSpacing: '0.12em',
whiteSpace: 'normal',
wordSpacing: '0.16em',
}}
>
Review accessibility settings before continuing
</ToggleButton>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 1 }}>
<ToggleButton value="left" sx={{ whiteSpace: 'normal' }}>
Align a longer label to the left
</ToggleButton>
<ToggleButton value="right" sx={{ whiteSpace: 'normal' }}>
Align a longer label to the right
</ToggleButton>
</Box>
</Stack>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import Box from '@mui/material/Box';
import Stack from '@mui/material/Stack';
import ToggleButton from '@mui/material/ToggleButton';

export default function ToggleButtonA11yTextSpacing() {
return (
<Stack spacing={2} sx={{ maxWidth: 320 }}>
<ToggleButton
value="settings"
selected
sx={{
justifyContent: 'flex-start',
lineHeight: 1.5,
letterSpacing: '0.12em',
whiteSpace: 'normal',
wordSpacing: '0.16em',
}}
>
Review accessibility settings before continuing
</ToggleButton>
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 1 }}>
<ToggleButton value="left" sx={{ whiteSpace: 'normal' }}>
Align a longer label to the left
</ToggleButton>
<ToggleButton value="right" sx={{ whiteSpace: 'normal' }}>
Align a longer label to the right
</ToggleButton>
</Box>
</Stack>
);
}
Loading
Loading