Horizontal stack et card mod

bonjour je cherche a changer la couleur du texte , de la valeur et de l icone d une horizontal stack , en parcourant le forum et le mode d emploi je suis un peu perdu car d un coté je crois comprendre que ce n est pas possible mais j ai vu certain reussir a modifier d autre parametre de leur carte .
voici un exemple de carte que je voudrais modifier

type: horizontal-stack
cards:
  - type: entity
    entity: sensor.msunpv_powpv
    state_color: false
    name: panneaux
  - type: entity
    entity: sensor.msunpv_powreso
    name: reseau
    state_color: false

Bonjour,

Ce n’est pas horizontal-stack qui est concerné mais tes cartes entity, horizontal-stack n’est qu’un container. Il faut voir donc comment appliquer des modifications à tes cartes entity avec card-mod.

Si tu veux un exemple de carte basé sur une custom:button-card permettant de mettre ce que tu veux en terme de couleurs, d’icônes, etc., n’hésites pas à demander :grin:

je te remercie je vais du coup continuer les recherche avec ce que tu vient de me dire
pour buttoncard je l ai installer pour une card specifique et j avoue ne pas encore avoir le niveau pour ca :sweat_smile: . je creuse un peu et si je ne trouve pas je revient vers toi

L’utilisation est bien plus simple que card-mod une fois les bases comprises : pour ton exemple, tu n’aurais besoin ni de horizontal-stack, ni de card-mod ni de carte entity. Juste une custom:button-card

si j ai bien compris la button card est vierge et c est a moi de tout noté dedans ce que je veut ?
entité , couleur , icon , taille , disposition etc …

c est ce que tu te sert pour ton dasboard ? j ai vu des captures d ecrans sur d autres post .

Oui, mon dashboard est fait avec une seule custom:button-card mais là, c’est un peu plus compliqué que ce qu’il te faudrait pour ta simple carte. Là, il ta faut une carte avec deux custom_fields, un pour tes panneaux et un pour ton réseau. Tu pourras déterminer pour chaque custom_fields tout ce que tu veux de manière simple avec les styles.

j imagine que ton dashboard est bien plus complexe :face_with_peeking_eye::face_with_peeking_eye: ecoute je vais creuser de ce coté et voir ce que je peut reussir a faire , je suis encore dans la decouverte de HA donc je vais surement pas tout comprendre du premier coup mais on verra bien si je bloque je revient vers toi

image

type: custom:button-card
custom_fields:
  panneaux:
    card:
      type: custom:button-card
      entity: sensor.ecu_216000112528_current_power
      name: Panneaux
      icon: mdi:solar-power
      show_state: true
      styles:
        card:
          - background-color: rgba(32,32,32,0.8)
          - border: 2px rgba(211,211,211,0.8) outset
          - box-shadow: 2px 2px 4px rgba(32,32,32,0.5)
          - border-radius: 10px
        grid:
          - grid-template-areas: "\"n i\" \"s i\""
          - grid-template-columns: 1fr 30%
        name:
          - font-size: 12px
          - justify-self: start
          - color: lightgray
          - padding-left: 5%
        state:
          - font-size: 16px
          - font-weight: bold
          - justify-self: start
          - color: cyan
          - padding-left: 10%
        icon:
          - color: cyan
  reseau:
    card:
      type: custom:button-card
      entity: sensor.entree_zlinky_lixee_ccain
      name: Réseau
      icon: mdi:lightning-bolt
      show_state: true
      styles:
        card:
          - background-color: rgba(32,32,32,0.8)
          - border: 2px rgba(211,211,211,0.8) outset
          - box-shadow: 2px 2px 4px rgba(32,32,32,0.5)
          - border-radius: 10px
        grid:
          - grid-template-areas: "\"n i\" \"s i\""
          - grid-template-columns: 1fr 30%
        name:
          - font-size: 12px
          - justify-self: start
          - color: lightgray
          - padding-left: 5%
        state:
          - font-size: 16px
          - font-weight: bold
          - justify-self: start
          - color: cyan
          - padding-left: 10%
        icon:
          - color: cyan
styles:
  card:
    - aspect-ratio: 7/1
    - background: none
    - border: none
  custom_fields:
    panneaux:
      - position: absolute
      - left: 1%
      - width: 49%
    reseau:
      - position: absolute
      - left: 51%
      - width: 48%

Le principe : avoir une carte custom:button-card servant de support pour deux autres cartes positionnées côte-à-côte, une carte nommée « Panneaux » et une carte nommée « Réseau », chacune de ces deux cartes étant un « champ personnalisé » (custom_fields)

Nous définissons donc les deux cartes puis nous les plaçons dans la carte support. Le positionnement se fait au niveau des « styles » de la carte support. Les styles vont nous permettre de définir les attributs des différents éléments de la carte support. Ici, la carte support étant vierge (pas de name, de label, de state, etc.) nous allons simplement préciser les attributs de la carte (élément « card ») :

Nous précisons que nous ne voulons pas de fond (- background: none), pas de bordure (- border: none) et un ratio largeur/hauteur de 7/1 (- aspect-ratio: 7/1).

Nous allons pouvoir maintenant définir les éléments de la première carte et préciser les attributs des différents éléments.
Il nous faudra rattacher la carte à une entité (chez toi ça sera : « sensor.msunpv_powpv ») puis lui donner un nom, définir son icône et afficher l’état de l’entité.

Par défaut, une custom:button-card affiche les différents éléments dans l’un au-dessous de l’autre dans l’ordre suivant : icône (icon) - nom (name) - étiquette (label) - état (state).
Comme nous avons fixé le ratio de la carte, l’affichage n’est pas top… L’élément layout n’étant pas adapté ici, nous allons utilisé un élément « grille » (grid) pour positionner les trois éléments (le nom, l’état et l’icône) de façon à avoir à gauche le nom et l’état superposé et à droite l’icône.
Nous définissons cette grille dans les styles de la carte :

Nous définissons donc des zones (on pourrait dire des lignes) (- grid-template-areas:) avec une première zone pour afficher le nom (n) et l’icône (i) (\"n i\") et une deuxième zone pour afficher l’état (s)et l’icône (i) (\"s i\") et on borne les zones par des guillemets : - grid-template-areas: "\"n i\" \"s i\""
On définit ensuite la largeur de chaque colonne de la grille : - grid-template-columns: 70% 30%
Nous allons ensuite préciser les attributs des autres éléments : la carte, le nom, l’icône et l’état.

  • la carte :
      card:
          - background-color: rgba(32,32,32,0.8)          <------ Couleur de fond
          - border: 2px rgba(211,211,211,0.8) outset      <------ Bordure (épaisseur, couleur, et aspect : ici une impression de relief)
          - box-shadow: 2px 2px 4px rgba(32,32,32,0.5)    <------ Ombre portée
          - border-radius: 10px                           <------ Arrondi de la bordure
  • le nom :
        name:
          - font-size: 12px            <------ La taille de la police
          - justify-self: start        <------ L'alignement horizontal
          - color: lightgray           <------ La couleur du texte
          - padding-left: 5%           <------ Un décalage de 5% à gauche pour que le texte ne soit pas collé à la bordure de la carte
  • l’état :
        state:
          - font-size: 16px
          - font-weight: bold          <------ Application d'un style "gras" à la police
          - justify-self: start
          - color: cyan
          - padding-left: 10%
  • l’icône :
        icon:
          - color: cyan

On définira les mêmes attributs pour la deuxième carte (copié-collé).

Si tu as des questions, n’hésites pas :wink:

merci pour le tuto j avais commencer tout doucement a mon rythme avec une seule carte , c est vraiment pas facile quand on a pas les connaissances

type: custom:button-card
entity: sensor.msunpv_powpv
name: panneau
label: |
  [[[ return '' + states['sensor.msunpv_powpv'].state + ' W'; ]]]
show_label: true
styles:
  icon:
    - color: salmon
    - width: 40px
    - left: 140px
  label:
    - color: salmon
    - font-size: 120%
  name:
    - color: aqua
    - font-size: 120%
  card:
    - width: 185px
    - height: 100px

sa te parais coherant ? j etait en train de chercher comment deplacer le nom et la valeur sur la gauche .

Je m’absente là. On en reparle un peu plus tard si tu veux bien

aucun probleme je vais continuer d etudier tout ca je bloque juste sur un truc on en reparle .

J’arrive !! je lis ton sujet … :sweat_smile:

edit:

type: horizontal-stack
cards:
  - type: entity
    entity: sensor.lywsd03mmc_0945_temperature
    state_color: false
    name: panneaux
    card_mod:
      style: |
        .header .name {
          color: green;
        }
        .header .icon {
          color: yellow;
        }
        ha-card {
          color: red;
        }
        .info .measurement {
          color: orange;
        }
  - type: entity
    entity: sensor.lywsd03mmc_0945_humidity
    name: reseau
    state_color: false
    card_mod:
      style: |
        .header .name {
          color: green;
        }
        .header .icon {
          color: yellow;
        }
        ha-card {
          color: red;
        }
        .info .measurement {
          color: orange;
        }    

avec un titre pour horizontal-stack

type: custom:mod-card
style: |
  ha-card {
    --ha-card-header-color: red;
    --ha-card-header-font-size: 28px;
  }
card:
  type: horizontal-stack
  title: carte  
  cards:
    - type: entity
      entity: sensor.lywsd03mmc_0945_temperature
      state_color: false
      name: panneaux
      card_mod:
        style: |
          .header .name {
            color: green;
          }
          .header .icon {
            color: yellow;
          }
          ha-card {
            color: red;
          }
          .info .measurement {
            color: orange;
          }
    - type: entity
      entity: sensor.lywsd03mmc_0945_humidity
      name: reseau
      state_color: false
      card_mod:
        style: |
          .header .name {
            color: green;
          }
          .header .icon {
            color: yellow;
          }
          ha-card {
            color: red;
          }
          .info .measurement {
            color: orange;
          }    

Je suis là. Tu bloques sur quoi ?

Tu devrais finir ton article, ca serais plus simple pour les utilisateurs :wink:

C’est pas faux. Va falloir que je me remettes avant qu’ @Argonaute me pende haut et court :grin:

2 « J'aime »

je butai pour ajuster la taille car sur le telephone sa ne passais pas comme je voulais . mais c bon j reussi .
par contre j ai essayer avec une carte gauge et j imagine que ce n est pas aussi simple car je n arrive ni a changer les couleurs de la gauge ni a mettre en place la bordure .

type: custom:button-card
custom_fields:
  injection reseau:
    card:
      type: custom:button-card
      entity: sensor.energie_msunpv_eninj
      name: injection reseau
      icon: mdi:transmission-tower-export
      show_state: true
      styles:
        card:
          - background-color: rgba(32,32,32,0.8)
          - border: 2px rgba(211,211,211,0.8) outset
          - box-shadow: 2px 2px 4px rgba(32,32,32,0.5)
          - border-radius: 10px
          - border-color: aqua
          - height: 150px
        grid:
          - grid-template-areas: "\"n i\" \"s i\""
          - grid-template-columns: 1fr 40%
        name:
          - font-size: 16px
          - justify-self: start
          - color: aqua
          - padding-left: 5%
        state:
          - font-size: 20px
          - font-weight: bold
          - justify-self: start
          - color: salmon
          - padding-left: 10%
        icon:
          - color: salmon
          - padding-left: 60%
  gauge:
    card:
      type: gauge
      entity: sensor.msunpv_taux_autoconsommation
      name: taux autoconsomation
      needle: true
      severity:
        green: 25
        yellow: 50
        red: 75
      styles:
        card:
          - background-color: rgba(32,32,32,0.8)
          - border: 2px rgba(211,211,211,0.8) outset
          - box-shadow: 2px 2px 4px rgba(32,32,32,0.5)
          - border-radius: 10px
          - border-color: aqua
        name:
          - font-size: 16px
          - color: aqua

merci je me posai aussi la question de mettre un titre avec button card . sa fait beaucoup d info a assimilé pour une jour de repos :dizzy_face:

1 « J'aime »

Il faut que tu mettes la bordure dans les styles de la carte support, pas ceux du custom_fields dans le cas que tu évoques

je me suis aussi poser la question au niveau du nom de l avoir sur deux ligne

production
panneaux

au lieu de

production panneaux

Mets simplement une balise HTML « <br> » entre les deux mots : « production<br>panneaux »