npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-iceburger

v0.1.27

Published

A customizable menu component library

Downloads

25

Readme

Iceburger

License: MIT

Cool Burger

A simple burger menu component library.
Designed for mix & match - use just the burger, use just the drawer, or use them together

npm i react-iceburger

import { Iceburger, Drawer } from 'react-iceburger';

Burger Prop Options

All props are optional with sensible defaults

size : number - defaults to 3

<Iceburger size={2.5}/>

Note: A minimum size prop value of 2 is recommended for best appearance.

color : string - defaults to black
accepts any valid css color value

<Iceburger color="rgba(0, 50, 200, .9)" />

lineThickness : string - "thin" | "standard"(default) | "bold"
relative thickness of burger lines

duration : number - defaults to 300
millisecond duration of animation sequence

<Iceburger duration={300} />

kind : string - "standard"(default) | "honeycomb" | "arrow"
menu variant

className : string - defaults to an empty string
use custom styles with caution, as tweaking certain style properties may break the relationship between lines

style : CSSProperties
again, be cautious when overriding styles.
example cases would be to fix the burger / drawer on scroll, or create depth with a box shadow:

      <Iceburger
        onClick={toggleOpen}
        lineThickness='bold'
        kind="honeycomb"
        position="fixed"
      />
      <Drawer
        open={isOpen}
        orientation="left"
        height={350}
        style={{ 
          backgroundColor: "rgba(200, 200, 255, .9) ", 
          position: "fixed",
          boxShadow: "rgba(0, 0, 0, 0.24) 0px 5px 13px"
        }}>
          <a href="/">Hello</a>
          <br />
          <a href="/">Iceburger</a>
          <br />
          <a href="/">Drawer</a>
      </Drawer>

onClick : () => void
pass a simple callback to have the burger manage toggling of boolean state

function App() {
  const [isOpen, setIsOpen] = useState(false);

  const toggleOpen = () => setIsOpen(prev => !prev);

  return (
    <>
      <Iceburger
        size={3}
        color="white"
        kind="honeycomb"
        duration={300}
        lineThickness='bold'
        onClick={toggleOpen}
        className="burger-container" />

      <Drawer
        open={isOpen}
        orientation="right"
        height="800px"
        style={{ backgroundColor: "blue", }}>

      </Drawer>
    </>
  )
}

export default App;

Drawer Prop Options

The open and orientation props are mandatory:

export interface DrawerProps {
  open: boolean;
  orientation: "left" | "right";
  children?: JSX.Element | JSX.Element[];
  width?: number;
  height?: number;
  duration?: number;
  className?: string;
  style?: CSSProperties;
}

open : boolean
The drawer component must receive a boolean state value in order to transition between states

orientation : "left" | "right"
"left" - drawer emerges from the left edge of the viewport
"right" - drawer emerges from the right edge of the viewport

Changelog

8/24/23: v0.1.26 - support sequential focus navigation while drawer is visible