Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/azouaoui-med/react-pro-sidebar

React Pro Sidebar provides a set of components for creating high level and customizable side navigation
https://github.com/azouaoui-med/react-pro-sidebar

dropdown-menus menu menus npm npm-package react react-component reactjs sidebar submenu submenus tree-structure

Last synced: 7 days ago
JSON representation

React Pro Sidebar provides a set of components for creating high level and customizable side navigation

Awesome Lists containing this project

README

        

# [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';



Pie charts
Line charts

Documentation
Calendar

;
```

## Using React Router

You can make use of the `component` prop to integrate [React Router](https://reactrouter.com/en/main) link

**Example Usage**

```jsx
import { Sidebar, Menu, MenuItem } from 'react-pro-sidebar';
import { Link } from 'react-router-dom';


}> Documentation
}> Calendar
}> E-commerce

;
```

## Customization

We provide for each component `rootStyles` prop that can be used to customize the styles

its recommended using utility classes (`sidebarClasses`, `menuClasses`) for selecting target child nodes

**Example usage**

```jsx

// ...

```

For `Menu` component, in addition to `rootStyles` you can also use `menuItemStyles` prop for customizing all `MenuItem` & `SubMenu` components and their children

**Type definition**

```jsx
interface MenuItemStyles {
root?: ElementStyles;
button?: ElementStyles;
label?: ElementStyles;
prefix?: ElementStyles;
suffix?: ElementStyles;
icon?: ElementStyles;
subMenuContent?: ElementStyles;
SubMenuExpandIcon?: ElementStyles;
}

type ElementStyles = CSSObject | ((params: MenuItemStylesParams) => CSSObject | undefined);
```

**Example usage**

```jsx

{
// only apply styles on first level elements of the tree
if (level === 0)
return {
color: disabled ? '#f5d9ff' : '#d359ff',
backgroundColor: active ? '#eecef9' : undefined,
};
},
}}
>
//...

```

## API



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
-

## License

MIT © [Mohamed Azouaoui](https://azouaoui.netlify.app)