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

@aginix/ra-theme-kmitl

v1.0.0

Published

KMITL-branded theme for react-admin — King Mongkut's Institute of Technology Ladkrabang corporate identity (light + dark)

Readme

@aginix/ra-theme-kmitl

A react-admin theme in the KMITL (King Mongkut's Institute of Technology Ladkrabang) corporate identity — the signature สีแสด orange on a warm, flat, border-driven neutral surface. Ships matching light and dark themes plus the raw brand tokens.

Built to pair with @aginix/vulcan-data-provider for a drop-in KMITL admin panel, but works with any react-admin app.

Install

pnpm add @aginix/ra-theme-kmitl

react-admin and @mui/material are peer dependencies — the theme uses your app's existing MUI instance (it bundles none of its own).

Usage

import { Admin, Resource } from 'react-admin'
import { kmitlLightTheme, kmitlDarkTheme } from '@aginix/ra-theme-kmitl'

export const App = () => (
  <Admin theme={kmitlLightTheme} darkTheme={kmitlDarkTheme}>
    <Resource name="courses" /* … */ />
  </Admin>
)

Theme variants

The AppBar has two treatments. The default ('neutral') keeps the chrome quiet and uses orange only as an accent; 'brand' paints a full orange portal bar.

import { createKmitlTheme } from '@aginix/ra-theme-kmitl'

const brandLight = createKmitlTheme('light', { appBar: 'brand' })
const brandDark = createKmitlTheme('dark', { appBar: 'brand' })

<Admin theme={brandLight} darkTheme={brandDark}>…</Admin>

Design tokens

Import the raw brand values for anything outside the theme (login screen, splash, custom widgets):

import { KMITL_ORANGE, KMITL_FONT_FAMILY } from '@aginix/ra-theme-kmitl/tokens'

| Token | Value | Use | |---|---|---| | KMITL_ORANGE | #E35205 | Brand fill (buttons, active state). Pantone 166 C. | | KMITL_ORANGE_TEXT | #B8420A | Orange text/links on light (WCAG-AA safe). | | KMITL_ORANGE_LIGHT | #FF6A26 | Orange lifted for dark surfaces. | | KMITL_ORANGE_TINT | rgba(227,82,5,.12) | Active-nav / selection tint. | | KMITL_GREY | #666666 | Official secondary neutral. | | KMITL_WARNING | #F2A900 | Gold warning (kept off the brand orange). | | KMITL_FONT_FAMILY | "KMITL Go", … | Font stack (see below). |

Fonts

The stack leads with "KMITL Go" — KMITL's official CI typeface (Fontcraft, 2019; Thai + Latin). It is distributed only through the KMITL PR office and is not redistributable, so this package does not ship it.

  • Licensed to use it? Self-host KMITL Go under that exact family name and it is picked up automatically.

  • Otherwise the open fallback Anuphan (Thai + Latin) renders cleanly. Load it once in your app shell:

    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link href="https://fonts.googleapis.com/css2?family=Anuphan:wght@400;500;600;700&display=swap" rel="stylesheet" />

    or pnpm add @fontsource/anuphan and import '@fontsource/anuphan'.

Accessibility

  • The raw brand orange #E35205 on white is ~3.8:1 — fine for fills (buttons, the brand AppBar) and large text, but it fails WCAG AA for body text. The theme therefore renders orange text and links in #B8420A (~5.5:1 on white).
  • warning is a gold #F2A900, deliberately kept off the brand orange so a "warning" never reads as a primary action.
  • Both light and dark palettes are tuned independently (dark lifts the orange to #FF6A26). These guarantees are enforced by the test suite.

Notes

  • The theme is a plain, serialisable RaThemeOptions object with no runtime dependency on @mui/material — so there is only ever one MUI instance (your app's), avoiding duplicate-module styling bugs.
  • Flat by design: all elevation shadows are none; separation comes from 1px borders (same philosophy as react-admin's bwTheme).