TR
Başlangıç
72 · Formlar

Dikey form

Etiketlerin alanların üstünde durduğu standart form düzeni. Ayrı bir bileşen yoktur; alanlar Tailwind boşluk ve ızgara sınıflarıyla dizilir.

Form düzeni
01

Tek sütun

Kısa formlarda alanları space-y-4 ile alt alta dizin. Her alan etiketini, ipucunu ve hata mesajını kendisi taşır; ek sarmalayıcı gerekmez.

CANLI ÖRNEK
<form class="space-y-4">
    <acun:input name="iletisim_ad" label="Ad soyad" />
    <acun:input name="iletisim_eposta" type="email" label="E-posta" />
    <acun:select name="iletisim_konu" label="Konu" :options="['siparis' => 'Sipariş', 'fatura' => 'Fatura', 'diger' => 'Diğer']" placeholder="Seçiniz" />
    <acun:textarea name="iletisim_mesaj" label="Mesaj" rows="3" />
    <acun:button type="submit" class="w-full">Gönder</acun:button>
</form>
PropDeğerler
space-y-4Alanlar arası dikey boşluk
02

İki sütun

Uzun formlarda grid md:grid-cols-2 ile geniş ekranda iki sütun kullanın; mobilde alanlar tek sütuna iner. Adres gibi uzun alanları ve düğme satırını md:col-span-2 ile tam genişliğe yayın.

CANLI ÖRNEK
<acun:card title="Müşteri kaydı">
    <form class="grid gap-4 md:grid-cols-2">
        <acun:input name="ad" label="Ad" />
        <acun:input name="soyad" label="Soyad" />
        <acun:input-group name="telefon" label="Telefon" prefix="+90" />
        <acun:select name="grup" label="Müşteri grubu" :options="['1' => 'Bireysel', '2' => 'Kurumsal']" placeholder="Seçiniz" />
        <div class="md:col-span-2"><acun:textarea name="adres" label="Adres" rows="2" /></div>
        <div class="flex gap-2 md:col-span-2">
            <acun:button type="submit">Kaydet</acun:button>
            <acun:button variant="white">Vazgeç</acun:button>
        </div>
    </form>
</acun:card>
PropDeğerler
grid gap-4 md:grid-cols-2Geniş ekranda iki sütun
md:col-span-2Alanı tam genişliğe yayar
03

Zorunlu alanlar ve ipuçları

acun:input, acun:select, acun:textarea ve acun:input-group'a required eklendiğinde etiketin yanında kırmızı bir yıldız çıkar. Biçim beklentilerini hint ile alanın altında belirtin.

CANLI ÖRNEK
<form class="grid gap-4 md:grid-cols-2">
    <acun:input name="z_ad" label="Ad soyad" required />
    <acun:input-group name="z_tel" label="Telefon" prefix="+90" required hint="10 haneli, başında 0 olmadan." />
    <acun:select name="z_sehir" label="Şehir" :options="['istanbul' => 'İstanbul', 'izmir' => 'İzmir']" placeholder="Seçiniz" required />
    <acun:textarea name="z_not" label="Not" rows="2" hint="İsteğe bağlı." />
</form>
PropDeğerler
requiredEtikete * ekler
hintAlanın altındaki yardım metni
04

Livewire ile

wire:model verilen alanlar adlarını bu özellikten alır, name yazmanız gerekmez ve doğrulama hataları da aynı adla eşleşir. acun:form düz bir <form> üretir; dirty-check eklerseniz kaydedilmemiş değişiklik koruması açılır (Form koruması sayfasına bakın).

BLADE
<acun:form wire:submit="kaydet" dirty-check class="grid gap-4 md:grid-cols-2">
    <acun:input wire:model="ad" label="Ad" required />
    <acun:input wire:model="soyad" label="Soyad" required />
    <acun:input-group wire:model="telefon" label="Telefon" prefix="+90" />
    <acun:select wire:model="grupId" label="Müşteri grubu" :options="$gruplar" placeholder="Seçiniz" />
    <div class="md:col-span-2">
        <acun:button type="submit">Kaydet</acun:button>
    </div>
</acun:form>
PropDeğerler
wire:submitGönderimde çağrılan metot
dirty-checkKaydedilmemiş değişiklik koruması
Acun UI · Dikey formDetaylı kullanım ve örnekler