/
githubmirror
/
material-ui
Обзор
Документация
Войти
/
githubmirror
/
material-ui
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
docs/data/material/components/tabs/CustomizedTabs.tsx
127 строк
3 KB
Siriwat K
[Tabs] Remove deprecated props (#48017)
18 мар 2026, 18:18
Не верифицирован
18 мар 2026, 18:18
3ae11f8
Код
Авторство
О чём код?
import * as React from 'react'; import { styled } from '@mui/material/styles'; import Tabs from '@mui/material/Tabs'; import Tab from '@mui/material/Tab'; import Box from '@mui/material/Box'; const AntTabs = styled(Tabs)({ borderBottom: '1px solid #e8e8e8', '& .MuiTabs-indicator': { backgroundColor: '#1890ff', }, }); const AntTab = styled((props: StyledTabProps) => <Tab disableRipple {...props} />)( ({ theme }) => ({ textTransform: 'none', minWidth: 0, [theme.breakpoints.up('sm')]: { minWidth: 0, }, fontWeight: theme.typography.fontWeightRegular, marginRight: theme.spacing(1), color: 'rgba(0, 0, 0, 0.85)', fontFamily: [ '-apple-system', 'BlinkMacSystemFont', '"Segoe UI"', 'Roboto', '"Helvetica Neue"', 'Arial', 'sans-serif', '"Apple Color Emoji"', '"Segoe UI Emoji"', '"Segoe UI Symbol"', ].join(','), '&:hover': { color: '#40a9ff', opacity: 1, }, '&.Mui-selected': { color: '#1890ff', fontWeight: theme.typography.fontWeightMedium, }, '&.Mui-focusVisible': { backgroundColor: '#d1eaff', }, }), ); interface StyledTabsProps { children?: React.ReactNode; value: number; onChange: (event: React.SyntheticEvent, newValue: number) => void; } const StyledTabs = styled((props: StyledTabsProps) => ( <Tabs {...props} slotProps={{ indicator: { children: <span className="MuiTabs-indicatorSpan" /> }, }} /> ))({ '& .MuiTabs-indicator': { display: 'flex', justifyContent: 'center', backgroundColor: 'transparent', }, '& .MuiTabs-indicatorSpan': { maxWidth: 40, width: '100%', backgroundColor: '#635ee7', }, }); interface StyledTabProps { label: string; } const StyledTab = styled((props: StyledTabProps) => ( <Tab disableRipple {...props} /> ))(({ theme }) => ({ textTransform: 'none', fontWeight: theme.typography.fontWeightRegular, fontSize: theme.typography.pxToRem(15), marginRight: theme.spacing(1), color: 'rgba(255, 255, 255, 0.7)', '&.Mui-selected': { color: '#fff', }, '&.Mui-focusVisible': { backgroundColor: 'rgba(100, 95, 228, 0.32)', }, })); export default function CustomizedTabs() { const [value, setValue] = React.useState(0); const handleChange = (event: React.SyntheticEvent, newValue: number) => { setValue(newValue); }; return ( <Box sx={{ width: '100%' }}> <Box sx={{ bgcolor: '#fff' }}> <AntTabs value={value} onChange={handleChange} aria-label="ant example"> <AntTab label="Tab 1" /> <AntTab label="Tab 2" /> <AntTab label="Tab 3" /> </AntTabs> <Box sx={{ p: 3 }} /> </Box> <Box sx={{ bgcolor: '#2e1534' }}> <StyledTabs value={value} onChange={handleChange} aria-label="styled tabs example" > <StyledTab label="Workflows" /> <StyledTab label="Datasets" /> <StyledTab label="Connections" /> </StyledTabs> <Box sx={{ p: 3 }} /> </Box> </Box> ); }