Wow, thank you @rlkoshak for the quick reply. Yes the widget I’ve made is the usual f7-card (YAML at the bottom), I thought that it was somehow possible to display the group items as cards instead of lists of members.
I wonder what would happen if I were to change the base component to what you suggest and maintain all classes and styling somehow… I will try later.
I wasn’t sure this could be an “elegant” solution, but tried your suggestion, and… everything works? It doesn’t seem to break everything, the widget takes up just the space I would expect it to.
All the cards buttons Analyse and Close under Properties tab are working fine: I changed the metadata of the power button, so the widget shows up in that property card too, but the analyse button works and shows every item. I have to admit I’m in the process of configuring persistence, so I might not see problems yet.
Again, in other properties cards though the items related to the television are hidden (as expected), but the Analyse/Close button works fine.
On second thought, I haven’t used any padding/margin in the card I’ve made, just a bunch of absolute positions, could those be influencing the overall behaviour of your page @rlkoshak?
@JustinG not sure my example could help you, but
here is the remote widget I am using
uid: widget_247c2c9eb0
tags: []
props:
parameters:
- context: item
description: The members of the group TV item will be pulled automatically.
label: Television
name: tvItems
required: true
type: TEXT
groupName: remoteItems
parameterGroups:
- name: remoteItems
label: Select TV item.
timestamp: Nov 3, 2025, 4:45:54 PM
component: f7-card
config:
style:
background-color: rgba(25, 25, 25, 1)
--f7-card-margin-horizontal: 0px
border-radius: 30px
outline-border-color: rgba(126, 126, 126, 1)
width: 12rem
height: 35rem
left: calc(50% - 12rem/2)
slots:
default:
- component: oh-button
config:
iconF7: power
raised: true
large: true
textColor: white
action: toggle
actionCommand: ON
actionCommandAlt: OFF
actionItem: =props.tvItems + "__switch"
class:
- align-content-center
style:
background-color: rgba(126, 26, 26, 1)
position: absolute
left: 15px
top: 15px
height: 38px
width: 38px
border-radius: 50%
- component: oh-button
config:
iconF7: house_fill
raised: true
large: true
textColor: white
action: command
actionCommand: HOME
actionItem: =props.tvItems + "__RCButton"
class:
- align-content-center
style:
background-color: rgba(15, 15, 15, 1)
position: absolute
left: 15px
top: 120px
height: 38px
width: 38px
border-radius: 50%
- component: oh-button
config:
iconF7: chevron_left
raised: false
large: true
textColor: white
action: command
actionCommand: LEFT
actionItem: =props.tvItems + "__RCButton"
class:
- text-align-left
- align-content-center
style:
background-color: rgba(20,20,20,1)
position: absolute
left: 21px
top: 155px
clip-path: polygon(0 3%, 0 97%, 100% 50%)
transform: rotate(0deg)
height: 150px
width: 70px
border-radius: 75px 0 0 75px
z-index: 2
- component: oh-button
config:
iconF7: chevron_right
raised: false
large: true
textColor: white
action: command
actionCommand: RIGHT
actionItem: =props.tvItems + "__RCButton"
class:
- text-align-right
- align-content-center
style:
background-color: rgba(20,20,20,1)
position: absolute
left: 99px
top: 155px
clip-path: polygon(0 50%, 100% 97%, 100% 3%)
transform: rotate(0deg)
height: 150px
width: 70px
border-radius: 0 75px 75px 0
z-index: 2
- component: oh-button
config:
iconF7: chevron_up
raised: false
large: true
textColor: white
action: command
actionCommand: UP
actionItem: =props.tvItems + "__RCButton"
style:
background-color: rgba(20,20,20,1)
position: absolute
left: 20px
top: 156px
clip-path: polygon(3% 0, 97% 0, 50% 100%)
transform: rotate(0deg)
height: 70px
width: 150px
border-radius: 75px 75px 0 0
z-index: 2
- component: oh-button
config:
iconF7: chevron_down
raised: false
large: true
textColor: white
action: command
actionCommand: DOWN
actionItem: =props.tvItems + "__RCButton"
class:
- align-content-flex-end
style:
background-color: rgba(20,20,20,1)
position: absolute
left: 20px
top: 234px
clip-path: polygon(3% 100%, 97% 100%, 50% 0)
transform: rotate(0deg)
height: 70px
width: 150px
border-radius: 0 0 75px 75px
z-index: 2
- component: oh-button
config:
iconF7: square
raised: false
large: true
textColor: white
action: command
actionCommand: ENTER
actionItem: =props.tvItems + "__RCButton"
class:
- align-content-center
style:
background-color: rgba(20,20,20,1)
position: absolute
left: 70px
top: 205px
height: 50px
width: 50px
border-radius: 25px 25px 25px 25px
z-index: 4
- component: f7-badge
config:
style:
background: rgba(35, 35, 35, 1)
position: absolute
left: 65px
top: 200px
width: 60px
height: 60px
border-radius: 50%
z-index: 3
- component: oh-button
config:
iconF7: arrow_uturn_left
raised: true
large: true
textColor: white
action: command
actionCommand: BACK
actionItem: =props.tvItems + "__RCButton"
class:
- align-content-center
style:
background-color: rgba(15, 15, 15, 1)
position: absolute
left: 15px
top: 300px
height: 38px
width: 38px
border-radius: 50%
- component: oh-button
config:
iconF7: gear_alt
raised: true
large: true
textColor: white
action: command
actionCommand: IMPOSTAZIONI
actionItem: =props.tvItems + "__application"
class:
- align-content-center
style:
background-color: rgba(15, 15, 15, 1)
position: absolute
left: 135px
top: 300px
height: 38px
width: 38px
border-radius: 50%
- component: f7-badge
config:
style:
background-color: rgba(15, 15, 15, 1)
position: absolute
left: 15px
top: 350px
height: 38px
width: 160px
border-radius: 19px
- component: oh-slider
config:
min: 0
max: 100
step: 1
releaseOnly: true
item: =props.tvItems + "__volume"
style:
position: absolute
left: 20px
top: 350px
height: 38px
width: 150px
border-radius: 20px
--f7-range-knob-size: 0px
--f7-range-bar-size: 28px
--f7-range-bar-bg-color: rgba(15, 15, 15, 1)
--f7-range-bar-active-bg-color: rgba(205, 205, 205, 1)
--f7-range-bar-border-radius: 28px
- component: oh-button
config:
text: Netflix
raised: true
large: true
textColor: red
action: command
actionCommand: Netflix
actionItem: =props.tvItems + "__application"
style:
background-color: rgba(15, 15, 15, 1)
position: absolute
left: 15px
top: 400px
height: 30px
width: 78px
border-radius: 15px 0 0 15px
- component: oh-button
config:
text: YouTube
raised: true
large: true
textColor: white
action: command
actionCommand: Youtube
actionItem: =props.tvItems + "__application"
style:
background-color: rgba(15, 15, 15, 1)
position: absolute
left: 98px
top: 400px
height: 30px
width: 78px
border-radius: 0 15px 15px 0
- component: f7-badge
config:
style:
icon-f7: circle
background: rgba(35, 35, 35, 1)
position: absolute
left: 15px
top: 150px
width: 160px
height: 160px
border-radius: 50%
z-index: 1
- component: f7-badge
config:
style:
background-color: rgba(35, 35, 35, 1)
position: absolute
left: 135px
top: 120px
width: 38px
height: 38px
border-radius: 50%
--f7-badge-text-color: rgba(200,200,0,.5)
z-index: 1
- component: oh-button
config:
iconF7: arrow_2_circlepath
raised: true
large: true
textColor: white
action: command
actionCommand: Home Dashboard service launcher
actionItem: =props.tvItems + "__application"
class:
- align-content-center
style:
background-color: rgba(15, 15, 15, 1)
position: absolute
left: 15px
top: 70px
width: 38px
height: 38px
border-radius: 50%
- component: oh-button
config:
iconF7: list_dash
raised: true
large: true
textColor: white
action: command
actionCommand: Guide
actionItem: =props.tvItems + "__application"
class:
- align-content-center
style:
background-color: rgba(15, 15, 15, 1)
position: absolute
left: 135px
top: 70px
width: 38px
height: 38px
border-radius: 50%
- component: f7-badge
config:
style:
background-color: rgba(35, 35, 35, 1)
position: absolute
left: 75px
top: 95px
width: 38px
height: 38px
border-radius: 50%
z-index: 1
- component: oh-button
config:
iconF7: speaker_slash
raised: true
large: true
textColor: white
action: toggle
actionCommand: ON
actionCommandAlt: OFF
actionItem: =props.tvItems + "__mute"
class:
- align-content-center
style:
background-color: rgba(15, 15, 15, 1)
position: absolute
left: 135px
top: 15px
width: 38px
height: 38px
border-radius: 50%