Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
5e31a34
chore(workspace): add ogl dependencies for canvas components
66HEX Apr 14, 2026
58379bd
feat(motion-core): migrate core canvas shader components to ogl
66HEX Apr 14, 2026
2d5122e
feat(motion-core): migrate image-based canvas effects to ogl
66HEX Apr 14, 2026
57ab680
feat(motion-core): migrate gallery and 3d canvas components to ogl
66HEX Apr 14, 2026
498fb3c
docs(canvas): align migrated component docs with ogl
66HEX Apr 14, 2026
41b1eec
chore(registry): regenerate registry after ogl migrations
66HEX Apr 14, 2026
9176632
refactor(motion-core): extract shared canvas color and pointer helpers
66HEX Apr 15, 2026
3d18635
feat(canvas): standardize default backgroundColor to #17181A
66HEX Apr 15, 2026
676d0c4
chore(web): drop redundant canvas backgroundColor demo props
66HEX Apr 15, 2026
2639a33
fix(canvas): remove redundant init passes and dither texture leak
66HEX Apr 16, 2026
ed00e70
refactor(motion-core): remove dead hover raycast code in infinite gal…
66HEX Apr 16, 2026
ec46d2e
refactor(canvas): unify default prop values across OGL components
66HEX Apr 16, 2026
a2766d6
refactor(globe): migrate canvas globe to ogl
66HEX Apr 16, 2026
533b1fc
chore(repo): remove remaining three.js/threlte references
66HEX Apr 16, 2026
04bc40a
chore(globe): update default base color
66HEX Apr 16, 2026
76da795
perf(globe): add will-change transform to marker tooltip
66HEX Apr 16, 2026
fdd825c
refactor(globe): render markers in shader and keep html tooltips
66HEX Apr 16, 2026
8db1ed2
chore(docs): align api table defaults with components
66HEX Apr 16, 2026
826b891
docs(canvas): include color helper in component preview sources
66HEX Apr 16, 2026
0168839
docs(god-rays): add missing intensity prop in api table
66HEX Apr 16, 2026
d9b56ec
chore(motion-core): bump version to 0.11.0 and update changelog
66HEX Apr 17, 2026
82c605b
docs(gsap): include helper source in component previews
66HEX Apr 17, 2026
6f2fd74
style(web): align layout color tokens with motion-core and motion-gpu
66HEX Apr 17, 2026
d23c269
fix(gsap): switch imports from gsap/dist to package entry points
66HEX Apr 17, 2026
1144a04
Merge branch 'master' into ogl
66HEX Apr 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,61 @@ and the project adheres to [Semantic Versioning](https://semver.org/).

## [Unreleased]

## [0.11.0] - 2026-04-16

### Changed

- **Canvas / ASCII Renderer**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Card 3D**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Dithered Image**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Fake 3D Image**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Fluid Image Reveal**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Fluid Simulation**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Glass Pane**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Glass Slideshow**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Glitter Cloth**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Globe**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / God Rays**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Halo**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Infinite Gallery**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Interactive Grid**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Lava Lamp**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Neural Noise**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Pixelated Image**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Plasma Grid**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Rubiks Cube**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Specular Band**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Water Ripple**: Migrated rendering pipeline from Three.js/Threlte to OGL.
- **Canvas / Helpers**: Added shared `color` and `fluid-pointer` helpers for unified color conversion and pointer handling.
- **Canvas / Defaults**: Standardized default `backgroundColor` to `#17181A` and aligned default prop values across migrated OGL components.
- **Showcase / Card Stack**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Pointer / Flip Card Stack**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Layout / Flip Grid**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Navigation / Floating Menu**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Canvas / Glass Slideshow**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Canvas / Globe**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Pointer / Image Trail**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Showcase / Infinite Physics Gallery**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Showcase / Logo Carousel**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Pointer / MacOS Dock**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Pointer / Magnetic**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Showcase / Marquee**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Transition / Preloader**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Showcase / Radial Gallery**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Showcase / Slideshow**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Typography / Split Hover**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Typography / Split Reveal**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Typography / Stacking Words**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Typography / Text Loop**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Typography / Text Scramble**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Showcase / Video Player**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Showcase / Video Slider**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Typography / Weight Wave**: Switched runtime GSAP imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).
- **Helpers / GSAP**: Switched helper imports from `gsap/dist/*` to package entry points (`gsap`, `gsap/<plugin>`).

### Removed

- **Runtime / Dependencies**: Removed `three`, `@threlte/core`, `@threlte/extras`, and `@types/three` from `motion-core` package dependencies and switched to `ogl`.

## [0.10.0] - 2026-04-04

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ We don't package everything into a massive npm dependency. Instead, we follow a
### Why Motion Core?

- **Svelte 5 Native**: Leverages Runes and Snippets for a truly reactive and modern DX.
- **Performance First**: Heavy lifting is done by GSAP and Three.js, ensuring buttery smooth 60fps experiences.
- **Performance First**: Heavy lifting is done by GSAP and OGL, ensuring buttery smooth 60fps experiences.
- **Aesthetic Focus**: From magnetic buttons to 3D infinite galleries with cloth distortion, every component is crafted with "feel" in mind.
- **The "Un-Library"**: Use our CLI to scaffold components directly into your codebase. No black boxes.

Expand Down
11 changes: 4 additions & 7 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
"@tailwindcss/vite": "^4.1.17",
"@typescript-eslint/eslint-plugin": "^8.56.1",
"@typescript-eslint/parser": "^8.56.1",
"@types/three": "^0.182.0",
"eslint": "^10.0.2",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-svelte": "^3.15.0",
Expand Down Expand Up @@ -54,17 +53,15 @@
},
"type": "module",
"dependencies": {
"@mediapipe/tasks-vision": "^0.10.22-rc.20250304",
"@threlte/core": "^8.3.1",
"@threlte/extras": "^9.7.1",
"@fontsource/inter": "^5.2.8",
"@mediapipe/tasks-vision": "^0.10.22-rc.20250304",
"@takumi-rs/image-response": "1.0.0-rc.12",
"carbon-icons-svelte": "^13.9.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"gsap": "^3.14.2",
"motion-core": "workspace:*",
"tailwind-merge": "^3.5.0",
"three": "^0.182.0",
"@takumi-rs/image-response": "1.0.0-rc.12"
"ogl": "^1.0.11",
"tailwind-merge": "^3.5.0"
}
}
14 changes: 7 additions & 7 deletions apps/web/src/lib/components/docs/ComponentPreview.svelte
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script lang="ts">
import type { Snippet } from "svelte";
import { onMount, tick } from "svelte";
import { Flip } from "gsap/dist/Flip";
import { gsap } from "gsap/dist/gsap";
import { Flip } from "gsap/Flip";
import { gsap } from "gsap";
import { cn } from "$lib/utils/cn";
import { getHighlighter } from "$lib/utils/highlighter";
import ScrollArea from "../ui/ScrollArea.svelte";
Expand Down Expand Up @@ -169,14 +169,14 @@

<section
class={cn(
"inset-shadow relative w-full rounded-lg bg-background-inset p-1.5",
"relative w-full rounded-lg bg-background-inset p-1.5 inset-shadow",
)}
{...restProps}
>
<div class="flex h-full flex-col rounded-md">
<div
bind:this={placeholderRef}
class="card relative flex min-h-96 flex-1 flex-col items-center justify-center rounded-md bg-background"
class="relative flex min-h-96 flex-1 flex-col items-center justify-center rounded-md bg-background card"
>
<div
bind:this={previewRef}
Expand All @@ -188,7 +188,7 @@
>
<button
onclick={reloadPreview}
class="inset-shadow absolute top-2 right-10 z-30 flex size-7 items-center justify-center rounded-sm bg-background-inset text-foreground transition-transform duration-150 ease-out active:scale-[0.95]"
class="absolute top-2 right-10 z-30 flex size-7 items-center justify-center rounded-sm bg-background-inset text-foreground inset-shadow transition-transform duration-150 ease-out active:scale-[0.95]"
aria-label="Reload Preview"
>
<svg
Expand All @@ -205,7 +205,7 @@
</button>
<button
onclick={toggleFullScreen}
class="inset-shadow absolute top-2 right-2 z-30 flex size-7 items-center justify-center rounded-sm bg-background-inset text-foreground transition-transform duration-150 ease-out active:scale-[0.95]"
class="absolute top-2 right-2 z-30 flex size-7 items-center justify-center rounded-sm bg-background-inset text-foreground inset-shadow transition-transform duration-150 ease-out active:scale-[0.95]"
aria-label={isFullScreen ? "Exit Fullscreen" : "Enter Fullscreen"}
>
{#if isFullScreen}
Expand Down Expand Up @@ -248,7 +248,7 @@
</div>
</div>
<div
class="card mt-2 flex flex-1 flex-col overflow-hidden rounded-md rounded-b-md bg-background"
class="mt-2 flex flex-1 flex-col overflow-hidden rounded-md rounded-b-md bg-background card"
>
{#if tabs.length}
<div
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/lib/components/home/Home.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@
<p
class="max-w-xl text-center text-base font-normal tracking-normal text-pretty text-foreground-muted sm:text-lg"
>
Animated Svelte component library powered by GSAP and Three.js. Drop-in
Animated Svelte component library powered by GSAP and OGL. Drop-in
solutions for motion design, 3D canvases, and interactive animations.
</p>
<div data-reveal="actions" class="flex items-center gap-2">
Expand Down
4 changes: 2 additions & 2 deletions apps/web/src/lib/config/site.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ export const siteConfig = {
url: "https://motion-core.dev",
/** Default SEO description for the homepage and fallback metadata. */
description:
"Svelte-native motion toolkit with GSAP and Three.js powered components, demos, and CLI-driven workflows.",
"Svelte-native motion toolkit with GSAP and OGL-powered components, demos, and CLI-driven workflows.",
/** Author shown in metadata and structured data. */
author: "Marek Jóźwiak",
/** Primary SEO keywords for indexing and discovery. */
keywords: [
"motion core",
"svelte animation",
"gsap",
"three.js",
"ogl",
"component library",
"svelte components",
"motion toolkit",
Expand Down
Loading
Loading