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

@cuboapp/styles

v2.0.0

Published

Cubo Styles — SaaS design system: tokens, typography, themes and markdown styles. Generates plain CSS for apps, websites and presentations.

Readme

Cubo Styles

Design system for SaaS products — one set of tokens for the UI kit, web apps, websites and presentations. Built with Vite + TypeScript + SCSS (docs site in Vue 3 TSX), distributed as plain CSS.

Published as @cuboapp/styles. Every public custom property and class is namespaced with a c- prefix (--c-color-*, .c-markdown, …) so the styles can be embedded inside a host app without colliding with its own CSS.

npm install @cuboapp/styles

Features

  • Colors — blue, red, green, orange, gray, white, black and primary (equals blue, #3B82F6, by default). Every scale has 10 gradations with suffixes of 10: --c-color-primary-10 (lightest) … --c-color-primary-100 (darkest), step 50 is the base tone.
  • Configurable accents — primary, green and orange are plain CSS custom properties; re-brand at runtime without rebuilding (the docs site has a live configurator).
  • Light & dark themes — semantic tokens (--c-color-bg, --c-color-text, --c-color-border, …) switch via data-theme="light|dark" on <html> (or any subtree — themes can be nested).
  • Inter Variable as the default typeface, with Cyrillic.
  • rem everywhere — every size (spacing, type, radii, shadows) is rem-based.
  • Markdown styles — wrap rendered markdown in class="c-markdown" and all constructs are covered: headings, quotes (incl. nested), lists, task lists, code blocks, tables, images with wraps (c-img-left / c-img-right / c-img-center / c-img-full), figures, footnotes, kbd, mark, details, hr.

Commands

npm install
npm run dev         # docs site with live reload
npm run build       # docs site → dist/site + CSS → dist/css
npm run build:css   # CSS only
npm run typecheck   # vue-tsc

Generated CSS (npm run build:cssdist/css/)

Each entry ships expanded and .min.css variants.

| File | Contents | | --- | --- | | all.css | Namespaced bundle: tokens + themes + markdown + utilities (no global resets — safe to embed) | | global.css | Global base: reset + element typography (opt-in; applies to bare <h1>, <p>, … on the page) | | tokens.css | Custom properties only (tokens + themes) | | markdown.css | Markdown content styles only (.c-markdown) | | fonts.css + fonts/ | Inter Variable @font-face (all subsets incl. Cyrillic) |

all.css deliberately omits the global reset so it won't clobber a host app's elements. Use global.css only when Cubo owns the whole page.

Include from the package (e.g. served via your bundler or a CDN like unpkg):

<link rel="stylesheet" href="@cuboapp/styles/css/fonts.css" />
<link rel="stylesheet" href="@cuboapp/styles/css/all.min.css" />
<!-- add global.css too if Cubo owns the whole page -->

Or consume the SCSS sources directly (requires sass):

@use '@cuboapp/styles/scss/index.scss';   // everything
@use '@cuboapp/styles/scss/tokens.scss';  // tokens only

Theming

<html data-theme="dark">          <!-- whole app dark -->
  <aside data-theme="light">…</aside>  <!-- nested override -->
</html>

Re-branding

Primary aliases blue by default. Override the scale variables (no rebuild):

:root {
  --c-color-primary-50: #7c3aed; /* base tone */
  --c-color-primary-10: color-mix(in oklab, #7c3aed 7%, white);
  /* …steps 20–100; see src/docs/colorConfig.ts for ramp generation */
}

Green and orange are configurable the same way. To change the default at build time, edit the palettes in src/styles/_palette.scss.

Repository layout

src/styles/        # the design system (SCSS source of truth)
  _palette.scss    # raw color scales
  tokens/          # colors, typography, spacing, radius, shadows, motion
  themes/          # light / dark semantic tokens
  base/            # reset + element typography
  components/      # markdown content styles
  utilities/       # small utility classes
  index.scss       # namespaced bundle entry  → all.css
  global.scss      # global base/reset entry  → global.css
  tokens.scss      # tokens-only entry        → tokens.css
  markdown.scss    # markdown-only entry      → markdown.css
src/docs/          # public docs site (Vue 3 TSX)
scripts/build-css.ts  # dist/css generator