Skip to content

Commit 62c0ebc

Browse files
committed
Adding font size multiplier
1 parent aafc04a commit 62c0ebc

2 files changed

Lines changed: 18 additions & 7 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ This card is designed for the new [Home Assistant Sections UI](https://www.home-
6868
| Subtract devices from home | `subtract_devices_from_home` | If true, subtract summed devices from the home value. Default: `false`. |
6969
| Power Unit Override | `power_unit`| Set to W, kW or mW |
7070
| Curved Line Radius | `curve_factor`| Adjusts the curve radius. `0` to `5`, `1` is default. Set to `0` for straight lines. |
71+
| Font Size Multiplier | `font_size_multiplier`| Multiplies text sizes on top of the automatic `--cpc-scale`. Default `1.0`. |
7172
| Device Power Lines | `show_device_power_lines`| Set to `true` to light up devices when power is flowing beyond a threshold. Default `false` |
7273
| Home Icon Gradient | `disable_home_gradient`| Set to `true` if you want the home icon to be a single colour. |
7374
| Remove Glow Effects | `remove_glow_effects`| Set to `true` to disable drop shadow/glow effects. Default `false` (dark mode only). |

compact-power-card.js

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ class CompactPowerCard extends (window.LitElement ||
5252
name: "curve_factor",
5353
selector: { number: { min: 0, max: 5, step: 0.5, mode: "slider" } },
5454
},
55+
{
56+
name: "font_size_multiplier",
57+
selector: { number: { min: 0.5, max: 2.0, step: 0.05, mode: "slider" } },
58+
},
5559
{
5660
name: "enable_device_power_lines",
5761
selector: { boolean: { } },
@@ -546,6 +550,11 @@ class CompactPowerCard extends (window.LitElement ||
546550
);
547551
}
548552
this._config = config;
553+
const fontScaleRaw = this._parseNumberStrict(this._config?.font_size_multiplier);
554+
const fontScale = Number.isFinite(fontScaleRaw)
555+
? Math.min(2.0, Math.max(0.5, fontScaleRaw))
556+
: 1;
557+
this.style.setProperty("--cpc-text-scale", String(fontScale));
549558
this._trackedEntityIds = this._collectEntityIds();
550559
this._lastEntityStates.clear();
551560
this._lastThemeMode = null;
@@ -558,6 +567,7 @@ class CompactPowerCard extends (window.LitElement ||
558567
return css`
559568
:host {
560569
--cpc-scale: 1;
570+
--cpc-text-scale: 1;
561571
display: block;
562572
height: 100%;
563573
}
@@ -688,7 +698,7 @@ class CompactPowerCard extends (window.LitElement ||
688698
}
689699
690700
.pv-label {
691-
font-size: calc(16px * var(--cpc-scale, 1));
701+
font-size: calc(16px * var(--cpc-scale, 1) * var(--cpc-text-scale, 1));
692702
}
693703
694704
.node-marker {
@@ -821,7 +831,7 @@ class CompactPowerCard extends (window.LitElement ||
821831
}
822832
823833
.node-label {
824-
font-size: calc(16px * var(--cpc-scale, 1));
834+
font-size: calc(16px * var(--cpc-scale, 1) * var(--cpc-text-scale, 1));
825835
display: flex;
826836
align-items: center;
827837
gap: 2px;
@@ -896,7 +906,7 @@ class CompactPowerCard extends (window.LitElement ||
896906
}
897907
898908
.home-label {
899-
font-size: calc(16px * var(--cpc-scale, 0.8));
909+
font-size: calc(16px * var(--cpc-scale, 0.8) * var(--cpc-text-scale, 1));
900910
font-weight: 700;
901911
margin-top: calc(-16px * var(--cpc-scale, 0.8));
902912
}
@@ -940,7 +950,7 @@ class CompactPowerCard extends (window.LitElement ||
940950
display: flex;
941951
align-items: center;
942952
gap: 1px;
943-
font-size: calc(10px * var(--cpc-scale, 1));
953+
font-size: calc(10px * var(--cpc-scale, 1) * var(--cpc-text-scale, 1));
944954
}
945955
946956
.aux-marker {
@@ -958,11 +968,11 @@ class CompactPowerCard extends (window.LitElement ||
958968
}
959969
960970
.aux-label {
961-
font-size: calc(12px * var(--cpc-scale, 1));
971+
font-size: calc(12px * var(--cpc-scale, 1) * var(--cpc-text-scale, 1));
962972
}
963973
964974
.aux-sub-label {
965-
font-size: calc(11px * var(--cpc-scale, 1));
975+
font-size: calc(11px * var(--cpc-scale, 1) * var(--cpc-text-scale, 1));
966976
font-weight: 500;
967977
opacity: 0.85;
968978
line-height: 1;
@@ -978,7 +988,7 @@ class CompactPowerCard extends (window.LitElement ||
978988
}
979989
980990
.device-name {
981-
font-size: calc(11px * var(--cpc-scale, 1));
991+
font-size: calc(11px * var(--cpc-scale, 1) * var(--cpc-text-scale, 1));
982992
opacity: 0.85;
983993
font-weight: 500;
984994
display: inline-block;

0 commit comments

Comments
 (0)