커서 트레일

Cursor Trail

포인터가 지나간 자리에 색 띠가 잠시 남아 움직임을 따라옵니다.

다른 이름: CursorTrailcursor trailpointer trail

WebGPU 를 지원하는 브라우저에서 움직입니다

이 기기에서는 데모를 그리지 못해 정지 화면을 보여 줍니다

React
// WebGPU 를 지원하는 브라우저에서만 그립니다.
import { Shader, CursorTrail } from 'shaders/react'

export default function ShaderEffect() {
  return (
    <Shader style={{ width: '100%', height: 320 }} disableTelemetry>
      <CursorTrail />
    </Shader>
  )
}
Vue
<!-- WebGPU 를 지원하는 브라우저에서만 그립니다. -->
<script setup lang="ts">
import { Shader, CursorTrail } from 'shaders/vue'
</script>

<template>
  <Shader style="width: 100%; height: 320px" :disable-telemetry="true">
    <CursorTrail/>
  </Shader>
</template>
Svelte
<!-- WebGPU 를 지원하는 브라우저에서만 그립니다. -->
<script>
  import { Shader, CursorTrail } from 'shaders/svelte'
</script>

<Shader style="width: 100%; height: 320px" disableTelemetry>
  <CursorTrail />
</Shader>
Solid
// WebGPU 를 지원하는 브라우저에서만 그립니다.
import { Shader, CursorTrail } from 'shaders/solid'

export default function ShaderEffect() {
  return (
    <Shader style={{ width: '100%', height: '320px' }} disableTelemetry>
      <CursorTrail />
    </Shader>
  )
}
JavaScript
// WebGPU 를 지원하는 브라우저에서만 그립니다.
// <canvas id="canvas" style="width:100%;height:320px"></canvas> 가 페이지에 있어야 한다
import { createShader } from 'shaders/js'

const shader = await createShader(document.getElementById("canvas"), {
  components: [
    {
      type: 'CursorTrail',
    }
  ]
}, { disableTelemetry: true })

속성(props) · CursorTrail

값을 바꾸면 위 데모와 코드 탭에 바로 반영됩니다. 설명은 라이브러리 레지스트리의 영어 원문(MIT)입니다.

이름값기본값범위·선택지설명(원문)
colorAStart Color#00aaff—Color of fresh trails
colorBEnd Color#ff00aa—Color trails transition to as they fade
stopsColors코드에서 지정null—Multi-stop gradient colors (overrides Color A / Color B when set)
radiusRadius0.50.5 – 2 (step 0.1)Base radius of the trail stroke
lengthTrail Length0.50.1 – 2 (step 0.1)How long the trail persists (in seconds)
shrinkShrink Amount10 – 1 (step 0.1)How much the stroke tapers as it fades out (0 = no taper, 1 = full taper)
softnessSoftness00 – 1 (step 0.01)Edge softness of the trail (0 = crisp paint edge, 1 = very soft)
colorSpaceColor Spacelinearlinear · oklch · oklab · hsl · hsv · lchColor space for color interpolation

모든 컴포넌트 공통: blendMode · opacity · visible · maskSource/maskType · boundingBox · id

포인터가 지나간 자리에 색 띠가 잠깐 남아 따라온다. 어두운 공중에 손전등을 휘저을 때 빛의 흔적이 그려지는 것처럼, 화면 위에 움직임을 보여 준다.

`colorA`와 `colorB`는 새 자국과 사라질 때의 색이며 기본값은 각각 `#00aaff`, `#ff00aa`다. `radius`는 선 굵기(기본값 0.5, 범위 0.5–2), `length`는 자국이 남는 시간(기본값 0.5초, 범위 0.1–2), `shrink`는 끝이 가늘어지는 정도(기본값 1, 범위 0–1)를 조절한다.

혼자 화면을 그리는 레이어라 밑에 이미지가 없어도 된다. 어두운 배경과 함께 두면 색 자국이 또렷하고, 글자 위에 오래 겹치면 읽기를 방해하므로 짧은 상호작용 영역에 쓴다.

언제 쓰나

포인터를 따라오는 장식, 히어로 영역의 반응, 그리기·탐색 피드백에 좋다. 정보가 촘촘하거나 오래 읽어야 하는 본문에서는 피한다.

페이지로 열기 ↗