@hotnipi/node-red-dashboard-2-ui-edgewise-meter
Version:
An edgewise meter gauge node for @flowfuse/node-red-dashboard
200 lines (187 loc) • 5.2 kB
CSS
.hotnipi-ewm-light{
--hotnipi-ewm-mix:20%;
--hotnipi-ewm-shadow:rgba(var(--v-theme-on-group-background),var(--hotnipi-ewm-mix));
--hotnipi-ewm-background:rgb(var(--v-theme-group-background));
--hotnipi-ewm-outline:rgba(var(--v-theme-on-group-background),40%);
}
.hotnipi-ewm-dark{
--hotnipi-ewm-mix: 75%;
--hotnipi-ewm-shadow: rgba(var(--v-theme-group-background), var(--hotnipi-ewm-mix));
--hotnipi-ewm-background: rgb(var(--v-theme-on-group-background));
--hotnipi-ewm-outline: rgba(var(--v-theme-group-background), 100%);
}
.hotnipi-ewm-wrapper{
display: grid;
gap: 1rem;
align-items: center;
height: 100%;
}
.hotnipi-ewm-wrapper.hover:hover .hotnipi-ewm-exact{
display:flex;
}
.hotnipi-ewm-wrapper.permanent .hotnipi-ewm-exact{
display:flex;
}
.hotnipi-ewm-exact {
position: absolute;
display: none;
margin: 1.5px;
min-width: calc(var(--hotnipi-ewm-mini-display-size, 6) *1ch);
padding-inline: 0.5rem;
padding-top: 2px;
border: 1px solid var(--hotnipi-ewm-shadow);
background-color: var(--hotnipi-ewm-background);
outline: 1px solid var(--hotnipi-ewm-outline);
outline-offset: -2px;
text-align: center;
border-radius: 5px;
font-size: small;
color: black;
align-items: center;
justify-content: center;
box-shadow: 0 0 6px #00000012, inset 0 0 12px 0px #0000002b;
}
.hotnipi-ewm-exact.top{
top:0;
}
.hotnipi-ewm-exact.bottom{
bottom:0;
}
.hotnipi-ewm-exact.left{
left:0;
}
.hotnipi-ewm-exact.right{
right:0;
}
.hotnipi-ewm-exact.big{
font-size: 1.25rem;
top:0;
bottom:0;
}
.hotnipi-ewm-dark .hotnipi-ewm-exact{
color:rgba(var(--v-theme-on-group-background),80%);
border: 1px solid var(--hotnipi-ewm-outline);
background-color: rgba(var(--v-theme-group-background),60%);
outline: 1px solid rgba(var(--v-theme-on-group-background),30%);
}
.hotnipi-ewm-label {
min-width: 1rem;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.hotnipi-ewm-body {
position: relative;
min-width: 3rem;
width: 100%;
height: 100%;
display: flex;
align-content: center;
}
.hotnipi-ewm-body.hotnipi-ewm-light {
filter: drop-shadow(0px 2px 4px var(--hotnipi-ewm-shadow));
}
.hotnipi-ewm-display {
width: 100%;
height: 100%;
display:flex;
justify-content: center;
position: relative;
box-sizing: border-box;
overflow: hidden;
border: 3px solid var(--hotnipi-ewm-shadow);
background-color: var(--hotnipi-ewm-background);
outline: 1px solid var(--hotnipi-ewm-outline);
outline-offset: -2px;
border-radius: 6px;
box-shadow: inset 0 0 9px 1px var(--hotnipi-ewm-shadow);
}
.hotnipi-ewm-display::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(90deg, var(--hotnipi-ewm-shadow), transparent 30%, transparent 70%, var(--hotnipi-ewm-shadow));
}
.hotnipi-ewm-backplate {
width: calc(var(--hotnipi-ewm-size) * 1px);
flex-shrink: 0;
position: relative;
}
.hotnipi-ewm-numbers {
position:relative;
display: flex;
flex-direction: row;
justify-content: space-between;
height: 100%;
font-size: 1.25rem;
word-wrap: normal;
align-content: center;
transform: translateX(-50%);
transition: var(--hotnipi-ewm-easing);
}
.hotnipi-ewm-numbers :nth-child(even){
font-size: var(--hotnipi-ewm-small-digits);
}
.hotnipi-ewm-numbers:after {
content: "";
position: absolute;
right: 0%;
width: 100%;
top: 0px;
height: 25%;
background: var(--hotnipi-ewm-gradient,repeating-linear-gradient(to right, #00000040, #00000040 40%, transparent 40%, transparent));
background-size: 4px, 100%;
}
.hotnipi-ewm-numbers:before {
content: var(--hotnipi-ewm-logo,"Made in Estonia hotNipi ® Gauges");
position: absolute;
font-size: xx-small;
text-align: end;
inset: 0;
width: 20ch;
translate: -120%;
color: var(--hotnipi-ewm-outline);
}
.hotnipi-ewm-num {
position: relative;
text-align: center;
width: 100%;
color: black;
align-self: flex-end;
border-bottom: 3px solid transparent;
}
.hotnipi-ewm-needle {
position: absolute;
left: calc(50% - 0.5px);
top: 0;
width: 1px;
height: 100%;
background-color: #eb1e1e;
box-shadow: 0px 0px 7px 2px var(--hotnipi-ewm-shadow);
}
.hotnipi-ewm-dark .hotnipi-ewm-needle {
box-shadow: 0px 0px 12px 1px var(--hotnipi-ewm-shadow);
}
.hotnipi-ewm-size-error {
position: absolute;
inset: 0;
font-size: x-small;
color:red;
text-align: center;
display: flex;
justify-content:center;
}
.hotnipi-ewm-size-error > p{
max-width: 140px;
}
@keyframes blink {
50% {
opacity: 0.0;
}
}
.hotnipi-ewm-blink{
animation: blink 4s step-start 0s infinite;
}
.hotnipi-ewm-blonk{
animation: blink 4s step-start 2s infinite;
}