To make a scrolling LED display in your browser, enter a short message into the LED Scroller, choose one of the three fixed speed presets (slow, medium, or fast), pick a travel direction (right to left or left to right), and set a text size between 32 and 96 CSS pixels. Press Start scrolling to launch the preview; the tool then renders a large monospaced banner that loops across a clean track using CSS keyframes, and nothing leaves the current tab. The visible banner is LED-style rather than a simulation of a particular dot-matrix panel, which means it relies on the fonts your browser has available and a CSS-based timing model rather than a physical refresh rate. The page also honors the operating system's prefers-reduced-motion setting, so on devices that request calmer interfaces the banner stays paused and you still keep full control of the message. Editing any input clears the current preview so the on-screen banner can never silently disagree with the controls, and the page is intentionally designed so that a moving decorative banner is never the only channel for an emergency or accessibility notice.

The LED Scroller Preview at a Glance
The LED Scroller turns a single line of text into a moving banner that loops in your browser tab. It uses large monospaced browser text, increased character spacing, the site's own color tokens, and a clean horizontal track — the result looks like a familiar moving marquee rather than a piece of physical hardware.
That distinction matters because the preview is honest about its scope. It is not a simulation of a named dot-matrix font, an electrical refresh rate, a pixel pitch, a brightness level, a physical sign controller, or a manufacturer protocol. The rendered shape depends on the fonts installed in the browser. If a project needs exact signage dimensions, certified brightness, remote scheduling, or hardware export, the right answer is the software supplied with that physical display, not this widget.
For everything else — quick handheld signs, event cues, desk messages, presentation prompts, photo props, and visual attention signals — a browser preview is enough, and that is the gap the LED Scroller fills.
Inputs, Limits, and What the Validator Rejects
Before any animation can start, the message is validated against a strict rule set so the preview never lies about its content.
- Empty input is rejected. A message must contain at least one character after outer whitespace is trimmed.
- Outer whitespace is removed. Leading and trailing spaces do not appear in the visible banner.
- Control characters, line breaks, and Unicode line or paragraph separators are rejected. The banner is one line, so invisible separators would create confusing output.
- 120-character ceiling. A message may contain up to 120 Unicode code points. Emoji, accented letters, punctuation, and non-Latin scripts each count as one character rather than raw UTF-16 units, so a single emoji is not incorrectly counted as two.
- No silent rewrites. The tool does not shorten over-limit messages, replace unsupported text, convert case, correct spelling, translate, or insert decorative symbols.
If validation fails, the preview simply does not start; if it succeeds, the visible banner matches the controls exactly because editing any input invalidates the previous preview, and pressing Start again re-validates the complete current configuration before a new animation appears.
Build the Banner: Step by Step
- Open LED Scroller in your browser.
- Type a single short message into the text field. Aim for a phrase that reads cleanly at the size you plan to use.
- Pick a speed preset: slow (12 seconds per loop), medium (8 seconds), or fast (4 seconds). These describe the total CSS loop, not a calibrated pixel rate.
- Pick a travel direction: right to left for the classic marquee feel, or left to right if you want the text to enter from the opposite side.
- Choose a text size from the five fixed options between 32 and 96 CSS pixels.
- Press Start scrolling. The widget validates the configuration and then renders a fresh animation in the preview area.
- Watch at least one complete loop to confirm the message is readable on your screen at the current size and speed.
- Pause to freeze the current frame if a viewer needs to read carefully, Resume to continue the same motion, or Restart to send the text back to its initial position.
For a parallel walk-through of the same workflow written as a guide, see Make a Scrolling LED Sign in Your Browser.
Speed, Direction, and Size in Practice
The three speed labels are transparent interface presets rather than physical specifications. Slow completes one CSS loop in 12 seconds, medium in 8 seconds, and fast in 4 seconds. Because the loop duration is fixed but the message width, font size, browser width, and zoom level all change how far the text travels per frame, the apparent speed depends on the situation. A short phrase at 96 CSS pixels under Fast will feel punchy; the same phrase at 32 CSS pixels under Slow will feel deliberate. Pick the preset by watching the actual preview rather than treating the label as a calibrated number.
| Preset | Loop duration | Best for |
|---|---|---|
| Slow | 12 seconds | Longer messages, careful reading, accessibility-first settings |
| Medium | 8 seconds | General-purpose announcements and event cues |
| Fast | 4 seconds | Short phrases that should cycle quickly |
Direction simply chooses where the text travels. Right to left starts the banner on the right and carries it across toward the left, which matches the familiar marquee convention. Left to right reverses that motion, useful when a message needs to enter from the opposite edge or when matching a non-Latin reading order.
| Size | CSS pixels | Best for |
|---|---|---|
| Small | 32 | Compact banners and sidebar placements |
| Medium | 48 | Standard banner rows |
| Large | 64 | Most presentations and event signs |
| Extra large | 80 | Room-filling previews |
| Maximum | 96 | Photo props and large-room viewings |
Keeping the choices fixed — slow, medium, or fast and 32, 48, 64, 80, or 96 — keeps the controls predictable and prevents extreme values from breaking the page.
Pause, Resume, Restart, and Reduced Motion
The transport controls are deliberately small in scope. Pause freezes the current frame by switching the CSS animation to paused; Resume continues the same motion from where it stopped; Restart increments the render revision so a fresh animation instance begins at the initial position. No timer loop, requestAnimationFrame worker, canvas draw cycle, or server process continues in the background.
The stylesheet also listens for the browser's prefers-reduced-motion media query. If a user has set their operating system or browser to request less motion, the banner is forced to remain paused — and the user can still read the stationary message and adjust every control. That safeguard prevents a site-level styling choice from overriding an accessibility request.
The widget does not request fullscreen permission. Browser fullscreen prompts vary, can be blocked without a direct gesture, and may hide important controls. To get a larger view, raise the text size, use the browser's normal fullscreen command, or mirror the browser window through trusted system controls.
Practical Uses and What to Keep Stationary
A browser-rendered banner is most useful as a fast visual presentation tool. Common fits include a handheld sign at an event, a desk message that loops while you work, a presentation prompt that cues the next speaker, a photo prop, and a visual attention signal when installing a full sign-making application would be unnecessary.
Keep critical safety instructions stationary and plainly visible. A moving decorative banner should not be the only channel for an emergency warning, an accessibility notice, traffic direction, or any other high-consequence message. When a viewer needs to copy a name, a code, an address, or instructions that require careful transcription, pause the banner so the text is stationary and legible.
For the clearest result, use a short phrase with strong contrast and avoid dense punctuation. Then check that everyone who needs the message can read it at the chosen pace and distance before relying on it in front of an audience.