No description
  • Astro 63.5%
  • TypeScript 27.6%
  • Shell 4.6%
  • CSS 2.5%
  • JavaScript 1.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Gabriel Ramos 7fc8833072 docs: make mobile-first an explicit rule in the design guide
README.md:7 already claimed the project produces "mobile-first pages",
but docs/design_guide.md never stated the rule. Its only mention of
phones was the news-grid item, phrased desktop-first ("3 columnas en
escritorio, 1 columna en móvil"), which reads as adaptation rather than
architecture.

Add it as rule 1 of section 6 (layout), stating that the phone layout at
390px is designed and written first and desktop is the later widening:
base styles are the phone's and breakpoints only add, emergency content
comes first in the DOM, touch targets are at least 44x44px, and the
guide's compressed uppercase headlines are measured on the phone. Renumber
the existing layout rules, rephrase the news grid mobile-first, and add a
matching item 0 to the implementation checklist.

The guide stays in Spanish per CLAUDE.md rule 4 (product-facing docs).
Its pre-existing sections 7 and 9 tension is untouched here; that remains
tracked in #8.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 16:42:27 -04:00
.agents/skills Added AI skillset 2026-09-19 10:56:13 -04:00
.claude/skills Added AI skillset 2026-09-19 10:56:13 -04:00
.commandcode/skills Added AI skillset 2026-09-19 10:56:13 -04:00
.hermes/skills Added AI skillset 2026-09-19 10:56:13 -04:00
.vscode "Initial commit from Astro" 2026-03-30 13:43:21 -04:00
docs docs: make mobile-first an explicit rule in the design guide 2026-09-19 16:42:27 -04:00
public Replace agáchate, cúbrete, and sujétate images with versions from desktop 2026-06-02 19:15:03 -04:00
skills Added AI skillset 2026-09-19 10:56:13 -04:00
src Fix pop-up modals by inlining dialog script with event delegation 2026-09-04 11:47:50 -04:00
.gitignore "Initial commit from Astro" 2026-03-30 13:43:21 -04:00
astro.config.mjs config: ignore trailing slashes on URL routing 2026-06-02 18:12:41 -04:00
CLAUDE.md docs: apply round-4 review remediations 2026-09-19 16:10:31 -04:00
CONTEXT.md docs: apply round-2 review remediations 2026-09-19 13:50:25 -04:00
package-lock.json chore: plan homepage menu restructuring 2026-05-25 17:44:23 +00:00
package.json fix: add missing vercel analytics and speed-insights dependencies to package.json 2026-05-22 21:24:38 -04:00
pdf_content.txt Commit inicial. Propuestas sencillas 2026-03-30 13:58:17 -04:00
Protección Civil_ Seguridad Civil Venezuela.pdf Commit inicial. Propuestas sencillas 2026-03-30 13:58:17 -04:00
README.md docs: apply round-2 review remediations 2026-09-19 13:50:25 -04:00
skills-lock.json Added AI skillset 2026-09-19 10:56:13 -04:00
tsconfig.json Commit inicial. Propuestas sencillas 2026-03-30 13:58:17 -04:00

Folletos Digitales

Static Astro site that publishes digital self-protection brochures for civil protection topics in Venezuela. The home page is a central dashboard linking to two topic menus: /prevencion-escolar (school prevention) and /prevencion-y-gestion-de-riesgo (risk management). The general brochures are reached via /general, which is currently not linked from the home page.

Purpose

The project turns summarized emergency guidance into mobile-first pages that are easy to open, review, and compare by reading mode while preserving one consistent Protección Civil visual identity.

For the canonical domain vocabulary used across the code and docs — in particular the two parallel content models (Brochure vs EmergencyTopic) and the reading-mode vs style-variant distinction — see CONTEXT.md.

Content overview

The site has two content models (see CONTEXT.md):

  • Brochures (src/data/brochures.ts) — card-based guides. General topics: sismos, inundaciones, orden-publico, otros-riesgos. School planning brochures: brigadas-escolares, plan-escolar-pegir, evacuacion-simulacros, senales-seguridad.
  • Emergency topics (src/data/emergencyTopics.ts and src/data/schoolEmergencyTopics.ts) — extended topic content (phases, map nodes, infographic, visual steps). Ids: sismos, tsunamis, inundaciones, incendios, deslizamientos, prevencion-sustancias-quimicas.

Stack

Area Choice
Framework Astro 6
UI runtime Static Astro pages
Styling Tailwind CSS 4 via @tailwindcss/vite
Icons lucide-react
Language TypeScript-compatible Astro project
Node.js >=22.12.0

Although React support is configured, the current site is implemented with .astro pages and shared data/components only.

Design system

The site follows the PC-VENEZUELA style guide documented in docs/design_guide.md. The active implementation uses:

  • institutional orange/blue design tokens
  • uppercase headline hierarchy with Montserrat
  • hard shadows and straight geometry
  • alert ribbons, hazard stripes, and diagonal card treatment
  • dark and light reading variants within the same visual language

Routes

Two topic menus plus their dynamic subpages, the general brochures, and the school brochure matrix (reading mode × style variant). The single source of truth for the route inventory — patterns, counts, and data sources — is docs/routes.md.

Project structure

.
├── public/
│   ├── assets/                       # Logo and brochure illustrations
│   └── favicon.*
├── src/
│   ├── data/
│   │   ├── brochures.ts              # Card-based Brochure content (general + school planning)
│   │   ├── emergencyTopics.ts        # Extended EmergencyTopic content (risk management)
│   │   └── schoolEmergencyTopics.ts  # Extended EmergencyTopic content (school variant)
│   ├── components/
│   │   ├── BrochurePage.astro        # Renders a Brochure
│   │   ├── EmergencyTopicSection.astro  # Renders an EmergencyTopic
│   │   ├── EmergencyHeader.astro
│   │   ├── SismosInteractiveInfographic.astro
│   │   ├── HomeButton.astro
│   │   ├── ModeSwitch.astro          # dark/light reading mode
│   │   ├── StyleSwitch.astro         # default/rounded-glass/timeline-step
│   │   ├── SponsorsFooter.astro      # Required on every view
│   │   └── Welcome.astro
│   ├── layouts/
│   │   └── Layout.astro              # Shared HTML shell and font loading
│   ├── pages/
│   │   ├── index.astro               # Dashboard
│   │   ├── general.astro             # Single long-scroll page (hidden from menu)
│   │   ├── prevencion-escolar.astro  # School menu
│   │   ├── prevencion-escolar/[topic].astro
│   │   ├── prevencion-y-gestion-de-riesgo.astro  # Risk-management menu
│   │   ├── prevencion-y-gestion-de-riesgo/[topic].astro
│   │   ├── [slug]-[mode].astro       # General brochures (dark/light)
│   │   └── [slug]-[style]-[mode].astro  # School brochures (style × mode)
│   └── styles/
│       └── global.css                # Tailwind import, tokens, and guide utilities
├── docs/
│   ├── adr/                          # Architecture decision records (0001, 0002, …)
│   ├── agents/                       # Per-repo config for the engineering skills
│   ├── design_guide.md               # PC-VENEZUELA design system
│   └── routes.md                     # Full route inventory
├── CONTEXT.md                        # Domain glossary
├── pdf_content.txt                   # Source summary extracted from the reference PDF
└── astro.config.mjs

Local development

npm install
npm run dev

Other available commands:

npm run build
npm run preview

Base path configuration (deploying behind a reverse proxy)

To serve the site under a subpath or directory (for example /folleto behind an Apache/Nginx reverse proxy), set the base path at runtime with the BASE_PATH environment variable.

  • Local development under a subpath:

    BASE_PATH=/folleto npm run dev
    

    (The site is served at http://localhost:4321/folleto/.)

  • Production build under a subpath:

    BASE_PATH=/folleto npm run build
    

    (All assets, styles, and internal links are built prefixed with /folleto.)

  • Default behavior: if BASE_PATH is not set, it defaults to /, serving content from the domain root.

Content source

The brochure copy appears to be derived from the technical reference material summarized in pdf_content.txt, which in turn references Venezuelan civil protection and risk-management guidance such as FUNVISIS and INAMEH material.

This repository currently contains curated static copy. There is no CMS, API, database, or automated content ingestion pipeline.

Notes for maintainers

  • Shared page chrome lives in src/layouts/Layout.astro.
  • Shared institutional tokens and utilities live in src/styles/global.css.
  • Card-based brochure content is centralized in src/data/brochures.ts and rendered by src/components/BrochurePage.astro.
  • Extended topic content lives in src/data/emergencyTopics.ts and src/data/schoolEmergencyTopics.ts, rendered by src/components/EmergencyTopicSection.astro.
  • The <SponsorsFooter /> component must remain present on every view.
  • The repository does not define lint or test scripts at the moment; npm run build is the main project health check.
  • Engineering-workflow config for AI agents lives in docs/agents/ and the domain glossary in CONTEXT.md.