with one click
css-motion-designer
Design CSS animation systems and motion recipes for casino game UI. Use when building round transitions, idle loops, inter-round motion, background patterns, or CSS-only animation specs.
Menu
Design CSS animation systems and motion recipes for casino game UI. Use when building round transitions, idle loops, inter-round motion, background patterns, or CSS-only animation specs.
| name | css-motion-designer |
| description | Design CSS animation systems and motion recipes for casino game UI. Use when building round transitions, idle loops, inter-round motion, background patterns, or CSS-only animation specs. |
Use this skill to design production-ready CSS animation systems for casino games, especially round transitions, inter-round motion loops, and lightweight background effects.
0111222333... to encode frame states.steps(n) to create discrete jumps for grid patterns.steps(n) with repeating-linear-gradient to build scan, stripe, and barcode effects.background-position or filter shifts.steps()).steps(n) for pixel/segment patterns to avoid blurry interpolation.prefers-reduced-motion fallback.Use a repeatable sequence to create a scanning bar effect between rounds.
.interRoundSweep {
--tile-size: 12px;
--steps: 30;
--speed: 1200ms;
--c0: #0b0f1a;
--c1: #162235;
--c2: #223a55;
--c3: #2f4c6a;
background: repeating-linear-gradient(
90deg,
var(--c0) 0,
var(--c0) var(--tile-size),
var(--c1) var(--tile-size),
var(--c1) calc(var(--tile-size) * 2),
var(--c2) calc(var(--tile-size) * 2),
var(--c2) calc(var(--tile-size) * 3),
var(--c3) calc(var(--tile-size) * 3),
var(--c3) calc(var(--tile-size) * 4)
);
animation: barcodeShift var(--speed) steps(var(--steps)) infinite;
}
@keyframes barcodeShift {
0% { background-position: 0 0; }
100% { background-position: calc(var(--tile-size) * 12) 0; }
}
.roundPulse {
animation: roundPulse 600ms ease-in-out 1;
}
@keyframes roundPulse {
0% { opacity: 0; transform: scale(0.98); }
50% { opacity: 1; transform: scale(1); }
100% { opacity: 0; transform: scale(1.02); }
}
Use a 2D grid with step-based offsets to create a subtle “sparkle” during idle.
.idleSparkGrid {
--cell: 10px;
--speed: 900ms;
--steps: 18;
--bg: #0b0f1a;
--a: #162235;
--b: #1f3046;
--c: #2a3f5a;
background:
repeating-linear-gradient(0deg, var(--bg) 0, var(--bg) var(--cell), transparent var(--cell), transparent calc(var(--cell) * 2)),
repeating-linear-gradient(90deg, var(--bg) 0, var(--bg) var(--cell), transparent var(--cell), transparent calc(var(--cell) * 2)),
linear-gradient(120deg, var(--a), var(--b), var(--c));
background-size: auto, auto, 200% 200%;
animation: idleSpark var(--speed) steps(var(--steps)) infinite;
}
@keyframes idleSpark {
0% { background-position: 0 0, 0 0, 0% 50%; }
100% { background-position: 0 0, 0 0, 100% 50%; }
}
Use a fast scan band for a win highlight overlay.
.winAccentScan {
--speed: 700ms;
--accent: rgba(255, 214, 102, 0.35);
background: linear-gradient(90deg, transparent, var(--accent), transparent);
background-size: 200% 100%;
animation: winScan var(--speed) ease-out 1;
}
@keyframes winScan {
0% { background-position: 0% 0; }
100% { background-position: 200% 0; }
}
Use clip-path to create a fluttering shutter feel without heavy assets.
.reelMaskFlutter {
--speed: 800ms;
animation: flutter var(--speed) steps(12) infinite;
clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
}
@keyframes flutter {
0% { clip-path: polygon(0 0, 100% 0, 100% 86%, 0 100%); }
100% { clip-path: polygon(0 0, 100% 0, 100% 92%, 0 100%); }
}
Use a simple rotating gradient for loading or bet-lock states.
.loadingOrbit {
--speed: 1100ms;
background: conic-gradient(from 0deg, #0b0f1a, #1b2a40, #0b0f1a);
animation: orbit var(--speed) linear infinite;
}
@keyframes orbit {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
prefers-reduced-motion: reduce to disable non-critical loops.Return:
Motion Brief: placement, trigger conditions, duration targets.Pattern Grammar: grid size, palette, sequence encoding, steps count.Keyframes: final CSS keyframes and class names.Integration Plan: which game states show/hide the motion.Validation: performance and accessibility checks.Residual Risks: readability, distraction, or device constraints.python3 scripts/validate_css_motion_spec.py \
--input <path/to/css_motion_spec.json>
Treat non-zero exits as blocker findings.
references/workflow.md: motion design workflow.references/contracts.md: CSS motion spec contract.references/patterns.md: pattern library and casino state mapping.references/signoff-template.md: delivery checklist template.steps() for discrete pattern motion and pixel-art stability.Create structured game info/rules content for slot games. Invoke when drafting game info sections, symbol payouts, bonus purchase rules, or required disclaimers.
End-to-end Stake game development workflow for math, RGS contract, frontend playback, and compliance gating. Use when building or updating Stake games, defining game modes and RTP targets, validating generated books/index metadata, validating event streams, integrating frontend event playback, implementing RGS communication and replay mode, or preparing publication checks including social-language and jurisdiction requirements.
Define auto-play UX, stop conditions, and safeguards for slot games. Invoke when implementing autoplay controls, confirmations, or stop-on-event rules.
Design, mix, and integrate slot game audio including ambient loops, spin sounds, win celebrations, and feature music. Use when defining audio assets, tuning volume levels, synchronizing sound with animations, or validating audio loop seamlessness.
Design and execute test plans for slot games covering math correctness, UI logic, performance, and compliance. Use when validating game rules, running regression tests, verifying error handling, checking jurisdiction constraints, or preparing release sign-off reports.
Design and implement visual effects for slot games using shaders, particle systems, and sprite animations. Use when defining big win sequences, feature transitions, symbol animations, or optimizing VFX performance for mobile devices.