Pantrix UI

Filled Auto-resize Text Field

Etiketi kutusunun içinde duran ve yazısı görünür kalmak için küçülen metin alanı: bir tutar, bir kart numarası, kısa bir not, bütünü okunan her şey, PantrixFilledTextField'ın dolgulu kutusunda.

import com.pantrixui.components.inputs.filledautoresizetextfield.PantrixFilledAutoResizeTextField

Örnekler

En yalın hâli

En az yazılan: bir TextFieldState ve bir etiket. Alana genişlik verilmedi: kutu stilindeki en az genişliktedir ve yazıyla birlikte genişlemez. Hesap adı o kutuya sığmayacak kadar uzun, bu yüzden küçülmüş olarak çizilir; alanda bir metin olduğu için etiket de yazının üstündeki satırındadır.

Metni sil: yazı yeniden büyür. Alan boşalıp odaktan çıkınca etiket yazının yerine iner.

PantrixFilledAutoResizeTextField(
    state = rememberTextFieldState("Yılmaz Mimarlık ve Mühendislik Limited Şirketi"),
    label = "Hesap adı",
    tagKey = "account_name"
)

Yazı stili ve kutunun boyu

textStyle yazının en büyük hâlinin stilidir; verilmezse yazı body boyutundadır. Büyük bir stil kutuyu yalnızca etiketinin ve o stilin bir satırının sığacağı kadar uzatır: ilk iki alanı karşılaştır.

Üçüncü alan boş ve display stilinde. Etiket, yazının stili ne olursa olsun, yazının yerinde body boyutunda durur. Alana bas: etiket yukarı çıkar ve yer tutucu yazının stilinde belirir.

PantrixFilledAutoResizeTextField(
    state = rememberTextFieldState("1250"),
    modifier = Modifier.fillMaxWidth(),
    label = "Stil verilmedi",
    tagKey = "style_body"
)
PantrixFilledAutoResizeTextField(
    state = rememberTextFieldState("1250"),
    modifier = Modifier.fillMaxWidth(),
    label = "title stilinde",
    textStyle = PantrixTheme.typography.title,
    tagKey = "style_title"
)
PantrixFilledAutoResizeTextField(
    state = rememberTextFieldState(),
    modifier = Modifier.fillMaxWidth(),
    label = "display stilinde, boş",
    placeholder = "0",
    textStyle = PantrixTheme.typography.display,
    tagKey = "style_display"
)

En küçük boyut

İki alan da title stilinde aynı adı tutar ve ad ikisinin kutusuna da sığmaz. İlkinde minFontSize verilmedi: yazı temanın footnote boyutuna kadar küçülür. İkincide 16 sp'den küçük yazılmaz. minFontSize em olarak da verilebilir: o zaman stilin kendi boyutunun bir payıdır.

En küçük boyutunda da sığmayan yazı küçülmeyi bırakır ve her alandaki gibi kayar.

val company = "Yılmaz Mimarlık, Mühendislik ve Danışmanlık Limited Şirketi"
PantrixFilledAutoResizeTextField(
    state = rememberTextFieldState(company),
    label = "Verilmedi: footnote boyutu",
    textStyle = PantrixTheme.typography.title,
    tagKey = "smallest_default"
)
PantrixFilledAutoResizeTextField(
    state = rememberTextFieldState(company),
    label = "En küçük 16 sp",
    textStyle = PantrixTheme.typography.title,
    minFontSize = 16.sp,
    tagKey = "smallest_sp"
)

Metnini bir ViewModel'e taşıyan tutar

Bir ödeme tutarı, headline stilinde. Alan durumunu rememberTextFieldState ile, ViewModel'in o an tuttuğu değerden kurar; durumdaki metni snapshotFlow ile izler ve her değişikliği ViewModel'e bildirir. Metin alanın durumundan böyle alınır.

ViewModel'deki ilk değer bir kez okunur. Sonrası tek yönlüdür: metin alandan ViewModel'e akar. Ekran yeniden kurulduğunda ViewModel yerinde kalır ve alan onun değeriyle başlar.

Alttaki satır ViewModel'in tuttuğunu gösterir, düğme de ondan okur: bir tutar gelmeden basılamaz.

val viewModel = viewModel(key = "payment") { PaymentViewModel() }
val snackbars = LocalPantrixSnackbars.current
val scope = rememberCoroutineScope()
val initialUiState = remember(viewModel) { viewModel.uiState.value }
val uiState by viewModel.uiState.collectAsStateWithLifecycle()

val amount = rememberTextFieldState(initialUiState.amount)
LaunchedEffect(amount) {
    snapshotFlow { amount.text.toString() }.collectLatest { viewModel.updateAmount(it) }
}
PantrixFilledAutoResizeTextField(
    state = amount,
    modifier = Modifier.fillMaxWidth(),
    label = "Ödenecek tutar",
    placeholder = "0",
    supportingText = "Yazdıkça küçülür, sildikçe büyür",
    trailingIcon = { PantrixText(text = "TL") },
    showClearButton = true,
    textStyle = PantrixTheme.typography.headline,
    keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
    inputTransformation = DigitsOnly,
    tagKey = "payment_amount"
)

PantrixText(
    text = "ViewModel: tutar \"${uiState.amount}\", ${uiState.amount.length} hane",
    style = PantrixTheme.typography.footnote,
    color = PantrixTheme.colors.textSecondary,
    tagKey = "payment_state"
)
PantrixButton(
    text = "Öde",
    onClick = {
        scope.launch { snackbars?.show(message = "${uiState.amount} TL ödendi", tagKey = "payment_made") }
    },
    enabled = uiState.isComplete,
    tagKey = "pay"
)

private class PaymentViewModel : ViewModel() {
    private val state = MutableStateFlow(PaymentUiState())
    val uiState: StateFlow<PaymentUiState> = state.asStateFlow()

    fun updateAmount(amount: String) {
        state.update { it.copy(amount = amount) }
    }
}

private data class PaymentUiState(val amount: String = "") {
    val isComplete: Boolean get() = amount.isNotEmpty() && amount.any { it != '0' }
}

private val DigitsOnly = InputTransformation {
    if (!asCharSequence().all(Char::isDigit)) revertAllChanges()
}

Metnini String olarak tutan alan

On iki rakamlı bir müşteri numarası. Çağıran numarayı bir String olarak tutar: alan onu gösterir ve her değişikliği sorar, rakam olmayan bir değişiklik alınmadığı için de gösterilmez. Yardım metni o String'ten üretilir.

Sorulan metin bir sonraki kareye kadar value olarak geri dönmelidir, yoksa alan eski metni gösterir ve imleç sıçrar: metni, geri çağrının hemen yazdığı bir durumda tut; metin bir akışta yaşıyorsa state alan biçimi seç.

var number by rememberSaveable { mutableStateOf("") }
val missing = 12 - number.length
PantrixFilledAutoResizeTextField(
    value = number,
    onValueChange = { if (it.all(Char::isDigit)) number = it },
    modifier = Modifier.fillMaxWidth(),
    label = "Müşteri numarası",
    supportingText = if (missing == 0) "Numara tamam" else "$missing rakam daha",
    maxLength = 12,
    showCharacterCount = false,
    textStyle = PantrixTheme.typography.title,
    keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
    tagKey = "customer_number"
)

Forma bağlı bir referans kodu

field alan biçim değerini, hatasını ve adını formdaki alanından alır: kod boş bırakılıp çıkılırsa kuralın mesajı yardım metninin yerine geçer. form verilen alanda klavyenin eylem tuşu formu "Referansı kaydet" düğmesi üzerinden gönderir.

Forma bağlı bir alanın metni formdaki alanın değeridir: ayrıca alınması gerekmez.

val snackbars = LocalPantrixSnackbars.current
val scope = rememberCoroutineScope()
val form = rememberFormState()
PantrixFilledAutoResizeTextField(
    field = form.field("reference", initial = "", Rules.notBlank("Bir referans kodu yazın")),
    modifier = Modifier.fillMaxWidth(),
    form = form,
    label = "Referans kodu",
    supportingText = "Dekontun üstündeki kod",
    showClearButton = true,
    maxLength = 40,
    keyboardOptions = KeyboardOptions(capitalization = KeyboardCapitalization.Characters)
)
PantrixButton(
    text = "Referansı kaydet",
    onClick = {
        scope.launch {
            form.submit { snackbars?.show(message = "Referans kaydedildi", tagKey = "reference_saved") }
        }
    },
    form = form,
    tagKey = "save_reference"
)

Birkaç satırlık bir adres

Birkaç satırlık bir teslimat adresi. Çağıran adresi bir String olarak tutar; alan bu biçimde satırlarını singleLine, minLines ve maxLines ile alır. Kutu iki satır boyundadır ve üç satıra kadar büyür; adres üç satırı geçince kutu aynı kalır, yazı satır aralığıyla birlikte sığacak kadar küçülür.

Yardım metni çağıranın tuttuğu String'ten üretilir. Sınırı 240 karakterdir; sayacı showCharacterCount = false ile gizlenmiştir.

var address by rememberSaveable { mutableStateOf("") }
PantrixFilledAutoResizeTextField(
    value = address,
    onValueChange = { address = it },
    modifier = Modifier.fillMaxWidth(),
    label = "Teslimat adresi",
    supportingText = if (address.isBlank()) "Mahalle, sokak, kapı numarası" else "${address.length} karakter",
    showClearButton = true,
    maxLength = 240,
    showCharacterCount = false,
    singleLine = false,
    minLines = 2,
    maxLines = 3,
    keyboardOptions = KeyboardOptions(capitalization = KeyboardCapitalization.Sentences),
    tagKey = "delivery_address"
)

Yardım metni ve hata

supportingText kutunun altında durur. error = true kutuyu danger rengiyle çerçeveler; yardım metni ve imleç de o renge döner ve mesaj ekran okuyucuya hata olarak bildirilir. Etiket kendi renginde kalır.

Alan hatada başlar: plakada küçük harfler var. Onları büyük harfle yeniden yaz: hata kalkar. Hatayı alan değil çağıran hesaplar; burada plate.text'i okuyarak.

val plate = rememberTextFieldState("34 abc 1903")
val lowercase = plate.text.any(Char::isLowerCase)
PantrixFilledAutoResizeTextField(
    state = plate,
    modifier = Modifier.fillMaxWidth(),
    label = "Araç plakası",
    supportingText = if (lowercase) "Plakayı büyük harfle yazın" else "Ruhsatta yazdığı gibi",
    error = lowercase,
    showClearButton = true,
    maxLength = 12,
    showCharacterCount = false,
    textStyle = PantrixTheme.typography.title,
    keyboardOptions = KeyboardOptions(capitalization = KeyboardCapitalization.Characters),
    tagKey = "plate"
)

Devre dışı ve salt okunur

enabled = false alanın dolgusunu kaldırır: alan temanın devre dışı yazı rengiyle çizilir ve odak almaz. Yazısı yine kutusuna sığdırılır: IBAN title stilindedir ve sığmadığı kutuda küçülür.

readOnly = true alanın dolgusu yerindedir: alan odaklanır, metni seçilir ve kopyalanır, yalnızca değiştirilemez.

PantrixFilledAutoResizeTextField(
    state = rememberTextFieldState("TR330006100519786457841326"),
    modifier = Modifier.fillMaxWidth(),
    enabled = false,
    label = "Kayıtlı IBAN",
    supportingText = "Devre dışı: başlık stilinde, sığmak için küçüldü",
    textStyle = PantrixTheme.typography.title,
    tagKey = "saved_iban"
)
PantrixFilledAutoResizeTextField(
    state = rememberTextFieldState("PX-2026-0914-TR-000187"),
    modifier = Modifier.fillMaxWidth(),
    readOnly = true,
    label = "Sözleşme numarası",
    supportingText = "Salt okunur: seçilip kopyalanabilir",
    textStyle = PantrixTheme.typography.title,
    tagKey = "contract_no"
)

Kendi renkleri ve stili

Bu alan, dolgulu metin alanının FilledTextFieldColors'ını ve FilledTextFieldStyle'ını alır: dolgulu alanlar birlikte biçimlenir.

İlk alanın dolgusu, etiketi, yazısı, çerçevesi ve imleci uygulamanın kendi morundandır; odaktaki dolgu verilmedi, temanın yüzey rengidir. İkincinin kutusu tam yuvarlaktır: FilledTextFieldStyle(shape = ShapeRole.Full). textStyle yazının, style kutunun stilidir.

val own = ownColors()
PantrixFilledAutoResizeTextField(
    state = rememberTextFieldState("Yaz 2026 Koleksiyonu"),
    modifier = Modifier.fillMaxWidth(),
    label = "Liste adı",
    textStyle = PantrixTheme.typography.title,
    colors = FilledTextFieldColors(
        container = own.container,
        focusedOutline = own.color,
        text = own.onContainer,
        label = own.onContainer,
        cursor = own.color
    ),
    tagKey = "own_colors"
)
PantrixFilledAutoResizeTextField(
    state = rememberTextFieldState("KP-48213"),
    modifier = Modifier.fillMaxWidth(),
    label = "Kupon",
    textStyle = PantrixTheme.typography.title,
    style = FilledTextFieldStyle(shape = ShapeRole.Full),
    tagKey = "pill"
)

API

state

Etiketi kutusunun içinde duran ve yazısı görünür kalmak için küçülen metin alanı: bir tutar, bir kart numarası, kısa bir not, bütünü okunan her şey, PantrixFilledTextField'ın dolgulu kutusunda.

ParametreTürVarsayılanNe olduğu
stateTextFieldStateMetin ve seçim. rememberTextFieldState() ile kurulur ve yazılan ondan okunur: metnin kullanıldığı yerde state.text, değiştikçe izlemek için snapshotFlow { state.text.toString() }.
modifierModifierModifierAlanın bütününün modifier'ı: kutusunun ve kutunun altındakilerin. fillMaxWidth() kutuyu üst öğesi kadar geniş yapar. Bir yükseklik verilirse yazı, genişliğe sığdırıldığı gibi ona da sığdırılır.
enabledBooleantrueAlana yazılıp yazılamayacağı. Yazılamayan alan odak almaz, dolgusuz ve devre dışı renklerle çizilir, devre dışı olduğunu da söyler.
readOnlyBooleanfalseMetnin salt okunur olup olmadığı: alan yine odaklanır, metni seçilir ve kopyalanır.
labelString?nullAlanın ne için olduğu. Kutunun içinde yazar ve ekran okuyucu için alanın adıdır. Etiket yoksa metin kutunun ortasında durur ve placeholder alan boş olduğu sürece görünür.
placeholderString?nullAlan boşken ve etiketi yerinden çıkmışken, yani alan odaktayken, yazının geleceği yerde gösterilir. Yazının stilinde yazılır, ama dolgulu bir alanın yazılana eklediği ağırlık olmadan.
supportingTextString?nullKutunun altındaki yardım metni, daha küçük bir yazıyla. error ile birlikte neyin düzeltileceğini söyleyen mesajdır ve ekran okuyucu onu hata olarak duyurur.
errorBooleanfalseMetnin yanlış olup olmadığı: kutu danger rolünün rengiyle çerçevelenir, yardım metni ve imleç de o renge döner ve ekran okuyucuya bildirilir.
leadingIcon(@Composable () -> Unit)?nullEtiketin ve metnin önünde durur, ikincil yazı rengindedir. Yuva içine konanı boyutlandırmaz: PantrixIcon(size = PantrixTheme.style(FilledTextFieldStyle).iconSize) platformun boyutundadır.
trailingIcon(@Composable () -> Unit)?nullMetnin ve temizleme düğmesinin arkasında durur: bir tutarın arkasındaki para birimi işareti gibi.
showClearButtonBooleanfalseAlana yazılabildiği ve alan boş olmadığı sürece, alanı boşaltan bir düğme gösterir. Düğme imleci alanda bırakır ve Tab durağı değildir.
maxLengthInt?nullKullanıcının girebileceği en çok karakter sayısı: karakterler String.length'in saydığı gibi sayılır. Sınırı aşacak bir değişiklik bütünüyle geri çevrilir. Kodla verilen metin kesilmez ve kullanıcı onu yine kısaltabilir. Pozitif olmalıdır.
showCharacterCountBooleantruemaxLength verilmişken kutunun altında count/maxLength gösterir.
textStyleTextStyle?nullYazının en büyük hâlinin stili: temanın bir yazı rolü, bir tutar için PantrixTheme.typography.title gibi. Boş bıraktıkları, bir ağırlık daha kalın body stilinden gelir: bu stil verilmediğinde dolgulu bir alanın yazısı da öyle yazılır. Stile göre kısa kalan kutu, etiketini ve o stilin bir satırını alacak kadar uzar.
minFontSizeTextUnitPantrixTheme.typography.footnote.fontSizeYazının inebileceği en küçük boyut: sp olarak bir boyut, ya da stilin kendi boyutunun bir payı olan em olarak bir boyut. Verilmezse temanın footnote boyutudur. Bu boyutta da sığmayan yazı kayar. Bu boyut stilin kendi boyutunda ya da onun üstündeyse yazı hiç küçülmez.
lineLimitsTextFieldLineLimitsTextFieldLineLimits.SingleLineTek satır ya da TextFieldLineLimits.MultiLine: ikincisinde yazı satırlara bölünür ve Enter yeni satır açar. Kutu, yazının en büyük boyutunda satırları ne kadar yer tutuyorsa o kadar boyludur: minHeightInLines satırdan maxHeightInLines satıra kadar uzar, en çok satır sayısı geçilince yazı küçülür. En çok satır sayısı verilmemişse kutu, uzayabildiği sürece yazısıyla birlikte uzar ve yazı yalnızca alana bir yükseklik verildiğinde küçülür. İkisinde de Tab odağı ilerletir.
keyboardOptionsKeyboardOptionsKeyboardOptions.DefaultKlavyenin türü, büyük harfleri, düzeltmeleri ve eylem tuşu.
onKeyboardActionKeyboardActionHandler?nullKlavyenin eylem tuşuna basılınca, keyboardOptions'ın adlandırdığı eylem için çağrılır. Null verilirse platformun yaptığı kalır.
inputTransformationInputTransformation?nullKullanıcı yazarken metne yapılan işlem. maxLength ile birlikte önce bu çalışır ve sınır onun geçirdiğine uygulanır.
outputTransformationOutputTransformation?nullMetnin, değiştirilmeden nasıl gösterileceği: bir tutarın ayırıcıları gibi. Yazı gösterildiği hâliyle sığdırılır.
contentTypeContentType?nullPlatforma alanın ne tuttuğunu söyler, alanı o doldurabilsin diye: ContentType.CreditCardNumber ve benzerleri.
styleFilledTextFieldStyle?nullBu çağrının kendi stili: çevresindeki her stili ezer, yoğunluk ona da uygulanır. Yalnızca verdiği alanlar değişir ve her platformda değişir.
colorsFilledTextFieldColors?nullBu çağrının kendi renkleri, temanın rollerinin yerine: verilenler kullanılır, gerisi temanın renklerinde kalır. Devre dışı bir alanın, ne verilirse verilsin dolgusu yoktur ve alan temanın devre dışı yazı rengiyle çizilir.
contentDescriptionString?nullEkran okuyucunun alan için söylediği: label verilmeyen alanın adıdır. Aynı şeyi söyleyen bir placeholder o zaman yalnızca göze kalır, ekran okuyucuya okunmaz.
tagKeyString?nullAlanın otomasyon anahtarı: alan FilledAutoResizeTextField_<tagKey>, temizleme düğmesi FilledAutoResizeTextFieldClear_<tagKey> diye etiketlenir. Alan odağı aldığını ve temizlendiğini bildirir, metnini asla.
interactionSourceMutableInteractionSource?nullAlanın dışarı taşınan etkileşimleri: odağı, üstündeki fare ve basışları. Null verilirse alan kendi kaynağını tutar.

value

Yazısı sığmak için küçülen ve metnini çağıranın bir String olarak tuttuğu dolgulu metin alanı: alan value'yu gösterir ve kullanıcının her değişikliğini onValueChange'e sorar.

ParametreTürVarsayılanNe olduğu
valueStringAlanın gösterdiği metin.
onValueChange(String) -> UnitKullanıcının her değişikliğinde yeni metnin bütünüyle sorulur. Temizleme düğmesi de boş bir metinle sorar.
modifierModifierModifierAlanın bütününün modifier'ı: kutusunun ve kutunun altındakilerin.
enabledBooleantrueAlana yazılıp yazılamayacağı.
readOnlyBooleanfalseMetnin salt okunur olup olmadığı: alan yine odaklanır, metni seçilir ve kopyalanır.
labelString?nullAlanın ne için olduğu. Kutunun içinde yazar ve ekran okuyucu için alanın adıdır.
placeholderString?nullAlan boşken ve etiketi yerinden çıkmışken yazının geleceği yerde, yazının boyutunda gösterilir.
supportingTextString?nullKutunun altındaki yardım metni. error ile birlikte neyin düzeltileceğini söyleyen mesajdır.
errorBooleanfalseMetnin yanlış olup olmadığı: kutu danger rolünün rengiyle çerçevelenir ve ekran okuyucuya bildirilir.
leadingIcon(@Composable () -> Unit)?nullEtiketin ve metnin önünde durur. Yuva içine konanı boyutlandırmaz.
trailingIcon(@Composable () -> Unit)?nullMetnin ve temizleme düğmesinin arkasında durur.
showClearButtonBooleanfalseAlana yazılabildiği ve alan boş olmadığı sürece, boş bir metin isteyen bir düğme gösterir.
maxLengthInt?nullKullanıcının girebileceği en çok karakter sayısı. Sınırı aşacak bir değişiklik, onValueChange'e sorulmadan önce bütünüyle geri çevrilir. Sınırı aşan bir value olduğu gibi gösterilir ve kullanıcı onu yine kısaltabilir. Pozitif olmalıdır.
showCharacterCountBooleantruemaxLength verilmişken kutunun altında count/maxLength gösterir.
textStyleTextStyle?nullYazının en büyük hâlinin stili. Boş bıraktıkları, bir ağırlık daha kalın body stilinden gelir.
minFontSizeTextUnitPantrixTheme.typography.footnote.fontSizeYazının inebileceği en küçük boyut, sp ya da em olarak: verilmezse temanın footnote boyutudur. Bu boyutta da sığmayan yazı kayar.
singleLineBooleantrueAlanın tek satır tutup tutmadığı: tek satır kutunun enine sığdırılır. Aksi söylenmedikçe tek satır tutar. value içindeki bir satır sonu o zaman boşluk olarak gösterilir, value ise onu korur.
minLinesInt1Birkaç satırlı bir alanda kutunun en az kaç satır boyunda olduğu: satırlar yazının en büyük boyutunda sayılır.
maxLinesIntif (singleLine) 1 else Int.MAX_VALUEBirkaç satırlı bir alanda kutunun, yazısı küçülmeden önce en çok kaç satıra kadar uzadığı.
keyboardOptionsKeyboardOptionsKeyboardOptions.DefaultKlavyenin türü, büyük harfleri, düzeltmeleri ve eylem tuşu.
keyboardActionsKeyboardActionsKeyboardActions.DefaultKlavyenin eylem tuşunun, keyboardOptions'ın adlandırdığı eylem için ne yaptığı.
visualTransformationVisualTransformationVisualTransformation.NoneMetnin, değiştirilmeden nasıl gösterileceği: bir tutarın ayırıcıları gibi. Yazı gösterildiği hâliyle sığdırılır.
contentTypeContentType?nullPlatforma alanın ne tuttuğunu söyler, alanı o doldurabilsin diye.
styleFilledTextFieldStyle?nullBu çağrının kendi stili: çevresindeki her stili ezer, yoğunluk ona da uygulanır. Yalnızca verdiği alanlar değişir ve her platformda değişir.
colorsFilledTextFieldColors?nullBu çağrının kendi renkleri, temanın rollerinin yerine: verilenler kullanılır, gerisi temanın renklerinde kalır. Devre dışı bir alanın, ne verilirse verilsin dolgusu yoktur ve alan temanın devre dışı yazı rengiyle çizilir.
contentDescriptionString?nullEkran okuyucunun alan için söylediği: label verilmeyen alanın adıdır.
tagKeyString?nullAlanın otomasyon anahtarı: alan FilledAutoResizeTextField_<tagKey>, temizleme düğmesi FilledAutoResizeTextFieldClear_<tagKey> diye etiketlenir.
interactionSourceMutableInteractionSource?nullAlanın dışarı taşınan etkileşimleri. Null verilirse alan kendi kaynağını tutar.

field

Yazısı sığmak için küçülen, bir formun alanına bağlı dolgulu metin alanı: metni, hatası ve adı field'dan gelir.

ParametreTürVarsayılanNe olduğu
fieldFormField<String>Metin alanının gösterdiği ve değiştirdiği form alanı.
modifierModifierModifierAlanın bütününün modifier'ı.
formFormState?nullVerilirse klavyenin eylem tuşu formu, forma kayıtlı düğme üzerinden gönderir. Next ya da Previous eylemi odağı her zamanki gibi taşır. Eylem adlandırmayan tek satırlı bir alan ImeAction.Done alır, çünkü varsayılan eylem hiçbir işleyiciye ulaşmaz. Birkaç satırlı bir alan olduğu gibi bırakılır: orada Enter yeni satır açar. Çağıranın kendi onKeyboardAction'ı gönderimin yerine geçer.
enabledBooleantrueAlana yazılıp yazılamayacağı.
readOnlyBooleanfalseMetnin salt okunur olup olmadığı.
labelString?nullAlanın ne için olduğu. Kutunun içinde yazar ve ekran okuyucu için alanın adıdır.
placeholderString?nullAlan boşken ve etiketi yerinden çıkmışken yazının geleceği yerde, yazının boyutunda gösterilir.
supportingTextString?nullKutunun altındaki yardım metni: alanın orada gösterecek bir hatası olmadığı sürece.
leadingIcon(@Composable () -> Unit)?nullEtiketin ve metnin önünde durur.
trailingIcon(@Composable () -> Unit)?nullMetnin ve temizleme düğmesinin arkasında durur.
showClearButtonBooleanfalseAlana yazılabildiği ve alan boş olmadığı sürece, alanı boşaltan bir düğme gösterir.
maxLengthInt?nullKullanıcının girebileceği en çok karakter sayısı. Pozitif olmalıdır.
showCharacterCountBooleantruemaxLength verilmişken kutunun altında count/maxLength gösterir.
textStyleTextStyle?nullYazının en büyük hâlinin stili. Boş bıraktıkları, bir ağırlık daha kalın body stilinden gelir.
minFontSizeTextUnitPantrixTheme.typography.footnote.fontSizeYazının inebileceği en küçük boyut, sp ya da em olarak: verilmezse temanın footnote boyutudur.
lineLimitsTextFieldLineLimitsTextFieldLineLimits.SingleLineTek satır ya da TextFieldLineLimits.MultiLine: ikincisinde yazı, en çok satır sayısı geçilince küçülür. İkisinde de Tab odağı ilerletir.
keyboardOptionsKeyboardOptionsKeyboardOptions.DefaultKlavyenin türü, büyük harfleri, düzeltmeleri ve eylem tuşu.
onKeyboardActionKeyboardActionHandler?nullKlavyenin eylem tuşuna basılınca, formun gönderimi yerine çağrılır.
inputTransformationInputTransformation?nullKullanıcı yazarken metne yapılan işlem.
outputTransformationOutputTransformation?nullMetnin, değiştirilmeden nasıl gösterileceği. Yazı gösterildiği hâliyle sığdırılır.
contentTypeContentType?nullPlatforma alanın ne tuttuğunu söyler, alanı o doldurabilsin diye.
styleFilledTextFieldStyle?nullBu çağrının kendi stili: çevresindeki her stili ezer, yoğunluk ona da uygulanır. Yalnızca verdiği alanlar değişir ve her platformda değişir.
colorsFilledTextFieldColors?nullBu çağrının kendi renkleri, temanın rollerinin yerine: verilenler kullanılır, gerisi temanın renklerinde kalır. Devre dışı bir alanın, ne verilirse verilsin dolgusu yoktur ve alan temanın devre dışı yazı rengiyle çizilir.
contentDescriptionString?nulllabel verilmeyen alan için ekran okuyucunun söylediği.
interactionSourceMutableInteractionSource?nullAlanın dışarı taşınan etkileşimleri. Null verilirse alan kendi kaynağını tutar.

FilledTextFieldStyle

PantrixFilledTextField'ın kutusu: şekli, en az yüksekliği ve genişliği, içindekilerin çevresindeki boşluk, ikonları ve çerçevesi.

ParametreTürVarsayılanNe olduğu
shapeShapeSpecShapeSpec.UnspecifiedKutunun şekli. Tam yuvarlak bir şekil, ShapeRole.Full, yalnızca alan tek satır tutarken bir haptır: birkaç satırlı bir alan onun yerine ShapeRole.Large alır, çünkü bir kapsülün eğrisi metninin ilk satırına girer.
heightDpDp.UnspecifiedKutunun en az yüksekliği.
minWidthDpDp.UnspecifiedKutunun en az genişliği: boş bir alanın, kullanıcı içine yazdıkça genişlemesini önler.
horizontalPaddingDpDp.Unspecifiedİkon olmayan yerde, kutunun kenarı ile etiketi ve metni arasındaki boşluk.
verticalPaddingDpDp.UnspecifiedEtiketin satırının üstündeki ve metnin son satırının altındaki boşluk.
iconPaddingDpDp.UnspecifiedYuvasındaki bir ikonun çevresindeki boşluk.
iconSizeDpDp.UnspecifiedYuvadaki bir ikonun alması gereken boyut. Yuva, içine konanı boyutlandırmaz.
borderWidthDpDp.UnspecifiedKutunun odakta, hatada ve fare üstündeyken aldığı çerçevenin kalınlığı. Dinlenirken çerçevesi yoktur.
textRoleTypeRole?nullMetnin yazıldığı, etiketin dinlendiği ve yer tutucunun yazıldığı yazı ölçeği rolü: Android'de ve iOS'ta body, 16sp, Material 3'ün bir alana yazdığı gibi; masaüstünde ve web'de label, 14sp, işaretçiyle kullanılan bir sayfadaki gibi.

FilledTextFieldColors

Temanın renklerini almayan bir alan için PantrixFilledTextField'ın boyandığı renkler: verilen renk kullanılır, verilmeyen temadaki rolünde kalır. Bir ürün yalnızca değiştirdiği renkleri verir, başkasını vermez:

ParametreTürVarsayılanNe olduğu
containerColorColor.UnspecifiedDinlenirken kutunun dolgusu. Temanın neutral rolünün container'ı.
focusedContainerColorColor.UnspecifiedÇerçeveliyken kutunun dolgusu: odakta ve hatada. Temanın surface rengi.
hoveredOutlineColorColor.UnspecifiedFare üstündeyken çerçeve. Temanın borderHover rengi.
focusedOutlineColorColor.UnspecifiedAlan odaktayken çerçeve. Temanın primary rengi.
errorColorColor.UnspecifiedMetnin yanlış olduğunu söyleyenler: çerçeve, kutunun altındaki mesaj, imleç ve sınırını aştığında sayaç. Temanın danger rengi.
textColorColor.UnspecifiedYazılan metin. Temanın textPrimary rengi.
labelColorColor.UnspecifiedEtiket: hem dinlenirken yazının yerinde, hem yazının üstündeki kendi satırında. Temanın textSecondary rengi.
placeholderColorColor.UnspecifiedYer tutucu. Temanın textSecondary rengi.
supportingTextColorColor.UnspecifiedKutunun altındaki yardım metni ve sayaç. Temanın textSecondary rengi.
iconColorColor.UnspecifiedYuvadaki bir ikonun, kendi rengini vermedikçe çizildiği renk ve temizleme düğmesinin çarpısı. Temanın textSecondary rengi.
cursorColorColor.Unspecifiedİmleç ve onunla birlikte bir seçimin tutamaçları ile zemini. Temanın primary rengi.
scrollBarColorColor.UnspecifiedBirkaç satırlı bir kutunun metninin ne kadar kaydığını gösteren çubuk. Temanın borderStrong rengi: çubuk, kutunun dolgusunun üstünde bir işarettir ve bir kutunun yumuşak kenarı orada görünmezdi.