Basculer les règles card-mod dans un thème

Bonjour,

Depuis un bon moment j’ai transféré la plupart de mes règles card_mod dans un fichier thème et ainsi pouvoir les modifier en un seul endroit au lieu de devoir passer en revue toutes les cartes les utilisant.

Pour l’exemple je veux transformer la carte suivante et enlever sa bordure et son fond, donc de ça :

image

Vers :

image

J’ai donc ma carte de base

type: tile
entity: sensor.home_assistant_operating_system_newest_version
vertical: false
features_position: bottom
grid_options:
  columns: full

A laquelle j’avais rajouté du card_mod :

type: tile
entity: sensor.home_assistant_operating_system_newest_version
vertical: false
features_position: bottom
grid_options:
  columns: full
card_mod:
  style: |
    ha-card {
      border: none;
      background: none;
    }

Pour arriver au résultat puis en passant par un thème je me retrouve avec :

type: tile
entity: sensor.home_assistant_operating_system_newest_version
vertical: false
features_position: bottom
grid_options:
  columns: full
card_mod:
  class: border_none

Avec le fichier thème associé:

demo_theme:

  ha-view-sections-column-min-width: 538px
  ha-view-sections-column-max-width: 720px
  ha-view-sections-column-gap: 28px

#card_mod
  card-mod-theme: demo_theme
  card-mod-card: |

    /* Enlever bordure carte */
    ha-card.border_none {
      border: none;
      background: none;
    }

Jusque là pas de soucis et je peux utiliser soit la carte de base soit sa version stylisée par le thème en ajoutant :

card_mod:
  class: border_none

Et ce pour toutes les cartes que je peux cibler par :

card_mod:
  style: |
    ha-card {

en utilisant card_mod.

Maintenant j’arrive à mon problème.

Si je veux faire la même chose sur une carte heading par exemple et que je veuille changer la couleur du texte et ajouter une ligne en dessous :

De :

image

Vers :

image

Dans mon card_mod je me retrouve avec

type: heading
heading_style: title
heading: Nouvelle section
card_mod:
  style: |
    .container {
        margin: 0 8px;
        border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
    }
    .title > p {
      color: red;
      font-weight: normal;
    }

Mais je n’arrive pas à le traduire dans mon thème pour l’exploiter comme ça :

type: heading
heading_style: title
heading: Nouvelle section
card_mod:
  class: titre_rouge_avec_ligne

Et ainsi ne pouvoir le mettre que sur certaine carte.

J’arrive bien dans le thème à en faire une définition mais qui s’applique à toute les cartes heading de cette façon :

demo_theme:

  ha-view-sections-column-min-width: 538px
  ha-view-sections-column-max-width: 720px
  ha-view-sections-column-gap: 28px

#card_mod
  card-mod-theme: demo_theme
  card-mod-card: |

    /* LES CARTES HEADING */

    .type-heading div.container {
        margin: 0 8px;
        border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
    }

    .type-heading div.container div.content.title p {
        color: red;
        font-weight: normal;
    }

J’ai le même problème sur les cartes mushroom-title que je modifie en card_mod comme ça :

type: custom:mod-card
card:
  type: custom:mushroom-title-card
  title: ""
  subtitle: Pièces
card_mod:
  style:
    mushroom-title-card$: |
      .subtitle {
        border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
        padding-bottom: 0px;
      }
      .header {
        margin-bottom: -7px;
      }

Ou part thème comme ça :

demo_theme:

  ha-view-sections-column-min-width: 538px
  ha-view-sections-column-max-width: 720px
  ha-view-sections-column-gap: 28px

#card_mod
  card-mod-theme: demo_theme
  card-mod-card: |

    /* Enlever bordure carte */
    ha-card.border_none {
      border: none;
      background: none;
    }

    /* LES CARTES MUSHROOM TITLE */
    
    .header.type-custom-mushroom-title-card {
      margin-bottom: -7px;
    }

    .header.type-custom-mushroom-title-card div h2 {
      border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
      padding-bottom: 0px;
    }

Mais là aussi cela concerne l’ensemble des cartes mushroom-title présentent sur le dashboard et je n’arrive pas à les exploiter avec :

card_mod:
  class: quelquechose

pour n’en modifier que certaines.

Si quelqu’un l’a déjà fait ou maitrise mieux le css je preneur d’un coup de main.

Salut,
j’avais essayé le même genre dans le thème avec des classes et card_mod, mais rien trouvé de fonctionnelle.
Il faudra que je reteste, je pense avoir compris. Je te tient au courant.

card_mod:
  style:
    mushroom-title-card$: |
      .subtitle {
        border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
        padding-bottom: 0px;
      }
      .header {
        margin-bottom: -7px;
      }

un truc dans le genre dans le theme

  card-mod-card: |

    ha-card.mushroom {
      mushroom-title-card$: |
        .subtitle {
          border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
          padding-bottom: 0px;
        }
        .header {
          margin-bottom: -7px;
        }
    }

dans la carte :

card_mod:
  class: mushroom
1 « J'aime »

Hello,

intéressant, je réponds pour suivre plus facilement :slight_smile:

cdt

après plusieurs tests avec card_mod 4 beta2 (la beta4 vient de sortir, il faut que je la teste), j’ai réussi à faire fonctionner la class.

  card-mod-card: |  
    :host(.container) ha-card .container {
      margin: 0 8px;
      border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
    }
    :host(.title) ha-card .title > p {
      color: red;
      font-weight: normal;
    }


type: heading
heading_style: title
heading: Nouvelle section
card_mod:
  class:
    - container
    - title

je poursuis mes test avec mushroom…

edit:
avec card_mod 4 beta4 ça ne fonctionne plus :rofl:

Te prends pas trop la tête non plus, y’a aucune urgence puisque le fonctionnement que j’ai actuellement me va très bien.

L’idée c’est plus de comprendre comment ça fonctionne au cas où y’en ai besoin pour d’autres cartes.

1 « J'aime »

Alors pour la carte heading c’est bon d’après mes tests en faisant :

type: heading
heading: Nouvelle section
heading_style: title
card_mod:
  class: maclass

et

demo_theme:

  ha-view-sections-column-min-width: 538px
  ha-view-sections-column-max-width: 720px
  ha-view-sections-column-gap: 28px

#card_mod
  card-mod-theme: demo_theme
  card-mod-card: |

    /* LES CARTES HEADING */

    ha-card.maclass .container {
        margin: 0 8px;
        border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
    }

    ha-card.maclass .title {
        color: red;
        font-weight: normal;
    }

    ha-card.maclass .subtitle {
        color: green;
        font-weight: normal;
    }

J’essai de comprendre pour la mushroom title maintenant

1 « J'aime »

ça refonctionne avec card-mod beta6, c’étais bien un bug de la beta 4.
J’ai laisser un message sur le forum anglophone, pour avoir de l’aide sur un class du type :

card_mod:
  style:
    ha-tile-info$: |
      .primary {
        color: lightskyblue !important;
      }
      .secondary {
        color: yellow !important;
      }

j’attends les retours.

edit:
finalement, je peux faire plus simple avec :

card_mod:
  style: |
    :host {
      --ha-tile-info-primary-color: yellow;
      --ha-tile-info-secondary-color: orange;
    }

une class basique fonctionne.

Pas sur d’avoir compris pour quelle carte est ton code, j’ai l’impression que c’est pour une mushroom-template, mais je cherche pour une mushroom-title

oui, c’est pour une mushroom template.
demande de l’aide sur le forum anglophone, tu aura plus de retour qu’ici a mon avis:

C’était plus pour ma culture qu’autre chose puisque je les ai remplacé par des cartes heading et si j’ai vraiment un besoin ponctuel je peux tjs le faire en card_mod directement.

1 « J'aime »

Bon a priori j’ai compris pour les class avec mushroom title card.

Après passage à la v4 et avoir lu ta dernière demande ainsi que sa réponse sur le forum inter, je pense avoir trouver comment faire.

On partait de ça

type: custom:mod-card
card:
  type: custom:mushroom-title-card
  title: ""
  subtitle: Pièces
card_mod:
  style:
    mushroom-title-card$: |
      .subtitle {
        border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
        padding-bottom: 0px;
      }
      .header {
        margin-bottom: -7px;
      }

Avec un mod-card pour pouvoir appliquer les styles.

Après passage en v4 la carte devient

type: custom:mushroom-title-card
title: ""
subtitle: Pièces
card_mod:
  style: |
    ha-card {
      .subtitle {
        border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
        padding-bottom: 0px;
      }
      .header {
        margin-bottom: -7px;
      }
    }

Suppression du mod card et là on peut appliquer une classe depuis le theme.

Du coup la carte devient

type: custom:mushroom-title-card
title: ""
subtitle: Pièces
card_mod:
  class: classtitre

Et le theme associé

demo_theme:

#card_mod
  card-mod-theme: demo_theme
  card-mod-card: |

    /* LES CARTES MUSHROOM TITLE */
    
    :host(.classtitre) .header {
      margin-bottom: -7px;
    }

    :host(.classtitre) .subtitle {
      border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
      padding-bottom: 0px;
    }



C’est pareil pour la carte heading, il faut en passer par :host(.maclasse)

    /* LES CARTES HEADING */

    :host(.maclasse) .container {
        margin: 0 8px;
        border-bottom: 1px solid var(--ha-card-border-color,var(--divider-color,#e0e0e0));
    }

    :host(.maclasse) .title {
        color: red;
        font-weight: normal;
    }

    :host(.maclasse) .subtitle {
        color: dimgrey;
        font-weight: normal;
    }
1 « J'aime »

Bien joué, je ferai des essais.

Merci à toi car sans ton post et sa réponse, j’avais pas encore vu de réponse claire à ça.

Ce sujet a été automatiquement fermé après 60 jours. Aucune réponse n’est permise dorénavant.