Repository navigation
feat(nav,motion): NavRail, TabBar, MoreSheet, WorkspaceSwitcher, PluginCard, StatusPill, SchemaForm + motion en 10 primitivos - #36
Merged
Conversation
Nuevos: NavRail/NavRailItem/NavRailSection (expandOnHover), NavRailOverflow, TabBar/TabBarItem, MoreSheet, WorkspaceSwitcher/WorkspaceMark, NewDot/NewChip, PluginCard/PluginSheet, StatusPill, SchemaForm. Motion con SPRINGS del paquete (sin curvas propias) y reduced-motion en: Sheet (velo 28 %, gentle), DropdownMenu (nace del trigger, highlight que viaja), Tooltip (vecinos sin delay), Sidebar (activeIndicator opt-in), Button (loading + presión), Switch (reduced + disabled), Collapsible (alto), Toast (pila sin saltos), Badge (count con pop), Skeleton (shimmer). Quita las clases animate-in/zoom-*/slide-* que no hacían nada (no hay tw-animate). APIs públicas intactas; props nuevas opcionales. tsc: sin errores nuevos (los 4 de hero-shader/chat-sim ya están en main). vitest: 945/948; los 3 rojos (ChatInput send button, chat-sim tsc y capture lifecycle) fallan igual en main. Co-Authored-By: Claude <noreply@anthropic.com>
…o motion value Eran dos springs en dos propiedades (clip-path y x) más una sombra que prendía en el frame 0: al empezar y al terminar el hover se desfasaban un frame y se veía una barra del panel. Ahora comparten cada frame y la sombra crece con el despliegue. Co-Authored-By: Claude <noreply@anthropic.com>
Al abrir entraba con el spring smooth + delay y a mitad del despliegue seguía casi transparente; al cerrar se apagaba antes de plegar. Ahora llega a opacidad 1 en ~170 ms y al cerrar queda visible, recortado por la caja, apagándose sólo en el último tramo. Medido en tiempo real (probe de 35 ms). Co-Authored-By: Claude <noreply@anthropic.com>
…uete Las 19 lanes corrieron en paralelo y ninguna pudo usar a las otras. Ahora: - NavRail y TabBar usan NewDot y Badge count; layoutId del riel con useId. - useEdgeIndicator extraído (Tabs, TabBar y el segmented de SchemaForm). - NavRailOverflow y WorkspaceSwitcher usan DropdownMenu del paquete (se borran el popover y el hover hechos a mano); NavListRow compartido por «+N» y MoreSheet (NavRailOverflowRow/MoreSheetRow quedan como alias). - PluginCard usa StatusPill; SchemaForm usa Collapsible, Input y EdgeLayers. - WorkspaceMark cae a iniciales si el logo falla (Avatar). - El CSS inyectado en runtime (dropdown, tooltip, toaster, skeleton) pasa a index.css; tokens --cf-nav-active-bg/fg, --cf-nav-hover-bg, --cf-shadow-float, --cf-stagger-row, --cf-skeleton-*, --cf-dd-exit; .cf-btn[data-pressed] a .96; fuera animate-in/zoom/slide muertos de dialog y select. tsc: sólo los 4 errores de main. vitest 945/948 (los 3 rojos, iguales en main). Co-Authored-By: Claude <noreply@anthropic.com>
…o siga DropdownMenu, Tooltip, Sheet, Toast y los popovers se montan en <body>, fuera del wrapper con data-theme, y en Storybook salían siempre oscuros aunque el toolbar dijera Light (el menú del WorkspaceSwitcher, por ejemplo). En una app real el tema ya vive en <html>; ahora Storybook hace lo mismo. Co-Authored-By: Claude <noreply@anthropic.com>
Basalt, su único usuario, lo eliminó en su PR #197; en el workspace sólo queda mencionado en comentarios. Se van el componente, su test, su story, los exports (WorkspaceShell*, WorkspaceShell*Props) y su línea en COMPONENTS.md. Pedido de André. tsc: sólo los 4 errores de main; vitest 937/940 (los mismos 3 rojos de main; 8 tests menos = los de WorkspaceShell). BREAKING CHANGE: se quitan los exports WorkspaceShell, WorkspaceShellRail, WorkspaceShellIdentity, WorkspaceShellNav, WorkspaceShellNavItem, WorkspaceShellRailFooter, WorkspaceShellWell y sus tipos. Co-Authored-By: Claude <noreply@anthropic.com>
…umirlo desde Fovente - src/styles/motion.css (importado por index.css, export ./motion.css): tokens de springs y coreografía, --cf-nav-*/--cf-shadow-float por tema, pop-in/out, superficies de tooltip y dropdown, toaster, skeleton sweep, presión de Button/Switch/Tabs. Un consumidor con su propio puente de tokens (Fovente) importa sólo el motion. - "use client" en 18 archivos: en un layout server de Next daban 500 (createContext). - NavRailOverflow: Array.from al iterar el Map (fallaba el tsc de Fovente, target menor). - Workspace.color: las iniciales de cada negocio con SU color, no el del negocio activo. tsc: sólo los 4 de main. vitest 937/940 (los 3 rojos de main). Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sale del prototipo de navegación de Fovente (
inbox-airamadesign/plugin-nav,frontend/src/app/dev/plugin-nav/handoff.md).Nuevos (9): NavRail/NavRailItem/NavRailSection (con
expandOnHoverypinned) · NavRailOverflow · TabBar/TabBarItem · MoreSheet · WorkspaceSwitcher/WorkspaceMark · NewDot/NewChip · PluginCard/PluginSheet · StatusPill · SchemaForm.Motion en existentes (10): Sheet · DropdownMenu · Tooltip · Sidebar (
activeIndicatoropt-in) · Button (loading) · Switch · Collapsible (CollapsibleChevron) · Toast · Badge (count) · Skeleton (animation).src/lib/spring.ts/--cf-spring-*; reduced-motion en cada componente (SO +MotionConfig).animate-in/zoom-*/slide-*: sin tw-animate instalado, no hacían nada (el Sheet, por ejemplo, no tenía animación).Skeletonpasa de pulse a shimmer (animation="pulse"lo devuelve).Verificación:
tscsin errores nuevos (los 4 de hero-shader/chat-sim ya están en main).vitest945/948: los 3 rojos (ChatInput «send button», chat-sim tsc y capture lifecycle) fallan igual enmain. Cada componente tiene story y un filmstrip revisado (~/.herdr/design-runs/ui-nav-motion/fs/); preview en vivo: http://100.84.249.22:12393/.Seguimiento (no en este PR): subir a
index.csslos bloques CSS que hoy se inyectan en runtime (TOASTER_CSS, keyframes de tooltip y dropdown); tokens propuestos--cf-nav-active-bg/fg,--cf-skeleton-*,--cf-dd-exit;.cf-btn[data-pressed]a scale .96; perilla del Switch apagado casi negra en claro; PluginCard → usar StatusPill; drag-to-dismiss en MoreSheet.🤖 Generated with Claude Code