Table des matières
Tirer parti des valeurs HSL
Utilisation de bibliothèques de couleurs
L'outil de grille de couleur
Techniques de manipulation des couleurs RVB
Déterminer la légèreté RVB
RVB saturant sans affecter la légèreté ou la teinte
Couleurs RVB désatures
Éclaircissement et assombrissement RVB tout en préservant la teinte
Maison interface Web tutoriel CSS Utilisation de JavaScript pour ajuster la saturation et la luminosité des couleurs RVB

Utilisation de JavaScript pour ajuster la saturation et la luminosité des couleurs RVB

Apr 02, 2025 am 04:20 AM

Utilisation de JavaScript pour ajuster la saturation et la luminosité des couleurs RVB

Récemment, j'ai exploré les principes de conception des couleurs, m'inspirant du travail d'Adam Wathan et Steve Schroger. Leur conseil met en évidence la nécessité d'une palette de couleurs complète au-delà de quelques codes hexagonaux esthétiquement agréables. La construction d'applications robustes nécessite une gamme plus large, englobant de nombreux gris et plusieurs couleurs primaires, chacune avec différents niveaux de luminosité et de saturation.

Mon flux de travail de développement implique souvent des codes hexadécimaux ou des couleurs RVB, mais l'ajustement manuellement légère et saturation s'avère lourds. Pour rationaliser ce processus et empêcher les blessures répétitives des déformations des ajustements de sélecteur de couleurs constants, explorons un code pour manipuler efficacement les couleurs.

Tirer parti des valeurs HSL

HSL (teinte, saturation, légèreté) offre une méthode supérieure pour définir les couleurs Web, en particulier lorsque les ajustements manuels des couleurs sont prévus. HSL représente Hue comme un nombre (0-360), la saturation et la légèreté en pourcentages. Par exemple:

 div {
  Color en arrière-plan: HSL (155, 30%, 80%);
}
Copier après la connexion

Cela génère un vert de menthe léger et sourde. Pour ajouter du texte sombre, en maintenant la cohérence, nous pouvons ajuster la légèreté:

 div {
  Color en arrière-plan: HSL (155, 30%, 80%);
  Couleur: HSL (155, 30%, 5%);
}
Copier après la connexion

Cela crée un texte sombre qui s'harmonise avec l'arrière-plan. Pour un bouton d'appel à l'action, nous pourrions augmenter la saturation et la légèreté légèrement inférieure:

 .Apt-to-action {
  Color en arrière-plan: HSL (155, 80%, 60%);
  Couleur: HSL (155, 30%, 5%);
}
Copier après la connexion

Le texte moins important pourrait être davantage insuffisant en réduisant la saturation et en augmentant la luminosité:

 div {
  Color en arrière-plan: HSL (155, 30%, 80%);
  Couleur: HSL (155, 30%, 5%);
}

.lessI-Important {
  Couleur: HSL (155, 15%, 40%);
}
Copier après la connexion

La compatibilité du navigateur et la nature déclarative de HSL le rendent préférable à RVB. Cependant, les projets RVB existants ou les préoccupations de soutien du navigateur hérité pourraient nécessiter des approches alternatives.

Utilisation de bibliothèques de couleurs

De nombreuses bibliothèques de manipulation de couleurs simplifient les conversions HSL-RGB / Hex et offrent une génération avancée de palettes de couleurs. Certains exemples notables incluent:

  • Colvertize (Philipp Mildenberger): bibliothèque légère avec fonctions de conversion et de manipulation.
  • Couleur (Josh Junon): Interface fluide pour la déclaration, le traitement et l'extraction des couleurs.
  • Tinycolor (Brian Grinstead): gère divers types d'entrée et fournit des utilitaires de génération de schémas.

CSS-Tricks propose également une ressource précieuse sur les conversions de format de couleur.

L'outil de grille de couleur

Pour une approche plus interactive, considérez l'outil de grille couleur. Comme l'indique l'interface utilisateur, la précision mathématique à elle seule ne garantit pas des palettes de couleurs optimales. Color Grid, une application React que j'ai développée, génère une palette basée sur une teinte sélectionnée, offrant 100 variations de saturation et de légèreté. Les utilisateurs peuvent copier des codes hexagonaux ou des propriétés personnalisées CSS directement à partir de l'interface.

Techniques de manipulation des couleurs RVB

Les techniques suivantes se concentrent sur le traitement des couleurs RVB.

Déterminer la légèreté RVB

Remarque: Cette méthode ne tient pas compte de la luminosité inhérente d'une teinte (par exemple, la luminosité perçue plus élevée du jaune que le violet). Il mesure la quantité de noir ou blanc mélangé. L'évaluation visuelle reste cruciale pour le jugement précis de la légèreté.

La légèreté est calculée en faisant la moyenne des valeurs RVB les plus élevées et les plus basses, puis en divisant par 255:

 fonction getlightnessofrgb (rgbstring) {
  const rgbintarray = (rgbstring.replace (/ / g, '') .slice (4, -1) .split (','). map (e => parseInt (e)));
  const Haut lesh = Math.max (... rgBintArray);
  const-basest = math.min (... rgBintArray);
  retour (le plus haut le plus bas) / 2/255;
}
Copier après la connexion

RVB saturant sans affecter la légèreté ou la teinte

Le RVB saturant présente des défis: les gris manquent d'informations sur les teintes, et la réalisation de teintes pures nécessite 50% de légèreté. Cet exemple maintient la légèreté:

Pour saturer, augmenter la différence entre les valeurs RVB les plus basses et les plus élevées. Le maintien de la légèreté nécessite des augmentations / diminutions égales des valeurs les plus élevées et les plus basses, contraintes par des limites de 0 à 255. La plage de saturation disponible est déterminée par:

  • La différence entre un gris (même légèreté) et 255.
  • La différence entre un gris (même légèreté) et 0.
 // ... (fonction Getlightnessofrgb d'en haut) ...

const GrayVal = Getlightnessofrgb ('RGB (205, 228, 219)') * 255; // 217
const SaturationRange = Math.round (math.min (255 - Grayval, Grayval)); // 38

// ... (calcul du reste de la saturation) ...
Copier après la connexion

L'ajustement de la valeur moyenne est proportionnel aux changements des valeurs les plus élevées et les plus basses. La fonction de saturation complète est assez impliquée et omise pour la concision, mais les concepts de base sont présentés.

Couleurs RVB désatures

La désaturation inverse le processus de saturation, se déplaçant vers une valeur grise. Une désaturation complète se traduit par un gris avec des valeurs RVB égales. La désaturation partielle consiste à réduire proportionnellement la différence entre les valeurs RVB les plus élevées et les plus basses. La fonction de désaturation complète est également omise par la brièveté.

Éclaircissement et assombrissement RVB tout en préservant la teinte

L'éclairage implique une augmentation proportionnelle des valeurs de RVB vers 255, tandis que l'assombrissement les diminue proportionnellement vers 0. Les deux processus réduisent progressivement la saturation. Les fonctions complètes de l'éclair et de l'assombrissement sont omises pour la concision.

Ces fonctions fournissent une base pour la manipulation des couleurs RVB. Cependant, HSL, les bibliothèques de couleurs et l'outil Color Grid offrent des solutions alternatives, potentiellement plus efficaces en fonction de vos besoins et de vos contraintes de projet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Travailler avec GraphQL Caching Travailler avec GraphQL Caching Mar 19, 2025 am 09:36 AM

Si vous avez récemment commencé à travailler avec GraphQL ou examiné ses avantages et ses inconvénients, vous avez sans aucun doute entendu des choses comme "GraphQL ne prend pas en charge la mise en cache" ou

Faire votre première transition Svelte personnalisée Faire votre première transition Svelte personnalisée Mar 15, 2025 am 11:08 AM

L'API de transition Svelte fournit un moyen d'animer les composants lorsqu'ils entrent ou quittent le document, y compris les transitions Svelte personnalisées.

Show, ne dit pas Show, ne dit pas Mar 16, 2025 am 11:49 AM

Combien de temps passez-vous à concevoir la présentation de contenu pour vos sites Web? Lorsque vous écrivez un nouveau blog ou créez une nouvelle page, pensez-vous à

Construire une application Ethereum à l'aide de Redwood.js et de la faune Construire une application Ethereum à l'aide de Redwood.js et de la faune Mar 28, 2025 am 09:18 AM

Avec la récente montée du prix du bitcoin sur 20k $ USD, et pour lui, récemment en train de briser 30k, je pensais que cela valait la peine de reprendre une profonde plongeon dans la création d'Ethereum

Comment utilisez-vous CSS pour créer des effets de texte, tels que des ombres de texte et des gradients? Comment utilisez-vous CSS pour créer des effets de texte, tels que des ombres de texte et des gradients? Mar 14, 2025 am 11:10 AM

L'article discute de l'utilisation de CSS pour les effets de texte comme les ombres et les gradients, les optimiser pour les performances et l'amélioration de l'expérience utilisateur. Il répertorie également les ressources pour les débutants (159 caractères)

Que diable sont les commandes NPM? Que diable sont les commandes NPM? Mar 15, 2025 am 11:36 AM

Les commandes NPM exécutent diverses tâches pour vous, soit en tant que processus unique ou en cours d'exécution pour des choses comme le démarrage d'un serveur ou la compilation de code.

Créer votre propre bragdoc avec Eleventy Créer votre propre bragdoc avec Eleventy Mar 18, 2025 am 11:23 AM

Quelle que soit le stade dans lequel vous vous trouvez en tant que développeur, les tâches que nous effectuons - qu'elles soient grandes ou petites - ont un impact énorme dans notre croissance personnelle et professionnelle.

Utilisons (x, x, x, x) pour parler de spécificité Utilisons (x, x, x, x) pour parler de spécificité Mar 24, 2025 am 10:37 AM

Je discutais avec Eric Meyer l'autre jour et je me suis souvenu d'une histoire d'Eric Meyer de mes années de formation. J'ai écrit un article de blog sur la spécificité CSS, et

See all articles