feat(gioser): sol detrás, título central, drawers MD + pluma agnóstico

Visual de la chacana retrabajado contra chakana.png de referencia:
- Sol detrás (gauss + corona, masked al interior de la chacana — sólo
  asoma por la superficie de la cruz, no se cuela afuera).
- Doble outline dorado (línea principal + paralela offset 0.020), color
  CHACANA_LINE pasa de cyan helado a dorado-ámbar del logo.
- Interior con niebla violeta-noche (u_dark_color) y rayos radiales
  sutiles desde el centro, modulados por sin(t * 0.3).
- Aro doble exterior: ring fino interior + ring grueso con 4 grupos de
  3 puntos cardinales (calculados angularmente, no rayos largos).
- WORLD_SCALE 1.45→1.05, MAX_TILT 35°→28° (más sólido, menos caricaturesco).

Título "GioSer" centrado dentro de la superficie de la chacana, sin
subtítulo. Se inclina junto con la chacana vía CSS perspective +
rotateX/rotateY desde u-tilt-x/y inyectadas cada frame por WASM.

Botones (4 tips):
- Reposicionados a `arm_extent * 1.32` (entre punta y aro grueso).
- Bigger: min-width 168px, glyph 54px, label Cinzel 0.95rem.
- Doble anillo en hover (::before con border + glow).
- Cuando un drawer se abre, fade-out de tips + canvas + brand.

Drawers MD (uno por elemento):
- `<aside class="drawer drawer-{element}">` con transform-origin desde
  CSS vars (--origin-x/y) seteadas por WASM al click — crece desde la
  posición exacta del botón hasta fullscreen en 700ms con cubic-bezier.
- Ambience por elemento: AIRE (radial drift), FUEGO (flicker keyframe),
  AGUA (tide vertical), TIERRA (warm earth gradient).
- Cerrado con botón X, Escape o data-close-drawer.
- Carga MD desde ./md/{element}.md via spawn_local + Reader::open_url.

Pluma (visor MD agnóstico, dos crates nuevos):
- `crates/modules/pluma/pluma-md` — wrapper sobre pulldown-cmark 0.12.
  API: to_html(), to_themed_html(md, theme) con sanitización del theme,
  events() para AST stream. GFM completo. No deps web. 5 tests.
- `crates/modules/pluma/pluma-reader-web` — toma HtmlElement, expone
  open_url async (fetch via wasm-bindgen-futures), render_md sync,
  show_loading/show_error. NO inyecta CSS — el host estiliza
  `.pluma-doc[data-pluma-theme="..."]` con sus colores.

CSS pluma-doc completo: h1/h2/h3, code/pre con border-left accent,
blockquote, tables, lists, hr gradient. Loader spinner + error state.

Placeholders en md/{aire,fuego,tierra,agua}.md con texto seed.

Workspace verde + 18 tests (6 geom + 4 palette + 3 physics + 5 pluma-md).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-13 23:38:37 +00:00
parent 3dbdfb357b
commit fce630c8d0
17 changed files with 1132 additions and 243 deletions
+25
View File
@@ -0,0 +1,25 @@
# Agua
> *Lo que fluye. Lo que une dentro y afuera.*
El **Agua** es el dominio de la **espiritualidad aplicada**: las
prácticas, lecturas y tradiciones que sostienen la atención y dan
sentido al hacer. No es decoración mística: es la práctica concreta
de mantenerse permeable, vivo, conectado.
## Espiritualidad aplicada
Aplicada significa que no se queda en libros: pasa por la práctica
diaria — la lectura, la meditación, la ceremonia, la conversación
honda. El agua moja todos los otros ejes.
## Lo que vive acá
- Notas de lectura sobre filosofía, mística, sabiduría andina.
- Diario de prácticas (meditación, ceremonias, retiros).
- Conversaciones con maestros y comunidades.
## Próximamente
*Acá se va a ir armando una bitácora de lecturas y prácticas. Por
ahora el placeholder verifica el render bajo el tema **agua**.*
+26
View File
@@ -0,0 +1,26 @@
# Aire
> *Lo que respira el sistema. Lo que sube.*
El **Aire** es el dominio del **software público y la IA**. Es la capa
intangible que transporta pensamiento — los bits que vuelan entre
máquinas, las inferencias que destilan sentido del ruido, las APIs
que conversan sin verse.
## Aspiración
El Aire **aspira**: empuja hacia arriba. Es el movimiento de subir el
nivel de abstracción, de hacer que una cosa difícil parezca obvia, de
regalarle al usuario una herramienta que no le pesa.
## Lo que vive acá
- Herramientas open source que **GioSer** publica y mantiene.
- Modelos de IA que asisten al ciclo de creación.
- Documentación, ensayos, manifiestos.
## Próximamente
*Esta sección se va a llenar con los proyectos concretos del eje aire.*
Por ahora, este placeholder vive en `md/aire.md` y se renderiza vía
`pluma-md` con tema *aire*.
+25
View File
@@ -0,0 +1,25 @@
# Fuego
> *Lo que enciende. Lo que transforma.*
El **Fuego** es el dominio de la **inspiración**. Es la chispa que
convierte una idea en gesto, una frase en ritual, un problema en
prototipo. Sin fuego, los otros tres elementos se enfrían y se quedan
contemplándose.
## Inspiración
El fuego no se planea, se **atiende**. Llega — y la respuesta es no
dejarlo pasar. Acá viven los ensayos, los videos, los manifiestos y
los experimentos que nacieron porque algo prendió.
## Lo que vive acá
- Charlas, ensayos cortos, posts crudos.
- Bocetos visuales, exploraciones tipográficas.
- Documentos de manifiesto sobre cómo trabajar y para qué.
## Próximamente
*Voy a ir enlazando archivos `.md` específicos acá. Por ahora este
texto sirve para verificar el render bajo el tema **fuego**.*
+26
View File
@@ -0,0 +1,26 @@
# Tierra
> *El cuerpo. La materia. Lo que sostiene.*
La **Tierra** es el dominio del **cuerpo**. Es lo que se toca, lo que
huele, lo que se siembra. El eje terrestre de GioSer recuerda que
todo proyecto —por muy abstracto que parezca— pasa por un cuerpo que
respira, come, descansa y se conmueve.
## Cuerpo
El cuerpo no es una metáfora: es donde aterriza el aire, donde el
agua se vuelve vida, donde el fuego deja huella. Cuidarlo es parte
del trabajo.
## Lo que vive acá
- Prácticas, rutinas, recetas.
- Materialidad: objetos, lugares, oficios.
- Salud y reposo como infraestructura.
## Próximamente
*Esta sección va a recibir notas, fotos y enlaces a oficios y
prácticas concretas. Por ahora el placeholder verifica el tema
**tierra**.*