К содержимому

SusTextFx

SusTextFx

Поглифные эффекты текста (wave/shake/rainbow/bounce/fade/wiggle) через инлайн-теги и Reveal01 typewriter — бюджет MaxAnimatedChars; обычный rich text UITK снаружи fx-прогонов не ломается.

Пакет

SusKit · Атомы (коммерческий)

Открыть в песочнице

SusKit · Atoms

Свойства

ИмяТипПо умолчанию
TextProp<string>""v-model
EnabledProp<bool>true
SpeedProp<float>1f
Reveal01Prop<float>1f
RevealCharsPerSecondProp<float>0f
MaxAnimatedCharsProp<int>200

Слоты

Слотов нет.

События

ИмяПолеPayload
RevealCompletedOnRevealCompleted

Хуки стиля

Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:

  • 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

Использование

Инлайн-теги анимируют отдельные глифы. Неизвестные теги и обычный UITK rich text (<b>, <color>) проходят снаружи fx-прогона; внутри fx-прогона нативный rich text в 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 / APIРоль
Textисточник с опциональными fx-тегами (wave / shake / rainbow / bounce / fade / wiggle)
Enabledfalse ⇒ один 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.