align-items
in a flex container (with default flex-direction: row) aligns the items on the Y axis, not the X axis.
For alignment on the X axis, use justify-content
.
You can customize the appearance of MuiTab-wrapper
like this:
tabs: {
"& .MuiTab-wrapper": {
flexDirection: "row",
justifyContent: "flex-start"
},
textAlign: "left",
borderRight: `1px solid ${theme.palette.divider}`
}
Take a look at the example on codesandbox
To style the right border (referred to as the 'indicator'), define a class rule and apply it to the indicator element
Here's an example:
indicator: {
left: 0,
// add any other necessary styles here such as changing the backgroundColor
},
.... add styles for other classes as needed
In your JSX code, include TabIndicatorProps within the <Tab
component
<Tabs
orientation="vertical"
variant="scrollable"
value={value}
onChange={handleChange}
aria-label="Vertical tabs example"
className={classes.tabs}
TabIndicatorProps={{ className: classes.indicator }}
>
To convert the text to lowercase, simply add textTransform: 'lowercase'
to the styles of MuiTab-wrapper