astra
alpha-0.1-background
alpha-0.1-dir-prefs
alpha-0.1-sec-dom
menubar-v4-safe
active-uix
morfo-runtime
morfo-driven-soma
semantuix
glm-5
main
sium-v1.0
${ noResults }
3 Commits (e4fa616e5d7f90ea73c1a074d1ebc914d20c284d)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
ae7b4f8c3b |
demo(blocks): el block se ve en una página de verdad, no dentro de una caja con scroll
«¿Dónde has visto que el sticky esté por debajo del scroll?» — en ningún sitio, y la respuesta correcta era esa. Un `position: sticky` metido en un div de 460px con scroll propio no es el que va a vivir nadie: se pega al borde de una caja, no al del viewport. Estaba enseñando un comportamiento que no existe fuera de mi página. Ahora la demo presenta el block A SANGRE en la propia página: el header se pega al viewport de verdad, con el scroll de verdad. Verificado: al bajar queda en top 0, con `data-stuck`, visible y por encima de todo (hit-test), y con `offset: 48` se queda exactamente a 48. Los anchos de dispositivo (375 / 768) sí necesitan un documento propio, así que ahí —y solo ahí— se monta un iframe de la ruta `preview`. Es opt-in a propósito: en dev, dos documentos sin empaquetar a la vez agotan las conexiones del navegador (`ERR_INSUFFICIENT_RESOURCES` se llevaba por delante las DOS páginas; lo medí). Con `loading="lazy"` y bajo demanda, no molesta. Para no duplicar contenido, el mini-sitio vive en `SiteHeaderSite.svelte` y lo consumen las dos superficies: la demo lo renderiza inline con sus props y la ruta `preview` lo sirve como documento leyendo la URL. «Abrir ↗» lleva ahí. De paso: la topbar de la sección deja de ser pegajosa. Una página cuya estrella es un block que se pega no puede tener su propio cromo peleándole el borde superior — el header del block se metía debajo y el `offset` que elegías se leía como otro número. El raíl sí sigue pegado, que no compite. Verificado: `/blocks`, `/blocks/site-header` y la preview con `?dir=rtl&mode=dark` responden 200 sin desbordes ni errores de consola; `blocks:check` verde; `svelte-check` sin errores propios. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
3 months ago |
|
|
d574982ab9 |
demo(blocks): el escenario va a ras — `offset: 0` volvía a ser 0
Tenías razón: con `offset` a 0 la barra quedaba a 21px del borde del marco, y
16 y 48 sumaban sobre esa deuda (37 y 69). El offset del block estaba bien;
el marco era el que mentía.
Causa: usaba un `Card` como escenario y le pasaba `padding={0}`, pero el
recipe del Card pinta con su propia variable (`--card-padding-*`), que la capa
Box no alcanza — así que se quedaban sus 20px de relleno más 1px de borde.
Un header pegado se pegaba al borde INTERIOR de ese relleno.
El escenario pasa a ser un marco desnudo (`[data-blocks-stage]` en
`blocks.css`): borde, radio, altura y su propio scroll, sin relleno. Un
escenario tiene que ir a ras o miente sobre lo que enseña.
Verificado en navegador: offset 0 → 0px del borde, 16 → 16, 48 → 48, y al
volver a 0 → 0. Cero errores de consola.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
3 months ago |
|
|
33328df7ae |
demo(blocks): la sección tiene cromo de verdad — tema, idioma, dirección, densidad y catálogo
La crítica era exacta: no se podía cambiar a oscuro, ni de idioma, ni había forma de moverse entre blocks. La sección arrancaba UIX y renderizaba la página desnuda, con un comentario que decía que el modo seguía al sistema operativo «para verificar oscuro emulando prefers-color-scheme» — cómodo para mí, inútil para quien mira la página. Ahora hay shell: topbar pegajosa con los ejes que de verdad mueven el framework (idioma ES/EN/FR/DE y dirección como INTENTS de prefs, así que llegan a langs, formatos y al AGENTS.md debug.log routes tsconfig.json CLAUDE.md docs scripts tsconfig.tsbuildinfo README.md node_modules src vite.config.ts STUMBLES.md package-lock.json static web audit package.json svelte.config.js worker.js build plans tmp workers del documento por el camino del sistema; densidad proyectada en :root para que la hereden también los overlays porteados; y el conmutador de tema, que alimenta el del ActiveEidos) y un raíl con el catálogo entero de los 27 blocks planificados, marcando el actual y atenuando los que aún no existen. Todo persiste en localStorage, así que una recarga te deja donde estabas. El catálogo pasa a : raíl y galería leen la MISMA fuente, y un block que aterriza no hay que recordarlo en dos sitios. Las tres regiones las coloca — cromo de app-land, el papel que hace en las docs de componentes; la regla de «sin CSS» del contrato B es para el tier (), no para el sitio que lo enseña. Dentro de esas regiones todo son componentes del canon. Verificado en navegador: el botón conmuta a oscuro de verdad (fondo oklch(0.1776 0 0)), el idioma llega a , el raíl lista los 27 y desaparece por debajo de 64rem sin desbordes, cero errores de consola. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
3 months ago |