Crearemos un banner principal y un modal para notificar uso indebido. Cubriremos tanto la parte visual como la lógica interactiva para mostrar y ocultar el modal.
banner.php
y añadimos la estructura principal:
<div class="container mx-auto bg-primary text-white p-6 flex justify-between items-center">
<!-- Texto -->
<div>
<h2 class="text-xl font-semibold">Los principales empresas confían en Udemy</h2>
<p class="text-gray-200 mb-2">Da acceso a tu equipo a mejores cursos en Udemy</p>
</div>
<!-- Botón -->
<button class="bg-white text-primary font-semibold px-5 py-3 rounded-md hover:bg-gray-200">
Probar mi negocio
</button>
</div>
p-6
al contenedor para darle espacio interno.hover:bg-gray-200
bg-primary
Creamos un botón bajo el banner para notificar uso indebido:
<div class="mt-12 text-center">
<button class="text-sm text-primary underline hover:text-primary-dark">
Notificar uso indebido
</button>
</div>
Añadimos un margen superior mt-12
para separar el botón del banner.
Implementaremos un modal que aparece al hacer clic en el botón.
<div x-data="{ modal: false }">
<!-- Botón para abrir el modal -->
<button @click="modal = true" class="text-sm text-primary underline">Notificar uso indebido</button>
<!-- Modal -->
<div x-show="modal" class="fixed inset-0 bg-gray-800 bg-opacity-90 flex items-center justify-center">
<div class="bg-white p-6 rounded-lg max-w-md w-full">
<!-- Encabezado -->
<div class="flex justify-between items-center mb-4">
<h3 class="text-lg font-semibold">Notificar uso indebido</h3>
<button @click="modal = false" class="text-gray-500 hover:text-gray-800">×</button>
</div>
<!-- Contenido -->
<p class="text-sm text-gray-700 mb-4">Por favor, describe el problema:</p>
<textarea class="w-full border border-gray-300 p-3 rounded-lg mb-4" rows="4" placeholder="Escribe aquí..."></textarea>
<!-- Botón de envío -->
<button class="bg-primary text-white px-4 py-2 rounded-lg hover:bg-primary-dark w-full">
Enviar reporte
</button>
</div>
</div>
</div>
x-data
para gestionar su estado:
x-data="{ modal: false }"
@click="modal = true"
@click="modal = false"
x-show
para mostrar u ocultar el modal dinámicamente:
x-show="modal"
class="fixed inset-0 flex items-center justify-center"
bg-gray-800 bg-opacity-90
@click.outside
para cerrar el modal al hacer clic fuera del contenido:
<div @click.outside="modal = false" class="bg-white p-6 rounded-lg">
bg-opacity-90