Extending Beautiful Shadows from a shadow tool into a comprehensive design system toolkit for Figma.
High-value extensions that build directly on the existing shadow engine with minimal architectural changes.
Generate a complete, consistent elevation scale (e.g. 5 levels) from a single light source configuration. The user sets the light once, and the plugin outputs a harmonious set of shadows at increasing elevations.
- Define default scale stops (e.g.
elevation-1throughelevation-5) - Allow custom number of stops and naming
- Preview all scale levels side-by-side in the plugin UI
- Store scale configuration in plugin data for reuse
Let users save named shadow presets and export them as design tokens in standard formats.
- Named preset system (save/load/delete shadow configurations)
- Export to CSS custom properties (
--shadow-elevation-1: ...) - Export to JSON design tokens (Style Dictionary compatible)
- Export to Tailwind CSS config (
boxShadow/dropShadow) - Copy-to-clipboard for individual values
Publish generated shadows as native Figma constructs so they become reusable across the file and shared libraries.
- Create/update Figma Effect Styles from generated shadows
- Sync elevation scale to a set of named styles
- Support Figma Variables (for token-based workflows)
- Detect and update existing styles on regeneration
Extend shadow generation to be theme-aware and color-intelligent.
Define shadow behavior for both light and dark backgrounds simultaneously. Dark mode shadows need different opacity, color, and sometimes an ambient glow layer.
- Side-by-side light/dark preview mode
- Independent shadow color and opacity per theme
- Optional ambient glow layer for dark mode
- Export paired tokens (
shadow-elevation-1-light,shadow-elevation-1-dark)
Auto-derive shadow colors from the element's fill color for modern colored shadow effects.
- Read fill color from the selected Figma node
- Derive shadow color via Chroma.js (darken + desaturate)
- User-adjustable derivation parameters (amount, saturation shift)
- Toggle between neutral and color-derived modes
Expand from shadows alone into a complete depth and motion language.
Combine shadow generation with z-index recommendations, backdrop blur values, and border treatments for a complete depth token.
- Map elevation levels to z-index ranges
- Suggest backdrop-filter blur for overlays at each level
- Optional subtle border/separator recommendations
- Export as composite depth tokens
For each shadow elevation, suggest appropriate transition timing and easing for animating between states (e.g. card hover lift).
- Recommend CSS transition duration and easing per elevation change
- Preview hover/press animations in the plugin
- Export as motion tokens (duration, easing, property)
- Leverage existing
d3-easeknowledge for curve suggestions
Preview how shadows interact with different border radii and recommend pairings.
- Add border-radius control to preview target element
- Visual guidance for radius/shadow compatibility
- Suggest shadow adjustments for large radii
- Include border-radius in exported tokens
More ambitious features that push the plugin toward a full design system generator.
Support 2+ light sources (key light, fill light, ambient) for more realistic shadow compositions.
- Multiple light instances in
createLightstore - Composite shadow output from all light sources
- Individual light controls (brightness, color, position)
- Preset lighting rigs (e.g. "Material", "Soft", "Dramatic")
Apply the same interactive, visual approach to generate spacing and sizing scales — a new tool within the plugin.
- Interactive base-unit and ratio configuration
- Visual preview of the generated scale
- Export as spacing/sizing tokens
- Reuse existing gesture/animation infrastructure
These make the above extensions feasible without major rewrites:
| Asset | Enables |
|---|---|
getCastedShadows in shadow.ts |
Elevation scale — just sample at multiple elevation values |
| Zustand modular stores | Multi-light — add more createLight instances |
| Chroma.js dependency | Color-derived shadows — darken/desaturate transforms |
d3-ease dependency |
Motion recommendations — easing curve knowledge |
Figma Plugin API in main.ts |
Styles/Variables sync — API already available |
| React Spring + use-gesture | New interactive tools — infrastructure is ready |
Phase 1.1 (Elevation Scale) ─┐
Phase 1.2 (Token Export) ├─► Phase 2 (Theming) ──► Phase 3 (Depth & Motion)
Phase 1.3 (Figma Sync) ─┘ │
▼
Phase 4 (Advanced)
Phase 1 items can be developed in parallel. Phase 2 depends on the token/export infrastructure from Phase 1.2. Phases 3 and 4 can be prioritized independently based on user demand.