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

@starci/grammar

v0.4.13

Published

Reusable StarCi React components, compositions, and packaged visual DNA.

Readme

@starci/grammar

@starci/grammar separates one shared, business-free UI contract from sibling visual families. Common owns typed props, semantics, renderer anatomy, universal states/scales, and the family registry. Core, Heritage, and Offset Pop implement that contract with independently scoped visual DNA. The package contains no routes, domain entities, product decisions, or feature-named shells.

Public entry points

  • @starci/grammar/common — shared React renderers, presentation-state helpers, and their CSS. Anonymous layout/action owners include WorkspaceShell, Sidebar, Link, and TextAction.
  • @starci/grammar/core — the StarCi Core family, its scoped root, DNA, and compatibility aliases.
  • @starci/grammar/heritage and @starci/grammar/offset-pop — sibling family roots, conformance receipts, and scoped visual overlays.
  • @starci/grammar/common/styles.css, @starci/grammar/core/styles.css, @starci/grammar/heritage/styles.css, and @starci/grammar/offset-pop/styles.css — package stylesheets. Short .css export aliases are also available.

Install the workspace package while developing locally:

npm install ./packages/grammar

Import components from the focused entry point:

import {
  PageContainer,
  PrimaryRailLayout,
  SurfaceCard,
} from "@starci/grammar/common"
import { CoreGrammarRoot } from "@starci/grammar/core"
import "@starci/grammar/core/styles.css"

export const ProductSurface = () => (
  <CoreGrammarRoot>
    <PageContainer>
      <PrimaryRailLayout
        primary={<SurfaceCard ariaLabel="Main">...</SurfaceCard>}
        rail={<SurfaceCard ariaLabel="Progress">...</SurfaceCard>}
      />
    </PageContainer>
  </CoreGrammarRoot>
)

GrammarRoot from Common is neutral. CoreGrammarRoot applies data-grammar-family="core" and the Core stylesheet imports Common anatomy before adding StarCi light, dark, system, forced-colour, and HeroUI-compatible tokens. STARCI_CORE_DNA exposes the immutable design values, STARCI_CORE_SPACING_SCALE exposes the canonical 4px spacing steps, STARCI_CORE_TOKEN_NAMES exposes their CSS adaptation contract, and STARCI_CORE_TOKEN_DEFAULTS / STARCI_CORE_DARK_TOKEN_DEFAULTS expose the exact packaged values.

Heritage and Offset Pop replace only the neutral family root; every other Common renderer and prop contract is inherited. Each family stylesheet imports Common anatomy directly and never imports a sibling family stylesheet.

IncludedMark is the purpose-named 20px outlined circle-check for included offering content; it inherits foreground and never claims completion. SurfaceCopyGroup packages Core's compact 0.5rem title/explanation rhythm. A SurfaceCard without wholeAction identifies itself as static, which is the appropriate comparison surface when its short facts must remain visible together.

Common components accept ordinary typed React props and keep semantic DOM and accessibility behavior. The application translates business data into those props; a family changes presentation only. MediaFrame presents an already selected asset and never decides whether to generate one. The machine-checkable COMMON_UI_RULE_IDS/defineGrammarRuleConformance boundary verifies that each family accounts for the canonical UI X-n catalog without copying the laws into package code.

Package checks

npm run typecheck
npm test
npm pack --dry-run

The package requires Node.js 20 or newer and has peer dependencies on React 18+ and @heroui/react 3.2+.