Skip to content

SusTextFx

SusTextFx

Per-glyph text effects (wave/shake/rainbow/bounce/fade/wiggle) via inline tags, plus Reveal01 typewriter — budget MaxAnimatedChars; plain UITK rich text still works outside fx runs.

Package

SusKit · Atoms (commercial)

Open in Playground

SusKit · Atoms

Props

NameTypeDefault
TextProp<string>""v-model
EnabledProp<bool>true
SpeedProp<float>1f
Reveal01Prop<float>1f
RevealCharsPerSecondProp<float>0f
MaxAnimatedCharsProp<int>200

Slots

No slots.

Events

NameFieldPayload
RevealCompletedOnRevealCompleted

Style hooks

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

  • sus-text-fx
  • sus-text-fx__glyph
  • sus-text-fx__glyph--hidden
  • sus-text-fx__line
  • sus-text-fx__plain
  • sus-text-fx__space
  • sus-text-fx__word

Usage

Inline tags animate individual glyphs. Unknown tags and ordinary UITK rich text (<b>, <color>) pass through outside an fx run; inside an fx run, native rich text is not supported in v1.

xml
<template>
  <SusTextFx Text="Hello <wave>world</wave> — <shake a=&quot;2&quot;>quake</shake>" />
</template>
csharp
var fx = new SusTextFx();
fx.Text.Value = "Loot: <rainbow>Legendary</rainbow>";
fx.Reveal01.Value = 0f;
fx.RevealCharsPerSecond.Value = 40f; // typewriter; 0 = drive Reveal01 yourself
fx.OnRevealCompleted = () => { /* line finished */ };
Prop / APIRole
TextSource with optional fx tags (wave / shake / rainbow / bounce / fade / wiggle)
Enabledfalse ⇒ single plain Label, no glyphs, no ticker
SpeedGlobal time multiplier for fx phase
Reveal010…1 fraction of glyphs shown
RevealCharsPerSecondAuto-advance Reveal01; 0 = external drive
MaxAnimatedCharsBudget (default 200); over ⇒ static render + one Warn
OnRevealCompletedFires once when reveal reaches the end

Notes

  • Storybook story Text Fx (text-fx).
  • Hub shot kit-text-fx.png — showcase, captured live from Play mode.