"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 전환 테마 애니메이션 보기

전환 테마 애니메이션 보기

2024-11-04에 게시됨
검색:400

View transition theme animations

CSS 및 보기 전환을 사용하여 밝은 모드에서 어두운 모드로 전환할 때 멋진 효과 추가

트위터 @jhey에서 복사함

[!메모]
이는 테마를 업데이트하기 위한 일종의 기능을 갖춘 어두운 조명 모드 설정이 이미 있다고 가정합니다

  1. CSS 추가
  /* Angled */
  [data-style='angled']::view-transition-old(root) {
    animation: none;
    z-index: -1;
  }

  [data-style='angled']::view-transition-new(root) {
    animation: unclip 1s;
    clip-path: polygon(-100vmax 100%, 100% 100%, 100% -100vmax);
  }

  @keyframes unclip {
    0% {
      clip-path: polygon(100% 100%, 100% 100%, 100% 100%);
    }
  }

  1. 루트 요소에 data-style="angled" 속성이 설정되어 있는지 확인하세요. SPA 반응에서는 useEffect 후크를 사용합니다.
  useEffect(() => {
    // set the data-style attribute
    document.documentElement.dataset.style = "angled";
  }, []);

SSR에서는 HTML 태그에서 직접 설정할 수 있습니다.

  1. documnet.startViewTransition에서 테마 변경 기능을 래핑하여 보기 전환을 시작합니다.
  function transitionColors() {
    if (typeof window !== "undefined") {
      document.startViewTransition(() => {
        const newTheme = theme  === "light" ? "dark" : "light";
        document.documentElement.dataset.theme = newTheme;
        updateTheme(newTheme);
      });
    }
  }

해당 CSS 파일을 포함하고 올바른 데이터 스타일 속성을 추가하면 더 많은 전환 스타일을 추가할 수 있습니다.

      

반응 예시

이런 유형의 CSS 트릭을 좋아한다면 jhey를 팔로우하는 것을 고려해 보세요.

릴리스 선언문 이 글은 https://dev.to/tigawanna/view-transition-theme-animations-8n1?1에서 복제됩니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3