Skip to content

Status

Stipe is on version 0.0.0. Until 1.0, a minor release can change the public API, so pin the version you test against.

  • applyTheme throws TypeError for an empty or whitespace-only theme name. It accepts any other name and does not check that a theme by that name exists.
  • applyTheme, getTheme and subscribeTheme do nothing where there is no DOM or MutationObserver. getTheme then returns null and subscribeTheme returns a no-op cleanup.
  • Theme changes emit no storage or global events. Persisting the choice is up to you.
  • terminalPalette returns undefined for any theme other than latte and mocha.
  • readableContentColor throws TypeError unless the colour is #rrggbb.
  • pierreTreesStyle throws RangeError for an item height that is not finite and positive.
  • Do not import Tailwind a second time or copy Stipe’s token sheet into the host. Font URLs are relative to the host’s own asset build, so one host cannot share another host’s font files.
  • Stipe has no React, routing, state, command, copy or policy APIs.

Stipe’s tests cover the theme helpers, embed contrast, terminal palettes, the spacing scale and the stylesheet’s tokens and motion. In the monorepo, run them from the package directory with pnpm test, then pnpm run lint and pnpm run typecheck. When you add a complete palette, keep its name in the complete-palette defaults in styles.css. Do not add a values-only finish to that list or introduce a second theme attribute.

Code is MIT. See LICENSE. Bundled fonts keep their SIL Open Font License 1.1. See Nunito’s license, Maple Mono’s license and Anton’s license. Every other bundled font has its own -OFL.txt file in fonts/.