diff --git a/README.md b/README.md index 46bc76c..f6945f7 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,8 @@ Ejemplo: `http://192.168.x.x:8081` ├── package.json # Scripts y dependencias ├── src/ │ ├── _data/ -│ │ └── site.json # Datos globales del sitio (nombre, navegación, footer, año) +│ │ ├── site.json # Datos globales del sitio (nombre, navegación, footer, año) +│ │ └── pricing.json # Precios y monedas por plan (parametrizados) │ ├── _includes/ │ │ ├── layouts/ │ │ │ └── base.njk # Layout principal (head, Tailwind CDN, dark mode, header/footer) @@ -59,5 +60,6 @@ Ejemplo: `http://192.168.x.x:8081` ## Funcionalidades - **Tema claro/oscuro**: toggle funcional que persiste en `localStorage` y respeta `prefers-color-scheme`. +- **Precios por región**: si el usuario navega desde Argentina (detectado por zona horaria) ve precios en pesos (ARS); en el resto de LATAM se muestran en dólares (USD). Los valores y monedas se parametrizan en `src/_data/pricing.json`: para cambiar un precio solo se edita ese archivo y se corre `npm run build`. - **Responsive**: mobile-first, adaptado a móviles, tablets y escritorio. - **Templates Nunjucks**: header, footer y datos reutilizables vía `_data/site.json`. \ No newline at end of file diff --git a/eleventy.config.js b/eleventy.config.js index 6d75f17..d1629bf 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -5,6 +5,11 @@ export default function (eleventyConfig) { host: "0.0.0.0", }); + eleventyConfig.addFilter("formatPrice", (value, currency) => { + const locale = currency === "ars" ? "es-AR" : "en-US"; + return new Intl.NumberFormat(locale).format(value); + }); + return { dir: { input: "src", diff --git a/src/_data/pricing.json b/src/_data/pricing.json new file mode 100644 index 0000000..2b32f96 --- /dev/null +++ b/src/_data/pricing.json @@ -0,0 +1,37 @@ +{ + "currencies": { + "ars": { "label": "ARS", "symbol": "$" }, + "usd": { "label": "USD", "symbol": "US$" } + }, + "plans": [ + { + "name": "Starter", + "tagline": "Para grupos pequeños que están comenzando.", + "price": { "ars": 0, "usd": 0 }, + "cta": "Empezar gratis", + "ctaStyle": "outline", + "features": [ + "Hasta 50 miembros", + "1 evento al mes", + "Analíticas básicas", + "Soporte por correo" + ] + }, + { + "name": "Pro", + "tagline": "Para comunidades en crecimiento con funciones avanzadas.", + "price": { "ars": 30000, "usd": 25 }, + "cta": "Empezar", + "ctaStyle": "solid", + "highlight": true, + "badge": "Más conveniente", + "features": [ + "Miembros ilimitados", + "Eventos ilimitados", + "Automatizaciones ilimitadas", + "Analíticas avanzadas", + "Soporte prioritario" + ] + } + ] +} \ No newline at end of file diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk index 678cab5..3b28582 100644 --- a/src/_includes/layouts/base.njk +++ b/src/_includes/layouts/base.njk @@ -10,6 +10,18 @@ document.documentElement.classList.add('dark'); } +