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

@inkdropapp/base-ui-theme

v0.7.7

Published

Base UI Theme for Inkdrop

Readme

Base styles of the UI theme for Inkdrop

This module provides the default styles and CSS variables for customizing Inkdrop's UI. It is built on top of Semantic UI.

Read the documentation for detailed instructions.

Requirements

  • Node.js v22.18 or later (for native TypeScript support)
  • pnpm

How to build

To build the module, run the following commands:

pnpm install
pnpm run build

File structure

src/
  semantic.less              Entry point — imports every component definition into a single @layer
  theme.config               Semantic UI theme selection (which variant each component uses)
  theme.less                 LESS helpers and shared mixins
  site/
    globals/
      site.variables         LESS variables (fonts, sizes, color palette) consumed at build time
      site.overrides         CSS custom properties exposed at :root — the main editing surface
      site-dark.overrides    Dark-mode overrides for the same custom properties
    elements/                Per-component .variables / .overrides for buttons, inputs, etc.
    collections/             Form, menu, message, table
    modules/                 Accordion, checkbox, dropdown, modal, popup, sticky, transition
  definitions/               Semantic UI source LESS that consumes the variables above
  themes/default/            Default variant assets referenced by theme.config
styles/theme.css             Build output

How CSS variables are used

The theme is driven entirely by CSS custom properties declared on :root.

  1. LESS variables in site.variables (and per-component .variables files) define the static palette and sizing tokens — these are resolved at compile time by lessc.
  2. CSS custom properties in site.overrides are declared on :root and reference those LESS values (e.g. --primary-color: var(--color-blue-500);). These are what the rest of the theme consumes via var(...).
  3. Component LESS files under src/definitions/ reference the custom properties, not the LESS variables — so consumers can override any token at runtime without rebuilding.

To customize a token, override the custom property in your own stylesheet:

:root {
  --primary-color: hotpink;
}

Dark mode

Dark-mode tokens live in src/site/globals/site-dark.overrides. Inkdrop signals dark mode by adding a class to <body>, and the overrides are scoped with :has():

:root:has(body[class*="dark-ui"]),
:root:has(body.dark-mode) {
  --primary-color: hsl(var(--hsl-blue-400) / 80%);
  --page-background: var(--color-neutral-950);
  /* ... */
}

Only the custom properties that need to change in dark mode are redeclared here — everything else inherits from site.overrides. To add a dark variant for a new token, declare its light value in site.overrides and its dark value in site-dark.overrides using the same name.

Which files to edit