feature flags and a bit on the design

This commit is contained in:
Doar Mihai
2026-02-15 16:24:47 +02:00
parent 4bc77d455b
commit 5a0e6e4165
22 changed files with 663 additions and 102 deletions
+132
View File
@@ -0,0 +1,132 @@
@extends('layouts.app')
@section('content')
<div class="min-h-screen flex items-center justify-center px-4 sm:px-6 lg:px-8 bg-gradient-to-br from-primary-50 to-primary-100 dark:from-gray-900 dark:to-gray-800">
<div class="max-w-2xl w-full space-y-8 text-center">
<!-- Logo/Icon -->
<div class="flex justify-center">
<div class="p-4 bg-primary-600 dark:bg-primary-500 rounded-full">
<svg class="h-16 w-16 text-white" fill="currentColor" viewBox="0 0 24 24">
<path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"></path>
</svg>
</div>
</div>
<!-- Heading -->
<div>
<h1 class="text-5xl font-extrabold text-gray-900 dark:text-white mb-4">
Discover the Best Tech From EU
</h1>
<p class="text-xl text-gray-600 dark:text-gray-300 max-w-xl mx-auto">
Join our waitlist to be the first to explore and showcase innovative tech products from the European Union.
</p>
</div>
<!-- Success/Error Messages -->
@if(session('success'))
<div class="bg-green-100 dark:bg-green-900 border border-green-400 dark:border-green-700 text-green-700 dark:text-green-300 px-6 py-4 rounded-lg shadow-md">
<div class="flex items-center">
<svg class="w-6 h-6 mr-3" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/>
</svg>
<p class="font-medium">{{ session('success') }}</p>
</div>
</div>
@endif
@if(session('error'))
<div class="bg-red-100 dark:bg-red-900 border border-red-400 dark:border-red-700 text-red-700 dark:text-red-300 px-6 py-4 rounded-lg shadow-md">
<div class="flex items-center">
<svg class="w-6 h-6 mr-3" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clip-rule="evenodd"/>
</svg>
<p class="font-medium">{{ session('error') }}</p>
</div>
</div>
@endif
@if($errors->any())
<div class="bg-red-100 dark:bg-red-900 border border-red-400 dark:border-red-700 text-red-700 dark:text-red-300 px-6 py-4 rounded-lg shadow-md">
<div class="flex items-start">
<svg class="w-6 h-6 mr-3 flex-shrink-0 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clip-rule="evenodd"/>
</svg>
<div>
@foreach($errors->all() as $error)
<p class="font-medium">{{ $error }}</p>
@endforeach
</div>
</div>
</div>
@endif
<!-- Waitlist Form -->
<div class="bg-white dark:bg-gray-800 shadow-2xl rounded-2xl p-8 max-w-md mx-auto">
<form action="{{ route('waitlist.store') }}" method="POST" class="space-y-6">
@csrf
<div>
<label for="email" class="block text-sm font-medium text-gray-700 dark:text-gray-300 text-left mb-2">
Email Address
</label>
<input
type="email"
name="email"
id="email"
required
value="{{ old('email') }}"
placeholder="your@email.com"
class="appearance-none block w-full px-4 py-3 border border-gray-300 dark:border-gray-600 rounded-lg shadow-sm placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500 dark:bg-gray-700 dark:text-white text-base"
>
</div>
<button
type="submit"
class="w-full flex justify-center py-3 px-4 border border-transparent rounded-lg shadow-sm text-base font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors duration-200"
>
Join Waitlist
</button>
</form>
</div>
<!-- Features -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 pt-12">
<div class="bg-white dark:bg-gray-800 p-6 rounded-xl shadow-lg">
<div class="text-primary-600 dark:text-primary-400 mb-3">
<svg class="h-10 w-10 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/>
</svg>
</div>
<h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-2">Early Access</h3>
<p class="text-gray-600 dark:text-gray-300 text-sm">
Be among the first to submit and discover EU tech products
</p>
</div>
<div class="bg-white dark:bg-gray-800 p-6 rounded-xl shadow-lg">
<div class="text-primary-600 dark:text-primary-400 mb-3">
<svg class="h-10 w-10 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"/>
</svg>
</div>
<h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-2">Community</h3>
<p class="text-gray-600 dark:text-gray-300 text-sm">
Join a community celebrating EU tech innovation
</p>
</div>
<div class="bg-white dark:bg-gray-800 p-6 rounded-xl shadow-lg">
<div class="text-primary-600 dark:text-primary-400 mb-3">
<svg class="h-10 w-10 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"/>
</svg>
</div>
<h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-2">Stay Updated</h3>
<p class="text-gray-600 dark:text-gray-300 text-sm">
Get notified when we launch and new features arrive
</p>
</div>
</div>
</div>
</div>
@endsection