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

@zumer/orbit

v1.4.12

Published

Orbit is a CSS framework for radial interfaces

Downloads

722

Readme

Orbit CSS Composer

Orbit is a CSS framework for building radial UIs — gauges, donuts, knobs, pie menus, dashboards — with CSS only. No layout JavaScript. Works with plain HTML and any framework (React, Vue, Svelte).


Why Orbit?

Radial UIs usually need JavaScript to compute angles, radii, and positions. Orbit handles all of that with CSS classes and a couple of Web Components. Drop in two files and start building.

Want ready-made components? orbit-kit wraps the common Orbit patterns into one-line custom elements — gauges, charts, activity rings, knobs, pie menus, cockpit instruments, analog clocks, compasses and radars.

Installation

CDN (fastest):

<link rel="stylesheet" href="https://unpkg.com/@zumer/orbit@latest/dist/orbit.css">
<script src="https://unpkg.com/@zumer/orbit@latest/dist/orbit.js"></script>

npm:

npm install @zumer/orbit
import '@zumer/orbit/style'
import '@zumer/orbit'

Quick start

Minimal gauge in 10 lines:

<div class="bigbang">
  <div class="gravity-spot">
    <div class="orbit-4">
      <o-progress value="72"></o-progress>
    </div>
  </div>
</div>

Structure: bigbang (container) → gravity-spot (center) → orbit-N (ring level) → o-progress or o-arc (the visual element).


Core elements

| Element | Role | |---------|------| | .bigbang | Root container, sets viewport | | .gravity-spot | Center of the radial layout; holds rings | | .orbit-1.orbit-7 | Rings at different radii (1 = innermost) | | .satellite | Item placed on a ring (dot, label, icon) | | <o-arc> | Arc segment (donut slice, gauge needle, menu sector); value 0–100, shape e.g. arrow, circle-a | | <o-progress> | Simple progress ring | | .vector | Tick/marker on a ring | | .side | Stretch content along arc | | .capsule | Wrapper for content inside satellite; required when satellite holds more than plain text |

Structure rules (avoid visual warnings):

  • .bigbang → direct children: .gravity-spot only
  • .gravity-spot → direct children: .orbit, .orbit-N, or .gravity-spot only
  • .satellite → direct children: .capsule or .gravity-spot (for nesting) only
  • .orbit / .orbit-N → do not nest other orbits; orbits live inside gravity-spot
  • o-arc and o-progress → only work in circular orbits; they are hidden in elliptical shapes

Useful classes: range-180, range-270, range-360 (arc span); from-180 (start angle); fit-range (distribute items); shrink-50, gap-4 (spacing); at-center (place satellite in middle).


Themes

Orbit includes built-in themes. Add the theme class to .bigbang:

| Theme | Class | Description | |-------|-------|-------------| | Default | (none) | Transparent borders, gray fills, satellites use currentColor | | Cyan | theme-cyan | Cyan satellite borders, cyan vectors/sides, light cyan fills for o-arc and o-progress | | Developer | dev-orbit | Dashed red borders on orbits and satellites to visualize structure while debugging |

<!-- Default (no class) -->
<div class="bigbang">...</div>

<!-- Cyan theme -->
<div class="bigbang theme-cyan">...</div>

<!-- Developer mode for layout debugging -->
<div class="bigbang dev-orbit">...</div>

You can combine themes, e.g. class="bigbang theme-cyan dev-orbit".


Visual aids & development

Orbit provides CSS visual warnings to catch invalid structure. When rules are broken (e.g. wrong children in gravity-spot or satellite), Orbit shows a red dotted border, grays out content, and displays a ⚠️ icon.

Add class="dev-orbit" to your root container to enable developer mode: dashed red borders on gravity-spot, orbit, and satellite to visualize the layout structure. Useful for debugging.

<div class="bigbang dev-orbit">
  <div class="gravity-spot">
    ...
  </div>
</div>

Orbit also checks browser support for :has() and trigonometric CSS functions (cos, sin); unsupported browsers show an upgrade message. See CSS visual aids in the full docs.


Examples

Browse examples on the Orbit docs site:

| Example | Link | |---------|------| | Circular timer | circular_time | | Progress bars | progress | | Charts (donut, pie, sunburst) | charts | | Gauges (180°, 240°, fuel) | gauges | | Knobs | knobs | | Pie menus | piemenu | | Watch faces | watches | | Chemical structures | chemical_structures | | Calendars & time planners | calendar | | Mandalas | mandalas | | Dashboard | dashboard | | Abstract orbital map | abstract_map |


Use cases

  • Dashboards: gauges, status rings, KPIs
  • Automotive / HUD: speedometers, tachometers, battery, temp
  • IoT / Smart home: thermostats, energy rings, scenes
  • Ops / monitoring: status rings, uptime gauges
  • Fitness / health: activity rings (Move, Exercise, Stand)
  • Controls: knobs, radial menus, compass

Using Orbit with AI / LLMs

Orbit's radial model is unlike the box-flow layouts most models were trained on, so an assistant generating Orbit markup from scratch will struggle. Give it the reference first — these files are written for that purpose:

  • llms.txt — concise overview, structure rules, quick recipes.
  • llms-full.txt — complete reference: every class, custom property, web component, and copy-paste pattern.

Paste the relevant one into your prompt (or your tool's context/rules) before asking the model to build a radial UI.

Resources


License

MIT