> ## Documentation Index
> Fetch the complete documentation index at: https://rive-ue-supported-platforms-20260610-update.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Text Modifiers

> Text Modifiers let you animate or transform individual characters, words, lines, or glyphs within a text object.

export const UseCase = ({title, children}) => {
  return <aside class="callout my-4 px-5 py-4 overflow-hidden rounded-2xl flex gap-3 border border-neutral-200 bg-neutral-50 dark:border-neutral-700 dark:bg-white/10" data-callout-type="info">
      <div class="mt-0.5 w-4" data-component-part="callout-icon">
        <svg width="11" height="14" viewBox="0 0 11 14" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="text-neutral-800 dark:text-neutral-300 w-3.5 h-auto" aria-label="Tip"><path d="M3.12794 12.4232C3.12794 12.5954 3.1776 12.7634 3.27244 12.907L3.74114 13.6095C3.88471 13.8248 4.21067 14 4.46964 14H6.15606C6.41415 14 6.74017 13.825 6.88373 13.6095L7.3508 12.9073C7.43114 12.7859 7.49705 12.569 7.49705 12.4232L7.50055 11.3513H3.12521L3.12794 12.4232ZM5.31288 0C2.52414 0.00875889 0.5 2.26889 0.5 4.78826C0.5 6.00188 0.949566 7.10829 1.69119 7.95492C2.14321 8.47011 2.84901 9.54727 3.11919 10.4557C3.12005 10.4625 3.12175 10.4698 3.12261 10.4771H7.50342C7.50427 10.4698 7.50598 10.463 7.50684 10.4557C7.77688 9.54727 8.48281 8.47011 8.93484 7.95492C9.67728 7.13181 10.1258 6.02703 10.1258 4.78826C10.1258 2.15486 7.9709 0.000106649 5.31288 0ZM7.94902 7.11267C7.52078 7.60079 6.99082 8.37878 6.6077 9.18794H4.02051C3.63739 8.37878 3.10743 7.60079 2.67947 7.11294C2.11997 6.47551 1.8126 5.63599 1.8126 4.78826C1.8126 3.09829 3.12794 1.31944 5.28827 1.3126C7.2435 1.3126 8.81315 2.88226 8.81315 4.78826C8.81315 5.63599 8.50688 6.47551 7.94902 7.11267ZM4.87534 2.18767C3.66939 2.18767 2.68767 3.16939 2.68767 4.37534C2.68767 4.61719 2.88336 4.81288 3.12521 4.81288C3.36705 4.81288 3.56274 4.61599 3.56274 4.37534C3.56274 3.6515 4.1515 3.06274 4.87534 3.06274C5.11719 3.06274 5.31288 2.86727 5.31288 2.62548C5.31288 2.38369 5.11599 2.18767 4.87534 2.18767Z"></path></svg>
      </div>
      <div class="text-sm prose dark:prose-invert min-w-0 w-full [&_kbd]:bg-background-light dark:[&_kbd]:bg-background-dark [&_code]:!text-current [&_kbd]:!text-current [&_a]:!text-current [&_a]:border-current [&_strong]:!text-current text-neutral-800 dark:text-neutral-300" data-component-part="callout-content">
        <strong>Example{title && ` - ${title}`}</strong>

        {children}
      </div>
    </aside>;
};

export const YouTube = ({id, timestamp}) => {
  const videoSrc = timestamp ? `https://www.youtube.com/embed/${id}?start=${timestamp}` : `https://www.youtube.com/embed/${id}`;
  return <iframe width="100%" height="400" src={videoSrc} title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen />;
};

By combining ranges, falloff, and animated offsets, you can create effects such as text reveals, wave animations, bouncing characters, and per-letter motion.

<YouTube id="RkahZjwf3aQ" />

## Modifier Group

A Text Modifier Group combines a **Range** and a set of **Properties**.

* **Properties** determine what changes, such as position, rotation, scale, opacity, or follow path.
* The **Range** determines which characters, words, or lines are affected.

A single modifier group can affect multiple properties that share the same range.

Multiple modifier groups can be combined to create layered effects. For example, one modifier group might animate character scale while another animates position.

### Adding a Modifier Group

Select a text object, then click the `+` button in the **Text Modifier** panel.

<img src="https://mintcdn.com/rive-ue-supported-platforms-20260610-update/nuqSIizJQxG6p8Ma/images/editor/text/text-runs-modifiers-create.gif?s=20843bf0f0b48cfc04336203a1b42766" alt="Create Text Modifier Groups via the Inspector" width="1000" height="391" data-path="images/editor/text/text-runs-modifiers-create.gif" />

### Properties

Properties determine how the text is modified.

Each modifier group can modify one or more of the following properties:

* **Position** - Move text along the X and Y axes.
* **Rotation** - Rotate text around its origin.
* **Scale** - Change the size of the text.
* **Origin** - Adjust the pivot point used for rotation and scale.
* **[Opacity](#opacity)** - Change the transparency of the text.
* **[Follow Path](#follow-path)** - Align text to a path and control how glyphs follow its direction.
* **Variables** - Adjust variable font axes such as weight or width. Requires a variable font that supports the selected axis.

Multiple properties can be combined within a single modifier group to create more complex effects.

#### Adding a Property

Select a text object, then click the `+` button in the **Modifier Group**. Each property has its own settings, which can be adjusted and animated.

<img src="https://mintcdn.com/rive-ue-supported-platforms-20260610-update/nuqSIizJQxG6p8Ma/images/editor/text/add-modifier-property.gif?s=baa763a588332d8c390be7d4a2883740" alt="Adding Properties" width="640" height="159" data-path="images/editor/text/add-modifier-property.gif" />

#### Opacity

The Opacity value controls the opacity of text within the modifier group's range.

The Invert option controls the opacity of text outside the range:

* Disabled: Text outside the range is fully transparent (0% opacity).
* Enabled: Text outside the range is fully visible (100% opacity).

<img src="https://mintcdn.com/rive-ue-supported-platforms-20260610-update/nuqSIizJQxG6p8Ma/images/editor/text/invert-opacity.gif?s=1904a7ae1f1cef3dcfe97b524f589d7f" alt="Invert Opacity" width="640" height="170" data-path="images/editor/text/invert-opacity.gif" />

#### Follow Path

<Info>
  To make non-text objects follow a path, use the [Follow Path Constraint](/editor/constraints/follow-path-constraint) instead.
</Info>

The Follow Path modifier allows text to follow the shape of a vector path. This can be used to create curved text, circular text layouts, or animated text that moves along a path.

<img src="https://mintcdn.com/rive-ue-supported-platforms-20260610-update/nuqSIizJQxG6p8Ma/images/editor/text/follow-path.gif?s=1bf6d350642a4f9301d6d9e420c8b895" alt="Follow Path Modifier" width="640" height="231" data-path="images/editor/text/follow-path.gif" />

* **Follow** - The path to follow.
* **Trim Start and End** - Defines where text begins and stops following the path. Text outside the trimmed section continues from the nearest trim point in the direction the path is facing.
* **Offset** - Where along the path to start.
* **Strength** - Controls how strongly the text follows the path. At 0%, text stays in its original position. At 100%, text follows the path completely. Animate Strength to transition text onto or off of a path.
* **Auto Orient Glyphs** - Make the rotation of the glyph follow the path.
* **Auto Orient Lines** - Rotates each line to follow the direction of the path.

### Range

The range can be defined as a percentage of the text length or as an index value.

Ranges can be applied by character, word, or line. Open the Range Options fly-out to configure the range behavior.

<UseCase>
  A range with a start value of 0% and an end value of 50% affects only the first half of the text. If the modifier group applies a scale of 25%, only glyphs within the first half of the text will be scaled.
</UseCase>

You can see a visual representation of the range via a shaded area on the stage. You can configure the stage visual options in the visibility menu on the toolbar.

<img src="https://mintcdn.com/rive-ue-supported-platforms-20260610-update/nuqSIizJQxG6p8Ma/images/editor/text/text-runs-modifiers-range.gif?s=92e3d68b1da4803dd68944c7d8f0f4f7" alt="Apply transforms to the target text range" width="1000" height="485" data-path="images/editor/text/text-runs-modifiers-range.gif" />

Multiple ranges can be added to a single modifier group to create complex effects.

#### Run

Determines whether the modifier is applied to the entire text object or only to a specific text run.

When a text object contains multiple text runs, modifiers can be limited to a single run instead of affecting all text.

#### Falloff

Use the falloff values to add interpolation to the applied modifier properties. For example, a modifier group that scales glyphs to 200% with a range from 0% to 100% and a falloff of 25% to 75% will gradually scale glyphs up from 100% to 200% over the first quarter of the text, and back down again over the last quarter of the text.

The falloff can be visualized via the darker shading on the stage guide.

<img src="https://mintcdn.com/rive-ue-supported-platforms-20260610-update/nuqSIizJQxG6p8Ma/images/editor/text/text-runs-modifiers-fallof.gif?s=4b3dc1bd710d9720d1155798945f4eb6" alt="Use falloff to interpolate applied modifier properties" width="1000" height="475" data-path="images/editor/text/text-runs-modifiers-fallof.gif" />

#### Offset

Use Offset to move the range along the text. Try animating the offset value to create wipe effects along a text value. For example, a scale modifier can animate the offset to make individual glyphs scale up and back down again.

<img src="https://mintcdn.com/rive-ue-supported-platforms-20260610-update/nuqSIizJQxG6p8Ma/images/editor/text/text-runs-modifiers-offset.gif?s=8bd41db107a407724c098db3c8de3036" alt="Text Runs Modifiers Offset" width="1000" height="471" data-path="images/editor/text/text-runs-modifiers-offset.gif" />

#### Range Options

Additional range options can be found in the fly-out alongside the range name for more fine-grained control over the range selection behavior.

**Increment**

Define whether modifier properties get applied by:

* Characters (with or without spaces)
* Words
* Lines

<Info>
  The increment value will affect an index-based Range Type.
</Info>

**Mode**

Defines how modifier values are combined when multiple ranges overlap.

For example, if two overlapping ranges each apply a scale of 200%, an **Add** mode would combine them to produce a scale of 400%.

<Info>
  Turn on Modifier Range Values in the visibility menu to get a numerical indication of how much a Text Modifier is affecting glyphs.
</Info>

**Strength**

Adjust the overall influence of the modifier within the range. A value of 0% disables the modifier, while 100% applies its full effect.

**Range Type**

Set the range type to configure range start, end, and offset values as a percentage of the text length, or by indices. You may also want to consider which increment value to use alongside the Range Type. For example, an index value of 1 incremented by characters will target the second character, whereas an index value of 1 incremented by words will target the start of the second word.

**Falloff Interpolation**

Modify the falloff interpolation to define a custom cubic curve. The falloff defaults to linear interpolation.

## View Options

Toggle visual guides on the stage via the visibility menu in the toolbar:

* Text Modifier Range: Toggle the display of a shaded area on the stage to highlight the range position on a selected text object.
* Text Modifier Range Values: Toggle the display of per-glyph values on modifier ranges to indicate the applied strength of a given modifier.

<img src="https://mintcdn.com/rive-ue-supported-platforms-20260610-update/nuqSIizJQxG6p8Ma/images/editor/text/text-runs-modifiers-options.gif?s=1c2657fbca64426c74149a7a042d5876" alt="Text Runs Modifiers View Options" width="1000" height="426" data-path="images/editor/text/text-runs-modifiers-options.gif" />

## Use case: Animating a text pendulum

This simple example will get you used to animating with Text Modifiers.

<YouTube id="Wec_F45NLoY" />
