Framework-neutral
Bring the frames into your project.
Use the typed API, import assets directly, or load immutable versioned URLs from a CDN.
01
Install
The package ships dual ESM and CommonJS builds, TypeScript declarations, a JSON manifest, and all 906 SVG assets.
npm install @bryllim/workout-guide02
JavaScript API
Look up exact exercises or search the normalized catalog with optional equipment, muscle, type, and stretch filters.
import {
exercises,
getExercise,
searchExercises,
getAssetUrl,
} from '@bryllim/workout-guide';
const pushUp = getExercise('push-up');
const results = searchExercises('chest bodyweight');
const imageUrl = getAssetUrl('push-up', 1);Raw manifest
import manifest from '@bryllim/workout-guide/manifest.json';
console.log(manifest.length); // 30203
Direct static imports
Every asset uses the stable path assets/<slug>/frame-<1|2|3>.svg.
import frame1 from '@bryllim/workout-guide/assets/push-up/frame-1.svg';
export function ExerciseImage() {
return <img src={frame1} alt="Push-up starting position" />;
}04
Expo and React Native
Metro resolves static assets at build time, so keep each require() path literal. Do not assemble these paths dynamically.
// React Native bundlers need literal require() paths.
const pushUpFrames = [
require('@bryllim/workout-guide/assets/push-up/frame-1.svg'),
require('@bryllim/workout-guide/assets/push-up/frame-2.svg'),
require('@bryllim/workout-guide/assets/push-up/frame-3.svg'),
];05
Versioned CDN URLs
Pin a package version for stable production URLs. The getAssetUrl() helper generates the same pattern.
https://cdn.jsdelivr.net/npm/@bryllim/workout-guide@1.0.0/assets/push-up/frame-1.svg06
Licensing and attribution
Code and documentation are MIT licensed. Visual assets are CC BY-SA 4.0. The original pose artwork comes from Everkinetic and was expanded upon by Bryl Lim; direct source details are included in the manifest.
Suggested credit
Original exercise artwork by Everkinetic, expanded by Bryl Lim, licensed under CC BY-SA 4.0.