Partager via


Thème de la bibliothèque d'interface utilisateur dans une application

Capture d’écran qui montre l’expérience d’utilisation de couleurs personnalisées dans la bibliothèque d’interface utilisateur.

La bibliothèque d’interface utilisateur Azure Communication Services est un ensemble de composants, d’icônes et de composites qui vous permettent de créer plus facilement des interfaces utilisateur de haute qualité pour vos projets. La bibliothèque d'interface utilisateur utilise des composants et des icônes de Fluent UI, le système de conception multiplateforme utilisé par Microsoft. Par conséquent, les composants sont créés avec la facilité d’utilisation, l’accessibilité et la localisation à l’esprit.

Dans cet article, vous apprendrez à modifier le thème des composants de la bibliothèque d’interface utilisateur lorsque vous configurez une application.

La bibliothèque d'interface utilisateur est entièrement documentée pour les développeurs sur un site séparé. La documentation est interactive et vous aide à comprendre le fonctionnement des API en vous donnant la possibilité de les essayer directement depuis une page Web. Pour plus d'informations, consultez la documentation de la bibliothèque d'interface utilisateur.

Prérequis

Configurer des thèmes

Pour obtenir une documentation détaillée et des démarrages rapides sur la bibliothèque d’interface utilisateur web, consultez le Storybook de la bibliothèque d’interface utilisateur web.

Pour en savoir plus, consultez Thèmes dans la bibliothèque d’interface utilisateur Web.

Pour plus d’informations, consultez la bibliothèque d’interface utilisateur Android open source et l’exemple de code d’application.

Définissez un thème

Les thèmes sur Android sont gérés via des fichiers de ressources XML. Nous exposons les ID de ressource suivants à la portée publique :

<resources>
    <public name="AzureCommunicationUICalling.Theme" type="style" />
    <public name="azure_communication_ui_calling_primary_color" type="attr" />
    <public name="azure_communication_ui_calling_primary_color_tint10" type="attr" />
    <public name="azure_communication_ui_calling_primary_color_tint20" type="attr" />
    <public name="azure_communication_ui_calling_primary_color_tint30" type="attr" />
    <public name="azure_communication_ui_calling_foreground_on_primary_color" type="attr" />
</resources>

Vous pouvez implémenter un thème comme celui-ci dans vos applications pour fournir la couleur principale et les teintes :

<style name="MyCompany.CallComposite" parent="AzureCommunicationUICalling.Theme">
    <item name="azure_communication_ui_calling_primary_color">#7800D4</item>
    <item name="azure_communication_ui_calling_primary_color_tint10">#882BD8</item>
    <item name="azure_communication_ui_calling_primary_color_tint20">#E0C7F4</item>
    <item name="azure_communication_ui_calling_primary_color_tint30">#ECDEF9</item>
    <item name="azure_communication_ui_calling_foreground_on_primary_color">#00FF00</item>
</style>

L'exemple précédent affecte les éléments d'interface utilisateur suivants :

  • PrimaryColor :
    • Avatar/Vidéo - Bordure - Indication orale
    • Bouton Joindre un appel - Arrière-plan
  • Couleur PrimaryColorTint10 :
    • Bouton Joindre un appel - Arrière-plan - Mis en surbrillance - Mode clair
    • Bouton Joindre un appel - Bordure - Mode clair/foncé
  • Couleur PrimaryColorTint20 :
    • Bouton Joindre un appel - Arrière-plan - Mis en surbrillance - Mode sombre
  • Couleur PrimaryColorTint30 :
    • Bouton Joindre un appel - Bordure - Mis en surbrillance - Mode clair/sombre

Appliquez un thème

Le style de thème est appliqué pour transmettre l'ID de ressource de thème à ThemeConfiguration/Theme dans CallCompositeBuilder.

val callComposite: CallComposite =
        CallCompositeBuilder()
            .theme(R.style.MyCompany_CallComposite)
            .build()

Modes clair et sombre

Le système de ressources Android gère le thème nocturne. Le mode nuit sur Android est une configuration à l’échelle du système. Lorsque vous activez le mode nuit, Android donne la préférence aux ressources de -night/ dossiers. Pour spécifier les couleurs du mode nuit, ajoutez un deuxième fichier theme.xml à values-night/.

Pour activer le mode nuit par programmation, Android fournit la fonction suivante. Toutefois, cette configuration s’applique globalement à l’application. Il n’existe aucun moyen fiable de définir le mode nuit pour une seule activité. Pour appliquer un thème sombre, utilisez le paramètre suivant dans vos applications :

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)

Couleur de police

Le azure_communication_ui_calling_foreground_on_primary_color vous permet de configurer la couleur de police qui apparaît sur les éléments utilisant la couleur primaire. Vous pouvez utiliser ce paramètre lorsque vous souhaitez correspondre à un thème spécifique ou à des directives de marque. En modifiant azure_communication_ui_calling_foreground_on_primary_color, vous devez vous assurer que le texte reste lisible et visuellement attrayant en sélectionnant une couleur de police contrastante appropriée pour les composants de couleur primaire.

Pour plus d’informations, consultez la bibliothèque d’interface utilisateur iOS open source et l’exemple de code d’application.

Définissez un thème

Vous pouvez personnaliser le thème en changeant la couleur principale et ses teintes associées. Vous avez également la possibilité de remplacer les modes clair et sombre dans la palette de couleurs.

Interface utilisateur affectée

  • PrimaryColor :
    • Avatar/Vidéo - Bordure - Indication orale
    • Bouton Joindre un appel - Arrière-plan
  • Couleur PrimaryColorTint10 :
    • Bouton Joindre un appel - Arrière-plan - Mis en surbrillance - Mode clair
    • Bouton Joindre un appel - Bordure - Mode clair/foncé
  • Couleur PrimaryColorTint20 :
    • Bouton Joindre un appel - Arrière-plan - Mis en surbrillance - Mode sombre
  • Couleur PrimaryColorTint30 :
    • Bouton Joindre un appel - Bordure - Mis en surbrillance - Mode clair/sombre

Implémentation

Vous pouvez créer des options de thème personnalisées qui implémentent le protocole ThemeOptions. Vous devez inclure une instance de cette nouvelle classe dans CallCompositeOptions.

class CustomThemeOptions: ThemeOptions {

 var primaryColor: UIColor {
  return UIColor(named: "primaryColor")
 }
 
 var primaryColorTint10: UIColor {
  return UIColor(named: "primaryColorTint10")
 }
 
 var primaryColorTint20: UIColor {
  return UIColor(named: "primaryColorTint20")
 }
 
 var primaryColorTint30: UIColor {
  return UIColor(named: "primaryColorTint30")
 }

 var colorSchemeOverride: UIUserInterfaceStyle {
  return UIUserInterfaceStyle.dark
 }
}

let callCompositeOptions = CallCompositeOptions(theme: CustomThemeOptions())

Couleur de police

Le foregroundOnPrimaryColor vous permet de mettre à jour par programmation la couleur de police qui apparaît sur les éléments utilisant la couleur primaire. Vous pouvez utiliser cette méthode lorsque vous souhaitez correspondre à un thème spécifique ou à des directives de marque. En invoquant foregroundOnPrimaryColor, vous devez vous assurer que le texte reste lisible et visuellement attrayant en sélectionnant une couleur de police contrastée appropriée pour les composants de couleur primaire.

struct CustomColorTheming: ThemeOptions {    

    private var envConfigSubject: EnvConfigSubject  

    init(envConfigSubject: EnvConfigSubject) {        
        self.envConfigSubject = envConfigSubject    
    }    

    var primaryColor: UIColor {        
        return UIColor(envConfigSubject.primaryColor)    
    }    
    
    var primaryColorTint10: UIColor {        
        return UIColor(envConfigSubject.tint10)    
    }    
    
    var primaryColorTint20: UIColor {        
        return UIColor(envConfigSubject.tint20)    
    }    
    
    var primaryColorTint30: UIColor {        
        return UIColor(envConfigSubject.tint30)    
    }    
    
    var foregroundOnPrimaryColor: UIColor {        
        return UIColor(envConfigSubject.foregroundOnPrimaryColor)    
    }    

    var colorSchemeOverride: UIUserInterfaceStyle {        
        return envConfigSubject.colorSchemeOverride    
    }
}


let callCompositeOptions = CallCompositeOptions(theme: CustomColorTheming())

Définition des ressources de couleur

Définissez chaque couleur dans les ressources, avec une nuance pour les modes clair et sombre. L’image de référence suivante montre comment configurer les ressources sur un projet Xcode.

Capture d’écran d’un exemple de configuration des ressources de couleur iOS.

Étapes suivantes