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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@zebra-fed/zeta-web

v1.3.4

Published

Zebra Zeta Design System - Web Components

Readme

Zeta Web is a native web component library created by Zebra Technologies written in TypeScript.
The Zeta Design System includes foundations, components, and best practices that can be used when building UX.

Previewing the components

To view examples of all the components in the library, you can pull this repo and run the Storybook instance.

You can also view the latest release at Zeta or the latest commits to main here.

How to Use

Zeta Web Components can be directly used in many web frameworks including Angular and React (from v19).

  1. Install @zebra-fed/zeta-web

    # NPM
    npm install @zebra-fed/zeta-web
    # YARN
    yarn add @zebra-fed/zeta-web
  2. Import the global styles into the main app file

    import "@zebra-fed/zeta-web/index.css";

    or in HTML,

    <link rel="stylesheet" href="./node_modules/@zebra-fed/zeta-web/dist/style.css" />
  3. Import the desired Zeta Web Component, or the full package into your app:

    // Individual button component
    import "@zebra-fed/zeta-web/dist/components/button/button.js";
    
    // or full package
    import "@zebra-fed/zeta-web";

    or in HTML,

    <!-- Individual button component -->
    <script type="module" src="./node_modules/@zebra-fed/zeta-web/dist/components/button/button.js"></script>
    
    <!-- or full package-->
    <script type="module" src="./node_modules/@zebra-fed/zeta-web/"></script>

    To reduce bloat, we recommend only importing the components you will actually use into your project.

  4. Use the Web Component like any HTML element

    <zeta-button>Hello world!</zeta-button>

    Styles

Zeta styles are composed of primitives (basic value swatches such as color-red-10, spacing-4) and semantic tokens (descriptive values like surface-default, spacing-large, avatar-purple). These are imported via index.css.

To learn more about Zeta theme, see tokens.

If you only need the styles, simply import index.css. Importing index.css is not necessary if you are using the Zeta components, as they include the styles automatically.

By default, if the user has set prefers-color-scheme or prefers-contrast, this will be respected - serving light or dark; regular or high contrast tokens.

To override a theme, you can add data-theme: light | dark or data-contrast: less | more attributes to any element. This will cause any child element to respect that value.

Note: If you want to apply data-theme or data-contrast within the shadow dom, you will need to inject the styles again.

// Importing styles into Lit
import * as zeta from "@zebra-fed/zeta-web/index.css?raw";
import { html, LitElement } from "lit";

@customElement("a")
export class A extends LitElement {
  static styles = [unsafeCSS(zeta.default)];

  // (Optionally) apply the data-* attribute to the whole element.
  @property({ attribute: "data-theme", reflect: true }) theme = "dark";
  @property({ attribute: "data-contrast", reflect: true }) contrast = "more";

  protected override render() {
    return html`<div data-theme="dark" data-contrast="more">
      // Or you can apply the data-* attributes to individual children
    </div>`;
  }
}

React

From React 19 web-components work natively. zeta-web can be imported into your React project and used directly in JSX.

TypeScript and "JSX.IntrinsicElements" errors.

As of v0.5.3 this issue should no longer occur.

If you find TypeScript complains that Property 'zeta-*' does not exist on type 'JSX.IntrinsicElements', you need to add the declared zeta components into React's JSX.IntrinsicElements namespace. To do this:

import { CustomElements } from "@zebra-fed/zeta-web/jsx.d.ts";

declare module "react" {
  namespace JSX {
    interface IntrinsicElements extends CustomElements {}
  }
}

Developer Experience

To improve the development experience while using the zeta web-components, the following packages can be useful:

ts-lit-plugin

ts-lit-plugin adds type checking and code completion to lit-html. To install, first setup typescript in your project, then run:

# NPM
npm install ts-lit-plugin -D

# Yarn
yarn add -D ts-lit-plugin

and add the plugin to your tsconfig.json:

{
  "compilerOptions": {
    "plugins": [
      {
        "name": "ts-lit-plugin"
      }
    ]
  }
}

CSS Variable Autocomplete

This extension makes working with CSS variables easier by showing the values of variables when you hover over them and displaying colors inline in the IDE. To use this, install it in VSCode, and add the following into .vscode/settings.json:

{
  ...
  "cssVariables.lookupFiles": [
    "node_modules/@zebra-fed/zeta-web/primitives.css",
    "node_modules/@zebra-fed/zeta-web/semantics.css",
    // Add other css files here
  ]
}

This configuration will show light mode / regular contrast tokens on hover.

Note: The primitives.css file and semantics.css files should not be used in your app as these only contain a subset of the styles; rather import index.css, as this contains all rules.

Licensing

This software is licensed with the MIT license (see LICENSE and THIRD PARTY LICENSES).