This commit is contained in:
Mateusz Gruszczyński
2026-09-16 22:22:09 +02:00
parent c7d47db64e
commit bb39ab9dfa
27 changed files with 523 additions and 319 deletions
+170 -138
View File
@@ -736,7 +736,7 @@ h3 {
padding: 7px 11px;
}
.zone-enable-toggle {
.enable-toggle {
display: inline-flex;
align-items: center;
gap: 6px;
@@ -749,13 +749,13 @@ h3 {
font-size: 11px;
}
.zone-enable-toggle.active {
.enable-toggle.active {
border-color: color-mix(in srgb, var(--accent) 34%, var(--line));
color: var(--accent);
background: color-mix(in srgb, var(--accent) 12%, var(--surface));
}
.zone-enable-toggle span {
.enable-toggle span {
font-size: 12px;
font-weight: 900;
}
@@ -1639,16 +1639,16 @@ button.outside-pill:focus-visible {
font-variant-numeric: tabular-nums;
}
.outdoor-history-dialog .history-chart-card {
.outdoor-history-dialog .chart-card {
margin: 0;
}
.outdoor-history-dialog .history-chart-card:not(.chart-fullscreen-fallback) .chart-wrap {
.outdoor-history-dialog .chart-card:not(.chart-fullscreen-fallback) .chart-wrap {
height: auto;
max-height: none;
}
.outdoor-history-dialog .history-chart-card:not(.chart-fullscreen-fallback) canvas {
.outdoor-history-dialog .chart-card:not(.chart-fullscreen-fallback) canvas {
height: 350px;
}
@@ -2031,7 +2031,7 @@ button.outside-pill:focus-visible {
line-height: 1.5;
}
.history-chart-card {
.chart-card {
margin-top: 14px;
}
@@ -2188,35 +2188,6 @@ button.outside-pill:focus-visible {
}
}
.history-tabs {
display: flex;
gap: 7px;
overflow-x: auto;
margin: 0 0 14px;
padding: 3px;
scrollbar-width: none;
}
.history-tabs::-webkit-scrollbar {
display: none;
}
.history-tabs button {
flex: 0 0 auto;
padding: 9px 13px;
border: 1px solid var(--line);
border-radius: 999px;
color: var(--muted);
background: var(--surface);
font-size: 12px;
font-weight: 700;
}
.history-tabs button.active {
color: var(--accent-text);
border-color: var(--accent);
background: var(--accent);
}
.history-toolbar-panel {
margin-bottom: 14px;
@@ -2309,23 +2280,49 @@ button.outside-pill:focus-visible {
line-height: 1;
}
.custom-chart-edit-note {
color: var(--muted);
font-size: 12px;
}
.custom-chart-edit-note strong { color: var(--text-soft); }
.saved-chart-section {
display: grid;
gap: 8px;
padding-top: 10px;
border-top: 1px solid var(--line);
}
.saved-chart-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.saved-chart-heading small { color: var(--muted); }
.saved-chart-list {
display: grid;
gap: 7px;
padding-top: 3px;
border-top: 1px solid var(--line);
}
.saved-chart-row {
display: grid;
grid-template-columns: 1fr auto;
grid-template-columns: minmax(0, 1fr) auto;
gap: 7px;
}
.saved-chart-row>button:first-child {
.saved-chart-row.is-editing .saved-chart-open {
border-color: color-mix(in srgb, var(--accent) 65%, var(--line));
}
.saved-chart-open {
display: flex;
justify-content: space-between;
align-items: center;
min-width: 0;
gap: 12px;
padding: 10px 12px;
border: 1px solid var(--line);
@@ -2344,7 +2341,12 @@ button.outside-pill:focus-visible {
color: var(--muted);
}
.saved-chart-row>.danger {
.saved-chart-actions {
display: flex;
gap: 7px;
}
.saved-chart-actions button {
width: 42px;
padding: 0;
border: 1px solid var(--line);
@@ -2679,7 +2681,7 @@ button.outside-pill:focus-visible {
}
}
.history-chart-card canvas {
.chart-card canvas {
width: 100%;
min-width: 720px;
}
@@ -2960,7 +2962,7 @@ button.outside-pill:focus-visible {
align-self: end;
}
.settings-form {
.config-form {
display: grid;
gap: 14px;
}
@@ -3001,39 +3003,39 @@ button.outside-pill:focus-visible {
display: none;
}
.settings-block {
.form-section {
display: grid;
gap: 18px;
}
.settings-block-head {
.form-section-head {
display: flex;
align-items: flex-start;
}
.settings-block-head h3 {
.form-section-head h3 {
margin: 1px 0 4px;
font-size: 18px;
}
.settings-block-head p {
.form-section-head p {
margin: 0;
color: var(--muted);
font-size: 12px;
line-height: 1.5;
}
.settings-grid {
.form-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
}
.settings-grid .wide {
.form-grid .wide {
grid-column: 1/-1;
}
.settings-save-bar {
.sticky-form-actions {
position: sticky;
bottom: 18px;
z-index: 9;
@@ -3049,7 +3051,7 @@ button.outside-pill:focus-visible {
backdrop-filter: blur(16px);
}
.settings-save-bar span {
.sticky-form-actions span {
color: var(--muted);
font-size: 12px;
}
@@ -3240,7 +3242,7 @@ button.outside-pill:focus-visible {
font-size: 12px;
}
.flow-node {
.diagram-node {
position: absolute;
z-index: 3;
display: grid;
@@ -3253,31 +3255,31 @@ button.outside-pill:focus-visible {
box-shadow: 0 8px 24px rgba(0, 0, 0, .15);
}
.flow-node.input {
.diagram-node.input {
border-left: 3px solid var(--teal);
}
.flow-node.logic {
.diagram-node.logic {
border-left: 3px solid var(--purple);
}
.flow-node.action {
.diagram-node.action {
border-left: 3px solid var(--accent);
}
.flow-node.event {
.diagram-node.event {
border-left: 3px solid var(--info);
}
.flow-node.decision.demand {
.diagram-node.decision.demand {
box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent), 0 8px 24px rgba(0, 0, 0, .15);
}
.flow-node.global {
.diagram-node.global {
min-height: 106px;
}
.flow-node.night-active {
.diagram-node.night-active {
border-color: color-mix(in srgb, var(--info) 45%, var(--line-strong));
}
@@ -3293,7 +3295,7 @@ button.outside-pill:focus-visible {
text-transform: uppercase;
}
.flow-node h3 {
.diagram-node h3 {
overflow: hidden;
margin: 0;
color: var(--text);
@@ -3302,13 +3304,13 @@ button.outside-pill:focus-visible {
white-space: nowrap;
}
.flow-node>strong {
.diagram-node>strong {
color: var(--text);
font-size: 17px;
line-height: 1.25;
}
.flow-node p {
.diagram-node p {
display: -webkit-box;
overflow: hidden;
margin: 0;
@@ -3336,7 +3338,7 @@ button.outside-pill:focus-visible {
background: color-mix(in srgb, var(--accent) 12%, var(--surface));
}
.flow-port {
.diagram-port {
position: absolute;
top: 50%;
width: 9px;
@@ -3347,27 +3349,27 @@ button.outside-pill:focus-visible {
background: var(--muted);
}
.flow-port.in {
.diagram-port.in {
left: -6px;
}
.flow-port.out {
.diagram-port.out {
right: -6px;
}
.flow-node.input .flow-port {
.diagram-node.input .diagram-port {
background: var(--teal);
}
.flow-node.logic .flow-port {
.diagram-node.logic .diagram-port {
background: var(--purple);
}
.flow-node.action .flow-port {
.diagram-node.action .diagram-port {
background: var(--accent);
}
.flow-node.event .flow-port {
.diagram-node.event .diagram-port {
background: var(--info);
}
@@ -3384,15 +3386,15 @@ button.outside-pill:focus-visible {
grid-column: auto;
}
.settings-grid {
.form-grid {
grid-template-columns: 1fr;
}
.settings-grid .wide {
.form-grid .wide {
grid-column: auto;
}
.settings-save-bar {
.sticky-form-actions {
bottom: 76px;
}
@@ -3416,7 +3418,7 @@ button.outside-pill:focus-visible {
}
}
.settings-block-head {
.form-section-head {
gap: 0;
}
@@ -3480,7 +3482,7 @@ button.outside-pill:focus-visible {
border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
}
.standalone-settings-form {
.full-width-form {
width: 100%;
max-width: none;
}
@@ -4135,7 +4137,7 @@ body.simulation-standalone [data-view="simulation"] {
}
.zone-config-card .zone-enable-toggle {
.zone-config-card .enable-toggle {
min-height: 28px;
padding: 4px 8px;
font-size: 10px;
@@ -4588,7 +4590,7 @@ body.simulation-standalone [data-view="simulation"] {
font-size: 11px;
}
.quick-thermostat-control .zone-enable-toggle {
.quick-thermostat-control .enable-toggle {
flex: 0 0 auto;
}
@@ -5326,7 +5328,7 @@ textarea[aria-invalid="true"] {
}
.settings-form>.form-error-summary {
.config-form>.form-error-summary {
margin: 0 0 12px;
}
@@ -5334,7 +5336,7 @@ textarea[aria-invalid="true"] {
margin-top: -2px;
}
.settings-form.is-saving,
.config-form.is-saving,
.dialog-form.is-saving {
cursor: progress;
}
@@ -5417,7 +5419,7 @@ textarea[aria-invalid="true"] {
}
@media (hover:hover) and (pointer:fine) {
.history-chart-card .chart-wrap canvas {
.chart-card .chart-wrap canvas {
cursor: crosshair;
}
}
@@ -5492,7 +5494,7 @@ textarea[aria-invalid="true"] {
}
}
.settings-form.has-unsaved-changes .settings-save-bar {
.config-form.has-unsaved-changes .sticky-form-actions {
border-color: color-mix(in srgb, var(--accent) 48%, var(--line-strong));
box-shadow: 0 8px 30px rgba(0, 0, 0, .18), 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);
}
@@ -6172,7 +6174,7 @@ textarea[aria-invalid="true"] {
stroke-width: 4;
}
.flow-editor .flow-node {
.flow-editor .diagram-node {
position: absolute;
z-index: 2;
display: block;
@@ -6188,7 +6190,7 @@ textarea[aria-invalid="true"] {
user-select: none;
}
.flow-editor .flow-node.selected {
.flow-editor .diagram-node.selected {
border-color: var(--accent);
box-shadow: 0 0 0 2px var(--accent-soft), 0 12px 30px rgba(0, 0, 0, .22);
}
@@ -6236,7 +6238,7 @@ textarea[aria-invalid="true"] {
overflow-wrap: anywhere;
}
.flow-editor .flow-port {
.flow-editor .diagram-port {
position: absolute;
top: 50%;
border-radius: 50%;
@@ -6247,8 +6249,8 @@ textarea[aria-invalid="true"] {
}
.flow-editor .flow-port:hover,
.flow-editor .flow-port.armed {
.flow-editor .diagram-port:hover,
.flow-editor .diagram-port.armed {
background: var(--accent);
transform: scale(1.15);
}
@@ -7230,31 +7232,31 @@ textarea[aria-invalid="true"] {
line-height: 1.15;
}
.flow-palette-trigger {
.block-category-trigger {
border-left-color: var(--warning);
}
.flow-palette-time {
.block-category-time {
border-left-color: var(--blue);
}
.flow-palette-timeop {
.block-category-timeop {
border-left-color: var(--info);
}
.flow-palette-sensor {
.block-category-sensor {
border-left-color: var(--teal);
}
.flow-palette-logic {
.block-category-logic {
border-left-color: var(--purple);
}
.flow-palette-action {
.block-category-action {
border-left-color: var(--orange);
}
.flow-palette-haaction {
.block-category-haaction {
border-left-color: var(--accent);
}
@@ -7380,7 +7382,7 @@ button {
margin-bottom: 0;
}
.automation-tabs {
.segmented-tabs {
display: flex;
align-items: center;
gap: 5px;
@@ -7395,11 +7397,11 @@ button {
scrollbar-width: none;
}
.automation-tabs::-webkit-scrollbar {
.segmented-tabs::-webkit-scrollbar {
display: none;
}
.automation-tabs button {
.segmented-tabs button {
flex: 0 0 auto;
min-height: 38px;
padding: 8px 12px;
@@ -7409,7 +7411,7 @@ button {
font-weight: 750;
}
.automation-tabs button.active {
.segmented-tabs button.active {
color: var(--accent);
background: var(--accent-soft);
box-shadow: inset 0 0 0 1px var(--accent-border);
@@ -7614,31 +7616,31 @@ button {
border-left: 3px solid var(--line-strong);
}
.flow-block-library-group.flow-palette-trigger {
.flow-block-library-group.block-category-trigger {
border-left-color: var(--warning);
}
.flow-block-library-group.flow-palette-time {
.flow-block-library-group.block-category-time {
border-left-color: var(--blue);
}
.flow-block-library-group.flow-palette-timeop {
.flow-block-library-group.block-category-timeop {
border-left-color: var(--info);
}
.flow-block-library-group.flow-palette-sensor {
.flow-block-library-group.block-category-sensor {
border-left-color: var(--teal);
}
.flow-block-library-group.flow-palette-logic {
.flow-block-library-group.block-category-logic {
border-left-color: var(--purple);
}
.flow-block-library-group.flow-palette-action {
.flow-block-library-group.block-category-action {
border-left-color: var(--orange);
}
.flow-block-library-group.flow-palette-haaction {
.flow-block-library-group.block-category-haaction {
border-left-color: var(--accent);
}
@@ -7661,7 +7663,7 @@ button {
text-align: left;
}
.flow-editor .flow-port {
.flow-editor .diagram-port {
width: 16px;
height: 16px;
margin-top: -8px;
@@ -7675,7 +7677,7 @@ button {
right: -9px;
}
.flow-editor .flow-port::after {
.flow-editor .diagram-port::after {
content: "";
position: absolute;
inset: -11px;
@@ -7822,12 +7824,12 @@ button {
min-height: 44px;
}
.automation-tabs {
.segmented-tabs {
margin-bottom: 12px;
scroll-snap-type: x proximity;
}
.automation-tabs button {
.segmented-tabs button {
flex: 1 0 auto;
scroll-snap-align: start;
}
@@ -7917,17 +7919,6 @@ button {
min-height: 44px;
}
.history-tabs {
margin-inline: -12px;
padding-inline: 12px;
scroll-padding-inline: 12px;
scroll-snap-type: x proximity;
}
.history-tabs button {
min-height: 40px;
scroll-snap-align: start;
}
.history-toolbar-panel {
padding: 12px;
@@ -7942,17 +7933,17 @@ button {
backdrop-filter: blur(12px);
}
.settings-save-bar {
.sticky-form-actions {
bottom: calc(74px + env(safe-area-inset-bottom));
margin-inline: -4px;
padding: 10px;
}
.settings-save-bar span {
.sticky-form-actions span {
display: none;
}
.settings-save-bar button {
.sticky-form-actions button {
width: 100%;
min-height: 44px;
}
@@ -8332,15 +8323,15 @@ button {
grid-column: 2;
}
.settings-block {
.form-section {
gap: 14px;
}
.settings-block-head h3 {
.form-section-head h3 {
font-size: 16px;
}
.settings-block-head p,
.form-section-head p,
.field-note {
line-height: 1.45;
}
@@ -8531,7 +8522,7 @@ body.flow-editor-open {
overflow: hidden;
}
.history-chart-card.chart-fullscreen-fallback {
.chart-card.chart-fullscreen-fallback {
position: fixed;
inset: 0;
z-index: 140;
@@ -8551,16 +8542,16 @@ body.flow-editor-open {
box-shadow: none;
}
.history-chart-card.chart-fullscreen-fallback .chart-title-row {
.chart-card.chart-fullscreen-fallback .chart-title-row {
margin: 0;
}
.history-chart-card.chart-fullscreen-fallback .chart-title-row p,
.history-chart-card.chart-fullscreen-fallback .chart-hover-hint {
.chart-card.chart-fullscreen-fallback .chart-title-row p,
.chart-card.chart-fullscreen-fallback .chart-hover-hint {
display: none;
}
.history-chart-card.chart-fullscreen-fallback .chart-wrap {
.chart-card.chart-fullscreen-fallback .chart-wrap {
height: 100%;
min-height: 0;
overflow: auto;
@@ -8569,7 +8560,7 @@ body.flow-editor-open {
background: var(--surface-muted);
}
.history-chart-card.chart-fullscreen-fallback .legend {
.chart-card.chart-fullscreen-fallback .legend {
max-height: 88px;
margin: 0;
overflow: auto;
@@ -8611,7 +8602,7 @@ body.flow-editor-open {
text-align: left;
}
.automation-tabs {
.segmented-tabs {
width: 100%;
min-width: 0;
}
@@ -9981,35 +9972,73 @@ select.select-native-proxy[aria-invalid="true"] + .custom-select .custom-select-
/* Standalone public custom chart */
.public-custom-chart-page {
min-height: 100vh;
height: 100vh;
height: 100dvh;
min-height: 0;
overflow: hidden;
}
.public-custom-chart-shell {
display: flex;
width: 100%;
min-height: 100vh;
height: 100vh;
height: 100dvh;
min-height: 0;
padding: 16px;
overflow: hidden;
}
.public-custom-chart-card {
display: flex;
min-height: calc(100vh - 32px);
width: 100%;
height: 100%;
min-height: 0;
margin: 0;
flex-direction: column;
overflow: hidden;
}
.public-chart-title-row {
flex: 0 0 auto;
align-items: end;
}
.public-chart-heading { min-width: 0; }
.public-chart-range-control {
display: grid;
flex: 0 0 auto;
gap: 6px;
color: var(--muted);
font-size: 11px;
}
.public-chart-range-control select { min-width: 126px; }
.public-custom-chart-wrap {
flex: 1 1 auto;
min-height: 360px;
flex: 1 1 0;
min-height: 180px;
overflow-x: auto;
overflow-y: hidden;
}
#publicCustomChart {
width: 100%;
min-width: 720px;
height: 100%;
min-height: 420px;
min-height: 0;
}
.public-custom-chart-card .legend {
flex: 0 0 auto;
flex-wrap: nowrap;
overflow-x: auto;
overflow-y: hidden;
scrollbar-width: none;
}
.public-custom-chart-card .legend::-webkit-scrollbar { display: none; }
.public-chart-legend-item {
cursor: default;
}
@@ -10028,5 +10057,8 @@ select.select-native-proxy[aria-invalid="true"] + .custom-select .custom-select-
@media (max-width: 700px) {
.public-custom-chart-shell { padding: 8px; }
.public-custom-chart-card { min-height: calc(100vh - 16px); padding: 14px; }
.public-custom-chart-card { padding: 12px; }
.public-chart-title-row { align-items: center; }
.public-chart-range-control select { min-width: 108px; }
.public-custom-chart-wrap { min-height: 140px; }
}