Couleurs en SwiftUI

Introduction aux couleurs

Dans SwiftUI, la gestion des couleurs est principalement effectuée via la structure Color. Cette structure permet de créer des instances de couleur qui peuvent être définies par des valeurs de composant comme RGB (Rouge, Vert, Bleu), HSL (Teinte, Saturation, Luminance) ou encore en niveaux de gris. Les couleurs sont essentielles pour embellir l'interface d'une application, en apportant des éléments visuels attrayants.

Création de couleurs à partir de valeurs de composant

Il existe plusieurs façons de définir des couleurs en SwiftUI :

  • RGB : La notation RGB utilise trois paramètres pour spécifier les degrés de rouge, vert et bleu. Chacun de ces paramètres doit être un nombre à virgule flottante compris entre 0 et 255. Voici un exemple :
let rgbColor = Color(red: 255.0 / 255.0, green: 128.0 / 255.0, blue: 64.0 / 255.0)
  • HSL : Les couleurs HSL se composent de trois composants : la teinte (valeur entre 0 et 360), la saturation et la lumière, toutes deux variant de 0 à 1. Voici comment créer une couleur HSL :
let hslColor = Color(hue: 220.0, saturation: 0.65, lightness: 0.75)
  • Niveaux de gris : Pour les nuances de gris, seule la propriété blanche est nécessaire, variant de 0 (noir) à 1 (blanc).
let grayscaleColor = Color(white: 0.5)

Propriétés de couleur standard

Les couleurs peuvent également être déclarées à l'aide de propriétés de couleur standard. Voici quelques exemples :

let someColor = Color.red  // Utilisation de la notation de point 
let anotherColor = Color(.blue)  // Utilisation de la notation avec accolade 

Les propriétés de couleur standard incluent des couleurs comme .red, .green, .white, et d'autres qui peuvent changer en fonction du contexte, par exemple en mode sombre ou clair.

Exemples d'utilisation des couleurs

Dans cet exemple, nous allons définir plusieurs couleurs et les afficher à l'écran dans une liste :

import SwiftUI

struct ContentView: View {
    var body: some View {
        let colorsArray = [Color.red, Color.green, Color.blue]

        VStack {
            ForEach(colorsArray, id: \.self) { color in
                Rectangle()
                    .fill(color)
                    .frame(height: 100)
            }
        }
        .padding()
    }
}

Dans ce scénario, chaque rectangle est rempli avec la couleur respective de l'array."},{