목차
HSL 값을 활용합니다
컬러 라이브러리 사용
컬러 그리드 도구
RGB 색상 조작 기술
RGB 광도 결정
가벼움이나 색조에 영향을 미치지 않고 RGB를 포화시킵니다
불포화 RGB 색상
색조를 보존하는 동안 RGB가 번개 및 어두워집니다
웹 프론트엔드 CSS 튜토리얼 JavaScript를 사용하여 RGB 색상의 채도 및 밝기를 조정

JavaScript를 사용하여 RGB 색상의 채도 및 밝기를 조정

Apr 02, 2025 am 04:20 AM

JavaScript를 사용하여 RGB 색상의 채도 및 밝기를 조정

최근에 저는 Adam Wathan과 Steve Schroger의 작품에서 영감을 얻은 컬러 디자인 원칙을 탐구했습니다. 그들의 조언은 몇 가지 미적으로 유쾌한 육각 코드를 넘어 포괄적 인 색상 팔레트의 필요성을 강조합니다. 강력한 응용 분야를 구축하려면 다양한 수준의 밝기와 채도를 가진 수많은 그레이와 여러 기본 색상을 포함하는 더 넓은 범위가 필요합니다.

내 개발 워크 플로우에는 종종 16 진 코드 또는 RGB 색상이 포함되지만 조명 및 채도는 수동으로 조정하는 것이 번거 롭습니다. 이 과정을 간소화하고 일정한 컬러 피커 조정으로 인한 반복적 인 변형 손상을 방지하려면 색상을 효율적으로 조작하기위한 코드를 탐색하겠습니다.

HSL 값을 활용합니다

HSL (Hue, Pathation, Lightness)은 특히 수동 색상 조정이 예상 될 때 웹 색상을 정의하는 데 우수한 방법을 제공합니다. HSL은 색조를 숫자 (0-360), 채도 및 가벼움 백분율로 나타냅니다. 예를 들어:

 div {
  배경색 : HSL (155, 30%, 80%);
}
로그인 후 복사

이것은 가볍고 음소거 된 민트 녹색을 생성합니다. 어두운 텍스트를 추가하고 일관성을 유지하려면 가벼움을 조정할 수 있습니다.

 div {
  배경색 : HSL (155, 30%, 80%);
  색상 : HSL (155, 30%, 5%);
}
로그인 후 복사

이것은 배경과 조화를 이루는 어두운 텍스트를 만듭니다. 호출 문안 버튼의 경우 채도가 증가하고 약간 낮은 가벼움이 증가 할 수 있습니다.

 .call-to-Action {
  배경색 : HSL (155, 80%, 60%);
  색상 : HSL (155, 30%, 5%);
}
로그인 후 복사

포화를 줄이고 밝기를 증가시켜 덜 중요한 텍스트를 더 강조 할 수 있습니다.

 div {
  배경색 : HSL (155, 30%, 80%);
  색상 : HSL (155, 30%, 5%);
}

.없는 {
  색상 : HSL (155, 15%, 40%);
}
로그인 후 복사

HSL의 브라우저 호환성 및 선언적 특성으로 인해 RGB가 바람직합니다. 그러나 기존의 RGB 프로젝트 또는 레거시 브라우저 지원 문제는 대체 접근 방식을 필요로 할 수 있습니다.

컬러 라이브러리 사용

수많은 색상 조작 라이브러리는 HSL-to-RGB/Hex 변환을 단순화하고 고급 색 구성표 생성을 제공합니다. 주목할만한 예는 다음과 같습니다.

  • Colvertize (Philipp Mildenberger) : 변환 및 조작 기능이있는 가벼운 라이브러리.
  • 색상 (Josh Junon) : 색상 선언, 처리 및 추출을위한 유창한 인터페이스.
  • TinyColor (Brian Grinstead) : 다양한 입력 유형을 처리하고 체계 생성 유틸리티를 제공합니다.

CSS- 트릭은 또한 색상 형식 변환에 대한 귀중한 리소스를 제공합니다.

컬러 그리드 도구

보다 대화식 접근 방식을 위해서는 색상 그리드 도구를 고려하십시오. 리팩토링 UI가 강조 하듯이 수학적 정밀도만으로도 최적의 컬러 팔레트를 보장하지는 않습니다. 내가 개발 한 반응 응용 프로그램 인 Color Grid는 선택한 색조를 기반으로 팔레트를 생성하여 채도와 가벼움의 100 가지 변형을 제공합니다. 사용자는 인터페이스에서 직접 16 진 코드 또는 CSS 사용자 정의 속성을 복사 할 수 있습니다.

RGB 색상 조작 기술

다음 기술은 RGB 색상 처리에 중점을 둡니다.

RGB 광도 결정

참고 : 이 방법은 색조의 고유 한 밝기를 설명하지 않습니다 (예 : 자주색보다 노란색의 높은 지각 된 밝기). 그것은 흑백 또는 흰색 혼합의 양을 측정합니다. 시각적 평가는 정확한 가벼움 판단에 중요합니다.

가벼움은 가장 높고 가장 낮은 RGB 값을 평균화 한 다음 255로 나누어 계산됩니다.

 함수 getlightnessofrgb (rgbstring) {
  const rgbintarray = (rgbstring.replace ( / / g, '') .slice (4, -1) .split ( ','). map (e => parseint (e));
  const high high = math.max (... rgbintarray);
  const lower = math.min (... rgbintarray);
  반환 (가장 높은 최저) / 2 / 255;
}
로그인 후 복사

가벼움이나 색조에 영향을 미치지 않고 RGB를 포화시킵니다

포화 RGB는 과제를 제시합니다. 회색은 색조 정보가 부족하고 순수한 색조를 달성하려면 50% 가벼움이 필요합니다. 이 예는 가벼움을 유지합니다.

포화 시키려면 가장 낮은 RGB 값과 가장 높은 RGB 값의 차이를 증가시킵니다. 가벼움을 유지하려면 0-255 한계에 의해 제한되는 최고 및 최저 값의 동일한 증가/감소가 필요합니다. 사용 가능한 포화 범위는 다음과 같이 결정됩니다.

  • 회색 (동일한 가벼움)과 255의 차이.
  • 회색 (동일한 가벼움)과 0의 차이.
 // ... (위의 getlightnessofrgb 함수) ...

const grayval = getlightnessofrgb ( 'rgb (205, 228, 219)') * 255; // 217
const potationRange = math.round (Math.min (255 -Grayval, Grayval)); // 38

// ... (포화 계산의 나머지) ...
로그인 후 복사

중간 값의 조정은 최고 및 최저 값의 변화에 ​​비례합니다. 완전한 포화 함수는 간결하게 관여하고 생략되지만 핵심 개념이 제시됩니다.

불포화 RGB 색상

불포화는 채도 과정을 뒤집어 회색 값으로 이동합니다. 완전한 불포화는 동일한 RGB 값을 가진 회색을 초래합니다. 부분 불포화는 가장 높은 RGB 값과 가장 낮은 RGB 값의 차이를 비례 적으로 감소시키는 것을 포함합니다. 완전한 불포화 기능도 간결하게 생략됩니다.

색조를 보존하는 동안 RGB가 번개 및 어두워집니다

번개는 RGB 값이 255로 비례 적으로 증가하는 반면, 어두워지는 것은 비례 적으로 0으로 감소합니다. 두 프로세스 모두 점차 포화를 감소시킵니다. 번개 및 어두워지기위한 완전한 기능은 간결하게 생략됩니다.

이러한 기능은 RGB 색상 조작의 기초를 제공합니다. 그러나 HSL, 컬러 라이브러리 및 컬러 그리드 도구는 요구 및 프로젝트 제약 조건에 따라 대안의 대안을 제공합니다.

위 내용은 JavaScript를 사용하여 RGB 색상의 채도 및 밝기를 조정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

GraphQL 캐싱 작업 GraphQL 캐싱 작업 Mar 19, 2025 am 09:36 AM

최근에 GraphQL 작업을 시작했거나 장단점을 검토 한 경우 "GraphQL이 캐싱을 지원하지 않음"또는

첫 번째 맞춤형 전환을 만듭니다 첫 번째 맞춤형 전환을 만듭니다 Mar 15, 2025 am 11:08 AM

Svelte Transition API는 맞춤형 전환을 포함하여 문서를 입력하거나 떠날 때 구성 요소를 애니메이션하는 방법을 제공합니다.

쇼, 말하지 마십시오 쇼, 말하지 마십시오 Mar 16, 2025 am 11:49 AM

웹 사이트의 컨텐츠 프레젠테이션을 설계하는 데 얼마나 많은 시간을 소비합니까? 새 블로그 게시물을 작성하거나 새 페이지를 만들 때

Redwood.js 및 동물 군을 사용하여 이더 리움 앱 구축 Redwood.js 및 동물 군을 사용하여 이더 리움 앱 구축 Mar 28, 2025 am 09:18 AM

최근 Bitcoin의 가격이 20k 달러가 넘는 USD가 최근에 등반되면서 최근 30k를 끊었으므로 Ethereum을 만드는 데 깊이 다이빙을 할 가치가 있다고 생각했습니다.

CSS를 사용하여 텍스트 그림자 및 그라디언트와 같은 텍스트 효과를 만드는 방법은 무엇입니까? CSS를 사용하여 텍스트 그림자 및 그라디언트와 같은 텍스트 효과를 만드는 방법은 무엇입니까? Mar 14, 2025 am 11:10 AM

이 기사에서는 그림자 및 그라디언트와 같은 텍스트 효과에 CSS를 사용하여 성능을 최적화하고 사용자 경험을 향상시킵니다. 초보자를위한 리소스도 나열됩니다. (159 자)

NPM 명령은 무엇입니까? NPM 명령은 무엇입니까? Mar 15, 2025 am 11:36 AM

NPM 명령은 서버 시작 또는 컴파일 코드와 같은 것들에 대한 일회성 또는 지속적으로 실행되는 프로세스로 다양한 작업을 실행합니다.

Leakenty와 함께 자신의 Bragdoc을 만듭니다 Leakenty와 함께 자신의 Bragdoc을 만듭니다 Mar 18, 2025 am 11:23 AM

개발자로서 어느 단계에 있든, 우리가 완료 한 작업은 크든 작든, 개인적이고 전문적인 성장에 큰 영향을 미칩니다.

특이성에 대해 이야기하기 위해 (X, X, X, X)를 사용해 보겠습니다. 특이성에 대해 이야기하기 위해 (X, X, X, X)를 사용해 보겠습니다. Mar 24, 2025 am 10:37 AM

나는 다른 날에 Eric Meyer와 대화를 나누고 있었고 나는 내 형성 시절부터 Eric Meyer 이야기를 기억했습니다. CSS 특이성에 대한 블로그 게시물을 썼습니다

See all articles