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

@desenvolvimento-digital/add-theme

v1.1.0

Published

CLI interativo que gera uma pasta theme/ com o tema MUI do Design System do time (cor, tom neutro, tipografia, espaçamento/elevação, componentes) — roda dentro de qualquer projeto que já use MUI.

Downloads

324

Readme

add-theme

CLI interativo que gera uma pasta theme/ com o tema do MUI já configurado com as escolhas do Design System do time (cor, tipografia, espaçamento/elevação) — pega os mesmos valores do guia no Figma (DESIGN_SYSTEM: Cores, Tipografia, Espaçamento & Elevação, Tema Light & Dark).

Diferente do scaffolding completo (que cria um projeto do zero), esse aqui roda dentro de qualquer projeto que você já tenha — só precisa ter (ou instalar) o MUI.

Uso

Dentro da raiz do projeto onde você quer o tema:

npx add-theme

(depois de publicado; rodando local, ver "Rodando local" abaixo)

O CLI pergunta, em ordem:

  1. Nome da pastatheme por padrão. Se já existir uma pasta com esse nome, ele avisa (e diz se já tem um tema dentro — index.ts, index.tsx, theme.ts ou theme.tsx) e pergunta se pode sobrescrever o conteúdo. Resposta padrão é Não — se você não confirmar, ele cancela sem mexer em nada. Se confirmar, apaga a pasta inteira e recria do zero (não dá pra sobrescrever parcialmente).
  2. Combinação de cor — combo1 (vermelho + laranja, erro em rosa/magenta pra não colidir com o vermelho da primária), combo2 (verde + dourado) ou combo3 (azul + roxo), com prévia da cor no terminal.
  3. Tom neutro — a escala usada em fundo, texto e bordas (theme.palette.grey
    • background/text/divider), independente do combo de cor: Areia (tom quente nos degraus claros, frio/azulado nos escuros), Azulado (frio do começo ao fim) ou Neutro (cinza puro, sem matiz).
  4. Tipografia — Roboto, Inter, Open Sans, Poppins ou IBM Plex Sans.
  5. Espaçamento — Densa, Compacta, Padrão ou Confortável.
  6. Elevação (sombras) — Plana (sem sombra), Sutil ou Pronunciada.
  7. Componentes — checklist de quais overrides incluir no tema (AppBar, IconButton, Button, Campo de texto, Card, Chip, Alert, Dialog, Menu/Select, Tabs, Table, Switch/Checkbox/Radio, Tooltip, Paper/Divider/Avatar/Progress). Vem tudo marcado por padrão — desmarca o que não precisa.

Antes de confirmar, mostra uma prévia com as cores (com bloco de cor no terminal), fonte, os steps de espaçamento, os níveis de elevação e a lista de componentes escolhidos.

E gera:

theme/
  index.ts   # export const useThemeConfig = createTheme({ ... })

Com cores (incluindo contrastText já verificado em AA), tipografia, espaçamento (via theme.spacing()) e sombras — tudo pronto, sem precisar mexer em nada. O nome useThemeConfig segue o padrão do time — apesar do prefixo use, é só um valor (createTheme(...) já resolvido), não um hook de verdade: pode importar e usar em qualquer lugar, sem regra de hook.

Cada role de cor (primary, secondary etc.) tem 4 tons — light/main/dark/contrastText. main é pensado pra preencher (botão, chip, badge — sempre com contrastText em cima, já verificado em AA). Pra usar a cor como texto/ícone solto sobre o fundo padrão, use o tom dark (no modo claro) — ele é o único dos quatro garantido em AA (≥4.5:1) contra o background.default em todos os combos.

Ao final, ele avisa:

  • Se faltam instalar @mui/material, @emotion/react ou @emotion/styled (checa o package.json da pasta atual).
  • O snippet pra plugar o tema (ThemeProvider + CssBaseline).
  • O <link> da fonte escolhida (Google Fonts) pra colar no <head>.