
Flipoff Split Flap Display
Embed or full-screen a retro split-flap airport board on a site, TV, or kiosk without frameworks or a build step.
Overview
FlipOff Split-Flap Display Emulator is an agent skill for the Build phase that helps you install, customize, and embed the FlipOff vanilla split-flap board emulator in any browser or TV.
Install
npx skills add https://github.com/aradotso/trending-skills --skill flipoff-split-flap-displayWhat is this skill?
- Pure vanilla HTML/CSS/JS—open index.html or serve locally; no npm or bundler
- Authentic scramble animations and clacking sounds via Web Audio (click once to unlock autoplay)
- Customize messages, quotes, grid dimensions, and color themes for embeds or full-screen TV displays
- Keyboard controls and transition behavior for live flip-board experiences
- Documented file layout: index.html entry plus css/ assets for reset and display styling
- Pure vanilla HTML/CSS/JS with no npm build step
- Local serve via python3 -m http.server on port 8080 documented in SKILL.md
Adoption & trust: 756 installs on skills.sh; 31 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want a believable mechanical flip-board on your site or a wall display but do not want a framework toolchain or paid signage software.
Who is it for?
Indie sites, event signage, portfolio flair, or a spare TV used as a retro status board with full control over copy and theme.
Skip if: Teams that need a CMS-backed digital signage platform, SSR/React component libraries, or multi-tenant content workflows without hand-editing HTML/JS config.
When should I use this skill?
add split flap display to my site; customize flipoff messages or quotes; embed retro flip board; change grid size or colors; flipoff sound and animation configuration; keyboard controls; turn TV into flip board display
What do I get? / Deliverables
You get a running FlipOff instance with your messages, styling, and controls documented so you can embed it or run it full-screen with working animations and sound after the one-time audio unlock.
- Configured FlipOff index.html experience
- Embed or full-screen display setup notes
- Custom message/color/grid settings
Recommended Skills
Journey fit
Canonical shelf is Build because the skill centers on HTML/CSS/JS UI, grid layout, animations, and embed configuration—not distribution or ops. Frontend is the right subphase for customizing messages, colors, grid size, keyboard controls, and Web Audio–driven flip sounds in the browser.
How it compares
Use for a self-hosted static flip-board page instead of importing a React animation library or a SaaS signage subscription.
Common Questions / FAQ
Who is flipoff-split-flap-display for?
Solo and indie builders shipping simple web experiences who want a distinctive retro UI widget or full-screen display without npm or a compile step.
When should I use flipoff-split-flap-display?
During Build when you are adding frontend polish—embedding a flip board on a landing page, customizing quotes for a launch demo, or configuring a TV kiosk before Ship/Launch.
Is flipoff-split-flap-display safe to install?
Treat it like any third-party static web project: review the Security Audits panel on this Prism page and inspect the cloned repo and served assets before deploying to a public domain.
SKILL.md
READMESKILL.md - Flipoff Split Flap Display
# FlipOff Split-Flap Display Emulator > Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. FlipOff is a pure vanilla HTML/CSS/JS web app that emulates classic mechanical split-flap (flip-board) airport displays. No frameworks, no npm, no build step — open `index.html` and you have a full-screen retro display with authentic scramble animations and clacking sounds. --- ## Installation ```bash git clone https://github.com/magnum6actual/flipoff.git cd flipoff # Option 1: Open directly open index.html # Option 2: Serve locally (recommended for audio) python3 -m http.server 8080 # Visit http://localhost:8080 ``` > **Audio note:** Browsers block autoplay. The user must click once to enable the Web Audio API context. After that, sound plays automatically on each message transition. --- ## File Structure ``` flipoff/ index.html — Single-page app entry point css/ reset.css — CSS reset layout.css — Header, hero, page layout board.css — Board container and accent bars tile.css — Tile styling and 3D flip animation responsive.css — Media queries (mobile → 4K) js/ main.js — Entry point, wires everything together Board.js — Grid manager, transition orchestration Tile.js — Per-tile animation logic SoundEngine.js — Web Audio API playback MessageRotator.js — Auto-rotate timer KeyboardController.js — Keyboard shortcut handling constants.js — All configuration lives here flapAudio.js — Base64-encoded audio data ``` --- ## Key Configuration — `js/constants.js` Everything you'd want to change lives in one file: ```js // js/constants.js (representative structure) export const GRID_COLS = 26; // Characters per row export const GRID_ROWS = 8; // Number of rows export const SCRAMBLE_DURATION = 600; // ms each tile scrambles before settling export const STAGGER_DELAY = 18; // ms between each tile starting its scramble export const AUTO_ROTATE_INTERVAL = 8000; // ms between auto-advancing messages export const SCRAMBLE_COLORS = [ '#FF6B35', '#F7C59F', '#EFEFD0', '#004E89', '#1A936F', '#C6E0F5' ]; export const ACCENT_COLORS = ['#FF6B35', '#004E89', '#1A936F']; export const MESSAGES = [ "HAVE A NICE DAY", "ALL FLIGHTS ON TIME", "WELCOME TO THE FUTURE", // Add your own here ]; ``` --- ## Adding Custom Messages Edit `MESSAGES` in `js/constants.js`. Each message is a plain string. The board wraps text across the grid automatically. ```js export const MESSAGES = [ "DEPARTING GATE 7", "YOUR COFFEE IS READY", "BUILD THINGS THAT MATTER", "FLIGHT AA 404 NOT FOUND", // max GRID_COLS * GRID_ROWS chars ]; ``` **Padding rules:** Messages shorter than the grid are padded with spaces. Messages longer than the grid are truncated. Keep messages at or under `GRID_COLS × GRID_ROWS` characters. --- ## Changing Grid Size ```js // Compact 16×4 ticker-style board export const GRID_COLS = 16; export const GRID_ROWS = 4; // Wide cinema board export const GRID_COLS = 40; export const GRID_ROWS = 6; // Tall info kiosk export const GRID_COLS = 20; export const GRID_ROWS = 12; ``` After changing grid dimensions, tiles re-render automatically on next page load. --- ## Keyboard Shortcuts | Key | Action | |-----|--------| | `E