0

CSS 애니메이션 그라데이션 테두리 생성기

@property, 원추형 그라데이션 및 마스크 합성을 사용하여 테두리 반경을 올바르게 준수하는 부드럽게 회전하는 무지개 그라데이션 테두리를 생성합니다. 실제 CSS를 복사하고 실시간으로 회전하는 모습을 지켜보세요.

4px
20px
3s
처리 중... 0%

결과

회전하는 무지개 테두리는 CSS에서 실제로 만들려고 하기 전까지는 단순해 보입니다. 일반 사용자 정의 속성을 사용하여 conic-gradient() 내부의 각도에 애니메이션을 적용하는 것은 유용하지 않습니다. 왜냐하면 브라우저는 값이 각도인지 모르고 0도와 360도 사이를 보간할 수 없기 때문입니다. — 그냥 점프합니다. 이 생성기는 실제 수정 사항인 CSS 속성 및 값 API를 사용합니다. `@property --border-angle { 구문: '<angle>'; 초기값: 0deg; 상속: 거짓; }`는 사용자 정의 속성이 어떤 종류의 값을 보유하고 있는지 브라우저에 정확하게 알려주며, 이를 통해 @keyframes 규칙 전반에 걸쳐 원활하고 GPU 친화적인 보간이 가능해집니다.

링 자체는 배경이 `conic-gradient(from var(--border-angle), ...)`로 설정된 상자(테두리 너비를 뺀 값으로 삽입)보다 큰 크기의 ::전 의사 요소이므로 첫 번째 색상으로 다시 반복되므로 스윕에 눈에 보이는 이음새가 없습니다. 그런 다음 마스크는 실제 모양 조정 작업을 수행합니다. `mask: 선형-그라디언트(#000 0 0) 콘텐츠 상자, 선형-그라디언트(#000 0 0); 마스크 합성: 제외;`는 패딩 상자와 콘텐츠 상자 사이의 고리 모양 차이만 유지하고 다른 곳에서는 단색 그라데이션 사각형을 삭제합니다. Safari의 이전 `-webkit-mask-composite: xor`는 동일한 작업을 수행하고 표준 속성과 함께 제공되므로 효과는 하나의 엔진에서 자동으로 실패하지 않고 일관되게 렌더링됩니다.

테두리 반경 지원은 추가로 추가되는 것이 아닙니다. 의사 요소의 `border-radius: 상속`은 상자에 다이얼한 모든 반경이 자동으로 링에 전달됨을 의미합니다. 따라서 알약 모양의 버튼이나 둥근 카드는 곡선 모서리에서 흘러나오는 직선 가장자리 대신 둥근 빛나는 테두리를 얻습니다. 실시간 테스트: 날카로운 직사각형에서 전체 알약까지 반경 슬라이더를 드래그하고 모든 단계에서 링이 모양을 따르는 것을 확인하세요. 이는 이 기술의 실제 구현과 가짜 스크린샷을 구분하는 세부 사항입니다.

페이지의 다른 모든 항목은 생성된 코드에 직접 매핑됩니다. 너비 슬라이더는 링의 두께와 의사 요소의 삽입/패딩이고, 지속 시간 슬라이더는 @keyframes 애니메이션 지속 시간이고, 방향 스위치는 키프레임의 끝 각도 기호(+360deg 또는 -360deg)를 뒤집으며, 각 색상 정지점은 원추형 그라데이션() 호출 내에서 쉼표로 구분된 항목입니다. 이미지, JavaScript 기반 애니메이션 루프, 외부 서비스 없이 모든 것이 브라우저에서 실행됩니다. CSS 블록을 복사하면 붙여넣을 때마다 계속 회전합니다.