Skip to content

Formlar (Demo)

Bu belge gerçek gönderim yapmayan demo formu anlatır. Kullanıcı «Gönder»e basınca yalnızca toast görünür; sunucuya veri gitmez.

Canlı demo: /fix-ui (FixUiPage.astro). Form stilleri: Fix UI Kullanımı. Toast: Font & UI Kullanımı.


ParçaDosya
Form markupsrc/components/fix-ui/FixUiPage.astro
Toast davranışısrc/components/islands/FormSubmitToast.tsx
Routesrc/pages/fix-ui/index.astro

fix-form sınıfı yalnızca katalog demosu içindir; production form alanları Input / Label / Textarea üzerinden Tailwind ile stillenir.


<form id="fix-ui-form" class="fix-form" method="get" action="#">
<div class="fix-form__row">
<Label for="fix-ui-name">Ad</Label>
<Input id="fix-ui-name" name="name" type="text" required />
</div>
<Button type="submit" variant="primary">Gönder</Button>
</form>
BileşenRol
fix-formForm düzeni (yalnızca katalog CSS)
LabelErişilebilir etiket (Tailwind)
Input / TextareaAlanlar (Tailwind semantic sınıflar)
ButtonGönder — fix-btn

method="get" ve action="#" — tarayıcı varsayılanını nötrler; asıl davranış JS ile kesilir.


<FormSubmitToast
client:load
formId="fix-ui-form"
message="Teşekkürler! Bu bir demo — mesajınız gönderilmedi."
/>

Dosya: src/components/islands/FormSubmitToast.tsx

  • preventDefault → sayfa yenilenmez, ağ isteği yok
  • Sonner toast.success — global Toaster BaseLayout’ta

formId ile form id eşleşmeli.


Canlıya Geçiş (Not — İmplementasyon Yok)

Section titled “Canlıya Geçiş (Not — İmplementasyon Yok)”
YöntemKısa not
Formspree / Getformaction + method="POST", preventDefault kaldırılır veya koşullu
Astro API routesrc/pages/api/... — sunucuda e-posta veya CRM
Cloudflare WorkerEdge’de doğrulama + webhook

Spam koruması (honeypot, Turnstile) eklenir. Bu rehber kod eklemez.


  • Her sayfada kopya toast useEffect yazmayın — FormSubmitToast yeniden kullanın.
  • Layout’a ikinci Toaster eklemeyin.
  • Demo iken kullanıcıya «mesajınız iletildi» demeyin.


Demo form /fix-ui sayfasında: fix-form + Fix UI Button + Tailwind alanlar. FormSubmitToast ile backend yok. Gerçek gönderim için Formspree/API/Worker.