피드로 돌아가기
How to Create a Sparkly-Spoiler Effect like the one in Threads Mobile App
Dev.toDev.to
Frontend

CSS 변수와 JS 기반 동적 요소 생성을 통한 Threads 스타일 Sparkly-Spoiler 효과 구현

How to Create a Sparkly-Spoiler Effect like the one in Threads Mobile App

Erik2026년 4월 18일24beginner

Context

단순한 텍스트 가림 처리를 넘어 사용자 경험을 강화하는 시각적 인터랙션 필요성 대두. 정적인 Gray Bar 방식의 단조로움을 해결하고 모바일 앱 수준의 동적 효과를 브라우저 환경에서 재현하려는 목적임.

Technical Solution

  • HTML <span> 태그와 data-hidden 속성을 활용한 상태 기반 텍스트 가시성 제어 구조 설계
  • CSS Custom Properties(--x0, --y0 등)를 통한 개별 입자의 위치 및 애니메이션 속성 동적 할당
  • JavaScript createElement를 이용한 75개의 Sparkle 요소 생성 및 랜덤 좌표 배치 로직 구현
  • Math.random() 기반의 애니메이션 지속 시간(--dur) 및 반짝임 주기(--twinkle) 차등 적용으로 자연스러운 시각 효과 생성
  • 클릭 이벤트 리스너를 통한 data-hidden 속성 토글 방식의 상태 전이 아키텍처 채택

- 다량의 동적 시각 요소 생성 시 CSS 변수를 활용하여 JS-CSS 간 결합도를 낮추고 성능 최적화 검토 - 상태 기반 UI 변경 시 클래스 조작보다 `data-*` 속성을 활용하여 시맨틱한 상태 관리 적용 - 랜덤 애니메이션 구현 시 최소/최대 범위를 지정하는 Helper 함수를 구축하여 시각적 일관성 유지

원문 읽기