// screens-desktop-1.jsx — Homepage, Booking flow, Confirmation // Renders inside design-canvas artboards (1280×800). /* ───────────────── HOMEPAGE ───────────────── */ function ScreenHome() { return (
{/* HERO */}
Disponible 24/7 · Paris & IDF

Le luxe
d'arriver à l'heure.

Réservez un chauffeur privé en moins de 60 secondes. Prix fixe, véhicules récents, chauffeurs formés. Sans frais cachés.

4,9/5
+ 12 400 avis vérifiés
60s
réservation moyenne
320
chauffeurs partenaires
{/* Booking widget */}
{/* SERVICES */}
Nos services

Une flotte adaptée à chaque trajet.

Voir toutes les options →
{[ { tier: 'Berline', price: 'dès 35 €', desc: 'Mercedes Classe E ou équivalent. Idéale pour 1 à 3 passagers, trajets ville et aéroport.', img: 'photo-1503376780353-7e6692767b70', icon: 'car', tag: 'Le plus réservé' }, { tier: 'Van', price: 'dès 65 €', desc: 'Mercedes Classe V. Jusqu\'à 7 passagers, espace bagages généreux, trajets en groupe.', img: 'photo-1610465299996-30f240ac2b1c', icon: 'van' }, { tier: 'Premium', price: 'dès 95 €', desc: 'Mercedes Classe S, BMW Série 7. Confort exécutif, hôtesse possible, événementiel.', img: 'photo-1494976388531-d1058494cdd8', icon: 'sparkle', tag: 'Premium' }, ].map(s => (
{s.tag && {s.tag}}

{s.tier}

{s.price}

{s.desc}

Choisir cette gamme
))}
{/* REASSURANCE */}
{[ { ico: 'shield', t: 'Prix fixe garanti', d: 'Le tarif annoncé est définitif. Aucun supplément, aucune surprise.' }, { ico: 'bolt', t: 'Réservation 60s', d: 'Trajet immédiat ou planifié à la minute près, jusqu\'à 6 mois à l\'avance.' }, { ico: 'star', t: 'Chauffeurs sélectionnés', d: 'Carte VTC, formation continue, note minimale 4,8/5 maintenue.' }, { ico: 'phone', t: 'Concierge 24/7', d: 'Une équipe joignable instantanément, par téléphone ou messagerie.' }, ].map((b, i) => (
{b.t}
{b.d}
))}
{/* TESTIMONIALS */}
Avis clients

12 400 trajets notés 4,9 sur 5.

{[ { n: 'Camille R.', r: 'Cliente régulière', q: 'Service irréprochable depuis 2 ans. Mes rendez-vous client se passent sans stress, le chauffeur attend toujours en bas.', av: 'photo-1573496359142-b8d87734a5a2' }, { n: 'Antoine D.', r: 'Voyage d\'affaires', q: 'CDG → La Défense en 35 min un mardi à 8h. Le chauffeur connaissait déjà mon arrêt et le code de l\'immeuble. Bluffant.', av: 'photo-1500648767791-00dcc994a43e' }, { n: 'Léa M.', r: 'Mariage Le Bristol', q: 'On a réservé 4 véhicules pour les invités VIP. Coordination parfaite, chauffeurs en costume, fleurs prévues. Une équipe à la hauteur.', av: 'photo-1544005313-94ddf0286df2' }, ].map((t, i) => (

« {t.q} »

{t.n}
{t.r}
))}
{/* CTA BAND */}

Programmez votre prochain trajet en moins d'une minute.

Pas d'application à télécharger. Premier trajet ? Code WELCOME20 pour −20 %.

); } /* ── Reusable booking widget for hero ───────────────── */ function BookingWidget() { return (
{['Trajet', 'Mise à disposition', 'Aéroport'].map((t, i) => ( ))}
} label="Départ" value="12 rue de Rivoli, Paris 4e" /> } label="Destination" value="Aéroport Charles de Gaulle, T2E" />
Estimation
62 € · prix fixe
); } function Dot({ color = 'var(--ink-dim)', ring }) { return ; } function ConnectorLine() { return (
); } function FieldRow({ icon, label, value }) { return (
{icon}
{label}
{value}
); } function FieldBox({ icon, label, value }) { return (
{label}
{value}
); } /* ───────────────── BOOKING FLOW ───────────────── One screen per step, Typeform-like: large question, single focused input. */ function BookingShell({ stepIdx, total, children, footer }) { const labels = ['Itinéraire', 'Date & heure', 'Véhicule', 'Coordonnées', 'Récapitulatif']; return (
{/* Left: form */}
{/* Stepper */}
{labels.map((_, i) => (
))}
Étape {stepIdx + 1} sur {total} · {labels[stepIdx]}
{children}
{footer || (
)}
{/* Right: contextual map / illustration */}
); } function BookingMapPanel({ stepIdx }) { return (
{/* Stylised map route */} {/* faint grid roads */} {Array.from({ length: 12 }).map((_, i) => )} {Array.from({ length: 11 }).map((_, i) => )} {/* primary route */} {/* origin */} {/* dest */} {/* Trip info card */}
Distance
32,4 km
Durée
42 min
Estimation
62 €
); } function ScreenBookingStep1() { return (

Quel est votre itinéraire ?

Adresse précise, hôtel, gare ou aéroport. Nous calculons un prix fixe à la seconde.

{/* autocomplete dropdown */}
{[ ['Aéroport Paris-Charles de Gaulle', 'Terminal 2E · Roissy-en-France', true], ['Aéroport Paris-Charles de Gaulle', 'Terminal 1 · Roissy-en-France'], ['Aéroport Paris-Orly', 'ORY · Orly'], ['Gare du Nord', '18 rue de Dunkerque, 75010 Paris'], ].map(([t, s, hi], i) => (
{t}
{s}
{hi && }
))}
); } function ScreenBookingStep2() { const days = ['Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim']; const dates = [11, 12, 13, 14, 15, 16, 17]; const times = ['07:00', '07:30', '08:00', '08:30', '09:00', '09:30', '10:00', '10:30', '11:00', '11:30']; return (

Quand partez-vous ?

Réservez immédiatement ou jusqu'à 6 mois à l'avance. Annulation gratuite jusqu'à 1h avant.

Mai 2026
{days.map(d =>
{d}
)} {dates.map((d, i) => { const sel = d === 14; return ( ); })}
{times.map(t => { const sel = t === '08:30'; return ( ); })}
); } function ScreenBookingStep3() { const tiers = [ { id: 'berline', name: 'Berline', desc: 'Mercedes Classe E', cap: '1-3 pax · 3 bagages', price: 62, img: 'photo-1503376780353-7e6692767b70', sel: true }, { id: 'van', name: 'Van', desc: 'Mercedes Classe V', cap: '1-7 pax · 7 bagages', price: 98 }, { id: 'premium', name: 'Premium', desc: 'Mercedes Classe S', cap: '1-3 pax · eau & wifi', price: 138, badge: 'Recommandé pour vous' }, ]; return (

Quel véhicule ?

Trois gammes, un même standard de service. Eau, chargeurs et wifi inclus en Premium.

{tiers.map(t => (
{t.name} {t.desc} {t.badge && {t.badge}}
{t.cap}
{t.price} €
prix fixe
{t.sel && }
))}
Option siège bébé ou animal disponible à l'étape suivante (gratuit).
); } function ScreenBookingStep4() { return (

Vos coordonnées.

Le chauffeur les utilise pour vous prévenir 5 minutes avant son arrivée.