JSPM

  • Created
  • Published
  • Downloads 6455
  • Score
    100M100P100Q124169F
  • License MIT

react scramble text hook

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (use-scramble) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    useScramble

    A lightweight (1KB), high performance, react-hook for random text animations.

    The hook receives a set of parameteres that allows you to customize the pace, and style of the animation.

    Development

      yarn dev

    Will start the playground minisite at http://localhost:1234 and build the library on watch mode


    Usage

    Install to your react application

      npm install use-scramble

    Import and call the useScramble hook

    The hook returns a ref object, that you must apply to the target node, for the animation to take over.

    import { useScramble } from 'use-scramble';
    
    export const App = () => {
      const { ref } = useScramble({
        text: 'Achilles next, that nimble runner, swift on his feet as the wind',
        speed: 0.6,
        tick: 1,
        step: 1,
        scramble: 4,
        seed: 0,
      });
    
      return <p ref={ref} />;
    };

    Manual replay

    Along with the ref, the hook returns a replay function, that you can call to start the animation manually.

    You can also disable the first animation, by setting the playOnMount to false.

    import { useScramble } from 'use-scramble';
    
    export const App = () => {
      const { ref, replay } = useScramble({
        text: 'Achilles next, that nimble runner, swift on his feet as the wind',
        playOnMount: false
      });
    
      return <p ref={ref} onMouseOver={replay} onMouseOut={replay} />;
    };

    API Reference

    Property type default range description
    playOnMount boolean true Skip the animation on the first mount input
    text string - Set the text value of the animation. The animation, will start automatically.
    speed number 1 0-1 Internal clock framerate. 1 will tick 60 times a second. 0 will pause the animation
    tick number 1 1-∞ Controls how many ticks pass for an animation redraw. Combined with speed, you can fully control the pace rate
    step number 1 1-∞ Controls the animation step. On every redraw, the algorithm moves forward, by step characters.
    scramble number 1 0-∞ Controls how many times to randomize each character. A value of 0 will emulate a typewriter effect.
    seed number 1 0-∞ The seed, adds randomized characters ahead of the animation step, animating characters across the text block.
    chance number 1 0-1 Chance of scrambling a character, range from 0 to 1, 0 being no chance, and 1 being 100% chance.
    range number[] [65,125] Unicode characters range to select random characters from
    overdrive boolean, number true Defaults to underscore (95) unicode character, or provide a custom unicode value
    overflow boolean true Overflow, animates over the previous text, and when false resets the text contents, and restarts the animation from an empty string.
    ignore string[] [" "] Ignore specific characters when animating a string. By default only spaces are ignored, used to maintain the shape of the text.
    onAnimationStart function - callback invoked when the animation starts playing
    onAnimationFrame function - callback invoked on every redraw
    onAnimationEnd function - callback invoked on when the animation ends

    Return Values

    Along with the ref the return value, contains a replay function, that you can invoke to restart the animation.

    const { ref, replay } = useScramble({ text: 'your_text' });
    
    return <p ref={ref} onclick={replay} />;

    Reduced Motion

    If the user has requested to minimize non-essential motion with prefers-reduced-motion:reduce, the animation is entirely disabled.

    Unicode Values

    Glyph Unicode Description
      32 Space mark
    ! 33 Exclamation mark
    " 34 Quotation mark
    # 35 Hash
    $ 36 Dollar sign
    % 37 Percent sign
    & 38 Ampersand
    ' 39 Apostrophe
    ( 40 Left parenthesis
    ) 41 Right parenthesis
    * 42 Asterisk
    + 43 Plus sign
    "," 44 Comma
    - 45 Hyphen-minus
    . 46 Full stop
    / 47 Slash (Solidus)
    0 48 Digit Zero
    1 49 Digit One
    2 50 Digit Two
    3 51 Digit Three
    4 52 Digit Four
    5 53 Digit Five
    6 54 Digit Six
    7 55 Digit Seven
    8 56 Digit Eight
    9 57 Digit Nine
    : 58 Colon
    ; 59 Semicolon
    < 60 Less-than sign
    = 61 Equal sign
    > 62 Greater-than sign
    ? 63 Question mark
    @ 64 At sign
    A 65 Latin Capital letter A
    B 66 Latin Capital letter B
    C 67 Latin Capital letter C
    D 68 Latin Capital letter D
    E 69 Latin Capital letter E
    F 70 Latin Capital letter F
    G 71 Latin Capital letter G
    H 72 Latin Capital letter H
    I 73 Latin Capital letter I
    J 74 Latin Capital letter J
    K 75 Latin Capital letter K
    L 76 Latin Capital letter L
    M 77 Latin Capital letter M
    N 78 Latin Capital letter N
    O 79 Latin Capital letter O
    P 80 Latin Capital letter P
    Q 81 Latin Capital letter Q
    R 82 Latin Capital letter R
    S 83 Latin Capital letter S
    T 84 Latin Capital letter T
    U 85 Latin Capital letter U
    V 86 Latin Capital letter V
    W 87 Latin Capital letter W
    X 88 Latin Capital letter X
    Y 89 Latin Capital letter Y
    Z 90 Latin Capital letter Z
    [ 91 Left Square Bracket
    \ 92 Backslash
    ] 93 Right Square Bracket
    ^ 94 Circumflex accent
    _ 95 Low line
    ` 96 Grave accent
    a 97 Latin Small Letter A
    b 98 Latin Small Letter B
    c 99 Latin Small Letter C
    d 100 Latin Small Letter D
    e 101 Latin Small Letter E
    f 102 Latin Small Letter F
    g 103 Latin Small Letter G
    h 104 Latin Small Letter H
    i 105 Latin Small Letter I
    j 106 Latin Small Letter J
    k 107 Latin Small Letter K
    l 108 Latin Small Letter L
    m 109 Latin Small Letter M
    n 110 Latin Small Letter N
    o 111 Latin Small Letter O
    p 112 Latin Small Letter P
    q 113 Latin Small Letter Q
    r 114 Latin Small Letter R
    s 115 Latin Small Letter S
    t 116 Latin Small Letter T
    u 117 Latin Small Letter U
    v 118 Latin Small Letter V
    w 119 Latin Small Letter W
    x 120 Latin Small Letter X
    y 121 Latin Small Letter Y
    z 122 Latin Small Letter Z
    { 123 Left Curly Bracket
    | 124 Vertical bar
    } 125 Right Curly Bracket
    ~ 126 Tilde