尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Banco de pruebas de narrativa de datos (scrollytelling) para el Informe de Desarrollo Humano de Panamá · SvelteKit + Svelte 5 + d3
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Banco de pruebas de narrativa de datos (scrollytelling) para el Informe Nacional de Desarrollo Humano de Panamá (PNUD). Replica la arquitectura documentada en evaluacion-tecnica-sizing-chaos.md —el motor de The Pudding— y aplica las seis mejoras que esa evaluación exige. Prototipo técnico. No es una publicación oficial del PNUD. Para publicar bajo otra subcarpeta: BASE_PATH=/mi/ruta vite build.查看完整 README ↗
Banco de pruebas de narrativa de datos (scrollytelling) para el Informe Nacional de Desarrollo Humano de Panamá (PNUD). Replica la arquitectura documentada en evaluacion-tecnica-sizing-chaos.md —el motor de The Pudding— y aplica las seis mejoras que esa evaluación exige.
Prototipo técnico. No es una publicación oficial del PNUD.
npm install
npm run dev # http://localhost:5173
npm run build # sitio estático en build/ (raíz del dominio)
npm run build:wamp # igual, pero servido desde http://localhost/pudding/build/
npm run preview
Para publicar bajo otra subcarpeta: BASE_PATH=/mi/ruta vite build.
| Ruta | Qué explora |
|---|---|
/ — Historia | 7 capítulos de scrollytelling, cada uno con una técnica distinta |
/explorador/ | Tablero con gráficos enlazados, filtros, estado en la URL, tabla ordenable y descarga CSV |
/componentes/ | Catálogo vivo del sistema de diseño (tokens, tipografía, piezas, motor Scrolly, movimiento) |
| # | Componente | Técnica |
|---|---|---|
| 00 | Intro.svelte | Titular collage (Sellos), 100 unidades ilustradas por capas, enjambre con forceSimulation precalculado (3 layouts), bandas de categoría, tooltips detrás de los steps |
| — | TitlePage.svelte | Corte editorial a pantalla completa con entrada por inView |
| 01 | Serie.svelte | Serie temporal con revelado por clipPath + Tween, crosshair, etiquetas directas |
| 02 | Mapa.svelte | Coroplético real (d3-geo, 13 unidades) que se transforma en ranking de burbujas; cambio de métrica y de rampa |
| 03 | Dimensiones.svelte | Gráfico de rangos en HTML; filas reordenadas con animate:flip |
| 04 | Poblacion.svelte | Canvas: ~4.000 partículas entre 3 layouts (filotaxis → racimos geográficos → columnas) |
| 05 | Pobreza.svelte | Waffle de 100 personas con contador; al final del scroll el gráfico pasa a modo interactivo |
| 06 | Informes.svelte | Scroll vertical → desplazamiento horizontal continuo; se degrada a cuadrícula con prefers-reduced-motion |
<dialog> nativo (foco atrapado, Esc)./#mapa).← → / j k): la historia no depende solo del scroll.src/
├─ routes/ +layout (prerender, View Transitions), /, /explorador, /componentes
├─ components/
│ ├─ Index.svelte ORQUESTADOR: el orden de la historia
│ ├─ helpers/Scrolly.svelte motor (IntersectionObserver ×101 umbrales; "to-enter"/"exit"; progress)
│ ├─ story/ un componente por capítulo + Person, Sellos, Leet, Text
│ ├─ charts/ ChoroMap, BarRank, Slope, Scatter (hover enlazado con bind:hoverId)
│ └─ ui/ DataTable, StatTiles, ChapterRail, StepPager, ThemeToggle
├─ data/ copy.json (guion + banderas por step), *.csv, meta.json, panama-geo.json, facts.js
├─ styles/ variables.css (tokens), app.css (base + esqueleto scrolly)
├─ utils/ media.svelte.js, random.js (semilla), md.js, format.js
└─ actions/ inView.js
tasks/ build-data.js, build-geo.js
data-src/research.json investigación de datos con fuentes y nivel de confianza
copy.json lleva su texto y sus banderas (layout, highlight, metric, view, sort…). Los componentes hacen s = STEPS[value] y derivan todo de s: no hay índices mágicos.{{idhNacional}}, {{brecha}}… que facts.js calcula desde los CSV en build. Cambiar los datos actualiza la prosa.<use>; textura = gradientes CSS; titular = recortes tipográficos CSS. Fuentes woff2 autoalojadas (@fontsource).utils/random.js) → el HTML prerenderizado y el cliente coinciden (sin hydration_mismatch).1ms por defecto, activados solo con prefers-reduced-motion: no-preference; en JS, dur(ms) apaga Tween/flip/canvas.role="img" + aria-label que cambia con el step, región aria-live, y tabla de datos alternativa (DataTable hidden).media.svelte.js).node tasks/build-data.js regenera src/data/*.csv y meta.json desde data-src/research.json.
| Dato | Fuente |
|---|---|
| IDH Panamá, ALC y mundo 1990–2023; IDH-D | PNUD, Informe sobre Desarrollo Humano 2025 (series compuestas) |
| IDH por provincia y comarca 2019 y 2022 | PNUD Panamá, INDH 2024, Cuaderno I, Gráfica 4 |
| Logro por dimensión 2014 | PNUD Panamá, Atlas de Desarrollo Humano Local 2015 (Panamá Oeste incluida en Panamá) |
| Pobreza multidimensional 2017–2022 | MEF / PNUD, IPM de Panamá, edición 2024 |
| Población | INEC, Censo 2023 |
| Límites | geoBoundaries (gbOpen PAN ADM1) · OpenStreetMap, ODbL |
Advertencias: el IDH subnacional usa la metodología nacional del PNUD Panamá (promedio 0,791) y no es comparable con el IDH global (0,839); aquí se le aplican los umbrales internacionales solo con fines ilustrativos. Los valores subnacionales se leyeron de las etiquetas de un gráfico en PDF: deben reemplazarse por la base oficial antes de publicar.
copy.json) como en el original.copy.json ya lo permite: un JSON por idioma).og:image para redes.