New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

crystal-sidebar

Package Overview
Dependencies
Maintainers
2
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

crystal-sidebar

React crystal sidebar library with dropdown menus and unlimit number of nested submenus

latest
Source
npmnpm
Version
0.1.4
Version published
Weekly downloads
1
-66.67%
Maintainers
2
Weekly downloads
 
Created
Source

React Pro Sidebar

![npm][version] ![License][license] ![Peer][peer] ![Download][download] ![Stars][stars]

Customizable and responsive react sidebar library with dropdown menus and unlimited number of nested submenus

Screenshot

crystal-sidebar

Installation

yarn

yarn add crystal-sidebar

npm

npm install crystal-sidebar

Usage

import { ProSidebar, Menu, MenuItem, SubMenu } from 'crystal-sidebar';
import 'crystal-sidebar/dist/css/styles.css';

<ProSidebar>
  <Menu iconShape="square">
    <MenuItem icon={<FaGem />}>Dashboard</MenuItem>
    <SubMenu title="Components" icon={<FaHeart />}>
      <MenuItem>Component 1</MenuItem>
      <MenuItem>Component 2</MenuItem>
    </SubMenu>
  </Menu>
</ProSidebar>;

If you are using sass then you can import the styles.scss directly into your scss file

@import '~crystal-sidebar/dist/scss/styles.scss';

Sidebar Layout

You can take advantage of the sidebar layout components to organize the content of your sidebar

import { ProSidebar, SidebarHeader, SidebarFooter, SidebarContent } from 'crystal-sidebar';

<ProSidebar>
  <SidebarHeader>
    {/**
     *  You can add a header for the sidebar ex: logo
     */}
  </SidebarHeader>
  <SidebarContent>
    {/**
     *  You can add the content of the sidebar ex: menu, profile details, ...
     */}
  </SidebarContent>
  <SidebarFooter>
    {/**
     *  You can add a footer for the sidebar ex: copyright
     */}
  </SidebarFooter>
</ProSidebar>;

Custom Styling

There are sets of sass variables available which you can override to define your own styles

You need to include your override variables before importing the scss file

Your custom.scss file should look something like this

// Your variable overrides
$sidebar-bg-color: #1d1d1d;

@import '~crystal-sidebar/dist/scss/styles.scss';

Available scss variables

$sidebar-bg-color: #1d1d1d !default;
$sidebar-color: #adadad !default;
$sidebar-width: 270px !default;
$sidebar-collapsed-width: 80px !default;
$highlight-color: #d8d8d8 !default;
$submenu-bg-color: #2b2b2b !default;
$submenu-bg-color-collapsed: #2b2b2b !default;
$icon-bg-color: #2b2b2b !default;
$icon-size: 35px !default;
$breakpoint-xs: 480px !default;
$breakpoint-sm: 576px !default;
$breakpoint-md: 768px !default;
$breakpoint-lg: 992px !default;
$breakpoint-xl: 1200px !default;

Using nested sub-menus

You can have as many nested menu-items and sub-menus as you like, and the syntax is very simple

<Menu iconShape="square">
  <SubMenu title="Components" icon={<FaGem />}>
    <MenuItem>Component 1</MenuItem>
    <SubMenu title="Sub Component 1" icon={<FaHeart />}>
      {/* you can have more nested submenus ... */}
    </SubMenu>
  </SubMenu>
</Menu>

Using React Router Dom

Here is an example on how to use react router dom in the menu item

import { Link } from 'react-router-dom';

<MenuItem icon={<FaGem />}>
  Dashboard
  <Link to="/" />
</MenuItem>;

API

ComponentPropTypeDescriptionDefault
ProSidebarcollapsedbooleancollapsed status of the sidebar false
rtlbooleanRTL directionfalse
toggledstringToggle status of the sidebar when break point is enabledfalse
onToggle(value:boolean)=>{}Callback function called when toggled status changes, happens when overlay is clicked-
breakPointxs | sm | md | lg | xlSet break point to specify when the sidebar should be responsive -
widthnumber | stringWidth of the sidebar270px
collapsedWidthnumber | stringWidth of the sidebar on collapsed state80px
imagestringUrl of the image to use in the sidebar background-
MenuiconShape'square' | 'round' | 'circle'Shape of the menu icons -
popperArrowbooleanif true, an arrow will be displayed when sidebar collapsed to point to sub-menu wrapperfalse
MenuItemiconReactNodeIcon for the menu item -
activebooleanSet active menu items false
prefixReactNodeAdd a prefix to the menuItem -
suffixReactNodeAdd a suffix to the menuItem -
SubMenutitlestring | ReactNodeTitle for the submenu -
iconReactNodeIcon for submenu-
defaultOpenbooleanSet if the submenu is open by defaultfalse
openbooleanSet open value if you want to control the state-
prefixReactNodeAdd a prefix to the submenu -
suffixReactNodeAdd a suffix to the submenu -
onOpenChange(open: boolean)=>{}Callback function called when submenu state changes-

License

MIT © [Emin Ozandac]

Keywords

react-component

FAQs

Package last updated on 01 Mar 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts