Tres responsabilidades visuales
El shell pertenece a la composición global o a presentación de la feature Issel. Las vistas de negocio componen su contenido y reutilizan el shell. En una app que ya tenga uno, integra el módulo sin reconstruir toda la raíz.
Defaults
El shell utiliza
Curves.easeOutCubic. En ancho amplio, abrir menú reduce el área del contenido; cerrarlo recupera el espacio. Por debajo del breakpoint el propio scaffold superpone el menú con barrera modal. La app puede elegir utilizar Scaffold y Drawer en móvil, como el ejemplo siguiente. Un breakpoint describe ancho disponible, no la plataforma del dispositivo.
Shell reutilizable completo
Este shell sustituye secciones en su propia área de contenido; la selección y los breadcrumbs describen la sección realmente mostrada. Recibe los widgets del producto y no introduce rutas en dominio. Para una app con router, deriva la selección de ese router y cambia el destino mediante su API.DocumentationShell(app: app, overview: overviewWidget, components: galleryWidget) en la raíz. Los argumentos overviewWidget y galleryWidget son contenido real del consumidor. El shell retiene la instancia de cada sección con IndexedStack; en una app grande decide si necesitas mantener esas vistas montadas o liberar sus controladores al salir.
Altura de caption y contenido completo
IsselDesktopScaffold reserva la altura de caption una vez en el modo normal. No sumes esa medida en cada vista. caption.height y config.captionHeight deben corresponder para evitar cortes.
edgeToEdge: true coloca el contenido en toda la ventana y superpone la barra. En ese modo el código actual omite el sidebar y su barrera. Protege los controles interactivos del contenido del área que cubre la caption. Puede servir para login/splash; la app decide qué secciones requieren sesión.
Breadcrumbs y acciones
IsselBreadcrumbItem admite etiqueta, onTap, onCopy y tooltip de copia. La copia es un callback de la app, no una operación automática del breadcrumb. Limita el ancho y deja que las etiquetas hagan ellipsis. En escritorio, un botón Volver debe respetar la pila real, y abrir el menú debe conservar su acción independiente.
IsselCaptionButton mide 28 × 28 por defecto, con icono de 20, radio 6, tooltip y comportamiento de teclado/foco de IconButton. Aumenta su tamaño en una interfaz táctil; puedes usar 44 en móvil. Los destinos deshabilitados se indican con IsselNavigationItem.enabled: false.
Ventanas nativas
El paquete ofrece dos puntos de integración:windowAdapter es un adaptador de presentación del producto. El kit no importa window_manager ni snap_layouts, no inicializa plugins y no minimiza, maximiza o cierra ventanas por sí mismo. Si se necesitan esas acciones, consulta la API de los plugins instalados y ejecútalos sólo en plataformas compatibles.
La caption deja acciones y controles fuera del área arrastrable; el título queda dentro cuando usas dragAreaBuilder. Si el título contiene breadcrumbs interactivos, comprueba que arrastre y pulsación no compitan. Conserva listeners del estado de maximización, inicialización fuera de build y liberación al cerrar. Una ejecución web verifica composición, pero no prueba estos controles nativos.
Casos que conviene comprobar
Comprueba menú abierto/cerrado, móvil con Drawer y modoedgeToEdge, además de títulos largos, cambio de tema, destinos deshabilitados y acción de copiar. Si el producto usa router, comprueba que el pop de un detalle actualice selección y breadcrumbs; el cambio de sección local de este ejemplo no ofrece sincronización automática de rutas.