Modularización de GKACHELE SaaS
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
</main>
|
||||
|
||||
<footer class="gk-footer" style="background: var(--text); color: var(--white); text-align: center; padding: 40px 20px; margin-top: 60px;">
|
||||
<div style="max-width: 1200px; margin: 0 auto;">
|
||||
{% if menus.footer %}
|
||||
<nav style="margin-bottom: 20px;">
|
||||
<ul style="display: flex; justify-content: center; list-style: none; gap: 20px; flex-wrap: wrap;">
|
||||
{% for menu_item in menus.footer %}
|
||||
<li><a href="{{ menu_item.url }}" style="color: var(--white); text-decoration: none;">{{ menu_item.title }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
{% endif %}
|
||||
<p style="margin: 0; opacity: 0.8;">
|
||||
© 2025 GKACHELE™. Todos los derechos reservados.<br>
|
||||
Desarrollado desde noviembre 2025 por GKACHELE<br>
|
||||
Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,112 @@
|
||||
<!--
|
||||
GKACHELE™ Template System
|
||||
© 2025 GKACHELE™. Todos los derechos reservados.
|
||||
Desarrollado desde noviembre 2025 por GKACHELE
|
||||
Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización
|
||||
-->
|
||||
<!DOCTYPE html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{% if site_name %}{{ site_name }}{% else %}GKACHELE Site{% endif %}</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family={{ typography.font_family|replace(' ', '+') }}:wght@300;400;500;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
:root {
|
||||
--primary: {{ colors.primary or '#d32f2f' }};
|
||||
--secondary: {{ colors.secondary or '#ff6f00' }};
|
||||
--text: {{ colors.text or '#2c2c2c' }};
|
||||
--bg-light: #f9f9f9;
|
||||
--white: #ffffff;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: '{{ typography.font_family or 'Roboto' }}', sans-serif;
|
||||
color: var(--text);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
/* Header / Navigation */
|
||||
.gk-header {
|
||||
background: var(--white);
|
||||
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.gk-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20px 40px;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.gk-logo {
|
||||
font-size: 28px;
|
||||
color: var(--primary);
|
||||
font-weight: 700;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.gk-menu {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
.gk-menu a {
|
||||
text-decoration: none;
|
||||
color: var(--text);
|
||||
font-weight: 500;
|
||||
transition: color 0.3s;
|
||||
}
|
||||
|
||||
.gk-menu a:hover {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
.gk-menu .current-menu-item a {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
/* Main Content */
|
||||
.gk-main {
|
||||
margin-top: 80px;
|
||||
min-height: calc(100vh - 160px);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.gk-menu {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header class="gk-header">
|
||||
<nav class="gk-nav">
|
||||
<a href="/" class="gk-logo">{{ site_name or 'GKACHELE Site' }}</a>
|
||||
{% if menus %}
|
||||
<ul class="gk-menu">
|
||||
{% for menu_item in menus.header %}
|
||||
<li class="{% if menu_item.current %}current-menu-item{% endif %}">
|
||||
<a href="{{ menu_item.url }}">{{ menu_item.title }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</nav>
|
||||
</header>
|
||||
<main class="gk-main">
|
||||
@@ -0,0 +1,33 @@
|
||||
<!--
|
||||
GKACHELE™ Sidebar Widget Area
|
||||
© 2025 GKACHELE™. Todos los derechos reservados.
|
||||
-->
|
||||
<aside class="gk-sidebar" style="width: 300px; padding: 20px; background: var(--bg-light);">
|
||||
{% if widgets %}
|
||||
{% for widget in widgets %}
|
||||
<div class="gk-widget" style="margin-bottom: 30px; padding: 20px; background: var(--white); border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.05);">
|
||||
{% if widget.title %}
|
||||
<h3 style="color: var(--primary); margin-bottom: 15px; font-size: 18px;">{{ widget.title }}</h3>
|
||||
{% endif %}
|
||||
<div class="gk-widget-content">
|
||||
{{ widget.content|safe }}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if menus.sidebar %}
|
||||
<div class="gk-widget gk-menu-widget" style="margin-bottom: 30px; padding: 20px; background: var(--white); border-radius: 5px;">
|
||||
<h3 style="color: var(--primary); margin-bottom: 15px; font-size: 18px;">Menú</h3>
|
||||
<ul style="list-style: none; padding: 0;">
|
||||
{% for menu_item in menus.sidebar %}
|
||||
<li style="margin-bottom: 10px;">
|
||||
<a href="{{ menu_item.url }}" style="color: var(--text); text-decoration: none; transition: color 0.3s;">
|
||||
{{ menu_item.title }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
</aside>
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "Gimnasio Claro",
|
||||
"rubro": "gimnasios",
|
||||
"description": "Tema claro y moderno para gimnasios",
|
||||
"sections": [
|
||||
"hero",
|
||||
"planes_fitness",
|
||||
"horarios",
|
||||
"entrenadores",
|
||||
"instalaciones",
|
||||
"contacto"
|
||||
],
|
||||
"colors": {
|
||||
"primary": "#ff4d4d",
|
||||
"secondary": "#1a1a1a",
|
||||
"accent": "#ff6b6b"
|
||||
},
|
||||
"typography": {
|
||||
"font_family": "Roboto",
|
||||
"headings": "Roboto"
|
||||
},
|
||||
"features": {
|
||||
"planes_fitness": true,
|
||||
"horarios": true,
|
||||
"entrenadores": true,
|
||||
"instalaciones": true,
|
||||
"precios": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "Restaurante Moderno",
|
||||
"rubro": "restaurante",
|
||||
"description": "Tema elegante para restaurantes",
|
||||
"sections": [
|
||||
"hero",
|
||||
"menu",
|
||||
"horarios",
|
||||
"reservas",
|
||||
"especialidad_culinaria",
|
||||
"contacto"
|
||||
],
|
||||
"colors": {
|
||||
"primary": "#d32f2f",
|
||||
"secondary": "#ff6f00",
|
||||
"accent": "#ff8f00"
|
||||
},
|
||||
"typography": {
|
||||
"font_family": "Roboto",
|
||||
"headings": "Playfair Display"
|
||||
},
|
||||
"features": {
|
||||
"menu_url": true,
|
||||
"horarios": true,
|
||||
"reservas": true,
|
||||
"capacidad": true,
|
||||
"especialidad_culinaria": true
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user