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

bord-design-system

v0.0.10

Published

Readme

⚡Welcome to .Bord design system ⚡

📕📕 StoryBook

✨ Crea, documenta y valida tus componentes con Storybook al instante.

🚀 Entorno aislado, recarga rápida y configuración lista para escalar tu Design System sin fricción.

1️⃣ Clonar el repositorio

Primero, clona el proyecto a tu máquina local:

git  clone https://github.com/somosnudos/bord-design-system.git
cd  bord-design-system

2️⃣ Preparar tu entorno

Para que bord-design-system funcione correctamente, incluimos un archivo .nvmrc en la raíz del proyecto.

Este archivo define la versión de Node recomendada para usar con este proyecto.

Pasos:

  1. Asegúrate de tener instalado nvm.

  2. En la carpeta del proyecto, ejecuta:

nvm use

Esto hará que tu terminal use la versión de Node indicada en .nvmrc.
Si la versión no está instalada, nvm te indicará cómo instalarla.

  1. Instala las dependencias:
yarn install

⚠️ Usamos solo yarn para instalar dependencias y ejecutar scripts, porque el repo está configurado específicamente para yarn.
4. Inicia el servidor de desarrollo:

npm run storybook

⚡ Ahora tu entorno está listo y todos los colaboradores usarán la misma versión de Node, evitando problemas de compatibilidad.

📂 Estructura del Proyecto

La carpeta principal es src/. Cada directorio tiene una responsabilidad única para mantener el proyecto escalable:

  • 🖼️ assets/ — Archivos estáticos como imágenes, fuentes y vectores.

📂 Estructura de Componentes (Design System)

  • 🧩 components/ — Componentes pertenecienstes al DesingSystem Estructura components
components/
└── ComponentName/
    ├── ComponentName.tsx           # 🧠 Lógica y estructura
    ├── ComponentName.scss          # 🎨 Estilos encapsulados
    ├── ComponentName.types.ts      # 🔎 Tipado fuerte de props
    └── ComponentName.stories.tsx   # 📚 Documentación en Storybook
index.tsx Punto de entrada del componente.  Centraliza y exporta el componentes (y sus tipos si es necesario) para facilitar imports limpios y organizados desde el exterior. (si no exportas tu componente aqui no lo vas a poder utilizar en ningun proyecto).
  • 🔢 constants/ — Enums, mensajes fijos y configuraciones que no cambian.

  • hooks/ — Custom hooks globales para lógica compartida.

  • 🛣️ providers/ — componentes que envuelven tus stories para darles contexto global, igual que en tu aplicación real.

  • 🎨 styles/ — Configuración global, mixins y variables (Solo archivos SCSS).

  • 🏷️ types/ — Interfaces y tipos de TypeScript compartidos.

  • 🛠️ utils/ — Funciones de ayuda, formateadores y helpers generales.

🚀 Guía de Estilo y Flujo de Trabajo (Git Workflow)

Para garantizar la calidad y consistencia del código, este proyecto implementa un sistema automatizado de validación utilizando Husky, Lint-Staged, ESLint 9 (Flat Config) y TypeScript.


📝 1. Convención de Mensajes de Commit

Contamos con un hook de validación que bloquea mensajes genéricos. Los commits deben seguir el estándar de Conventional Commits.

Formato: tipo: descripción en minúsculas

| Tipo | Descripción | | :--- | :--- | | feat | Nueva funcionalidad | | fix | Corrección de un error (bug) | | docs | Cambios solo en la documentación | | style | Formato (puntos y comas, espacios, etc.) sin cambiar lógica | | refactor | Cambio en el código que ni arregla un bug ni añade una función | | perf | Mejora de rendimiento | | test | Añadir o corregir pruebas | | build | Cambios en el sistema de compilación o dependencias | | chore | Tareas de mantenimiento o herramientas | | revert | Revertir un commit previo |

Ejemplo correcto: feat: implementar el filtrado de desarrolladores
Ejemplo incorrecto: ajustes realizados (El commit será rechazado automáticamente).


🏗 2. Orden de Importaciones (ESLint)

El linter organiza automáticamente los bloques de importación para maximizar la legibilidad. El orden jerárquico es de lo más "externo" a lo más "interno", con una línea en blanco entre grupos de distinta categoría.

Jerarquía de orden:

  1. Librerías Externas: react siempre debe ser la primera línea.
  2. Lógica Interna: Hooks personalizados, estados globales (Zustand/Redux), servicios o API.
  3. Componentes y Assets: Componentes locales e imágenes.
  4. Tipos: Importaciones de interfaces o tipos de TypeScript (import type).
  5. Estilos: Archivos .scss o .css siempre al final.

Ejemplo visual:

// 1. Externos
import React, { useState } from 'react';
import { useQuery } from '@tanstack/react-query';

// 2. Internos (Lógica y Estado)
import { useAuth } from '@/hooks/useAuth';
import { api } from '@/services/api';

// 3. Componentes y Assets
import { Button } from '@/components/Button';
import logo from '@/assets/logo.svg';

// 4. Tipos
import type { UserProfile } from '@/types/user';

// 5. Estilos
import './ProfileCard.scss';

3. 🚀 Estrategia de Versionado (SemVer)

Para desplegar en npm, es obligatorio seguir el sistema de versiones $X.Y.Z$. Cada número tiene un propósito específico dependiendo del impacto del cambio:

Plaintext

v MAJOR . MINOR . PATCH
  ^       ^       ^
  1   .   2   .   3

🛠️ ¿Cuándo aumentar cada número?

  1. MAJOR (1.x.x) — Cambios Mayores * Cuándo: Cuando hay cambios que rompen la compatibilidad (Breaking Changes).

    • Ejemplos: Cambiar configuraciones base, modificar la API de componentes existentes, o actualizar versiones de React/Tailwind que obliguen a refactorizar el código.
  2. MINOR (x.2.x) — Nuevas Funcionalidades * Cuándo: Despliegue de nuevos componentes o funcionalidades adicionales por sprint.

    • Regla: Siempre que no rompan nada de lo que ya existe (retrocompatible).
  3. PATCH (x.x.3) — Correcciones (Fixes) * Cuándo: Ajustes menores, bug fixes o mejoras visuales en componentes que ya funcionan.

    • Regla: No cambia la forma en que se usan los componentes, solo mejora su funcionamiento interno.

⚠️ Nota sobre Despliegue y Ciclo de Vida

No es obligatorio incrementar la versión de la librería para actualizaciones exclusivas de GitHub Pages (documentación o Storybook). El versionado semántico se reservará estrictamente para el registro en npm.

[!IMPORTANT] Consenso de Versionado: Antes de realizar un release en la librería, se debe validar en equipo la versión resultante. El objetivo es evitar el versionado arbitrario y prevenir conflictos de dependencias en los proyectos que consumen el Design System.

URL GIT-PAGES

https://somosnudos.github.io/bord-design-system/?path=/story/bordactionbutton--active