Ryukami-UI // Manual Técnico Maestro & Arquitectura

ARCHIVO TÉCNICO COMPLETO

Este documento preserva la especificación completa, arquitectura AppSec, catálogo de 35 componentes, comandos del CLI y servidor MCP de Ryukami-UI, respaldado en la bóveda personal de Obsidian.


1. Stack Tecnológico y Rendimiento Auditado

CapaTecnologíaDetalles Técnicos
FrameworkAstro 7.4.0Motor Vite 8 + Rolldown, HTML estático comprimido y 0 KiB de bundles JS externos.
EstilosTailwind CSS 4.3.3Configuración CSS-first (@import "tailwindcss";, @theme, @custom-variant dark).
TipadoTypeScript 7.0.2Interfaces estrictas (export interface Props) en todos los componentes y datos tipados en src/data/.
CLI & Registryryukami-ui v2.4.0Instalador CLI estilo shadcn/ui + Servidor MCP (stdio) + Registro estático JSON en /public/r/*.json (35 módulos).
AudioWeb Audio APISíntesis procedural en tiempo real de clics mecánicos y alertas sin archivos de audio externos.
AuditoríaLighthouse Verified96 Performance · 100 Accessibility (WCAG AA) · 100 Best Practices · 100 SEO.

2. Arquitectura e Ingeniería de Seguridad (AppSec)

┌─────────────────────────────────────────────────────────────────────────────┐
│  0xRYUKAMI_ENGINEERING // ARCHITECTURE & APPSEC BLUEPRINT                   │
├─────────────────────────────────────────────────────────────────────────────┤
│  [PERF]   Astro 7.4 + Tailwind CSS 4.3 + TS 7 (Build estático en ~1.1s)     │
│  [FONTS]  0 KiB Google Fonts (Fuentes WOFF2 auto-alojadas en /public/fonts) │
│  [HASH]   Integridad SHA-256 por módulo + CLI Anti-Path Traversal           │
│  [DOM]    Zero-innerHTML en entradas de usuario + Validación Regex CSS      │
│  [A11Y]   Navegación por teclado WAI-ARIA, <dialog closedby="any"> y WCAG   │
│  [TESTS]  Suite nativa node:test (13/13 PASS en <100ms, 0 dependencias)     │
│  [EDGE]   HSTS (31536000 + preload), COOP, X-Frame-Options DENY             │
└─────────────────────────────────────────────────────────────────────────────┘

2.1 Rendimiento y Cero Peticiones Externas

  • Fuentes 100% Auto-Alojadas: Se eliminaron todas las peticiones a servidores de terceros. Las fuentes (Press Start 2P, Tiny5, JetBrains Mono, VT323) se sirven localmente desde public/fonts/*.woff2 con reglas @font-face y preload en <head>.
  • Métricas Core Web Vitals: FCP 0.8s, LCP 1.1s, TBT 0ms, CLS 0.000.
  • Arquitectura Escalable de Datos: La lógica visual de los 35 componentes reside en src/components/, mientras que la documentación de propiedades (src/data/component-props.ts) y los fragmentos de código del catálogo (src/data/component-snippets.ts) están desacoplados en módulos TypeScript independientes.

2.2 Seguridad en la Cadena de Suministro (ryukami-ui)

  • Verificación Criptográfica SHA-256: Cada componente compilado en public/r/*.json y en registry.json incluye su hash sha256 calculado por scripts/build-registry.mjs. El CLI verifica la integridad (verifyFileIntegrity) antes de escribir cualquier archivo en disco y permite auditar cambios locales mediante ryukami-ui diff.
  • Prevención de Path Traversal (resolveSafeTargetPath): Normaliza separadores multiplataforma y valida que la ruta final resuelta permanezca estrictamente dentro del directorio del proyecto (resolvedPath.startsWith(resolvedTarget + path.sep)), bloqueando vectores como ../../.bashrc, ..\\..\\Windows\\win.ini o /etc/passwd.

2.3 Hardening en Cliente (DOM XSS y CSS Injection)

  • Consola 0xSCORCH_SHELL y Generador ASCII sin innerHTML: Toda entrada del usuario se procesa exclusivamente mediante document.createElement() y .textContent.
  • Theme Studio con Validación Regex: Los tokens CSS dinámicos se validan mediante expresiones regulares estrictas (COLOR_REGEX = /^#[0-9a-fA-F]{3,8}$/ y OFFSET_REGEX = /^-?\d+px$/) antes de invocar style.setProperty().

3. Instalador CLI y Servidor MCP (ryukami-ui v2.4.0)

El binario oficial se encuentra en bin/ryukami-ui.mjs y consume tanto el registro local (public/r/) como el CDN remoto en Cloudflare Pages (https://ryukami-ui.pages.dev/r).

3.1 Inicializar Proyecto y Tokens W3C

Inyecta src/styles/global.css con la configuración de Tailwind CSS v4, crea ryukami.json y opcionalmente exporta design-tokens.json compatible con Obsidian (--obsidian):

ryukami-ui init --obsidian --dir ./mi-proyecto-astro

3.2 Listar e Inspeccionar Componentes

# Listar los 35 módulos disponibles en el registro
ryukami-ui list
 
# Inspeccionar metadatos, dependencias y hash SHA-256 de un componente
ryukami-ui info data-table

3.3 Instalar Componentes y Auditar Integridad SHA-256

# Instalar componentes específicos (resuelve dependencias automáticamente, ej: data-table -> badge)
ryukami-ui add button card callout bento-grid data-table code-block drawer --dir ./mi-proyecto-astro
 
# Instalar los 35 componentes del catálogo
ryukami-ui add --all --dir ./mi-proyecto-astro
 
# Auditar integridad SHA-256 de los componentes instalados frente al registro oficial
ryukami-ui diff --dir ./mi-proyecto-astro

3.4 Servidor MCP para Agentes de IA (stdio JSON-RPC 2.0)

Inicia un servidor Model Context Protocol (MCP) sobre stdio que expone las herramientas list_components, get_component y get_design_tokens para agentes de IA:

ryukami-ui mcp

4. Reglas de Diseño (Scorch Design System v4.1)

  1. Cero Bordes Redondeados (0px Radius): Esquinas rectas en todos los elementos (border-radius: 0px) y bordes sólidos de 2px (border-2 border-black).
  2. Sombras Duras Abajo-Izquierda (0px Blur): Desplazamiento estándar -4px 4px 0px 0px var(--shadow-color) (shadow-brutal) y -2px 2px 0px 0px var(--shadow-color) (shadow-brutal-sm).
  3. Controles Geométricos de Ventana ([ - ][ □ ][ × ]): Cajas cuadradas de 20×20 px (w-5 h-5) con vectores CSS/SVG centrados y atributos aria-label.
  4. Física Mecánica Acelerada por GPU: Transiciones exclusivas en transform (75ms cubic-bezier(0.23, 1, 0.32, 1)) sin transition-all.
  5. Contraste Calibrado WCAG AA (≥ 4.5:1): Carmesí Scorch (#D62436, ratio 5.04:1 sobre #FFFFFF), Cian Eléctrico (#4DA3FF) y Oro (#F4D35E), con soporte nativo para Modo Paper (#F5F7FA) y Modo Hacker (#0B0F17).

5. Catálogo Completo (35 Módulos)

ID CLI (ryukami-ui add <id>)Archivo AstroCategoríaDescripción
buttonButton.astro01_CORE_UIBotón mecánico con 5 variantes, polimorfismo seguro y síntesis Web Audio.
badgeBadge.astro01_CORE_UIEtiquetas de estado y telemetría con sombra dura -2px 2px.
cardCard.astro01_CORE_UIVentana de consola TUI interactiva con controles [ - ][ □ ][ × ].
kbdKbd.astro01_CORE_UITeclas físicas para visualización de atajos ([Ctrl] + [K]).
progress-barProgressBar.astro01_CORE_UIBarra de progreso segmentada con lectura ASCII [████████░░░░].
avatarAvatar.astro01_CORE_UIIdentificador cuadrado de operador TUI con estado (ONLINE/BUSY/IDLE).
skeletonSkeleton.astro01_CORE_UIBloque de carga de búfer ASCII ([ ░░░ SYNC ░░░ ]) con role="status".
stat-cardStatCard.astro01_CORE_UITarjeta KPI de telemetría con delta porcentual y sparkline ASCII [▁▂▃▅▆▇█].
tooltipTooltip.astro01_CORE_UIEtiqueta emergente accesible por teclado y hover con sombra dura -2px 2px.
inputInput.astro02_FORM_CONTROLSCampo de entrada brutalista con prefijo de terminal ($, tcp://) y validación.
textareaTextarea.astro02_FORM_CONTROLSEditor multilínea UTF-8 con contador en vivo de líneas y bytes.
selectSelect.astro02_FORM_CONTROLSSelector desplegable brutalista con prefijo OPT // e indicador mecánico.
sliderSlider.astro02_FORM_CONTROLSControl deslizante de rango con barra ASCII `[====
radio-groupRadioGroup.astro02_FORM_CONTROLSSelector exclusivo de opciones con indicadores de terminal ( • ) y ( ).
checkboxCheckbox.astro02_FORM_CONTROLSCasilla de verificación cuadrada con marca geométrica X.
switchSwitch.astro02_FORM_CONTROLSInterruptor táctil deslizante (role="switch").
tabsTabs.astro03_LAYOUT_AND_MODALSPestañas multipanel TUI con navegación por flechas (← / →).
accordionAccordion.astro03_LAYOUT_AND_MODALSAcordeón exclusivo nativo sobre <details name="...">.
breadcrumbBreadcrumb.astro03_LAYOUT_AND_MODALSRuta de navegación estilo sistema de archivos Unix (~/ryukami/core/nodes).
paginationPagination.astro03_LAYOUT_AND_MODALSBarra de paginación mecánica TUI ([ ◄ PREV ] [ 01 ] [ 02 ] [ NEXT ► ]).
popoverPopover.astro03_LAYOUT_AND_MODALSGlobo flotante de telemetría con API nativa popover="auto" Top-Layer.
alertAlert.astro03_LAYOUT_AND_MODALSBloques de alerta de sistema (crimson, gold, cyan, emerald).
calloutCallout.astro03_LAYOUT_AND_MODALSCallout canónico compatible con Obsidian ([!dragon], [!scorch], [!terminal], [!tui], [!summary]).
modalModal.astro03_LAYOUT_AND_MODALSDiálogo modal nativo <dialog closedby="any"> con light-dismiss.
drawerDrawer.astro03_LAYOUT_AND_MODALSPanel lateral deslizante nativo <dialog closedby="any"> (left / right).
toast-containerToastContainer.astro03_LAYOUT_AND_MODALSMotor de notificaciones flotantes con síntesis acústica por severidad.
command-paletteCommandPalette.astro03_LAYOUT_AND_MODALSPaleta de comandos (Ctrl+K) con filtrado en tiempo real (deps: kbd).
bento-gridBentoGrid.astro03_LAYOUT_AND_MODALSSistema modular de grillas Neo-Brutalistas (1x, 2x, 3x) con cabeceras TUI.
data-tableDataTable.astro04_SCORCH_STUDIOTabla de datos interactiva con filtrado en vivo, ordenamiento y badges (deps: badge).
code-blockCodeBlock.astro04_SCORCH_STUDIOVisor de código TUI con numeración de líneas, resaltado diff (+/-) y copia en 1 clic.
audio-synthAudioSynth.astro04_SCORCH_STUDIOSintetizador interactivo de 4 pads acústicos Web Audio API.
terminal-emulatorTerminalEmulator.astro04_SCORCH_STUDIOConsola interactiva en vivo (0xSCORCH_SHELL) con comandos integrados.
component-previewComponentPreview.astro04_SCORCH_STUDIOContenedor de documentación `[ PREVIEW
theme-studioThemeStudio.astro04_SCORCH_STUDIOLaboratorio en vivo de variables CSS, sombras, trama dither y exportación.
ascii-generatorAsciiGenerator.astro04_SCORCH_STUDIOGenerador en tiempo real de banners en matriz ASCII 8-bit.

6. Mini-Juego Arcade 8-Bit (Easter Egg en /404)

ArcadeGame.astro (SCORCH DEFENDER // 0x404 ARCADE):

  • Motor canvas HTML5 a 60 FPS con resolución interna 640x360 y escalado responsivo 16:9.
  • Síntesis de sonido procedural Web Audio API (láser, daño, explosión, game over).
  • Persistencia de récords en localStorage.getItem('ryukami-404-arcade-highscore').
  • Controles híbridos: teclado (A/D/flechas para mover, ESPACIO para disparar, P para pausar) y mandos virtuales táctiles para móvil.

7. Licencia & Reconocimientos

  • Licencia: MIT License.
  • Autor: Ryukami Labs (Alecwce).
  • Lore & Estética: Scorch Dragon // Velgrynd Tribute Edition.