Sobre el proyecto

Carbon Components Svelte es una biblioteca de componentes para el framework Svelte que implementa el Carbon Design System, el sistema de diseño de código abierto mantenido por IBM. Según el README, proporciona más de 90 componentes que van desde entradas hasta tablas de datos, cinco temas integrados (dos claros y tres oscuros), una API de TypeScript totalmente tipada que cubre props, eventos y slots, y aspira a la accesibilidad WCAG 2.1 AA con soporte para teclado y lectores de pantalla. El estilo se puede cargar como CSS precompilado o importando SCSS directamente desde el paquete principal carbon-components, lo cual el README describe como la ruta más eficiente ya que se pueden descartar los estilos de componentes no utilizados. Se distribuyen cinco hojas de estilo de temas: white (claro predeterminado), g10 (claro), g80, g90 y g100 (oscuros), además de un paquete all.css que incluye los cinco mediante propiedades personalizadas de CSS. El temizado dinámico se realiza importando all.css y estableciendo un atributo de tema en el elemento html, ya sea en el marcado o desde un script; también hay un componente Theme disponible para el cambio reactivo. Los componentes se importan desde el paquete dentro de un bloque de script de Svelte, y el README dirige a los lectores al sitio de documentación del proyecto para obtener detalles sobre la API de los componentes. El ecosistema más amplio incluye Carbon Icons Svelte con más de 2,700 iconos en cuatro tamaños (16, 20, 24 y 32 píxeles) seleccionables mediante una prop de tamaño; Carbon Pictograms Svelte con más de 1,500 pictogramas ilustrativos destinados a estados vacíos, procesos de incorporación, secciones hero y llamadas de atención de funciones, con un valor predeterminado de 64 píxeles; Carbon Charts Svelte con más de 25 gráficos impulsados por d3; y Carbon Preprocess Svelte, descrito como una dependencia de desarrollo opcional. Carbon Preprocess Svelte proporciona dos optimizaciones. optimizeImports es un preprocesador de Svelte que reescribe las importaciones barrel de los paquetes de componentes, iconos y pictogramas a sus rutas de archivo Svelte de origen, lo que según el README puede acelerar los tiempos de compilación de desarrollo y producción preservando el autocompletado del IDE. optimizeCss es un plugin de Vite y Rollup que elimina los estilos de Carbon no utilizados en el momento de la compilación; el README muestra un ejemplo donde una hoja de estilos compilada pasa de unos 606 kB a unos 53 kB, y señala que se requiere la versión 0.85.0 o posterior de la biblioteca. Se proporcionan fragmentos de configuración para Vite, SvelteKit, Rollup y Webpack, y se incluyen proyectos de ejemplo para cada uno en el repositorio. Las definiciones de TypeScript se generan con sveld. La documentación también se publica en texto plano compatible con LLM: un índice de componentes llms.txt donde cada entrada enlaza a un documento Markdown por componente, y un archivo llms-full.txt que contiene la documentación completa, con un documento Markdown disponible para cualquier componente añadiendo .md a su URL. El proyecto tiene licencia Apache 2.0 e incluye pautas de contribución y un registro de cambios. El README revela que el paquete utiliza la telemetría de IBM para recopilar datos métricos desidentificados y anonimizados en entornos de CI, que instalarlo como dependencia constituye la aceptación de dicha recopilación, y remite a la documentación de IBM para darse de baja y conocer los detalles de los datos recopilados.