thomasloven / lovelace-layout-card

🔹 Get more control over the placement of lovelace cards.
MIT License
1.08k stars 127 forks source link

Parameter "card_margin" ignored when using grid layout #194

Open cdhgee opened 2 years ago

cdhgee commented 2 years ago

My Home Assistant version: 2022..4.1

Layout-card version (FROM BROWSER CONSOLE): LAYOUT-CARD 2.4.2 IS INSTALLED

What I am doing: Trying to set card margins on nested grid-layouts

What I expected to happen: Margin on cards within the grid is controlled by the card_margin parameter

What happened instead: card_margin parameter is being ignored and all cards have a margin

Minimal steps to reproduce:

  1. Add a card with the following YAML:
type: custom:layout-card
layout_type: custom:grid-layout
layout:
  grid-template-columns: 1fr
  margin: 0
  padding: 0
  card_margin: 0px
cards:
  - type: custom:layout-card
    layout_type: custom:grid-layout
    layout:
      grid-template-columns: repeat(auto-fill, minmax(200px, 1fr))
      margin: 0
      padding: 0
      card_margin: 0px
    cards:
      - type: button
        tap_action:
          action: toggle
        entity: light.garage_work_light
      - type: button
        tap_action:
          action: toggle
        entity: light.garage_work_light
  1. Observe that there is a gap between the cards. Per the code above the margin should be set to 0 on all sides.

image

This appears to be caused by the #root > * CSS which is getting injected

image

In other layouts which inherit from BaseColumnsLayout, the --card-margin CSS variable is set which defaults to the margin shown above, but can be overriden with the card_margin parameter. In the grid layout, this is statically set and cannot be overridden with card_margin.

        #root > * {
          margin: var(--masonry-view-card-margin, 4px 4px 8px);
        }

(grid.ts, lines 147-149)

Would it be possible to update the grid layout so that it uses the card_margin parameter if it is defined to correct this behavior?

In some instances it is possible to wrap the grid card in a card-mod card and set the margins that way, but this is not always possible - e.g., when using auto-entities.


By putting an X in the boxes ([X]) below, I indicate that I:

rgogada commented 2 years ago

having the same issue. looking forward to the merged version.

aaamoeder commented 1 year ago

still seeing this behavior ??? has a fix been merged ?

EmJay276 commented 1 year ago

There is already a PR (https://github.com/thomasloven/lovelace-layout-card/pull/210) to fix this issue

Sanch0ous commented 1 year ago

Hi, PR still not reviewed ?

Tahuwa commented 1 year ago

Hi, any update regarding this PR?

DanielSCBO commented 1 year ago

Any news with this merge, or any workaround?

Nerih commented 1 year ago

just wanted to say that this issue still exists. Is it possible to review the PR/Merge?

for now, as a workaround, i have added masonry-view-card-margin:2px to my theme.yaml

i suspect you can change the 2px to what ever you like.

luismalves commented 1 year ago

Also still have the same bug @thomasloven. Could you please accept the PR request? Thanks!

Nerih commented 1 year ago

Also still have the same bug @thomasloven. Could you please accept the PR request? Thanks! Amazing, also - Did u try the work around? U can add masonary-view-card to your theme.yaml

luismalves commented 1 year ago

Yes but it will impact everywhere, some places it's needed the manual set of marging.