feat(ticket-form): enhance ticket form layout and styles
This commit is contained in:
parent
6c38cf774c
commit
a688200480
@ -1,17 +1,47 @@
|
|||||||
<form>
|
<div class="bg-white/50 backdrop-blur-sm rounded-2xl border border-gray-100 p-4 hover:shadow-md transition-all duration-300">
|
||||||
<div class="border-b border-gray-100 pb-4 sm:pb-6 w-full flex inline-flex">
|
<div class="grid grid-cols-12 gap-4">
|
||||||
<select name="ticket" id="ticket" class="w-1/4 bg-white/90 text-gray-800 font-medium text-sm sm:text-base px-4 sm:px-6 py-2 sm:py-3 rounded-full border border-gray-100 focus:outline-none focus:ring-2 focus:ring-red-500 focus:border-transparent transition-all duration-300 mr-2">
|
<div class="relative col-span-4">
|
||||||
<option value="1">All-Inclusive</option>
|
<twig:ux:icon name="mingcute:ticket-fill" class="absolute left-3.5 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400 pointer-events-none" />
|
||||||
<option value="2">After-Show</option>
|
<select name="ticket" class="w-full pl-11 pr-10 py-3.5 rounded-xl appearance-none bg-white border border-gray-200 text-gray-800 font-medium text-[15px] focus:border-orange-500 focus:ring-2 focus:ring-orange-200 transition-all">
|
||||||
<option value="3">Kind (6-12)</option>
|
<option value="" disabled selected>Ticket wählen*</option>
|
||||||
<option value="4">Kind (0-6)</option>
|
<option value="1">All-Inclusive</option>
|
||||||
</select>
|
<option value="2">After-Show</option>
|
||||||
<select name="food" id="food" class="w-1/4 bg-white/90 text-gray-800 font-medium text-sm sm:text-base px-4 sm:px-6 py-2 sm:py-3 rounded-full border border-gray-100 focus:outline-none focus:ring-2 focus:ring-red-500 focus:border-transparent transition-all duration-300 mr-2">
|
<option value="3">Kind (6-12)</option>
|
||||||
<option value="1">Mit Fleisch</option>
|
<option value="4">Kind (0-6)</option>
|
||||||
<option value="2">Vegetarisch</option>
|
</select>
|
||||||
<option value="3">Vegan</option>
|
<div class="absolute inset-y-0 right-0 flex items-center pr-3.5 pointer-events-none">
|
||||||
</select>
|
<twig:ux:icon name="mdi:chevron-down" class="w-5 h-5 text-gray-400" />
|
||||||
<input type="text" placeholder="z.B. Allergien" name="note" class="w-1/3 text-input mr-2" />
|
</div>
|
||||||
<button data-action="form#removeEntry" class="w-1/6"><twig:ux:icon name="delete" class="ml-5" height="27px" width="27px" /></button>
|
</div>
|
||||||
|
|
||||||
|
<div class="relative col-span-3">
|
||||||
|
<twig:ux:icon name="mdi:food" class="absolute left-3.5 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400 pointer-events-none" />
|
||||||
|
<select name="food" class="w-full pl-11 pr-10 py-3.5 rounded-xl appearance-none bg-white border border-gray-200 text-gray-800 font-medium text-[15px] focus:border-orange-500 focus:ring-2 focus:ring-orange-200 transition-all">
|
||||||
|
<option value="" disabled selected>Ernährung wählen*</option>
|
||||||
|
<option value="1">Mit Fleisch</option>
|
||||||
|
<option value="2">Vegetarisch</option>
|
||||||
|
<option value="3">Vegan</option>
|
||||||
|
</select>
|
||||||
|
<div class="absolute inset-y-0 right-0 flex items-center pr-3.5 pointer-events-none">
|
||||||
|
<twig:ux:icon name="mdi:chevron-down" class="w-5 h-5 text-gray-400" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="relative col-span-4">
|
||||||
|
<twig:ux:icon name="mdi:note" class="absolute left-3.5 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400 pointer-events-none" />
|
||||||
|
<input type="text"
|
||||||
|
placeholder="z.B. Allergien"
|
||||||
|
name="note"
|
||||||
|
class="w-full pl-11 pr-4 py-3.5 rounded-xl border border-gray-200 text-gray-800 text-[15px] placeholder-gray-400 focus:border-orange-500 focus:ring-2 focus:ring-orange-200 transition-all" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex justify-center items-center col-span-1">
|
||||||
|
<button data-action="form#removeEntry"
|
||||||
|
class="group p-2.5 hover:bg-red-50 rounded-xl transition-all duration-300"
|
||||||
|
title="Ticket entfernen">
|
||||||
|
<twig:ux:icon name="mingcute:delete-fill"
|
||||||
|
class="w-6 h-6 text-red-400 group-hover:text-red-500 transition-colors" />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</div>
|
||||||
|
@ -3,60 +3,87 @@
|
|||||||
{% block title %}Tickets kaufen{% endblock %}
|
{% block title %}Tickets kaufen{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div class="min-h-screen bg-gradient-to-br from-yellow-50 via-white to-orange-50 relative overflow-hidden">
|
<div class="min-h-screen bg-white relative overflow-hidden">
|
||||||
<header class="w-full bg-white/90 backdrop-blur-md shadow-lg fixed top-0 z-50 border-b border-gray-100">
|
<header class="w-full bg-white/90 backdrop-blur-md shadow-lg fixed top-0 z-50 border-b border-gray-100">
|
||||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 py-3 sm:py-4 flex justify-between items-center">
|
<div class="container mx-auto px-4 sm:px-6 lg:px-8 py-3 sm:py-4 flex justify-between items-center">
|
||||||
<a href="{{ path('app_home') }}">
|
<a href="{{ path('app_home') }}" class="flex items-center space-x-2 group">
|
||||||
<img src="{{ asset('images/logo.png') }}" alt="Logo" class="w-32 sm:w-36 md:w-40 h-auto hover:opacity-90 transition-opacity" />
|
<img src="{{ asset('images/logo.png') }}" alt="Logo" class="w-32 sm:w-36 md:w-40 h-auto group-hover:opacity-90 transition-opacity" />
|
||||||
</a>
|
</a>
|
||||||
<a href="{{ path('app_home') }}" class="bg-gradient-to-r from-red-500 to-orange-500 hover:from-red-600 hover:to-orange-600 text-white px-4 sm:px-6 md:px-8 py-2 sm:py-2.5 rounded-full text-xs sm:text-sm font-medium shadow-md hover:shadow-lg transition-all duration-300">
|
<a href="{{ path('app_home') }}" class="bg-gradient-to-r from-red-500 to-orange-500 hover:from-red-600 hover:to-orange-600 text-white px-6 py-2.5 rounded-full text-sm font-medium shadow-md hover:shadow-lg transition-all duration-300 flex items-center space-x-2">
|
||||||
Zurück zur Startseite
|
<twig:ux:icon name="line-md:home" class="w-4 h-4" />
|
||||||
|
<span>Zurück zur Startseite</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<main class="container mx-auto px-4 sm:px-6 lg:px-8 pt-24 sm:pt-28 md:pt-32 pb-16 sm:pb-20 flex flex-col items-center justify-center relative z-10">
|
<main class="container mx-auto px-4 sm:px-6 lg:px-8 pt-24 sm:pt-28 md:pt-32 pb-16 sm:pb-20 flex flex-col items-center justify-center relative z-10">
|
||||||
<div class="w-full max-w-2xl">
|
<div class="w-full max-w-3xl">
|
||||||
<h1 class="text-3xl sm:text-4xl md:text-5xl font-bold text-gray-800 text-center mb-6 sm:mb-8 tracking-tight leading-tight">
|
<h1 class="text-3xl sm:text-4xl md:text-5xl font-bold text-center mb-8 tracking-tight leading-tight">
|
||||||
<span class="bg-clip-text text-transparent bg-gradient-to-r from-red-500 to-orange-500">Tickets kaufen</span>
|
<span class="bg-clip-text text-transparent bg-gradient-to-r from-red-500 to-orange-500">Tickets kaufen</span>
|
||||||
</h1>
|
</h1>
|
||||||
<div class="bg-white/80 backdrop-blur-md shadow-xl rounded-2xl sm:rounded-3xl p-6 sm:p-8 md:p-10 mb-12 sm:mb-16 transform transition-all duration-300 border border-gray-100">
|
|
||||||
<div data-controller="form">
|
<div class="bg-white/90 backdrop-blur-md shadow-2xl rounded-3xl p-8 md:p-10 mb-12 transform transition-all duration-300 border border-gray-100">
|
||||||
|
<div data-controller="form" class="space-y-8">
|
||||||
<div class="hidden" data-form-target="key">{{ env('STRIPE_PUBLIC_KEY')}}</div>
|
<div class="hidden" data-form-target="key">{{ env('STRIPE_PUBLIC_KEY')}}</div>
|
||||||
|
|
||||||
<h2 class="text-2xl mb-5">Persönliche Daten</h2>
|
<section>
|
||||||
|
<h2 class="text-2xl font-semibold mb-6 flex items-center space-x-3">
|
||||||
|
<twig:ux:icon name="mdi:user-circle" class="w-6 h-6 text-orange-500" />
|
||||||
|
<span>Persönliche Daten</span>
|
||||||
|
</h2>
|
||||||
|
|
||||||
<div class="mb-5 w-full">
|
<div class="grid grid-cols-1 sm:grid-cols-2 gap-5">
|
||||||
<div class="flex inline-flex mb-5 w-full">
|
<div class="relative">
|
||||||
<input name="firstname" data-form-target="firstname" class="w-1/2 text-input mr-2 py-2" type="text" placeholder="Vorname*" required>
|
<twig:ux:icon name="mdi:user-circle" class="absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400" />
|
||||||
<input name="firstname" data-form-target="lastname" class="w-1/2 text-input mr-2 py-2" type="text" placeholder="Nachname*" required>
|
<input name="firstname" data-form-target="firstname" class="w-full pl-10 pr-4 py-3 rounded-xl border border-gray-200 focus:border-orange-500 focus:ring-2 focus:ring-orange-200 transition-all" type="text" placeholder="Vorname*" required>
|
||||||
|
</div>
|
||||||
|
<div class="relative">
|
||||||
|
<twig:ux:icon name="mdi:user-circle" class="absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400" />
|
||||||
|
<input name="lastname" data-form-target="lastname" class="w-full pl-10 pr-4 py-3 rounded-xl border border-gray-200 focus:border-orange-500 focus:ring-2 focus:ring-orange-200 transition-all" type="text" placeholder="Nachname*" required>
|
||||||
|
</div>
|
||||||
|
<div class="relative">
|
||||||
|
<twig:ux:icon name="mdi:envelope" class="absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400" />
|
||||||
|
<input name="email" data-form-target="email" class="w-full pl-10 pr-4 py-3 rounded-xl border border-gray-200 focus:border-orange-500 focus:ring-2 focus:ring-orange-200 transition-all" type="email" placeholder="E-Mail*" required>
|
||||||
|
</div>
|
||||||
|
<div class="relative">
|
||||||
|
<twig:ux:icon name="ic:baseline-phone" class="absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400" />
|
||||||
|
<input name="phone" data-form-target="phone" class="w-full pl-10 pr-4 py-3 rounded-xl border border-gray-200 focus:border-orange-500 focus:ring-2 focus:ring-orange-200 transition-all" type="tel" placeholder="Telefon (optional)">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex inline-flex mb-5 w-full">
|
</section>
|
||||||
<input name="firstname" data-form-target="email" class="w-1/2 text-input mr-2 py-2" type="email" placeholder="E-Mail*" required>
|
|
||||||
<input name="firstname" data-form-target="phone" class="w-1/2 text-input mr-2 py-2" type="tel" placeholder="Telefon">
|
<div class="h-px bg-gradient-to-r from-transparent via-gray-200 to-transparent"></div>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2 class="text-2xl font-semibold mb-6 flex items-center space-x-3">
|
||||||
|
<twig:ux:icon name="mingcute:ticket-fill" class="w-6 h-6 text-orange-500" />
|
||||||
|
<span>Tickets</span>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div class="grid grid-cols-4 gap-4 mb-4 px-4 text-sm font-medium text-gray-600">
|
||||||
|
<div>Ticket</div>
|
||||||
|
<div>Ernährung</div>
|
||||||
|
<div>Anmerkungen</div>
|
||||||
|
<div class="text-center">Aktion</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr class="my-6 border-t border-gray-900" />
|
<div class="forms space-y-4">
|
||||||
|
{% include 'ticket/_partials/_form.html.twig' %}
|
||||||
|
</div>
|
||||||
|
|
||||||
<h2 class="text-2xl mb-5">Tickets</h2>
|
<div class="flex items-center justify-between mt-6 pt-4">
|
||||||
|
<button data-action="form#addEntry" type="button" class="flex items-center space-x-2 text-orange-500 hover:text-orange-600 transition-colors px-4 py-2 rounded-lg hover:bg-orange-50">
|
||||||
|
<twig:ux:icon name="line-md:plus-circle-filled" class="w-5 h-5" />
|
||||||
|
<span>Ticket hinzufügen</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
<div class="w-full flex inline-flex mb-5">
|
<button type="submit" data-action="form#submit" data-form-target="submit" class="bg-gradient-to-r from-red-500 to-orange-500 hover:from-red-600 hover:to-orange-600 text-white px-8 py-3 rounded-xl text-sm font-medium shadow-md hover:shadow-lg transition-all duration-300 flex items-center space-x-2">
|
||||||
<div class="w-1/4 ml-6">Ticket</div>
|
<span>Jetzt bestellen</span>
|
||||||
<div class="w-1/4 ml-5">Ernährung</div>
|
<twig:ux:icon name="line-md:arrow-right-circle" class="w-4 h-4" />
|
||||||
<div class="w-1/3 ml-4">Anmerkungen</div>
|
<twig:ux:icon name="loader" class="hidden w-4 h-4 animate-spin" />
|
||||||
<div class="w-1/6 text-center"></div>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="forms">
|
</section>
|
||||||
{% include 'ticket/_partials/_form.html.twig' %}
|
|
||||||
</div>
|
|
||||||
<div class="flex inline-flex w-full">
|
|
||||||
<button class="ml-0" data-action="form#addEntry" type="button"><twig:ux:icon name="plus" height="32px" width="32px"/></button>
|
|
||||||
<button type="submit" data-action="form#submit" data-form-target="submit" class="bg-gradient-to-r from-red-500 to-orange-500 hover:from-red-600 hover:to-orange-600 text-white px-4 sm:px-6 md:px-8 py-2 sm:py-2.5 rounded-full text-xs sm:text-sm font-medium shadow-md hover:shadow-lg transition-all duration-300 ml-auto">
|
|
||||||
<span>Submit</span>
|
|
||||||
<twig:ux:icon name="loader" class="hidden" height="21px" width="21px" />
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user