You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

react-smart-ticker

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-smart-ticker

React component that transforms child elements into a ticker (marquee)

1.6.5
latest
npmnpm
Version published
Weekly downloads
40
-72.03%
Maintainers
1
Weekly downloads
 
Created
Source

React Smart Ticker Demo

React Smart Ticker

NPM Type Definitions npm package minimized gzipped size Codecov GitHub License

React Smart Ticker is a React component that automatically displays text as a scrolling ticker/marquee when it overflows the container.

Demo

https://eugen-k.github.io/react-smart-ticker-demo/

Features

  • Multiline support
  • Can be used as a ticker/marquee for any element e.g. text, images, HTML blocks
  • Optionally draggable
  • Supports RTL
  • Highly customizable
  • Zero dependency

SmartTicker and SmartTickerDraggable component differences

SmartTicker

  • uses CSS based animation
  • can be played or paused by click

SmartTickerDraggable

  • uses requestAnimationFrame() based animation
  • draggable
  • has backward animation
  • can have a delay before animating back to the start position

[!IMPORTANT] For complex elements (e.g. images) is recommended to use SmartTicker component as browsers are performing better using CSS-based animation.

Installation

NPM

npm install react-smart-ticker --save

Yarn

yarn add react-smart-ticker

Usage

Import SmartTicker or SmartTickerDraggable to a file depending on intended use:

import { SmartTicker } from 'react-smart-ticker'
import { SmartTickerDraggable } from 'react-smart-ticker'

Or import them both:

import { SmartTicker, SmartTickerDraggable } from 'react-smart-ticker'

Then in your .jsx or .tsx file use it as a simple React component:

import { SmartTicker, SmartTickerDraggable } from 'react-smart-ticker'

const App = () => (
  <>
    <SmartTicker>Some text</SmartTicker>
    <SmartTickerDraggable>Some draggable text</SmartTickerDraggable>
  </>
)

export default App

Props

Prop NameTypeRequiredDefaultDescription
smartbooleanNotrueSmart mode that determines if that's enough space to fit the content of the ticker, and if it's enough the animation will be turned off until the contents change
isTextbooleanNotrueDetermines if the content contains only text which allows showing ellipses when text content isn't fitted into the container
multiLinenumberNo0Determines the maximum amount of lines within a text content. Sets direction to "top"
waitForFontsbooleanNotrueRun the calculation only when fonts are loaded
speednumberNo60Scrolling speed in pixels per second
delaynumberNo0Delay before starting the animation (in milliseconds)
⚠️ delayBacknumberNo0Delay before back animation (in milliseconds). Requires infiniteScrollView prop to be false ⚠️ SmartTickerDraggable prop only
⚠️ speedBacknumberNo200Scrolling speed in pixels per second for back animation. Requires infiniteScrollView prop to be false ⚠️ SmartTickerDraggable prop only
iterationsnumber | "infinite"No"infinite"Amount of animation iterations second
infiniteScrollViewbooleanNotrueDetermines if the content will repeated one by one during scrolling animation
autoFillbooleanNofalseFlag to determine if ticker content should be copied and fill in all the container's space
direction"left" | "right" | "top" | "bottom"No"left"The direction in which the ticker will be moving
rtlbooleanNofalseAligns text content to the right. The default direction of animation will be switched to 'right'
pauseOnHoverbooleanNofalsePause animation on hover
playOnHoverbooleanNofalsePlay animation on hover
⚠️ pauseOnClickbooleanNofalsePause animation on click ⚠️ SmartTicker prop only
⚠️ playOnClickbooleanNofalsePlay animation on click ⚠️ SmartTicker prop only
⚠️ disableDraggingbooleanNofalseDisables ticker dragging possibility ⚠️ SmartTickerDraggable prop only
recalcDeps[]No[]Array of dependencies that trigger recalculation of the component
disableSelectbooleanNofalseControls the possibility of a user to select text in a ticker
styleCSSPropertiesNonullTicker component custom CSS styles
containerStyleCSSPropertiesNonullTicker container component custom CSS styles
forwardedRefForwardedRefNonullForwareded Ref for controlling the animation state

Controlling the Play, Pause snd Reset States

The components provide methods for developers to control the ticker’s play, pause and resets state programmatically. These methods are accessible via forwardedRef and allow you to start, stop and reset the ticker based on your app’s requirements.

Exposed Methods

To enable control over play and pause, react-smart-ticker uses forwardRef. The component exposes the following methods:

  • play(): Starts the ticker animation.
  • pause(): Pauses the ticker animation.
  • reset(isPaused: boolean): Resets the ticker animation. isPaused (true by default) flag sets the animation state after resetting.

Usage

To use these methods, you need to: 1. Create a reference using useRef. 2. Attach the ref to the SmartTicker component. 3. Call the play and pause methods directly from the ref.

Example

Here’s an example of setting up and using play and pause with react-smart-ticker:

import { useRef } from 'react';
import SmartTicker from 'react-smart-ticker';

function App() {
  // Create a ref to access SmartTicker methods
  const tickerRef = useRef<{
    play: () => void
    pause: () => void
    reset: (isPaused: boolean) => void
  }>(null)

  // Define handlers to control the ticker
  const handlePlay = () => {
    tickerRef.current?.play()
  }

  const handlePause = () => {
    tickerRef.current?.pause()
  }

  const handleReset = (isPaused: boolean = true) => {
    tickerRef.current?.reset(isPaused)
  }

  return (
    <div>
      <SmartTicker forwardedRef={tickerRef}>
        <p>Your ticker content goes here</p>
      </SmartTicker>

      <button onClick={() => { handlePlay() }}>Play</button>
      <button onClick={() => { handlePause() }}>Pause</button>
      <button onClick={() => { handleReset(true) }}>Reset (w/pause)</button>
    </div>
  )
}

export default App;

Licence

This project is licensed under the MIT License - see the LICENSE file for details.

Keywords

ticker

FAQs

Package last updated on 05 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts