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

@konce-pt/theme

v0.9.1

Published

Theme core for Koncept UI — the kpt-theme document format, an OKLCH ramp derived from one seed colour, semantic role derivation, contrast audit and exporters to CSS/SCSS/TS/DTCG. Framework-free TypeScript.

Readme

@konce-pt/theme

Rdzeń motywu Koncept UI: format dokumentu kpt-theme.json, rampa OKLCH z jednego koloru marki, derywacja kompletu ról semantycznych, audyt kontrastu i emitery do CSS, SCSS, TS oraz W3C DTCG. Czysty TypeScript bez wiązania z frameworkiem; jedyna zależność to @konce-pt/color.

Motyw dla tej biblioteki to zestaw wartości --kpt-* — a policzenie tego zestawu jest arytmetyką, nie znacznikami. Ta sama arytmetyka musi chodzić w przeglądarce (podgląd na żywo) i w Node (eksport, testy), więc mieszka osobno od aplikacji, która ją renderuje.

npm i @konce-pt/theme
import { emitCss, auditTheme } from '@konce-pt/theme';

const theme = {
  kptTheme: 1,
  meta: { name: 'Acme' },
  recipe: { color: { seed: { primary: '#3b82f6' } }, radius: { base: '0.75rem' } },
} as const;

emitCss(theme);      // :root { … } + [data-theme="dark"] { … } — plik do wklejenia w aplikacji
auditTheme(theme);   // pary o zbyt niskim kontraście, w obu motywach, WCAG 2.1 + APCA

Różnica, nie zrzut

Dokument zapisuje wyłącznie to, co odbiega od stocku. Motyw waży kilka kilobajtów zamiast kilkudziesięciu, czyta się go w code review, a nowe tokeny w kolejnej wersji biblioteki dziedziczą się same, zamiast zamarzać na wartościach sprzed aktualizacji. Osobno trzymane są wejścia generatora (recipe) i ręczne poprawki (overrides): dzięki temu „przelicz paletę od nowa" nie kasuje ręcznej pracy, a suwaki dają się ponownie otworzyć.

Rampa czytana z palety, nie wymyślona

Jasność każdego stopnia pochodzi z rampy neutralnej biblioteki, kształt nasycenia — z uśrednienia czterech ramp akcentowych. Który stopień trafia na primary, -hover, -subtle i -border, też jest odczytane: cztery rodziny chromatyczne biblioteki mają identyczny układ i to on jest wzorcem. Generator pęka głośno, gdyby kiedykolwiek się rozjechały.

Audyt, który nie krzyczy bez powodu

Każdy wynik niesie inherited — czy ta sama para nie zdaje już w stockowym motywie biblioteki. Użytkownik widzi to, co on popsuł, zamiast dziedziczyć listę, na którą nie ma wpływu. Ukrywać ich zupełnie jednak nie wolno: część z nich to prawdziwe problemy.

Pełny opis: llms.txt (EN) i llms-pl.txt (PL).

Testy

pnpm --filter @konce-pt/theme exec node --test "src/**/*.test.ts"

Licencja

MIT © konce.pt