SusHoldButton

Press-and-hold control — completes only after HoldDurationMs with progress feedback.
Package
SusKit · Atoms (commercial)
SusKit · Atoms
Props
| Name | Type | Default | |
|---|---|---|---|
Text | Prop<string> | "Hold" | |
Icon | Prop<string> | "" | |
Variant | Prop<string> | "elevated" | |
Color | Prop<string> | "primary" | |
Size | Prop<string> | "default" | |
Disabled | Prop<bool> | false | |
Block | Prop<bool> | false | |
HoldDurationMs | Prop<int> | 1000 | |
DelayMs | Prop<int> | 0 | |
ProgressMode | Prop<string> | "strip" | |
CancelRewindMs | Prop<int> | 180 | |
CompletedHoldMs | Prop<int> | 600 | |
AutoResetCompleted | Prop<bool> | true | |
IsHolding | Prop<bool> | false | |
Progress | Prop<float> | 0f | |
Phase | Prop<string> | "idle" |
Slots
No slots.
Events
| Name | Field | Payload |
|---|---|---|
Click | OnClick | — |
HoldComplete | OnHoldComplete | — |
HoldCancel | OnHoldCancel | — |
HoldProgress | OnHoldProgress | float |
Style hooks
USS class contract — override appearance without touching C#. States toggle via these classes:
keyboard-focussus-hold-buttonsus-hold-button__contentsus-hold-button__fillsus-hold-button__iconsus-hold-button__labelsus-hold-button__ringsus-hold-button__tracksus-hold-button--blocksus-hold-button--color-dangersus-hold-button--color-infosus-hold-button--color-primarysus-hold-button--color-secondarysus-hold-button--color-successsus-hold-button--color-warningsus-hold-button--content-sizedsus-hold-button--disabledsus-hold-button--elevatedsus-hold-button--flatsus-hold-button--holdingsus-hold-button--icon-onlysus-hold-button--mode-fillsus-hold-button--mode-ringsus-hold-button--mode-stripsus-hold-button--outlinedsus-hold-button--phase-armedsus-hold-button--phase-cancelledsus-hold-button--phase-completedsus-hold-button--phase-holdingsus-hold-button--phase-idlesus-hold-button--size-defaultsus-hold-button--size-lgsus-hold-button--size-smsus-hold-button--textsus-hold-button--tonal
Usage
xml
<template>
<sus:SusHoldButton Text="Confirm delete"
Color="danger"
Variant="elevated"
HoldDurationMs="1200"
ProgressMode="strip"
@hold-complete="OnConfirmed" />
</template>
<script>
void OnConfirmed() { /* … */ }
</script>csharp
var hold = new SusHoldButton();
hold.Text.Value = "Hold to sell";
hold.HoldDurationMs.Value = 1000;
hold.ProgressMode.Value = "strip";
hold.OnHoldComplete += () => { /* … */ };
hold.OnHoldCancel += () => { /* … */ };Notes
ProgressMode:strip·ring.OnClickfires on a normal click; hold success isOnHoldComplete.