Skip to content

SusTextfield

SusTextfield

Single-line text input with label, variants, and clear / prepend / append affordances.

Package

SusKit · Atoms (commercial)

Open in Playground

SusKit · Atoms

Props

NameTypeDefault
ModelProp<string>""v-model
LabelProp<string>""v-model
VariantProp<string>"filled"v-model
PlaceholderProp<string>""v-model
PrefixProp<string>""v-model
SuffixProp<string>""v-model
PrependIconProp<string>""v-model
PrependInnerIconProp<string>""v-model
AppendIconProp<string>""v-model
AppendInnerIconProp<string>""v-model
ClearableProp<bool>falsev-model
PersistentClearProp<bool>falsev-model
ClearIconProp<string>"x"v-model
MaxLengthProp<int>0v-model
CounterProp<bool>falsev-model
DisabledProp<bool>falsev-model
ReadonlyProp<bool>falsev-model
MultilineProp<bool>falsev-model
RowsProp<int>1v-model
MaxRowsProp<int>0v-model
AutoGrowProp<bool>falsev-model
NoResizeProp<bool>falsev-model
DensityProp<string>"default"v-model
ErrorProp<string>""v-model
HintProp<string>""v-model
PersistentHintProp<bool>falsev-model
HideDetailsProp<string>"auto"v-model
FocusedProp<bool>falsev-model
ResizableProp<bool>truev-model
PasswordProp<bool>falsev-model
ColorProp<string>"primary"v-model
BaseColorProp<string>""v-model
BgColorProp<string>""v-model
LoadingProp<bool>falsev-model
FlatProp<bool>falsev-model
RoundedProp<string>""v-model
TileProp<bool>falsev-model
CenterAffixProp<bool>falsev-model
DirtyProp<bool>falsev-model
SingleLineProp<bool>falsev-model

Slots

Name
prepend
append

Events

NameFieldPayload
ChangeOnChangestring
FocusEventOnFocusEvent
BlurEventOnBlurEvent

Style hooks

USS class contract — override appearance without touching C#. States toggle via these classes:

  • keyboard-focus
  • sus-textfield
  • sus-textfield__append-icon
  • sus-textfield__append-inner-icon
  • sus-textfield__append-inner-icon--has-icon
  • sus-textfield__clear
  • sus-textfield__clear--visible
  • sus-textfield__control
  • sus-textfield__counter
  • sus-textfield__details
  • sus-textfield__details--hidden
  • sus-textfield__error
  • sus-textfield__field
  • sus-textfield__field-area
  • sus-textfield__hint
  • sus-textfield__icon
  • sus-textfield__input
  • sus-textfield__input-row
  • sus-textfield__label
  • sus-textfield__label--active
  • sus-textfield__label--floating
  • sus-textfield__loader
  • sus-textfield__loader--active
  • sus-textfield__messages
  • sus-textfield__prefix
  • sus-textfield__prepend-icon
  • sus-textfield__prepend-inner-icon
  • sus-textfield__prepend-inner-icon--has-icon
  • sus-textfield__resize
  • sus-textfield__resize--active
  • sus-textfield__suffix
  • sus-textfield--auto-grow
  • sus-textfield--center-affix
  • sus-textfield--density-comfortable
  • sus-textfield--density-compact
  • sus-textfield--dirty
  • sus-textfield--disabled
  • sus-textfield--error
  • sus-textfield--filled
  • sus-textfield--flat
  • sus-textfield--focused
  • sus-textfield--has-label
  • sus-textfield--has-value
  • sus-textfield--loading
  • sus-textfield--multiline
  • sus-textfield--no-resize
  • sus-textfield--outlined
  • sus-textfield--plain
  • sus-textfield--readonly
  • sus-textfield--rounded-0
  • sus-textfield--rounded-circle
  • sus-textfield--rounded-lg
  • sus-textfield--rounded-pill
  • sus-textfield--rounded-sm
  • sus-textfield--rounded-xl
  • sus-textfield--rounded-xs
  • sus-textfield--single-line
  • sus-textfield--solo
  • sus-textfield--solo-filled
  • sus-textfield--solo-inverted
  • sus-textfield--textarea
  • sus-textfield--tile
  • sus-textfield--underlined
  • unity-base-text-field
  • unity-base-text-field__input
  • unity-base-text-field__placeholder
  • unity-base-text-field__text-element
  • unity-label
  • unity-text-element
  • unity-text-field
  • unity-text-field__label
  • unity-text-field__placeholder

Usage

xml
<template>
  <sus:SusTextfield Label="Email"
                    Variant="outlined"
                    :Model="Email.Value"
                    Placeholder="you@example.com"
                    Clearable="true"
                    PrependInnerIcon="envelope"
                    @change="OnEmail" />
</template>

<script>
public Prop<string> Email = new("");
void OnEmail(string value) { /* … */ }
</script>
csharp
var field = new SusTextfield();
field.Label.Value = "Display name";
field.Variant.Value = "filled";
field.Model.Value = "";
field.MaxLength.Value = 32;
field.Counter.Value = true;
field.OnChange += value => { /* … */ };

Variant

filled · outlined · underlined · plain · solo · solo-inverted · solo-filled

Notes

  • Password masks input; Multiline + Rows / AutoGrow for longer text.
  • Error / Hint / HideDetails follow the shared form-field pattern.