Skip to documentation
Search documentation
Search documentation by page title, section heading, or page content.

Background

Dragon Skin

Layered, glowing ridges form an animated surface inspired by dragon scales.

  • pixi.js@^8.20.1

Preparing preview…

Installation

Choose your framework. The registry installs one component file and its PixiJS dependency.

Installation unavailable

The preview is public, but its installable release is still being prepared.

The registry command writes the component to src/lib/components/ui/DragonSkin.svelte and installs its dependencies.

The registry command writes the component to src/components/ui/DragonSkin.tsx and installs its dependencies.

The registry command writes the component to src/components/ui/DragonSkin.vue and installs its dependencies.

Overview

Dragon Skin combines three directional waves across five warped, rotated layers. Sharpened intersections create an animated network of scale-like ridges.

The accumulated height drives the dark red color transition, orange glow, and finite-difference normals used for directional highlights.

Basic usage

The shader fills its parent. Your layout decides whether that parent is a card, hero, or viewport.

Hero.svelte
<script lang="ts">
	import DragonSkin from '$lib/components/ui/DragonSkin.svelte';
</script>

<section class="relative h-128 overflow-hidden">
	<DragonSkin
		class="absolute inset-0"
		speed={0.8}
	/>

	<div class="relative z-10">Your content</div>
</section>
<script lang="ts">
	import DragonSkin from '$lib/components/ui/DragonSkin.svelte';
</script>

<section class="relative h-128 overflow-hidden">
	<DragonSkin
		class="absolute inset-0"
		speed={0.8}
	/>

	<div class="relative z-10">Your content</div>
</section>
import { DragonSkin } from '@/components/ui/DragonSkin';

export function Hero() {
	return (
		<section className="relative h-128 overflow-hidden">
			<DragonSkin
				className="absolute inset-0"
				speed={0.8}
			/>

			<div className="relative z-10">Your content</div>
		</section>
	);
}
import { DragonSkin } from '@/components/ui/DragonSkin';

export function Hero() {
	return (
		<section className="relative h-128 overflow-hidden">
			<DragonSkin
				className="absolute inset-0"
				speed={0.8}
			/>

			<div className="relative z-10">Your content</div>
		</section>
	);
}
<script setup lang="ts">
import DragonSkin from '@/components/ui/DragonSkin.vue';
</script>

<template>
	<section class="relative h-128 overflow-hidden">
		<DragonSkin
			class="absolute inset-0"
			:speed="0.8"
		/>

		<div class="relative z-10">Your content</div>
	</section>
</template>
<script setup lang="ts">
import DragonSkin from '@/components/ui/DragonSkin.vue';
</script>

<template>
	<section class="relative h-128 overflow-hidden">
		<DragonSkin
			class="absolute inset-0"
			:speed="0.8"
		/>

		<div class="relative z-10">Your content</div>
	</section>
</template>
  • Raise Ridge sharpness for thinner ridges, or lower it for broader scales.
  • Set Speed to zero for a static frame. Reduced-motion mode pauses the renderer automatically.

Component API

Types below match the selected Svelte component.

Types below match the selected React component.

Types below match the selected Vue component.