SusTextFx

Поглифные эффекты текста (wave/shake/rainbow/bounce/fade/wiggle) через инлайн-теги и Reveal01 typewriter — бюджет MaxAnimatedChars; обычный rich text UITK снаружи fx-прогонов не ломается.
Пакет
SusKit · Атомы (коммерческий)
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
Text | Prop<string> | "" | v-model |
Enabled | Prop<bool> | true | |
Speed | Prop<float> | 1f | |
Reveal01 | Prop<float> | 1f | |
RevealCharsPerSecond | Prop<float> | 0f | |
MaxAnimatedChars | Prop<int> | 200 |
Слоты
Слотов нет.
События
| Имя | Поле | Payload |
|---|---|---|
RevealCompleted | OnRevealCompleted | — |
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
sus-text-fxsus-text-fx__glyphsus-text-fx__glyph--hiddensus-text-fx__linesus-text-fx__plainsus-text-fx__spacesus-text-fx__word
Использование
Инлайн-теги анимируют отдельные глифы. Неизвестные теги и обычный UITK rich text (<b>, <color>) проходят снаружи fx-прогона; внутри fx-прогона нативный rich text в v1 не поддерживается.
xml
<template>
<SusTextFx Text="Hello <wave>world</wave> — <shake a="2">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 / API | Роль |
|---|---|
Text | источник с опциональными fx-тегами (wave / shake / rainbow / bounce / fade / wiggle) |
Enabled | false ⇒ один plain Label, без глифов и тикера |
Speed | глобальный множитель времени для фазы fx |
Reveal01 | доля показанных глифов 0…1 |
RevealCharsPerSecond | авто-продвижение Reveal01; 0 = внешний драйв |
MaxAnimatedChars | бюджет (по умолчанию 200); сверх ⇒ статичный рендер + один Warn |
OnRevealCompleted | один раз, когда reveal доходит до конца |
Заметки
- Storybook story Text Fx (
text-fx). - Hub shot
kit-text-fx.png— витрина, снято в Play mode.