Coolshed Labs
Documentation
Clear, step-by-step guides for every plugin. Get up and running in minutes.
Coolshed Labs
Clear, step-by-step guides for every plugin. Get up and running in minutes.
Installation guides, feature references, and technical details for each plugin.
A WordPress audio player for musicians and independent artists. Embeds a full-featured streaming player via a single shortcode — with EQ visualisation, synced lyrics, social sharing, fan likes, gated downloads, and cast support.
[bandstand_player]
Installation
[bandstand_player] into any pageHow it works
Tracks are loaded asynchronously via the REST API. No page reload is needed when tracks are added or reordered in the admin.
EQ Visualiser Modes
Oscilloscope waveform. Baseline pinned to the scrubber line.
Frequency spectrum bars with cap highlights. Colour mode: Spectrum or Accent.
Symmetric bar reflection. Centre line aligned to the scrubber position.
Features
<audio>?bs_track=<id> URL parameter{title} and {artist} placeholders?bs_track=<id>.vtt) or SRT (.srt) file to any track via the media librarySettings are organised across five tabs in Bandstand → Settings.
Band logo, player title, accent colour, EQ style (Wave/Bars/Mirror), EQ colour mode (Spectrum/Accent), EQ opacity, card gradient overlay, display font, body font, tracklist label.
Share message template, like button toggle and heart style, donation section (URL, caption, button label), Track Popularity table.
Track Info pop-up (enable, window width, empty notes message), Download pop-up (enable, icon, message, button labels, honesty link text, window width).
Enable or disable the synced lyric display globally.
Copy-to-clipboard helper for the [bandstand_player] shortcode.
REST API
| Endpoint | Method | Description |
|---|---|---|
| /wp-json/bandstand/v1/tracks | GET | Returns all published tracks with metadata |
| /wp-json/bandstand/v1/like | POST | Registers a like for a track (session-gated) |
Per-Track Fields
Uploaded via the WordPress media library. Used for streaming playback.
Square image shown as the now-playing card background, blurred and cover-fit.
Looping video that plays behind the EQ, replacing the artwork when set.
Displayed in the Track Info modal alongside freeform HTML notes.
Attach a .vtt or .srt file for real-time synced lyric display.
Separate file served on download — can differ from the streaming MP3.
A Gutenberg block plugin that maps scroll position to an image sequence — with animated text, button, and image overlays. Configured entirely through a built-in editor panel; no shortcodes or coding required.
Installation & Quick Start
How scroll-driven playback works
Frames are drawn to a <canvas> element to prevent the GPU-texture eviction flash that affects CSS background-image implementations. All frames preload before the sequence becomes interactive.
Overlay Types
Timeline Editor
Each overlay has four draggable keyframe diamonds to set timing.
Drag Start, Intro end, Hold end, and Out end to set timing. Values sync live to the form inputs.
Show or hide any overlay in the preview and on the live site without deleting it.
Tracks are 18 px tall. Complex 10-overlay sequences fit without excessive scrolling.
Entrance Animation Types
All overlays support an optional exit animation. Exit easing uses a squared curve that holds opacity high before dropping away.
Full Feature Reference
<canvas>, preventing GPU-texture eviction flashprefers-reduced-motion: reduce; section becomes a static imageImage Format & Sequence Guide
Best for photographic sequences — smaller files, faster loading. No transparency support.
Use when transparency is required. Larger file sizes — keep frame count lower.
30–150 frames works well. 60–90 frames at high quality is a good starting point. More frames = smoother animation but more download weight.
Each FlowScroll block is fully independent. Place as many as needed on a single page or post.
A Gutenberg block plugin for animating heading and paragraph text. Supports scroll, load, hover, click, and scroll-linked triggers. Split text mode animates word by word or character by character. Also works via CSS classes on any existing theme element — no block required.
Installation & Quick Start
Trigger Types
Fires once when the element enters the viewport. Configurable threshold (0–90%). Optional replay on every scroll entry.
Fires immediately when the page loads, regardless of scroll position.
Fires on mouse enter. Resets and replays each time the cursor enters the element.
Fires when the element is clicked.
Animation progress tracks scroll position in real time — the element animates forwards as you scroll down and backwards as you scroll up.
All Animation Types
Split Text Mode
Each word enters sequentially — one at a time, no overlap. The chosen animation provides the motion for each word.
Each character enters sequentially with its own motion. Works with all animation types.
Timing calculation
perPartMs = Duration ÷ part countCSS Class Method
Animate any existing theme element without using the FlowText block — add classes directly to any HTML element.
<h2 class="tap-slide-in-up tap-split-chars tap-duration-800 tap-replay">
Animated heading
</h2>
<p class="tap-fade-in tap-on-load tap-delay-300 tap-ease-out">
Paragraph that fades in on page load
</p>
| Setting | Default | Description |
|---|---|---|
| Animation | Fade In Up | Which animation to play |
| Tag | h2 | HTML element (h1–h6, p, span, div) |
| Trigger | Scroll | When to fire the animation |
| Duration | 600ms | Total animation time |
| Delay | 0ms | Wait before the animation begins |
| Easing | Expo Out | Motion curve |
| Repeat | Once | Play 1, 2, 3, or infinite times |
| Direction | Normal | Normal, reverse, or alternate |
| Split By | None | None, Words, or Characters |
| Threshold | 10% | Scroll trigger fire point (0–90%) |
| Replay | Off | Re-animate on every scroll entry |
| Colour | — | Override the text colour |
| Font Size | — | Override the font size |
| Text Align | Left | Left, centre, or right |
| CSS Class | — | Add extra classes to the element |
FlowText registers three automatic compatibility hooks when LiteSpeed Cache is active. No configuration needed.
Version History