CSS letter-spacing으로 텍스트 등장 효과 만들기
요약
CSS-Tricks에서 letter-spacing 속성의 음수 값과 투명 색상을 조합해 순수 CSS만으로 텍스트 등장·토글·약어 확장 효과를 구현하는 기법을 소개했다.
CSS-Tricks에서 letter-spacing 속성을 활용한 텍스트 공개(reveal) 효과 시리즈를 게시했다. JavaScript 없이 CSS만으로 글자를 겹쳐 숨겼다가 풀어내는 세 가지 패턴을 다룬다.
무엇이 새로운가
핵심 아이디어는 단순하다. letter-spacing: -1ch로 글자를 한 점에 겹치고 color: transparent로 숨긴 뒤, 상태 변화(:checked, :hover 등) 시 letter-spacing: 0ch과 color: black으로 전환하면서 트랜지션을 건다. 원문은 세 가지 데모를 보여준다. 첫째, 체크박스 토글로 텍스트 정렬 위치(left·center·right)에서 글자가 펼쳐지는 효과. 둘째, 두 <span>을 교차 전환하여 라벨 텍스트를 바꾸는 UI — overflow: clip과 text-indent 음수 값을 함께 써서 첫 번째 텍스트를 밀어낸다. 셋째, ::first-letter를 활용해 약어(UNICEF)의 첫 글자만 보이다가 hover 시 전체 단어를 펼치는 패턴이다. 모든 예제에서 cubic-bezier(.8, -.5, .2, 1.4) 같은 바운스 이징을 적용해 시각적 탄력을 준다.
설정 파일에 어떤 의미인가
이 글은 순수 CSS 기법 튜토리얼이므로, 빌드 도구나 프로젝트 설정 파일에 직접적인 영향은 없다. 별도의 라이브러리 의존성이나 PostCSS 플러그인이 필요하지 않고, 표준 CSS 속성만 사용한다. 다만 두 번째 데모에서 쓰인 :checked + * & 같은 네스팅 셀렉터는 CSS Nesting 명세에 해당하므로, 프로젝트의 브라우저 지원 범위에 따라 PostCSS nesting 플러그인이나 Sass 컴파일이 필요할 수 있다. Browserslist 설정이나 Autoprefixer 대상 범위를 확인해 두면 좋다. 그 외 breaking change나 마이그레이션 사항은 해당하지 않는다.
다음 단계 제안
원문의 CodePen 데모를 직접 열어 letter-spacing 음수 값의 한계를 확인해 보는 것이 가장 빠르다. 한글처럼 고정폭이 아닌 글꼴에서는 -1ch 값이 완벽하게 겹치지 않을 수 있으므로, 자신의 타이포그래피 환경에서 테스트가 필요하다. 접근성 측면에서는 color: transparent 상태의 텍스트가 스크린 리더에 여전히 노출된다는 점도 고려해야 한다 — 원문에서도 “추가적인 접근성 고려가 필요하다”고 언급하고 있다.
원문 전체 보기: Revealing Text With CSS letter-spacing (CSS-Tricks)
다른 CSS-Tricks 소식
스크롤 기반 애니메이션, 스크롤 트리거, 스크롤 상태, 뷰 전환 — 개념 구분 정리
CSS-Tricks에서 스크롤 기반 애니메이션, 스크롤 트리거 애니메이션, 컨테이너 쿼리 스크롤 상태, 뷰 전환 네 가지 개념의 차이를 정리한 글이다. 이름이 비슷해 혼동하기 쉬운 CSS 기능들을 한눈에 비교할 수 있다.
CSS offset-path 속성 정리: 경로 기반 애니메이션의 현재 상태
CSS-Tricks가 offset-path 속성에 대한 Almanac 레퍼런스를 업데이트했다. 기존 motion-path에서 offset-path로의 네이밍 전환, 현재 지원되는 값, 관련 속성들을 정리하고 있다.
CSS-Tricks !important #12: Safari 테스팅, ::checkmark, HTML 앵커 포지셔닝 등
CSS-Tricks의 뉴스레터 12호가 Safari 크로스 브라우저 테스팅, ::checkmark 의사 요소, data 속성 기반 앵커 연결 기법, 그리고 Firefox 151의 컨테이너 스타일 쿼리 Baseline 진입 등을 다뤘다.