- Astro 63.5%
- TypeScript 27.6%
- Shell 4.6%
- CSS 2.5%
- JavaScript 1.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
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>
|
||
| .agents/skills | ||
| .claude/skills | ||
| .commandcode/skills | ||
| .hermes/skills | ||
| .vscode | ||
| docs | ||
| public | ||
| skills | ||
| src | ||
| .gitignore | ||
| astro.config.mjs | ||
| CLAUDE.md | ||
| CONTEXT.md | ||
| package-lock.json | ||
| package.json | ||
| pdf_content.txt | ||
| Protección Civil_ Seguridad Civil Venezuela.pdf | ||
| README.md | ||
| skills-lock.json | ||
| tsconfig.json | ||
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.tsandsrc/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_PATHis 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.tsand rendered bysrc/components/BrochurePage.astro. - Extended topic content lives in
src/data/emergencyTopics.tsandsrc/data/schoolEmergencyTopics.ts, rendered bysrc/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 buildis the main project health check. - Engineering-workflow config for AI agents lives in
docs/agents/and the domain glossary inCONTEXT.md.