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

@toujou/toujou-topbar

v1.0.0

Published

The toujou-topbar package of toujou ui components

Downloads

71

Readme

Toujou Topbar

toujou-topbar is a responsive topbar bar component built with LitElement. It handles the state of a burger button (for mobile view) and listens to media query changes to adjust its visibility and behavior. It automatically toggles the visibility of the navigation based on screen size and the state of the burger button.

This component is used for instance on the Kojo theme

Installation

npm install @toujou/toujou-topbar

Example

<toujou-topbar id="topbar" class="topbar">

    <nav aria-label="Topbar Logo">...</nav>

    <ul class="topbar__actions">...</ul>

    <nav class="language-picker" >...</nav>

    <toujou-burger-button class="burger-button">...</toujou-burger-button>

    <nav class="service-nav">...</nav>

    <nav class="main-nav">
        <ul class="main-nav__list">...</ul>
    </nav>

</toujou-topbar>

Features

  • Responsive: Automatically adapts to screen sizes with media query listeners.
  • Custom Events: Dispatches events on burger button state changes and media query breakpoint changes.
  • Reflective Properties: The component reflects the open-nav property to synchronize with the UI state.
  • Customizable: Easy to style and integrate into your application.

Properties

  • open-nav: A boolean property that reflects the open state of the navigation
  • _is-mobile: A boolean private property that indicates whether the viewport is considered mobile. It is updated when the viewport changes
  • _isOpen: A boolean private property that tracks the open / close state of the navigation/ This property is bound to the open-nav attribute

Events

  • toujou-burger-button-state-change: Fired when the burger button's state changes. The event's detail contains a state property that indicates whether the navigation is open (true) or closed (false).
  • toujou-topbar-breakpoint-change: Fired when the media query breakpoint changes. The event's detail contains a state property that indicates whether the screen is mobile (true) or not (false).

Breakpoint

You can customize the breakpoint for the mobile view using the --toujou-topbar-breakpoint CSS variable. This allows you to change the width threshold at which the top bar switches to the mobile layout. It must be a valid CSS width value, for instance 1024px or 60rem.

example:

<toujou-topbar style="--toujou-topbar-breakpoint: 600px;"></toujou-topbar>

In this example, the mobile view will be triggered when the window width is less than 600px (matchMedia(width < 600px)). By default, the breakpoint is set to 840px if the CSS variable is not provided.