All Projects

Storyline 360 · JavaScript · GSAP · Designer Handoff

A Healthcare Patient Journey —
Extending Storyline with JavaScript

A five-slide Storyline 360 course built from a professional studio's Adobe Illustrator design files and custom JavaScript template — popup layers, AI-generated narration, GSAP-powered 3D card flips, and an embedded JavaScript word game.

The Brief

A studio-grade designer-to-developer handoff

A digital learning studio provided Adobe Illustrator design files, a Storyline template with custom JavaScript patterns, and a five-slide specification — the kind of designer-to-developer handoff used in professional studio pipelines.

The designs called for interactions Storyline doesn't support natively: CSS-style drop shadows, hover effects, true 3D card flips, and an embedded JavaScript game — plus a ten-step interactive patient journey map with popup layers, visited-state tracking, and AI-generated narration.

My job: deliver a pixel-accurate, fully interactive build matching the studio's design system, with every interactive element constructed as a native Storyline object.

5

Slides · 1 Week

Digital Learning Studio · Healthcare Client

Adobe Illustrator handoff · JS template system

Articulate Storyline 360 · GSAP · ElevenLabs

The Build

Five slides, five interaction patterns

Each slide required a different technique — from native states and layers to runtime-loaded JavaScript libraries.

Click-to-Reveal Introduction

A blurred photo the learner clicks to unblur, which enables course navigation. Blur and shadow effects implemented with JavaScript triggers targeting elements through their accessibility names.

Interactive Journey Map

Ten step buttons with visited-state tracking, popup layers with show/hide logic for underlying content, and category buttons whose selected states respond to the step being viewed.

Audio + Mute System

AI-generated narration (ElevenLabs) on a popup layer, wired to a mute/unmute system driven by a shared IsMuted variable synchronized across slide and layer timelines.

3D Card Flips with GSAP

True perspective card flips using GSAP loaded at runtime — per-card animation locks, pointer-event management so only the visible face receives clicks, and completion tracking reported to Storyline variables.

Tabbed Content Panels

Button-driven panel swapping managed with base-layer state changes — avoiding the click-blocking issues that layer-based approaches introduce.

Embedded JavaScript Game

A Connections-style word game (HTML/CSS/JS with GSAP animations) embedded as a Web Object — folder structure preserved so relative asset paths survive publishing.

Walkthrough

A Guided Tour of the Build

A slide-by-slide walkthrough of the interactions — blur reveal and state persistence, JavaScript hover and shadow effects, AI-generated narration with custom mute controls, GSAP 3D card flips, and the embedded JavaScript connection game.

Storyline Module

Explore the Course

Five slides following a patient's journey through a healthcare visit — from check-in to online access.

Launch Course

Process

From Illustrator to interactive objects

The client required every interactive element to exist as a native Storyline object — no baked-in interactivity inside image exports. That meant reading exact colors, fonts, corner radii, and gradients out of the Illustrator files, then rebuilding each button, circle, and panel natively with full state control (normal, hover, visited, selected, disabled).

Static artwork — backgrounds, photography, headings with gradient text Storyline can't reproduce — was exported as transparent PNGs and positioned to match the source layouts.

Where the design exceeded Storyline's native capabilities, JavaScript triggers filled the gap: drop shadows and hover effects applied through DOM selectors, and GSAP loaded at runtime for the 3D card flip interaction.

Inspect the design files

Exact colors, fonts, corner radii, gradients

Rebuild interactivity natively

Buttons, states, triggers in Storyline

Export static artwork

Backgrounds and imagery as transparent PNGs

Extend with JavaScript

Shadows, hovers, flips beyond native limits

Technical Design

The 3D Card Flip

Storyline has no native 3D flip. This build loads GSAP at runtime, targets each card face in the published DOM, and animates synchronized rotateY transforms — with pointer-event management so only the visible face receives clicks.

// Flip trigger — both faces animate in a synchronized timeline

gsap.set(frontEl, { rotateY: 0, force3D: true });
gsap.set(backEl,  { rotateY: -180, force3D: true });
backEl.style.pointerEvents = 'none';

function flipCard() {
  if (isAnimating) return;
  isAnimating = true;

  gsap.timeline({
    onComplete: () => {
      isAnimating = false;
      flipped = !flipped;
      // only the visible face is clickable
      frontEl.style.pointerEvents = flipped ? 'none' : 'auto';
      backEl.style.pointerEvents  = flipped ? 'auto' : 'none';
      player.SetVar(varName, true); // report to Storyline
    }
  })
    .to(frontEl, { rotateY: flipped ? 0 : 180,  duration: 0.6, ease: 'power2.inOut' }, 0)
    .to(backEl,  { rotateY: flipped ? -180 : 0, duration: 0.6, ease: 'power2.inOut' }, 0);
}

A debugging lesson worth documenting: Storyline regenerates data-model-id attributes on every publish, which silently breaks DOM-targeting JavaScript. Working in browser dev tools against the published output, I traced each failure to its element and confirmed that grouped objects expose a stable container the animation can target as a single unit.

Outcome

Delivered on deadline, patterns kept for good

The finished course shipped as a Review 360 link and packaged source file — five slides matching the studio's design system, with every interactive element built as a native, editable Storyline object.

Beyond the deliverable, this project deepened my toolkit for extending Storyline past its native capabilities: JavaScript-driven visual effects, runtime library loading, variable-bridged communication between custom code and Storyline triggers, and Web Object embedding for full custom interactions.

These are patterns I now bring to client work where standard authoring-tool interactions aren't enough to match a design vision.

2

Deliverables — Review 360 link + source .story file

6

Interaction patterns added to my toolkit

Articulate Storyline 360 JavaScript GSAP Web Objects AI-Generated Audio ElevenLabs Adobe Illustrator Designer Handoff Healthcare Layers + States Variables + Triggers eLearning Development