41Componentes
6Categorías
2Frameworks
0Dependencias UI
Design system
Un design system propio en React y Vue
Tokens compartidos y una sola API pública, escrita en el idioma de cada framework.
Tokens. Custom properties con light-dark(), declaradas una vez para React y Vue
React. Hooks y TypeScript, ninguna prop con valor por defecto, cada decisión queda a la vista
Vue 3. Composition API, las mismas props y los mismos eventos que en React
:root {
color-scheme: dark;
--color-accent: light-dark(#7c3aed, #2dd4bf);
}
.switch.md {
--switch-width: var(--size-40);
--switch-height: 22px;
}
.switch_box.active {
background: var(--color-accent);
border-color: var(--color-accent);
}import { useState } from "react";
import Switch from "@/components/library/react/Switch/Switch";
export default function Settings() {
const [notify, setNotify] = useState(true);
return (
<Switch
size={{ base: "sm", desktop: "md" }}
label="Email alerts"
checked={notify}
onChange={setNotify}
/>
);
}<script setup lang="ts">
import { ref } from "vue";
import Switch from "@/components/library/vue/Switch/Switch.vue";
const notify = ref(true);
</script>
<template>
<Switch
:size="{ base: 'sm', desktop: 'md' }"
label="Email alerts"
v-model="notify"
/>
</template>Filosofía
Construir o delegar depende del contexto
En un proyecto con prisa tiraría de Radix o Reka. Aquí los construyo yo para entender qué hacen por dentro.
Explora por categoría
Foundations
- ColorsPaleta de color adaptada al tema, con tokens de acento y superficie
- TypographyFamilias tipográficas, tamaños, pesos y alturas de línea
- SpacingEscala basada en 4px para layout y componentes
- BordersRadios de esquina y grosores de borde
- LayoutAnchos, breakpoints, alturas del chrome, márgenes y capas de la página
Forms
- InputCampo de texto con label flotante
- TextareaCampo de texto multilínea con label flotante
- TextFieldCampo de texto compacto sin label visible, nombrado por aria-label
- SelectDesplegable personalizado con navegación por teclado
- SearchBúsqueda con sugerencias que se filtran y resaltan al escribir
- SearchFieldBúsqueda sin sugerencias, para filtrar lo que ya está en pantalla
- CheckboxCasilla de verificación con estado indeterminado y enlace en el label
- RadioBotón de opción para grupos de selección única
- SwitchInterruptor de formulario para estados booleanos
Actions
- ButtonBotón de acción con variantes y tamaños
- ButtonLinkEnlace con estilo de botón
- ButtonEmailCopia el email al portapapeles con feedback
- ButtonScrollBotón flotante para volver arriba
- ToggleBotón de UI para estados booleanos, sin formulario detrás
- SegmentedSelector de opción única que se pliega en un desplegable si no cabe
- PickerSelector de opción única para barras de herramientas, sin etiqueta visible
Display
- BadgeIndicador de estado con variantes
- TagEtiqueta con logo y nombre, para tecnologías y herramientas
- CardStatTarjeta de estadística con número en degradado y contador animado
- ProgressBarIndicador de progreso lineal
- ProgressRingIndicador de progreso circular con contador animado
- IconCircleContenedor circular para iconos
- ScrollHintIndicador animado que invita a hacer scroll
- TimelineLínea de tiempo con el punto centrado en títulos de cualquier alto
- AccordionBloques que se abren y se cierran, solos o de uno en uno
- TableTabla de datos con orden, selección y dos modos de móvil
Navigation
- NavLinkEnlace de navegación con estado activo
- NavLinkMobileEnlace de navegación para móvil
- NavLinkSidebarEnlace del sidebar del playground con estado activo
- LinkSectionEnlace a una sección de la misma página, con scroll-spy nativo
- LinkCardTarjeta que enlaza a otra página, con título y descripción
- LinkIconEnlace de solo icono con zona táctil real de 24px
- BurgerBotón de menú hamburguesa
- LinkSocialEnlace tipo tarjeta a perfiles sociales externos
- BreadcrumbRuta de navegación jerárquica con separadores
- PaginationPaginador de siete huecos fijos que se compacta cuando no cabe
Este portfolio en 749 commits
341Construir
- Funcionalidad192
- UI121
- Responsive24
- Animación3
- Inicio1
209Mantener
- Refactor78
- Bugfix69
- Formato37
- Borrado20
- Reorganización5
106Cuidar
- Accesibilidad48
- Idiomas24
- Textos20
- Rendimiento10
- SEO4
93Infraestructura
- Docs66
- Tests9
- Config8
- Upgrades7
- Generados2
- Gitignore1