# [React Pro Sidebar](https://www.npmjs.com/package/react-pro-sidebar)
[![npm][version]][npm-url]
[![License][license]][npm-url]
[![Peer][peer]][npm-url]
[![Download][download]][npm-url]
[![Stars][stars]][github-url]
[version]: https://img.shields.io/npm/v/react-pro-sidebar.svg?style=flat-square
[license]: https://img.shields.io/github/license/azouaoui-med/react-pro-sidebar?style=flat-square
[peer]: https://img.shields.io/npm/dependency-version/react-pro-sidebar/peer/react?style=flat-square
[download]: https://img.shields.io/npm/dt/react-pro-sidebar?style=flat-square
[stars]: https://img.shields.io/github/stars/azouaoui-med/react-pro-sidebar?style=social
[npm-url]: https://www.npmjs.com/package/react-pro-sidebar
[github-url]: https://github.com/azouaoui-med/react-pro-sidebar
React Pro Sidebar provides a set of components for creating high level and customizable side navigation
## Old versions
- [v0.x](https://github.com/azouaoui-med/react-pro-sidebar/tree/v0.x)
## Live Preview
- [Demo](https://azouaoui-med.github.io/react-pro-sidebar/iframe.html?id=playground--playground&args=&viewMode=story)
- [Storybook](https://azouaoui-med.github.io/react-pro-sidebar/?path=/docs/sidebar--basic)
## Screenshot
![react-pro-sidebar](https://user-images.githubusercontent.com/25878302/212479928-553c2d37-793b-4bcd-ac53-352f26337955.jpg)
## Installation
### yarn
```bash
yarn add react-pro-sidebar
```
### npm
```bash
npm install react-pro-sidebar
```
## Usage
```jsx
import { Sidebar, Menu, MenuItem, SubMenu } from 'react-pro-sidebar';
Component | Prop | Type | Description | Default |
---|---|---|---|---|
Sidebar | defaultCollapsed | boolean |
Initial collapsed status | false |
collapsed | boolean |
Sidebar collapsed state | false |
|
toggled | boolean |
Sidebar toggled state | false |
|
width | number | string |
Width of the sidebar | 270px |
|
collapsedWidth | number | string |
Width of the sidebar on collapsed state | 80px |
|
backgroundColor | string |
Set background color for sidebar | rgb(249, 249, 249, 0.7) |
|
image | string |
Url of the image to use in the sidebar background, need to apply transparency to background color | - | |
breakPoint | xs | sm | md | lg | xl | xxl | all |
Set when the sidebar should trigger responsiveness behavior | - | |
customBreakPoint | string |
Set custom breakpoint value, this will override breakPoint prop | - | |
transitionDuration | number |
Duration for the transition in milliseconds to be used in collapse and toggle behavior | 300 |
|
rtl | boolean |
RTL direction | false |
|
rootStyles | CSSObject |
Apply styles to sidebar element | - | |
onBackdropClick | () => void |
Callback function to be called when backdrop is clicked | - | |
Menu | closeOnClick | boolean |
If true and sidebar is in collapsed state, submenu popper will automatically close on MenuItem click |
false |
menuItemStyles | MenuItemStyles |
Apply styles to MenuItem and SubMenu components and their children | - | |
renderExpandIcon | (params: { level: number; collapsed: boolean; disabled: boolean; active: boolean; open: boolean; }) => React.ReactNode |
Render method for customizing submenu expand icon | - | |
transitionDuration | number |
Transition duration in milliseconds to use when sliding submenu content | 300 |
|
rootStyles | CSSObject |
Apply styles from Menu root element | - | |
MenuItem | icon | ReactNode |
Icon for the menu item | - |
active | boolean |
If true , the component is active |
false |
|
disabled | boolean |
If true , the component is disabled |
- | |
prefix | ReactNode |
Add a prefix to the menuItem | - | |
suffix | ReactNode |
Add a suffix to the menuItem | - | |
component | string | ReactElement |
A component used for menu button node, can be string (ex: 'div') or a component | - | |
rootStyles | CSSObject |
Apply styles to MenuItem element | - | |
SubMenu | label | string | ReactNode |
Label for the submenu | - |
icon | ReactNode |
Icon for submenu | - | |
defaultOpen | boolean |
Set if the submenu is open by default | false |
|
open | boolean |
Set open value if you want to control the state | - | |
active | boolean |
If true , the component is active |
false |
|
disabled | boolean |
If true , the component is disabled |
- | |
prefix | ReactNode |
Add a prefix to the submenu | - | |
suffix | ReactNode |
Add a suffix to the submenu | - | |
onOpenChange | (open: boolean) => void |
Callback function called when submenu state changes | - | |
component | string | React.ReactElement |
A component used for menu button node, can be string (ex: 'div') or a component | - | |
rootStyles | CSSObject |
Apply styles to SubMenu element | - |