Apple의 색상 선택기 아이콘 재생성
이는 코딩 및 사용이 매우 간단하지만 사용자가 사용자 정의 색상을 생성해야 하는 경우가 있습니다.
그렇다면 색상이 사용자 지정이고 기본 테마 색상의 일부가 아니며 수정할 수 있음을 어떻게 나타냅니까?
나는 이것을 조사하는 데 꽤 많은 시간을 보냈고 Apple이 Notes 앱에서 어떻게하는지 발견했습니다.
간단하고 아름답습니다! 선택한 색상은 내부 테두리와 색조 그라데이션으로 둘러싸인 원의 중심에 표시됩니다.
그러나 CSS에서 이것을 달성하는 방법은 무엇입니까?
언제나처럼 Temani Afif는 .
linear-gradient
를 conic-gradient
로 바꾸겠습니다..box::after {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
padding: 8px;
background: conic-gradient(
hsl(360, 100%, 50%),
hsl(315, 100%, 50%),
hsl(270, 100%, 50%),
hsl(225, 100%, 50%),
hsl(180, 100%, 50%),
hsl(135, 100%, 50%),
hsl(90, 100%, 50%),
hsl(45, 100%, 50%),
hsl(0, 100%, 50%)
) border-box;
-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
}
... 결과는 다음과 같습니다.
멋진! 이제 "내부 테두리"를 위해 두 번째 마스크를 만들었습니다.
.box::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
padding: 12px;
background: linear-gradient(var(--body-bg) 0 0) border-box;
-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
}
이는 우리에게 다음을 제공합니다.
거의 다 왔어 ...하지만 "다크 모드"는 어떻습니까?
--body-bg
-변수를 확인하셨습니까? 배경색 상속을 처리하므로 다음과 같습니다.이 기법의 가장 큰 장점은
border-radius
의 유무에 관계없이 작동한다는 것입니다.마지막 생각들
마스크에
pseudo
요소를 모두 사용하는 것이 약간 짜증난다는 것을 인정해야 합니다. 하나는 conic-gradient
용이고 다른 하나는 내부 테두리용입니다. 마지막 것은 단순히 영역을 "잘라내고"페이지 또는 섹션의 배경색이 "빛나게"합니다. 이 작업을 수행하는 방법을 알고 있다면 의견에 결과를 공유하십시오!이 게시물 작성을 마친 후 Apple 아이콘의 채도가 약간 더 낮아진 것을 확인했습니다. 이를 달성하려면 마스크에서
saturation
-색상 중 hsl
-부분을 변경하기만 하면 됩니다.예:
hsl(360, 100%, 50%)
를 hsl(360, 80%, 50%)
로 변경 등Reference
이 문제에 관하여(Apple의 색상 선택기 아이콘 재생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/madsstoumann/recreating-apples-color-picker-icon-20aa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)