uid: veliny_top_demo4
tags: []
props:
parameters:
- context: item
label: Item úniku vody / vodní alarm
name: waterLeakItem
required: false
type: TEXT
timestamp: May 26, 2026, 8:31:58 AM
component: div
config:
style:
width: 100%
box-sizing: border-box
padding: 10px
display: flex
flex-direction: column
gap: 14px
slots:
default:
- component: div
config:
style:
position: relative
width: 100%
padding: 16px
box-sizing: border-box
border-radius: 28px
overflow: hidden
background: linear-gradient(180deg, rgba(255,255,255,0.48) 0%, rgba(244,248,252,0.38) 100%)
border: 1px solid rgba(255,255,255,0.34)
box-shadow: 0px 18px 40px rgba(0,0,0,0.08), inset 0 1px 0 rgba(255,255,255,0.72)
backdrop-filter: blur(12px)
-webkit-backdrop-filter: blur(12px)
slots:
default:
- component: div
config:
style:
position: absolute
left: 24%
top: 16%
width: 180px
height: 180px
border-radius: 50%
background: radial-gradient(circle, rgba(0,210,255,0.10) 0%, rgba(0,210,255,0.04) 45%, rgba(0,210,255,0) 75%)
z-index: '0'
- component: div
config:
style:
position: absolute
right: 18%
top: 18%
width: 180px
height: 180px
border-radius: 50%
background: radial-gradient(circle, rgba(52,199,89,0.10) 0%, rgba(52,199,89,0.04) 45%, rgba(52,199,89,0) 75%)
z-index: '0'
- component: div
config:
style:
position: relative
display: grid
grid-template-columns: 1fr auto auto
gap: 14px
align-items: center
height: 96px
margin: 4px
border-radius: 20px
padding: 12px 16px
box-sizing: border-box
background: linear-gradient(to bottom, hsla(125, 70%, 45%, 0.95), hsla(125, 70%, 96%, 0.82), 12%, rgba(255,255,255,0.72))
box-shadow: 0px 6px 18px rgba(0,180,40,0.18), 0px 0px 14px rgba(60,220,90,0.14)
overflow: hidden
z-index: '2'
slots:
default:
- component: div
config:
style:
background: radial-gradient(circle, rgba(70,220,90,0.24) 0%, rgba(0,170,40,0.10) 45%, rgba(0,170,40,0) 75%)
border-radius: 50%
height: 90px
position: absolute
right: 8px
top: 4px
width: 130px
z-index: '0'
- component: div
config:
style:
display: flex
flex-direction: column
justify-content: center
z-index: '2'
slots:
default:
- component: Label
config:
text: Alarm
style:
color: '#0d4f2a'
font-size: 18px
font-weight: bold
line-height: 20px
- component: Label
config:
text: Režim doma
style:
margin-top: 6px
color: '#23823a'
font-size: 12px
font-weight: '600'
- component: div
config:
style:
display: flex
gap: 10px
align-items: center
z-index: '2'
slots:
default:
- component: div
config:
style:
min-width: 78px
height: 34px
border-radius: 17px
background: linear-gradient(180deg,#34c759 0%,#27a946 100%)
box-shadow: 0px 5px 12px rgba(52,199,89,0.28)
display: flex
justify-content: center
align-items: center
slots:
default:
- component: Label
config:
text: Doma
style:
color: '#ffffff'
font-size: 13px
font-weight: '700'
- component: div
config:
style:
min-width: 88px
height: 34px
border-radius: 17px
background: rgba(255,255,255,0.62)
display: flex
justify-content: center
align-items: center
slots:
default:
- component: Label
config:
text: Odchod
style:
color: '#936100'
font-size: 13px
font-weight: '650'
- component: div
config:
style:
display: flex
flex-direction: column
align-items: flex-end
justify-content: center
gap: 4px
z-index: '2'
min-width: 190px
slots:
default:
- component: Label
config:
text: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "Voda: ÚNIK VODY!" : "Voda: Stav: OK"'
style:
color: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "#cc0000" : "#23823a"'
font-size: 12px
font-weight: '650'
line-height: 14px
- component: Label
config:
text: 'Požár: Stav: OK'
style:
color: '#23823a'
font-size: 12px
font-weight: '650'
line-height: 14px
- component: Label
config:
text: 'Plyn: Stav: OK'
style:
color: '#23823a'
font-size: 12px
font-weight: '650'
line-height: 14px
- component: div
config:
style:
position: relative
display: grid
grid-template-columns: minmax(180px, 1fr) minmax(300px, 340px) minmax(180px, 1fr)
gap: 18px
align-items: center
margin-top: 18px
z-index: '2'
slots:
default:
- component: div
config:
style:
display: flex
flex-direction: column
gap: 12px
min-width: '0'
slots:
default:
- component: f7-card
config:
style:
height: 96px
margin: 4px
border-radius: 20px
background: linear-gradient(to bottom, hsla(48, 90%, 54%, 0.95), hsla(48, 90%, 96%, 0.82), 12%, rgba(255,255,255,0.72))
box-shadow: 0px 6px 18px rgba(255,193,7,0.20), 0px 0px 14px rgba(255,214,64,0.15)
overflow: hidden
position: relative
slots:
default:
- component: div
config:
style:
background: radial-gradient(circle, rgba(255,221,70,0.28) 0%, rgba(255,193,7,0.12) 45%, rgba(255,193,7,0) 75%)
border-radius: 50%
height: 78px
position: absolute
right: 8px
top: 10px
width: 98px
z-index: '0'
- component: Label
config:
text: 💡
style:
position: absolute
right: 66px
top: 40px
font-size: 30px
line-height: 30px
opacity: '0.42'
z-index: '2'
transform: rotate(-12deg)
filter: drop-shadow(0 0 4px rgba(255,193,7,0.35))
- component: Label
config:
text: 💡
style:
position: absolute
right: 18px
top: 40px
font-size: 30px
line-height: 30px
opacity: '0.42'
z-index: '2'
transform: rotate(12deg)
filter: drop-shadow(0 0 4px rgba(255,193,7,0.35))
- component: Label
config:
text: 💡
style:
position: absolute
right: 34px
top: 18px
font-size: 50px
line-height: 50px
opacity: '0.90'
z-index: '2'
filter: drop-shadow(0 0 10px rgba(255,193,7,0.55))
- component: Label
config:
text: Světla
style:
position: absolute
left: 16px
top: 14px
z-index: '5'
color: '#664d00'
font-size: 16px
font-weight: bold
- component: Label
config:
text: Svítí 1
style:
position: absolute
left: 16px
bottom: 14px
z-index: '5'
color: '#b38600'
font-size: 12px
font-weight: '600'
- component: f7-card
config:
style:
height: 96px
margin: 4px
border-radius: 20px
background: linear-gradient(to bottom, hsla(125, 70%, 45%, 0.95), hsla(125, 70%, 96%, 0.82), 12%, rgba(255,255,255,0.72))
box-shadow: 0px 6px 18px rgba(0,180,40,0.18), 0px 0px 14px rgba(60,220,90,0.14)
overflow: hidden
position: relative
slots:
default:
- component: div
config:
style:
background: radial-gradient(circle, rgba(70,220,90,0.24) 0%, rgba(0,170,40,0.10) 45%, rgba(0,170,40,0) 75%)
border-radius: 50%
height: 78px
position: absolute
right: 8px
top: 10px
width: 98px
z-index: '0'
- component: div
config:
style:
position: absolute
right: 11px
top: 13px
width: 84px
height: 70px
z-index: '2'
slots:
default:
- component: div
config:
style:
position: absolute
left: 3px
top: 4px
width: 78px
height: 62px
border-radius: 50%
background: radial-gradient(circle, rgba(52,199,89,0.30) 0%, rgba(52,199,89,0.12) 50%, rgba(52,199,89,0) 76%)
z-index: '0'
- component: div
config:
style:
position: absolute
left: 2px
top: 34px
width: 30px
height: 22px
border-radius: 10px
background: linear-gradient(145deg,#22bf43 0%,#0e902c 100%)
box-shadow: 0 6px 12px rgba(0,140,45,0.22)
z-index: '1'
- component: div
config:
style:
position: absolute
right: 2px
top: 34px
width: 30px
height: 22px
border-radius: 10px
background: linear-gradient(145deg,#22bf43 0%,#0e902c 100%)
box-shadow: 0 6px 12px rgba(0,140,45,0.22)
z-index: '1'
- component: div
config:
style:
position: absolute
left: 20px
top: 9px
width: 44px
height: 50px
border-radius: 14px
background: linear-gradient(145deg,#27c84b 0%,#0d8f2b 100%)
box-shadow: 0 10px 18px rgba(0,140,45,0.32), inset 0 1px 2px rgba(255,255,255,0.20)
z-index: '2'
- component: div
config:
style:
position: absolute
left: 30px
top: 21px
width: 25px
height: 25px
border-radius: 50%
background: linear-gradient(180deg,#f5fff6 0%,#e2f3e5 100%)
box-shadow: inset 0 2px 4px rgba(0,0,0,0.13)
z-index: '3'
- component: div
config:
style:
position: absolute
left: 36px
top: 26px
width: 5px
height: 5px
border-radius: 50%
background: '#149333'
z-index: '4'
- component: div
config:
style:
position: absolute
left: 46px
top: 26px
width: 5px
height: 5px
border-radius: 50%
background: '#149333'
z-index: '4'
- component: div
config:
style:
position: absolute
left: 41px
top: 37px
width: 5px
height: 5px
border-radius: 50%
background: '#149333'
z-index: '4'
- component: div
config:
style:
position: absolute
left: 9px
top: 39px
width: 16px
height: 16px
border-radius: 50%
background: rgba(242,255,244,0.94)
box-shadow: inset 0 1px 2px rgba(0,0,0,0.10)
z-index: '2'
- component: div
config:
style:
position: absolute
right: 9px
top: 39px
width: 16px
height: 16px
border-radius: 50%
background: rgba(242,255,244,0.94)
box-shadow: inset 0 1px 2px rgba(0,0,0,0.10)
z-index: '2'
- component: div
config:
style:
position: absolute
left: 14px
top: 43px
width: 4px
height: 4px
border-radius: 50%
background: '#149333'
z-index: '3'
- component: div
config:
style:
position: absolute
left: 21px
top: 47px
width: 4px
height: 4px
border-radius: 50%
background: '#149333'
z-index: '3'
- component: div
config:
style:
position: absolute
right: 21px
top: 43px
width: 4px
height: 4px
border-radius: 50%
background: '#149333'
z-index: '3'
- component: div
config:
style:
position: absolute
right: 14px
top: 47px
width: 4px
height: 4px
border-radius: 50%
background: '#149333'
z-index: '3'
- component: div
config:
style:
position: absolute
left: 33px
top: 13px
width: 18px
height: 9px
border-radius: 50%
background: rgba(255,255,255,0.18)
filter: blur(1px)
z-index: '4'
- component: Label
config:
text: Zásuvky
style:
position: absolute
left: 16px
top: 14px
z-index: '5'
color: '#004d00'
font-size: 16px
font-weight: bold
- component: Label
config:
text: Zapnuto 7
style:
position: absolute
left: 16px
bottom: 14px
z-index: '5'
color: '#008000'
font-size: 12px
font-weight: '600'
- component: f7-card
config:
style:
height: 96px
margin: 4px
border-radius: 20px
background: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "linear-gradient(to bottom, hsla(0, 90%, 60%, 0.95), hsla(0, 90%, 96%, 0.82), 12%, rgba(255,255,255,0.72))" : "linear-gradient(to bottom, hsla(207, 90%, 58%, 0.95), hsla(207, 90%, 96%, 0.82), 12%, rgba(255,255,255,0.72))"'
box-shadow: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "0px 6px 18px rgba(255,0,0,0.20), 0px 0px 14px rgba(255,80,80,0.14)" : "0px 6px 18px rgba(20,115,214,0.18), 0px 0px 14px rgba(80,160,255,0.13)"'
overflow: hidden
position: relative
slots:
default:
- component: div
config:
style:
background: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "radial-gradient(circle, rgba(255,70,70,0.24) 0%, rgba(255,0,0,0.10) 45%, rgba(255,0,0,0) 75%)" : "radial-gradient(circle, rgba(80,160,255,0.24) 0%, rgba(20,115,214,0.10) 45%, rgba(20,115,214,0) 75%)"'
border-radius: 50%
height: 78px
position: absolute
right: 8px
top: 10px
width: 98px
z-index: '0'
- component: div
config:
style:
position: absolute
right: 6px
top: 6px
width: 100px
height: 86px
z-index: '2'
slots:
default:
- component: div
config:
style:
position: absolute
left: 3px
top: 8px
width: 92px
height: 72px
border-radius: 50%
background: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "radial-gradient(circle, rgba(255,0,0,0.17) 0%, rgba(255,0,0,0.06) 52%, rgba(255,0,0,0) 76%)" : "radial-gradient(circle, rgba(210,145,72,0.18) 0%, rgba(20,115,214,0.06) 52%, rgba(20,115,214,0) 76%)"'
z-index: '0'
- component: div
config:
style:
position: absolute
left: 50px
top: 22px
width: 16px
height: 38px
border-radius: 7px 7px 4px 4px
background: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "linear-gradient(145deg,#ff7878 0%,#d52020 45%,#9f0000 100%)" : "linear-gradient(145deg,#ffe4bf 0%,#d59148 45%,#a86025 100%)"'
box-shadow: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "0 8px 16px rgba(204,0,0,0.30), inset 0 1px 2px rgba(255,255,255,0.30)" : "0 8px 16px rgba(160,95,35,0.24), inset 0 1px 2px rgba(255,255,255,0.36)"'
z-index: '3'
- component: div
config:
style:
position: absolute
left: 46px
top: 12px
width: 24px
height: 16px
border-radius: 6px
background: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "linear-gradient(145deg,#ff9a9a 0%,#d42b2b 100%)" : "linear-gradient(145deg,#fff0d5 0%,#e1a35d 52%,#b66d2c 100%)"'
box-shadow: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "0 8px 16px rgba(204,0,0,0.30), inset 0 1px 2px rgba(255,255,255,0.30)" : "0 8px 16px rgba(160,95,35,0.24), inset 0 1px 2px rgba(255,255,255,0.36)"'
z-index: '4'
- component: div
config:
style:
position: absolute
left: 18px
top: 11px
width: 34px
height: 13px
border-radius: 8px 3px 3px 8px
background: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "linear-gradient(145deg,#ff9a9a 0%,#d42b2b 100%)" : "linear-gradient(145deg,#fff0d5 0%,#e1a35d 52%,#b66d2c 100%)"'
box-shadow: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "0 8px 16px rgba(204,0,0,0.30), inset 0 1px 2px rgba(255,255,255,0.30)" : "0 8px 16px rgba(160,95,35,0.24), inset 0 1px 2px rgba(255,255,255,0.36)"'
transform: perspective(50px) rotateY(-18deg)
z-index: '5'
- component: div
config:
style:
position: absolute
left: 66px
top: 11px
width: 30px
height: 13px
border-radius: 3px 8px 8px 3px
background: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "linear-gradient(145deg,#ff9a9a 0%,#d42b2b 100%)" : "linear-gradient(145deg,#fff0d5 0%,#e1a35d 52%,#b66d2c 100%)"'
box-shadow: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "0 8px 16px rgba(204,0,0,0.30), inset 0 1px 2px rgba(255,255,255,0.30)" : "0 8px 16px rgba(160,95,35,0.24), inset 0 1px 2px rgba(255,255,255,0.36)"'
transform: perspective(50px) rotateY(18deg)
z-index: '5'
- component: div
config:
style:
position: absolute
left: 54px
top: 7px
width: 13px
height: 21px
border-radius: 5px
background: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "linear-gradient(145deg,#ff9a9a 0%,#d42b2b 100%)" : "linear-gradient(145deg,#fff0d5 0%,#e1a35d 52%,#b66d2c 100%)"'
box-shadow: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "0 8px 16px rgba(204,0,0,0.30), inset 0 1px 2px rgba(255,255,255,0.30)" : "0 8px 16px rgba(160,95,35,0.24), inset 0 1px 2px rgba(255,255,255,0.36)"'
z-index: '6'
- component: div
config:
style:
position: absolute
left: 24px
top: 49px
width: 58px
height: 22px
border-radius: 15px 8px 8px 5px
background: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "linear-gradient(145deg,#ff7878 0%,#d52020 45%,#9f0000 100%)" : "linear-gradient(145deg,#ffe4bf 0%,#d59148 45%,#a86025 100%)"'
box-shadow: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "0 8px 16px rgba(204,0,0,0.30), inset 0 1px 2px rgba(255,255,255,0.30)" : "0 8px 16px rgba(160,95,35,0.24), inset 0 1px 2px rgba(255,255,255,0.36)"'
z-index: '2'
- component: div
config:
style:
position: absolute
left: 18px
top: 57px
width: 20px
height: 24px
border-radius: 0 0 13px 13px
background: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "linear-gradient(145deg,#ff7878 0%,#d52020 45%,#9f0000 100%)" : "linear-gradient(145deg,#ffe4bf 0%,#d59148 45%,#a86025 100%)"'
box-shadow: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "0 8px 16px rgba(204,0,0,0.30), inset 0 1px 2px rgba(255,255,255,0.30)" : "0 8px 16px rgba(160,95,35,0.24), inset 0 1px 2px rgba(255,255,255,0.36)"'
z-index: '2'
- component: div
config:
style:
position: absolute
left: 78px
top: 50px
width: 12px
height: 25px
border-radius: 2px
background: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "linear-gradient(145deg,#ff9a9a 0%,#d42b2b 100%)" : "linear-gradient(145deg,#fff0d5 0%,#e1a35d 52%,#b66d2c 100%)"'
box-shadow: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "0 8px 16px rgba(204,0,0,0.30), inset 0 1px 2px rgba(255,255,255,0.30)" : "0 8px 16px rgba(160,95,35,0.24), inset 0 1px 2px rgba(255,255,255,0.36)"'
z-index: '3'
- component: div
config:
style:
position: absolute
left: 35px
top: 54px
width: 38px
height: 4px
border-radius: 50%
background: rgba(255,255,255,0.34)
filter: blur(1px)
z-index: '7'
- component: div
config:
style:
position: absolute
left: 54px
top: 27px
width: 5px
height: 25px
border-radius: 4px
background: rgba(255,255,255,0.30)
filter: blur(0.4px)
z-index: '7'
- component: div
config:
style:
position: absolute
left: 21px
top: 78px
width: 12px
height: 19px
border-radius: 70% 70% 70% 0
background: linear-gradient(135deg,#a7ecff 0%,#2c99ff 55%,#0072e8 100%)
transform: rotate(45deg)
opacity: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "1" : "0"'
box-shadow: 0 6px 12px rgba(20,115,214,0.26)
z-index: '8'
- component: Label
config:
text: Voda
style:
position: absolute
left: 16px
top: 14px
z-index: '5'
color: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "#660000" : "#004a86"'
font-size: 16px
font-weight: bold
- component: Label
config:
text: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "ÚNIK VODY!" : "Stav: OK"'
style:
position: absolute
left: 16px
bottom: 14px
z-index: '5'
color: '=(props.waterLeakItem && items[props.waterLeakItem] && ["ON","OPEN","ALARM","UNIK","LEAK","TRUE"].includes(items[props.waterLeakItem].state.toString().toUpperCase())) ? "#cc0000" : "#007aff"'
font-size: 12px
font-weight: '700'
- component: div
config:
style:
display: flex
justify-content: center
align-items: center
min-width: '0'
slots:
default:
- component: div
config:
style:
width: 300px
height: 300px
border-radius: 50%
position: relative
overflow: hidden
background: radial-gradient(circle at 50% 50%, rgba(18,30,40,0.08) 0%, rgba(255,255,255,0.22) 24%, rgba(255,255,255,0.10) 55%, rgba(255,255,255,0.06) 100%)
border: 1px solid rgba(255,255,255,0.22)
box-shadow: 0px 18px 40px rgba(0,0,0,0.06), inset 0 0 0 10px rgba(255,255,255,0.04), inset 0 0 0 22px rgba(0,210,255,0.05)
slots:
default:
- component: div
config:
style:
position: absolute
left: 18px
top: 18px
width: 264px
height: 264px
border-radius: 50%
border: 2px solid rgba(0,210,255,0.28)
box-shadow: 0 0 18px rgba(0,210,255,0.10)
z-index: '1'
- component: div
config:
style:
position: absolute
left: 42px
top: 42px
width: 216px
height: 216px
border-radius: 50%
border: 2px dashed rgba(255,255,255,0.16)
z-index: '1'
- component: Label
config:
text: =dayjs().locale("cs").format("dddd D. MMMM")
style:
position: absolute
left: '0'
right: '0'
top: 56px
text-align: center
color: '#8c8c91'
font-size: 14px
font-weight: '500'
text-transform: capitalize
z-index: '3'
- component: Label
config:
text: =dayjs().format("HH:mm")
style:
position: absolute
left: '0'
right: '0'
top: 102px
text-align: center
color: '#111111'
font-size: 58px
line-height: 58px
font-weight: '650'
letter-spacing: -1.8px
z-index: '3'
- component: Label
config:
text: Veliny 47
style:
position: absolute
left: '0'
right: '0'
bottom: 86px
text-align: center
color: '#5f6065'
font-size: 18px
font-weight: '600'
z-index: '3'
- component: Label
config:
text: =items["Pocasi_Ikona"].state.toString() + " " + items["Pocasi_Teplota_Text"].state.toString()
style:
position: absolute
left: '0'
right: '0'
bottom: 56px
text-align: center
color: '#303236'
font-size: 14px
font-weight: '650'
z-index: '3'
- component: Label
config:
text: =items["Pocasi_Stav_Text"].state.toString()
style:
position: absolute
left: '0'
right: '0'
bottom: 38px
text-align: center
color: '#8a8d93'
font-size: 11px
font-weight: '500'
z-index: '3'
- component: div
config:
style:
display: flex
flex-direction: column
gap: 12px
min-width: '0'
slots:
default:
- component: f7-card
config:
style:
height: 96px
margin: 4px
border-radius: 20px
background: linear-gradient(to bottom, hsla(125, 70%, 45%, 0.95), hsla(125, 70%, 96%, 0.82), 12%, rgba(255,255,255,0.72))
box-shadow: 0px 6px 18px rgba(0,180,40,0.18), 0px 0px 14px rgba(60,220,90,0.14)
overflow: hidden
position: relative
slots:
default:
- component: div
config:
style:
background: radial-gradient(circle, rgba(70,220,90,0.24) 0%, rgba(0,170,40,0.10) 45%, rgba(0,170,40,0) 75%)
border-radius: 50%
height: 78px
position: absolute
right: 8px
top: 10px
width: 98px
z-index: '0'
- component: Label
config:
text: 🚪
style:
position: absolute
right: 34px
top: 20px
font-size: 48px
line-height: 48px
opacity: '0.78'
z-index: '2'
filter: drop-shadow(0 0 8px rgba(52,199,89,0.18))
- component: Label
config:
text: Dveře
style:
position: absolute
left: 16px
top: 14px
z-index: '5'
color: '#004d00'
font-size: 16px
font-weight: bold
- component: Label
config:
text: Zavřeny
style:
position: absolute
left: 16px
bottom: 14px
z-index: '5'
color: '#008000'
font-size: 12px
font-weight: '600'
- component: f7-card
config:
style:
height: 96px
margin: 4px
border-radius: 20px
background: linear-gradient(to bottom, hsla(0, 90%, 60%, 0.95), hsla(0, 90%, 96%, 0.82), 12%, rgba(255,255,255,0.72))
box-shadow: 0px 6px 18px rgba(255,0,0,0.20), 0px 0px 14px rgba(255,80,80,0.14)
overflow: hidden
position: relative
slots:
default:
- component: div
config:
style:
background: radial-gradient(circle, rgba(255,70,70,0.24) 0%, rgba(255,0,0,0.10) 45%, rgba(255,0,0,0) 75%)
border-radius: 50%
height: 78px
position: absolute
right: 8px
top: 10px
width: 98px
z-index: '0'
- component: Label
config:
text: 🪟
style:
position: absolute
right: 34px
top: 20px
font-size: 48px
line-height: 48px
opacity: '0.82'
z-index: '2'
filter: drop-shadow(0 0 8px rgba(255,0,0,0.18))
- component: Label
config:
text: Okna
style:
position: absolute
left: 16px
top: 14px
z-index: '5'
color: '#660000'
font-size: 16px
font-weight: bold
- component: Label
config:
text: 'Otevřena: 3'
style:
position: absolute
left: 16px
bottom: 14px
z-index: '5'
color: '#cc0000'
font-size: 12px
font-weight: '600'
- component: f7-card
config:
style:
height: 96px
margin: 4px
border-radius: 20px
background: linear-gradient(to bottom, hsla(207, 90%, 58%, 0.95), hsla(207, 90%, 96%, 0.82), 12%, rgba(255,255,255,0.72))
box-shadow: 0px 6px 18px rgba(20,115,214,0.18), 0px 0px 14px rgba(80,160,255,0.13)
overflow: hidden
position: relative
slots:
default:
- component: div
config:
style:
background: radial-gradient(circle, rgba(80,160,255,0.24) 0%, rgba(20,115,214,0.10) 45%, rgba(20,115,214,0) 75%)
border-radius: 50%
height: 78px
position: absolute
right: 8px
top: 10px
width: 98px
z-index: '0'
- component: Label
config:
text: 🌡️
style:
position: absolute
right: 34px
top: 20px
font-size: 48px
line-height: 48px
opacity: '0.84'
z-index: '2'
filter: drop-shadow(0 0 8px rgba(20,115,214,0.24))
- component: Label
config:
text: Topení
style:
position: absolute
left: 16px
top: 14px
z-index: '5'
color: '#004a86'
font-size: 16px
font-weight: bold
- component: Label
config:
text: Ø 26,1 °C
style:
position: absolute
left: 16px
bottom: 14px
z-index: '5'
color: '#1473d6'
font-size: 12px
font-weight: '600'
- component: div
config:
style:
position: relative
display: grid
grid-template-columns: repeat(3, minmax(0, 1fr))
gap: 14px
margin-top: 18px
z-index: '2'
slots:
default:
- component: f7-card
config:
style:
height: 96px
margin: 4px
border-radius: 20px
background: linear-gradient(to bottom, hsla(125, 70%, 45%, 0.95), hsla(125, 70%, 96%, 0.82), 12%, rgba(255,255,255,0.72))
box-shadow: 0px 6px 18px rgba(0,180,40,0.18), 0px 0px 14px rgba(60,220,90,0.14)
overflow: hidden
position: relative
slots:
default:
- component: div
config:
style:
background: radial-gradient(circle, rgba(70,220,90,0.24) 0%, rgba(0,170,40,0.10) 45%, rgba(0,170,40,0) 75%)
border-radius: 50%
height: 78px
position: absolute
right: 8px
top: 10px
width: 98px
z-index: '0'
- component: Label
config:
text: 🔥
style:
position: absolute
right: 28px
top: 30px
font-size: 34px
line-height: 34px
opacity: '0.92'
z-index: '2'
- component: Label
config:
text: Požár
style:
position: absolute
left: 16px
top: 14px
z-index: '5'
color: '#004d00'
font-size: 16px
font-weight: bold
- component: Label
config:
text: 'Stav: OK'
style:
position: absolute
left: 16px
bottom: 14px
z-index: '5'
color: '#008000'
font-size: 12px
font-weight: '600'
- component: f7-card
config:
style:
height: 96px
margin: 4px
border-radius: 20px
background: linear-gradient(to bottom, hsla(125, 70%, 45%, 0.95), hsla(125, 70%, 96%, 0.82), 12%, rgba(255,255,255,0.72))
box-shadow: 0px 6px 18px rgba(0,180,40,0.18), 0px 0px 14px rgba(60,220,90,0.14)
overflow: hidden
position: relative
slots:
default:
- component: div
config:
style:
background: radial-gradient(circle, rgba(70,220,90,0.24) 0%, rgba(0,170,40,0.10) 45%, rgba(0,170,40,0) 75%)
border-radius: 50%
height: 78px
position: absolute
right: 8px
top: 10px
width: 98px
z-index: '0'
- component: Label
config:
text: ⛽
style:
position: absolute
right: 28px
top: 30px
font-size: 34px
line-height: 34px
opacity: '0.92'
z-index: '2'
- component: Label
config:
text: Plyn
style:
position: absolute
left: 16px
top: 14px
z-index: '5'
color: '#004d00'
font-size: 16px
font-weight: bold
- component: Label
config:
text: 'Stav: OK'
style:
position: absolute
left: 16px
bottom: 14px
z-index: '5'
color: '#008000'
font-size: 12px
font-weight: '600'
- component: f7-card
config:
style:
height: 96px
margin: 4px
border-radius: 20px
background: linear-gradient(to bottom, hsla(207, 90%, 58%, 0.95), hsla(207, 90%, 96%, 0.82), 12%, rgba(255,255,255,0.72))
box-shadow: 0px 6px 18px rgba(20,115,214,0.18), 0px 0px 14px rgba(80,160,255,0.13)
overflow: hidden
position: relative
slots:
default:
- component: div
config:
style:
background: radial-gradient(circle, rgba(80,160,255,0.24) 0%, rgba(20,115,214,0.10) 45%, rgba(20,115,214,0) 75%)
border-radius: 50%
height: 78px
position: absolute
right: 8px
top: 10px
width: 98px
z-index: '0'
- component: Label
config:
text: 🎥
style:
position: absolute
right: 28px
top: 30px
font-size: 34px
line-height: 34px
opacity: '0.92'
z-index: '2'
- component: Label
config:
text: Kamery
style:
position: absolute
left: 16px
top: 14px
z-index: '5'
color: '#004a86'
font-size: 16px
font-weight: bold
- component: Label
config:
text: 6 online
style:
position: absolute
left: 16px
bottom: 14px
z-index: '5'
color: '#1473d6'
font-size: 12px
font-weight: '600'
- component: div
config:
style:
display: grid
grid-template-columns: repeat(3, minmax(0, 1fr))
gap: 14px
width: 100%
box-sizing: border-box
slots:
default:
- component: f7-card
config:
style:
margin: '0'
height: 96px
border-radius: 26px
background: linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(247,248,251,0.98) 100%)
box-shadow: 0px 10px 26px rgba(0,0,0,0.06)
position: relative
overflow: hidden
cursor: pointer
action: navigate
actionPage: page:prizemi
slots:
default:
- component: Label
config:
text: Přízemí
style:
position: absolute
left: 22px
top: 34px
color: '#1a1a1a'
font-size: 22px
font-weight: '700'
- component: Label
config:
text: ⌂
style:
position: absolute
right: 24px
top: 31px
font-size: 28px
line-height: 28px
opacity: '0.78'
- component: f7-card
config:
style:
margin: '0'
height: 96px
border-radius: 26px
background: linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(247,248,251,0.98) 100%)
box-shadow: 0px 10px 26px rgba(0,0,0,0.06)
position: relative
overflow: hidden
cursor: pointer
action: navigate
actionPage: page:podkrovi
slots:
default:
- component: Label
config:
text: Podkroví
style:
position: absolute
left: 22px
top: 34px
color: '#1a1a1a'
font-size: 22px
font-weight: '700'
- component: Label
config:
text: ⌃
style:
position: absolute
right: 24px
top: 31px
font-size: 28px
line-height: 28px
opacity: '0.78'
- component: f7-card
config:
style:
margin: '0'
height: 96px
border-radius: 26px
background: linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(247,248,251,0.98) 100%)
box-shadow: 0px 10px 26px rgba(0,0,0,0.06)
position: relative
overflow: hidden
cursor: pointer
action: navigate
actionPage: page:technicka_cast
slots:
default:
- component: Label
config:
text: Technická část
style:
position: absolute
left: 22px
top: 34px
color: '#1a1a1a'
font-size: 22px
font-weight: '700'
- component: Label
config:
text: ⚙
style:
position: absolute
right: 24px
top: 31px
font-size: 28px
line-height: 28px
opacity: '0.78'