Interface ISplitTextStaticProps

interface ISplitTextStaticProps {
    __staticProp?: true;
    ariaLabel?: string | boolean;
    container: HTMLElement;
    ignore?: null | string | HTMLElement[] | (element: HTMLElement) => boolean;
    letterClass?: string;
    letters?: boolean;
    letterTag?: keyof HTMLElementTagNameMap;
    lineClass?: string;
    lines?: boolean;
    linesWrapper?: boolean;
    lineTag?: keyof HTMLElementTagNameMap;
    lineWrapperClass?: string;
    prepareText?: (text: string) => string;
    resizeDebounce?: number;
    wordClass?: string;
    wordDelimiter?: string;
    wordDelimiterOutput?: null | string;
    wordTag?: keyof HTMLElementTagNameMap;
}

Hierarchy (View Summary)

Properties

__staticProp?: true
ariaLabel?: string | boolean

Accessible label for the container after splitting.

  • true — uses textContent as aria-label
  • false — does not set aria-label
  • string — uses the provided value
true
container: HTMLElement

Container whose text content is split.

ignore?: null | string | HTMLElement[] | (element: HTMLElement) => boolean

Elements excluded from splitting (selector, list, or predicate).

null
letterClass?: string

CSS class for letter elements.

{prefix}__letter

letters?: boolean

Split each word into individual letter elements.

false
letterTag?: keyof HTMLElementTagNameMap

HTML tag for letter wrappers.

span

lineClass?: string

CSS class for line elements.

{prefix}__line

lines?: boolean

Group words into line elements (reflows on resize).

false
linesWrapper?: boolean

Wrap each line in an extra element (useful for mask animations).

false
lineTag?: keyof HTMLElementTagNameMap

HTML tag for line wrappers.

span

lineWrapperClass?: string

CSS class for line wrapper elements.

{prefix}__line-wrapper

prepareText?: (text: string) => string

Preprocesses text before word splitting (e.g. CJK segmentation).

const segmenter = new Intl.Segmenter('zh', { granularity: 'word' });

const instance = new SplitText({
container,
prepareText: (source) => [...segmenter.segment(source)].map((s) => s.segment).join(' '),
});
resizeDebounce?: number

Debounce delay for resize-driven line reflow (ms).

0
wordClass?: string

CSS class for word elements.

{prefix}__word

wordDelimiter?: string

Delimiter used to split text into words.

whitespace
wordDelimiterOutput?: null | string

Delimiter inserted between words in the DOM (defaults to wordDelimiter).

null
wordTag?: keyof HTMLElementTagNameMap

HTML tag for word wrappers.

span