You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/src/uix/eidos/components/carousel
dev 189932d939
feat(eidos): IconButton primitive + Lote 0 iconOnly->IconButton cascade
4 months ago
..
README.md fix(carousel): :active press feedback was replacing centering transform 5 months ago
carousel-context.ts fix(carousel): chevron direction follows orientation 5 months ago
carousel-indicator-group.svelte feat(eidos): port carousel from soma 5 months ago
carousel-indicator.svelte feat(eidos): port carousel from soma 5 months ago
carousel-item-group.svelte feat(eidos): port carousel from soma 5 months ago
carousel-item.svelte feat(eidos): port carousel from soma 5 months ago
carousel-next-trigger.svelte feat(eidos): IconButton primitive + Lote 0 iconOnly->IconButton cascade 4 months ago
carousel-prev-trigger.svelte feat(eidos): IconButton primitive + Lote 0 iconOnly->IconButton cascade 4 months ago
carousel-viewport.svelte feat(eidos): port carousel from soma 5 months ago
carousel.css feat(eidos): IconButton primitive + Lote 0 iconOnly->IconButton cascade 4 months ago
carousel.svelte perf(eidos): code-split 35 component recipes (Phase 3, batch 1) 4 months ago
index.ts feat(eidos): port carousel from soma 5 months ago
types.ts feat(eidos): IconButton primitive + Lote 0 iconOnly->IconButton cascade 4 months ago

README.md

Eidos Carousel

Carousel es el wrapper visual de Eidos sobre el carrusel headless de Soma. Soma posee indice, drag, teclado, autoplay, ARIA y disabled state; Eidos anade chrome, tamano, color, botones de flecha con Button y receta CSS.

Baseline Air

En la rama morfo-runtime no existe un src/uix/air/components/carousel visual separado. La baseline local anterior vive en src/uix/soma/components/carousel: root region, viewport, item-group, items, prev/next triggers e indicadores.

Eidos conserva esa anatomia, pero la presenta como componente compound <Carousel> con hijos explicitos (Viewport, ItemGroup, Item, PrevTrigger, NextTrigger, IndicatorGroup, Indicator) y anade props visuales (size, variant, color, block, verticalBlockSize).

Comparativa

Capacidad APG / WAI-ARIA Ark UI shadcn-svelte / Embla UIX
Root con nombre accesible Recomienda region + aria-roledescription Root + partes Root visual + Embla API Soma/Morfo
Prev/Next como botones nativos Recomendado PrevTrigger / NextTrigger Previous / Next Soma triggers + Eidos Button
Indicadores Botones/tabs de seleccion IndicatorGroup / Indicator Dots via composicion Soma indicators
Drag/swipe No prescribe motor Incluido Embla Soma Gesture.base()
Autoplay + pausa Debe ser controlable autoplay, pause cases Plugin Embla Soma timer + stop/pause props
Visual styling Fuera de scope Headless/data attrs Tailwind recipe Eidos recipe tokens

Fuentes:

Decisiones

  • Los triggers de Eidos renderizan Button iconOnly por defecto. El icono es decorativo (aria-hidden) y no debe ser target de puntero; el click pertenece al boton nativo que trae el handler de Soma.
  • PrevTrigger, NextTrigger e Indicator llaman a la API publica scrollPrev, scrollNext y scrollTo, para que stopOnInteraction trate todos los clicks como interaccion real de usuario.
  • Indicator hereda el archetype global indicator, que por defecto es decorativo y usa pointer-events: none. Carousel lo sobreescribe a pointer-events: auto porque sus indicadores son botones/tab stops reales.
  • slidesPerView, slidesToScroll, align y gap viven en Soma porque alteran geometria y bounds. Eidos solo consume el resultado visual mediante data-* y estilos.
  • verticalBlockSize es Eidos-only: el eje vertical necesita una altura acotada para que el viewport pueda recortar, pero no cambia el contrato ARIA.

Gaps

Gap Disposicion Detalle
Pause/play trigger publico dentro del componente diferir La API imperativa ya expone play, pause y reset; una parte visual requiere Morfo/Soma.
Labels traducidos para slide/indicator generados por indice implementar en Soma El README de Soma ya documenta que parte del texto se arma en JS.
Tests browser-level permanentes implementar El fallo de click sobre SVG se verifico manualmente con Playwright; conviene convertirlo en test visual si el harness lo permite.
Motion attrs por direccion diferir Seria un extra visual para animaciones internas de slide.

Powered by TurnKey Linux.