| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <!DOCTYPE html>
- <html lang="es">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>{% block title %}Renako{% endblock %}</title>
- <script src="https://cdn.tailwindcss.com"></script>
- <script>
- tailwind.config = {
- theme: {
- extend: {
- colors: {
- primary: '#6366F1',
- secondary: '#4F46E5'
- }
- }
- }
- }
- </script>
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
- </head>
- <body class="bg-gray-50 min-h-screen flex flex-col">
- <!-- Header Component -->
- {% include 'components/header.html' %}
- <!-- Main Content -->
- <main class="flex-1 flex items-center justify-center">
- <div class="max-w-4xl w-full px-4 py-8">
- {% block content %}{% endblock %}
- </div>
- </main>
- <!-- Toast Notifications -->
- <div id="toast-container" class="fixed top-4 right-4 z-50 space-y-2"></div>
- <script>
- // Función para mostrar notificaciones toast
- function showToast(message, type = 'success') {
- const toastContainer = document.getElementById('toast-container');
- const toast = document.createElement('div');
-
- const bgColor = type === 'success' ? 'bg-green-500' : 'bg-red-500';
- const icon = type === 'success' ? 'fa-check-circle' : 'fa-exclamation-circle';
-
- toast.className = `${bgColor} text-white px-6 py-3 rounded-lg shadow-lg flex items-center space-x-2 transform transition-all duration-300 translate-x-full opacity-0`;
- toast.innerHTML = `
- <i class="fas ${icon}"></i>
- <span>${message}</span>
- <button onclick="this.parentElement.remove()" class="ml-4 text-white hover:text-gray-200">
- <i class="fas fa-times"></i>
- </button>
- `;
-
- toastContainer.appendChild(toast);
-
- // Animar entrada
- setTimeout(() => {
- toast.classList.remove('translate-x-full', 'opacity-0');
- }, 100);
-
- // Auto-remover después de 5 segundos
- setTimeout(() => {
- toast.classList.add('translate-x-full', 'opacity-0');
- setTimeout(() => toast.remove(), 300);
- }, 5000);
- }
- // Función para copiar al portapapeles
- function copyToClipboard(text) {
- navigator.clipboard.writeText(text).then(() => {
- showToast('¡Enlace copiado al portapapeles!');
- }).catch(() => {
- showToast('Error al copiar enlace', 'error');
- });
- }
- </script>
- </body>
- </html>
|