Skip to main content

Custom Style

The Custom Style feature provides the flexibility to apply custom styling to the navigation sidebar. With the customStyles prop, you can pass a set of CSS properties to customize the appearance of the sidebar according to your design preferences. The customStyles prop accepts a CSSObject from the Emotion library.

Props

customStyles?: CSSObject

Example

Source Code

'use client'

// MUI Imports
import Checkbox from '@mui/material/Checkbox'
import FormControlLabel from '@mui/material/FormControlLabel'

// Component Imports
import VerticalNav, { Menu, MenuItem, SubMenu } from '@menu/vertical-menu'

// Hook Imports
import useVerticalNav from '@menu/hooks/useVerticalNav'

const CustomStyles = () => {
const { isBreakpointReached, updateVerticalNavState, isCollapsed } = useVerticalNav()

return (
<div className='flex'>
<VerticalNav customBreakpoint='200px' customStyles={isCollapsed ? { color: 'red' } : { color: 'blue' }}>
<Menu>
<SubMenu label='Dashboards'>
<MenuItem>Analytics</MenuItem>
<MenuItem>eCommerce</MenuItem>
</SubMenu>
<MenuItem>Calendar</MenuItem>
<MenuItem>FAQ</MenuItem>
<SubMenu label='Menu Level'>
<MenuItem>Menu Level 2.1</MenuItem>
<SubMenu label='Menu Level 2.2'>
<MenuItem>Menu Level 3.1</MenuItem>
<MenuItem>Menu Level 3.2</MenuItem>
</SubMenu>
</SubMenu>
<MenuItem>Documentation</MenuItem>
</Menu>
</VerticalNav>
<main className='p-4 flex-grow'>
{!isBreakpointReached && (
<FormControlLabel
label='Collapse'
control={<Checkbox onChange={() => updateVerticalNavState({ isCollapsed: !isCollapsed })} />}
/>
)}
</main>
</div>
)
}

export default CustomStyles