Canvas

Rubiks Cube

A dynamic Rubik's Cube that continuously rotates while a Fresnel rim glow traces each edge.


Installation

Install the component

Run the following command to install the component and its dependencies:
npx @motion-core/cli add rubiks-cube

Import the component

Import the component into your Svelte file:
import { RubiksCube } from "$lib/motion-core";
import { RubiksCube } from "$lib/motion-core";

Usage

Props

1.000
1.500s
0.015
0.125
<script lang="ts">
	import { RubiksCube } from "motion-core";
	import type { ComponentProps } from "svelte";

	type Props = Partial<ComponentProps<typeof RubiksCube>>;

	let {
		size = 1,
		duration = 1.5,
		gap = 0.015,
		radius = 0.125,
	}: Props = $props();
</script>

<RubiksCube class="h-full min-h-96 w-full" {size} {duration} {gap} {radius} />

Props

RubiksCube

PropTypeDefault
size
number 1
duration
number 1.5
gap
number 0.015
radius
number 0.125
fresnelConfig
FresnelConfig Default Fresnel
class
string ""

FresnelConfig

KeyTypeDefault
color
stringnumber[number, number, number]{ r: number; g: number; b: number } "#17181A"
rimColor
stringnumber[number, number, number]{ r: number; g: number; b: number } "#FF6900"
rimPower
number 6
rimIntensity
number 1.5