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

fokus-styles

v2.7.0

Published

Fokus Styles is a complete CSS framework with components, utilities, vanilla JavaScript, icons, React wrappers, and a CLI.

Readme

Fokus Styles

Um framework CSS híbrido — componentes prontos e classes utilitárias atômicas na mesma folha de estilo, com zero dependências em tempo de execução.

npm version npm license CI bundle size

Instalação · Por que Fokus Styles · Componentes · Documentação · Ecossistema Fokus Cloud


Fokus Styles é um framework CSS open source construído com HTML, CSS e JavaScript nativo. Nasceu do uso recorrente do autor em projetos pessoais e profissionais, e é distribuído publicamente como produto para qualquer desenvolvedor que precise construir interfaces consistentes sem carregar React, Vue, Angular, jQuery ou qualquer outra dependência de runtime.

Status: 2.6.0. O Fokus Styles consolida CSS, JavaScript, ícones, React e CLI em um único pacote npm. O foco atual é consolidar o núcleo CSS e os componentes essenciais antes de ampliar o catálogo. O framework já possui componentes avançados, mas eles são tratados como extensões e não definem o caminho recomendado para quem está começando. Veja a política de estabilidade e roadmap.

Este README é a visão geral do projeto. Para aprender a usar cada recurso em detalhe, com exemplos completos, consulte a documentação completa.

Ecossistema Fokus Cloud

O Fokus Styles é o sistema visual que integra o ecossistema Fokus Cloud. Use cada fonte conforme o tipo de informação que procura:

  • Fokus Cloud — visão geral do ecossistema e entrada para os produtos Fokus.
  • Fokus Styles — documentação publicada, fundamentos, instalação e guias visuais/interativos de uso.
  • Repositório no GitHub — código-fonte, exemplos, decisões técnicas, issues e histórico de mudanças.
  • Pacote no npm — versões publicadas, metadados, distribuição e instalação do pacote.

As páginas em docs/ são a referência versionada junto ao código; os sites complementam essa referência com conteúdo publicado e exemplos navegáveis.

Por que Fokus Styles

A maioria dos frameworks CSS obriga você a escolher um lado: componentes prontos e opinativos ou utilitários atômicos e flexíveis. O Fokus Styles assume os dois de propósito — é essa a filosofia híbrida que orienta toda a arquitetura do projeto.

| | | | --- | --- | | Híbrido por design | Componentes prontos (.fs-btn, .fs-card, .fs-modal) e utilitários atômicos (.fs-u-d-flex, .fs-u-mt-3, .fs-u-gx-2) convivem na mesma folha de estilo, com uma convenção de nomes (fs-/fs-u-/is-) que evita colisão entre os dois mundos. | | Zero dependências | Nenhuma dependência de runtime — nem framework JS, nem CDN externo para fontes. HTML, CSS e JavaScript nativo, prontos para colar direto em qualquer página. | | Dark mode nativo | Suporte a tema escuro desde a primeira versão, via CSS Custom Properties e um único atributo (data-theme="dark") — sem plugin, sem JS extra. | | Multi-marca | data-fs-brand="x" troca a cor de ação primária em runtime, sem recompilar CSS — combina com data-theme="dark" automaticamente (ver Theming). | | Acessibilidade não é opcional | ARIA, foco e navegação por teclado são parte da API de todo componente interativo desde o início, não um retrofit — e um gate axe-core no CI garante isso a cada PR (ver matriz de acessibilidade). | | Curva de aprendizado familiar | Nomenclatura de classes e grid seguem convenções amplamente adotadas — quem já usou um framework CSS de componentes se sente em casa em minutos. | | Customização sem fork | Toda a identidade visual (cores, espaçamento, tipografia, raios, sombras) é exposta via CSS Custom Properties — sobrescreva sem recompilar. | | TypeScript incluso | .d.ts hand-escritos para toda a API JS pública — autocomplete e checagem de tipos sem reescrever nada em TS. |

Instalação

Via npm:

npm install fokus-styles

Ou direto via CDN (jsDelivr/unpkg), sem instalar nada:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fokus-styles/dist/css/fokus.css">
<script src="https://cdn.jsdelivr.net/npm/fokus-styles/dist/js/fokus.js"></script>

O CSS também é distribuído em arquivos separados (fokus-core.css, fokus-components.css, fokus-utilities.css, fokus-dark.css, além de layout.css, forms.css, components.css, helpers.css), e o ponto de entrada Sass está disponível para compilar com suas próprias variáveis. Detalhes em Instalação e Formas de uso.

As fontes self-hosted (Plus Jakarta Sans e Source Code Pro) são distribuídas à parte em fonts.css. Inclua-o antes do CSS principal para usá-las; sem ele, a tipografia cai no sans-serif/monospace do sistema:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fokus-styles/dist/css/fonts.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fokus-styles/dist/css/fokus.css">

Início rápido

Um componente interativo se inicializa sozinho via data-fs — basta incluir o CSS e o JS e escrever o HTML:

<link rel="stylesheet" href="node_modules/fokus-styles/dist/css/fokus.min.css">

<button type="button" class="fs-btn fs-btn-primary" data-fs="modal" data-fs-target="#meuModal">
  Abrir modal
</button>

<div class="fs-modal" id="meuModal">
  <div class="fs-modal-dialog">
    <div class="fs-modal-content">
      <div class="fs-modal-header">
        <h3 class="fs-modal-title">Título</h3>
        <button type="button" class="fs-btn-close" data-fs-dismiss="modal" aria-label="Fechar"></button>
      </div>
      <div class="fs-modal-body">Conteúdo do modal.</div>
    </div>
  </div>
</div>

<script src="node_modules/fokus-styles/dist/js/fokus.min.js"></script>

Todo componente interativo compartilha a mesma API (.show(), .hide(), .toggle(), .dispose(), getInstance() e eventos DOM fs:*). Os conceitos gerais estão em Formas de uso.

Componentes

O caminho recomendado começa pelo núcleo: layout, tokens, formulários, conteúdo, navegação básica e overlays essenciais. Componentes avançados ficam disponíveis quando o projeto realmente precisa deles.

  • Núcleo essencial: containers, grid Flexbox (.fs-row/.fs-col-*), espaçamento, display, tipografia, botões, cards, alertas, badges, tabelas, formulários, navbar, dropdown, tabs, accordion, modal, toast, paginação e breadcrumbs.
  • Extensões de interface: Stack, Cluster, Sidebar, Collapse, Offcanvas, Tooltip, Popover, Stepper, Input Group, Empty State, Skeleton, Spinner, Progress, Tag, Rating e Segmented Control.
  • Componentes avançados: Combobox, Datepicker, DataTable, Tree View, Command Palette, Carousel e Upload avançado.

Os utilitários também cobrem layout, columns, box-sizing, overflow, overscroll, Flexbox, CSS Grid, spacing, sizing, typography, borders, filters, motion, transforms, interatividade e acessibilidade. Consulte a Utility API e a matriz de cobertura.

Cada componente tem um exemplo funcional dedicado (claro + escuro) em mockup/ — a forma mais rápida de ver o framework em ação sem escrever nenhum código. O passo a passo de uso de cada um está na documentação de componentes. Prefere ver tudo já montado numa página real? mockup/templates/ tem 4 templates prontos pra copiar (dashboard, autenticação, landing page e painel administrativo).

Customização e dark mode

Todos os tokens visuais são expostos como CSS Custom Properties (prefixo --fs-). Para customizar, redefina a variável no seu próprio CSS — sem fork, sem recompilar:

:root {
  --fs-color-primary: #6d28d9;
  --fs-radius-md: 10px;
}

O dark mode é ativado por um único atributo (<html data-theme="dark">), sem JavaScript obrigatório. Detalhes em Theming e Dark mode.

Os tokens de interação também são públicos: foco, duração, curva de transição, altura e densidade dos controles podem ser ajustados sem alterar classes ou recompilar o framework. A referência completa está em Design tokens.

Integrações no mesmo pacote

fokus-styles inclui todos os recursos. Use subpaths somente quando precisar de uma integração específica:

  • fokus-styles/icons — ícones SVG Lucide tree-shakeable;
  • fokus-styles/react — wrappers React para Modal, Dropdown e Tabs;
  • fokus-styles/cli e o comando fokus — build, tema e análise;
  • fokus-styles/scss e fokus-styles/js — fontes Sass e JavaScript vanilla.

Comparação com outros frameworks

Avaliando o FokusStyles contra outras opções? FokusStyles vs Bootstrap vs Tailwind CSS — filosofia, tamanho de bundle, dependências e dark mode nativo, com dados públicos e reproduzíveis.

Documentação

Licença

Distribuído sob a licença MIT — uso livre em projetos pessoais, comerciais e comunitários.


Desenvolvido integralmente por Jorge Wanderley Reis de Menezes — [email protected]