| <!DOCTYPE html> |
| <html lang="es"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>BBVA Bancomer - Generador de Recibos</title> |
| <link rel="icon" type="image/x-icon" href="/static/favicon.ico"> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> |
| <script src="https://unpkg.com/feather-icons"></script> |
| <script src="https://cdn.jsdelivr.net/npm/animejs/lib/anime.min.js"></script> |
| <style> |
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); |
| |
| body { |
| font-family: 'Inter', sans-serif; |
| } |
| |
| .bbva-gradient { |
| background: linear-gradient(135deg, #004481 0%, #0072CE 100%); |
| } |
| |
| .receipt-shadow { |
| box-shadow: 0 20px 60px rgba(0, 66, 129, 0.15); |
| } |
| |
| .security-pattern { |
| background-image: radial-gradient(#0072CE 1px, transparent 1px); |
| background-size: 20px 20px; |
| } |
| |
| .input-glow:focus { |
| box-shadow: 0 0 0 3px rgba(0, 114, 206, 0.1); |
| } |
| </style> |
| </head> |
| <body class="bg-gray-50 min-h-screen"> |
| |
| <header class="bbva-gradient text-white py-6"> |
| <div class="container mx-auto px-4"> |
| <div class="flex items-center justify-between"> |
| <div class="flex items-center space-x-3"> |
| <div class="w-12 h-12 bg-white/20 rounded-full flex items-center justify-center"> |
| <i data-feather="file-text" class="w-6 h-6"></i> |
| </div> |
| <div> |
| <h1 class="text-2xl font-bold">BBVA Bancomer</h1> |
| <p class="text-blue-100 text-sm">Generador de Recibos Digitales</p> |
| </div> |
| </div> |
| <div class="hidden md:flex items-center space-x-2 text-sm"> |
| <div class="flex items-center space-x-1"> |
| <i data-feather="shield" class="w-4 h-4"></i> |
| <span>Seguro</span> |
| </div> |
| <div class="w-1 h-1 bg-white/40 rounded-full"></div> |
| <div class="flex items-center space-x-1"> |
| <i data-feather="check-circle" class="w-4 h-4"></i> |
| <span>Confiable</span> |
| </div> |
| <div class="w-1 h-1 bg-white/40 rounded-full"></div> |
| <div class="flex items-center space-x-1"> |
| <i data-feather="award" class="w-4 h-4"></i> |
| <span>Oficial</span> |
| </div> |
| </div> |
| </div> |
| </div> |
| </header> |
|
|
| |
| <main class="container mx-auto px-4 py-8"> |
| <div class="grid lg:grid-cols-2 gap-8"> |
| |
| <div class="space-y-8"> |
| <div class="bg-white rounded-2xl p-6 receipt-shadow"> |
| <h2 class="text-xl font-semibold text-gray-800 mb-6">Ingresar Datos del Recibo</h2> |
| |
| <div class="grid md:grid-cols-2 gap-4"> |
| <div> |
| <label class="block text-sm font-medium text-gray-700 mb-2">Tipo de Operaci贸n</label> |
| <select class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 input-glow"> |
| <option>Transferencia</option> |
| <option>Dep贸sito</option> |
| <option>Retiro</option> |
| <option>Pago de Servicio</option> |
| </select> |
| </div> |
| |
| <div> |
| <label class="block text-sm font-medium text-gray-700 mb-2">Fecha</label> |
| <input type="date" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 input-glow"> |
| </div> |
| |
| <div> |
| <label class="block text-sm font-medium text-gray-700 mb-2">Referencia</label> |
| <input type="text" placeholder="Ingrese referencia" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 input-glow"> |
| </div> |
| |
| <div> |
| <label class="block text-sm font-medium text-gray-700 mb-2">Monto</label> |
| <div class="relative"> |
| <span class="absolute left-4 top-3 text-gray-500">$</span> |
| <input type="number" placeholder="0.00" class="w-full px-12 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 input-glow"> |
| </div> |
| </div> |
| |
| <div class="md:col-span-2"> |
| <label class="block text-sm font-medium text-gray-700 mb-2">Concepto</label> |
| <input type="text" placeholder="Descripci贸n del concepto" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 input-glow"> |
| </div> |
| |
| <div> |
| <label class="block text-sm font-medium text-gray-700 mb-2">Cuenta Origen</label> |
| <input type="text" placeholder="****----" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 input-glow"> |
| </div> |
| |
| <div> |
| <label class="block text-sm font-medium text-gray-700 mb-2">Cuenta Destino</label> |
| <input type="text" placeholder="****----" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 input-glow"> |
| </div> |
| |
| <div class="md:col-span-2"> |
| <label class="block text-sm font-medium text-gray-700 mb-2">Beneficiario</label> |
| <input type="text" placeholder="Nombre del beneficiario" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 input-glow"> |
| </div> |
| </div> |
| |
| <div class="flex flex-col sm:flex-row gap-3 mt-6"> |
| <button class="flex-1 bg-blue-600 hover:bg-blue-700 text-white py-3 px-6 rounded-lg font-medium transition duration-200 flex items-center justify-center space-x-2"> |
| <i data-feather="download" class="w-4 h-4"></i> |
| <span>Descargar PDF</span> |
| </button> |
| <button class="flex-1 bg-green-600 hover:bg-green-700 text-white py-3 px-6 rounded-lg font-medium transition duration-200 flex items-center justify-center space-x-2"> |
| <i data-feather="camera" class="w-4 h-4"></i> |
| <span>Capturar Pantalla</span> |
| </button> |
| </div> |
| </div> |
|
|
| |
| <div class="bg-white rounded-2xl p-6 receipt-shadow"> |
| <h2 class="text-xl font-semibold text-gray-800 mb-6">Caracter铆sticas del Recibo</h2> |
| |
| <div class="grid md:grid-cols-3 gap-6"> |
| <div class="text-center"> |
| <div class="w-16 h-16 bg-blue-100 rounded-full flex items-center justify-center mx-auto mb-4"> |
| <i data-feather="shield" class="w-8 h-8 text-blue-600"></i> |
| </div> |
| <h3 class="font-semibold text-gray-800 mb-2">Dise帽o Oficial</h3> |
| <p class="text-gray-600 text-sm">Replica exacta del formato BBVA Bancomer con todos los elementos de seguridad</p> |
| </div> |
| |
| <div class="text-center"> |
| <div class="w-16 h-16 bg-green-100 rounded-full flex items-center justify-center mx-auto mb-4"> |
| <i data-feather="check-circle" class="w-8 h-8 text-green-600"></i> |
| </div> |
| <h3 class="font-semibold text-gray-800 mb-2">Informaci贸n Completa</h3> |
| <p class="text-gray-600 text-sm">Incluye todos los campos necesarios para un comprobante v谩lido</p> |
| </div> |
| |
| <div class="text-center"> |
| <div class="w-16 h-16 bg-purple-100 rounded-full flex items-center justify-center mx-auto mb-4"> |
| <i data-feather="layers" class="w-8 h-8 text-purple-600"></i> |
| </div> |
| <h3 class="font-semibold text-gray-800 mb-2">Formatos M煤ltiples</h3> |
| <p class="text-gray-600 text-sm">Genera en PDF o captura de pantalla seg煤n tus necesidades</p> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| |
| <div class="sticky top-8"> |
| <div class="bg-white rounded-2xl p-8 receipt-shadow security-pattern"> |
| <div class="relative"> |
| |
| <div class="bbva-gradient text-white rounded-t-2xl p-6 mb-6"> |
| <div class="flex items-center justify-between"> |
| <div class="flex items-center space-x-3"> |
| <div class="w-10 h-10 bg-white/20 rounded-full flex items-center justify-center"> |
| <i data-feather="dollar-sign" class="w-5 h-5"></i> |
| </div> |
| <div> |
| <h2 class="text-xl font-bold">BBVA BANCOMER</h2> |
| <p class="text-blue-100 text-sm">Comprobante Digital</p> |
| </div> |
| </div> |
| <div class="text-blue-100"> |
| <i data-feather="lock" class="w-5 h-5"></i> |
| </div> |
| </div> |
| </div> |
|
|
| |
| <div class="space-y-4"> |
| <div class="flex justify-between border-b border-gray-200 pb-2"> |
| <span class="text-gray-600">Tipo de Operaci贸n:</span> |
| <span class="font-medium" id="preview-operation">Transferencia</span> |
| </div> |
| |
| <div class="flex justify-between border-b border-gray-200 pb-2"> |
| <span class="text-gray-600">Fecha:</span> |
| <span class="font-medium" id="preview-date">--/--/----</span> |
| </div> |
| |
| <div class="flex justify-between border-b border-gray-200 pb-2"> |
| <span class="text-gray-600">Referencia:</span> |
| <span class="font-medium" id="preview-reference">------------</span> |
| </div> |
| |
| <div class="flex justify-between border-b border-gray-200 pb-2"> |
| <span class="text-gray-600">Monto:</span> |
| <span class="font-semibold text-green-600 text-lg" id="preview-amount">$0.00</span> |
| </div> |
| |
| <div class="flex justify-between border-b border-gray-200 pb-2"> |
| <span class="text-gray-600">Concepto:</span> |
| <span class="font-medium" id="preview-concept">-</span> |
| </div> |
| |
| <div class="flex justify-between border-b border-gray-200 pb-2"> |
| <span class="text-gray-600">Cuenta Origen:</span> |
| <span class="font-medium" id="preview-origin">****----</span> |
| </div> |
| |
| <div class="flex justify-between border-b border-gray-200 pb-2"> |
| <span class="text-gray-600">Cuenta Destino:</span> |
| <span class="font-medium" id="preview-destination">****----</span> |
| </div> |
| |
| <div class="flex justify-between border-b border-gray-200 pb-2"> |
| <span class="text-gray-600">Beneficiario:</span> |
| <span class="font-medium" id="preview-beneficiary">-</span> |
| </div> |
| </div> |
|
|
| |
| <div class="mt-8 pt-6 border-t border-gray-200"> |
| <p class="text-center text-gray-500 text-sm mb-4"> |
| Este comprobante es v谩lido como constancia de la operaci贸n realizada |
| </p> |
| <div class="text-center"> |
| <div class="w-24 h-8 bg-blue-600 mx-auto rounded flex items-center justify-center mb-2"> |
| <span class="text-white text-xs font-bold">BBVA M脡XICO</div> |
| <p class="text-gray-400 text-xs">Todos los derechos reservados</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </main> |
|
|
| |
| <footer class="bg-gray-800 text-white py-8 mt-12"> |
| <div class="container mx-auto px-4"> |
| <div class="text-center"> |
| <p class="text-gray-400 text-sm"> |
| 漏 2024 BBVA Bancomer M茅xico. Esta es una herramienta de demostraci贸n. |
| </p> |
| <p class="text-gray-500 text-xs mt-2"> |
| Para uso educativo 煤nicamente |
| </p> |
| </div> |
| </div> |
| </footer> |
|
|
| <script> |
| |
| feather.replace(); |
| |
| |
| document.addEventListener('DOMContentLoaded', function() { |
| const inputs = document.querySelectorAll('input, select'); |
| |
| inputs.forEach(input => { |
| input.addEventListener('input', updatePreview); |
| input.addEventListener('change', updatePreview); |
| }); |
| |
| function updatePreview() { |
| const operation = document.querySelector('select').value; |
| const date = document.querySelector('input[type="date"]').value; |
| const reference = document.querySelector('input[placeholder="Ingrese referencia"]').value; |
| const amount = document.querySelector('input[type="number"]').value; |
| const concept = document.querySelector('input[placeholder="Descripci贸n del concepto"]').value; |
| const origin = document.querySelector('input[placeholder="****----"]').value; |
| const destination = document.querySelectorAll('input[placeholder="****----"]')[1].value; |
| const beneficiary = document.querySelector('input[placeholder="Nombre del beneficiario"]').value; |
| |
| document.getElementById('preview-operation').textContent = operation || 'Transferencia'; |
| |
| if (date) { |
| const formattedDate = new Date(date).toLocaleDateString('es-MX'); |
| document.getElementById('preview-date').textContent = formattedDate; |
| } else { |
| document.getElementById('preview-date').textContent = '--/--/----'; |
| } |
| |
| document.getElementById('preview-reference').textContent = reference || '------------'; |
| document.getElementById('preview-amount').textContent = amount ? `$${parseFloat(amount).toFixed(2)}` : '$0.00'; |
| document.getElementById('preview-concept').textContent = concept || '-'; |
| document.getElementById('preview-origin').textContent = origin || '****----'; |
| document.getElementById('preview-destination').textContent = destination || '****----'; |
| document.getElementById('preview-beneficiary').textContent = beneficiary || '-'; |
| } |
| |
| |
| const buttons = document.querySelectorAll('button'); |
| buttons.forEach(button => { |
| button.addEventListener('mouseenter', function() { |
| anime({ |
| targets: this, |
| scale: 1.05, |
| duration: 200 |
| }); |
| }); |
| |
| button.addEventListener('mouseleave', function() { |
| anime({ |
| targets: this, |
| scale: 1, |
| duration: 200 |
| }); |
| }); |
| }); |
| }); |
| </script> |
| </body> |
| </html> |
|
|