Fluvy

Fluvy

A premium theme and card library for Home Assistant.

HACS default repository Latest release Home Assistant 2026.9 or newer Licence: GPL-3.0 CI hassfest HACS validation Sponsor Fluvy

Try it: acosta290.github.io/fluvy — the real cards, pages and settings panel on a simulated home, in your browser.

Fluvy on the Linen palette: light and plug tiles, a thermostat, the day's energy in the soft style and a media player

Fluvy brings one design to the whole of Home Assistant: a theme, sixty-three cards, five automatic dashboards, a settings panel, the Activity and History pages, and Home Assistant's own pages restyled to match — all from one set of design tokens, installed as one integration through HACS. Every card is drawn on a 4 px grid, checked by an alignment measurer, and holds from a phone to a wall tablet, in light and dark, in ten languages. ## The whole app, one design The sidebar, the header, the tabs, the dialogs, the settings pages: with the Fluvy theme on, Home Assistant looks like it was designed with the cards, because it was — the same tokens, the same type (Inter), the same radii and hairlines. On a wide screen the app floats in a rounded frame inside the window (or fills it: a setting). A dashboard's view tabs are yours to style: the views as words with the accent under the open one (as here), as pills, as icons, Home Assistant's own, or none at all.

Home Assistant with Fluvy floating in its frame: the sidebar, the header with its view tabs and three columns of cards, from the greeting and the living room to the thermostat, the energy, the music, the security and the scenes

Home Assistant with Fluvy on a desktop, in its floating frame: the whole sidebar, the header with its view tabs and a dashboard of three full sections — the greeting, the house's readouts, the living room and who is home; the thermostat, the day's energy and a light out of reach; the music, the alarm, the openings and the scenes

## The settings panel **Fluvy** in the sidebar: fifteen palettes in a pastel and an electric line, or your own accent with every contrast checked; three shapes; how every chart and gauge is drawn, with the series' colours; where the look applies; the automatic dashboard; and each person's own preferences — language, motion, haptics, a palette of their own. Changes apply live on every device, no reload.

The Appearance tab: two palettes tried, a custom accent picked, the look applied to the house

The Charts tab: the style every chart is drawn in, and a preview of it in light and dark

A dashboard on a tablet, lightThe same dashboard on a tablet, dark

The dashboard on a phone in EnglishThe same dashboard in European Portuguese, darkThe same dashboard in Japanese

## Gauges that move A gauge can be a small scene that moves with what it reads: humidity as water, a temperature as the sky over the ground from snow to the desert, wind as streaks of air, a battery bubbling as it charges, power as a pulse, the sun turning faster the more it gives. Motion turns off in the Charts tab or on a card, and every gauge rests on its first frame where less motion is asked for.

A humidity gauge as water: 52 % in the bathroom, two slow waves rolling across itA temperature gauge as the sky over the ground, from snow falling at 2.4 °C to a mild sun and a cloud at 21.5, heat haze at 29.4 and saguaros on the dunes at 38.6A wind gauge as streaks of air racing across its band: 46 km/h, strong wind

A battery gauge charging at 62 %: bubbles rising through the charge, the bolt glowingA power gauge as a pulse: rings beating out from the bolt at 1.8 kWA solar gauge as the sun: long rays turning at 5.4 kW of production

## Sixty-three cards Every card has an editor form and a live preview in the card picker; every option is documented in [the cards](docs/cards.md). Sliders and dials are precision controls: relative drag, slide away to slow down, hold for the 1 % scale.

The precision dimmer: a relative drag, finer away from the ruler, and the 1 % scale on holdThe energy flow of a three-phase house changing pace: importing while a phase exports, then all sun, then the battery at night, every lane in its source's colour

**Control** — lights with brightness and colour temperature, a room's lights on one card (one tap for the whole room, a round for each light, in its bulb's colour), thermostats (dial or compact), water heaters and humidifiers, covers with position and tilt, fans, vacuums, valves, media players and TVs, 3D printers (OctoPrint, PrusaLink, Bambu Lab, Moonraker, Creality, Elegoo, Anycubic, Snapmaker and FlashForge: the job, its time left, the heaters, the filament unit's trays, the camera, pause and stop), tiles and lists — and a tile of your own whose name, line, icon and colour are Home Assistant templates (the Template card; a Mushroom template card pastes in).

The cover card: blinds with their position and tiltThe vacuum card: cleaning the kitchen, its battery, its controls and its suction

A 3D printer card: a Bambu Lab printer at work, its camera, the progress and time left, the heaters, the filament trays, pause and stopA room's lights, each in the warmth of its bulb, as tiles and as chips

**Energy** — the energy flow, read the way your meters are: one sensor, import and export apart, or each phase — so a house that imports and exports at once shows both, every lane in the colour of where its energy came from, with the Energy dashboard's own sources when you give it none. Beside it: the balance of what comes in and goes out, the grid by phase, batteries, a car charger, where a day's energy went (a sankey), the score, water and gas, the house's power by source, the whole house on one chart with its batteries' charge (a power scale and gridlines on both), solar by array, consumption by device, gauges for anything, and a sensor's last days, weeks or months as bars from its long-term statistics — a counter read by its own readings when Home Assistant's sum is not the truth, today live. An Energy period strip is the Energy dashboard's date picker: the energy cards that follow it — Fluvy's and Home Assistant's — move together to a day, a week, a month or a year, with Home Assistant's own figures, and the Energy usage card draws them as its usage graph, a column an hour, a day or a month. Every figure in the unit and the decimals you ask for. [How they read a house](docs/energy.md).

The Energy period strip and the Energy usage card following it: a day of solar, battery and grid, a column an hour

The energy flow of a house with two roofs and two batteriesWhere the day's energy went: from the grid, the battery and the sun to the house and its devices

**Security and sensors** — locks, alarms, cameras (live, in their own shape, or several at a glance on the Cameras card, each with what it sees), openings and motion, humidity, plants, gauges, sensor tiles, and up to three sensors on one chart.

The Cameras card: the cameras outside at a glance, two of them live, each with what it sees, lightThe same Cameras card, dark

**Charts** — every chart and gauge drawn by one engine, in a style the house chooses once (`classic`, the chart Fluvy always drew, or `soft`, `glow`, `minimal`, `step`, `bars`, `columns`, `band`) or a card chooses for itself; a gauge read as Fluvy's own dial, ring or ruler, or moving with what it reads — a liquid, the sky over the ground, a tank, a battery, a pulse, the air, the sun. The Chart card draws any time series from what has happened to what is to come — a sensor's history, tomorrow's electricity prices, a solar forecast — with thresholds in their colours and the cheapest hours marked.

The Chart card: today's and tomorrow's electricity prices, stepped, the cheapest and dearest hours marked, lightThe same Chart card, dark

A day of a room's temperature in the soft styleA day of the house's energy in columns

**Home, time and helpers** — weather and forecasts, who is home, scenes and actions, calendars (month, week, timeline, upcoming), clocks (analog, digital, world), readouts and trends, safety, helpers, updates, timers, to-do lists, and the house's automations: every one as a row with its switch and last run, and schedules written in a sheet as native Home Assistant automations — for the whole house, or for the one lamp a popup is about. A web page on a plate (a map, a site of your own), and the items of a sensor's list as rows — the flights overhead, a departures board — each with a sheet of its details.

The Web page card: a map of lightning strikes on a plate under its head, with open and full screenThe Items card: the flights overhead as tiles

**Appliances and alerts** — a washer, a dryer, a dishwasher, an oven, a hob, a fridge, a coffee machine or a kettle on a plug, read from LG ThinQ, Home Connect, Miele, SmartThings, Matter, Whirlpool, Tuya, hOn and Electrolux, or from a smart plug's power: a picture of the appliance, what it is doing, the time left over a bar, three rows for its programme, water, energy or the filter to clean, the reminders, "Tell me when it's done" — the design a reader drew for us (#47) — and the house's appliances in one list or as whole cards side by side. An alerts card gathers what needs a look — low batteries, devices gone, doors left open, leaks and smoke, updates, repairs — each alert one line, as tiles, chips, rows or a banner, hidden while all is clear, with a snooze that follows you to every device.

An appliance card: a washer rinsing, the time left over a bar, its programme, energy and a reminderThe alerts card as rows: hazards, lights unavailable, sensors offline, low batteries, doors left open, errors and updates

## Activity and History Two of Home Assistant's pages, drawn in the same idiom: the logbook as a timeline with who did what, and the history as charts with a scrub cursor, grouped by room or device. They stand in for the built-in pages while the house wants them; a switch gives Home Assistant's pages back.

The Activity page: the day's logbook as a timeline, who did what, with the hours beside itThe History page: one cursor scrubbed across a chart reads every chart at the same moment

## The automatic dashboards One line — `strategy: { type: custom:fluvy-home }` — and Fluvy reads your areas, devices, entities and energy preferences and builds Home, Rooms, Lights, Climate, Energy, Security, Media, Agenda and Sensors: what needs attention first (hidden while all is clear), lights grouped by room, a card a room that opens the room's own page, the large appliances as whole cards side by side and the small ones as rows, the running thermostat first, the home's forecast, the whole Energy dashboard read (every grid connection, the battery's charge, water and gas), batteries and phones told apart. Four more templates build a dashboard each — **Rooms** (a tab a floor), **Energy**, **Security** and a **Wall** for a tablet — and the panel creates any of them with one tap. Every one is rebuilt every time it opens, so a new device simply shows up. [How they read a home](docs/automatic-dashboard.md). ## What you get - **One theme, light and dark**, generated from the same tokens the cards are drawn with. - **Sixty-three cards** with editor forms, picker previews, and `unavailable`, `unknown` and missing states drawn on purpose, at the size and in the anatomy the card has live — among them a Template card for tiles of your own (Home Assistant templates, a Mushroom template card pasted in), a Cameras card for every camera at a glance and a Chart card for any time series, from a sensor's history to tomorrow's prices. - **Charts in a style of the house's**: classic, soft, glow, minimal, step, bars, columns or band, chosen once in the settings panel or per card, and gauges that move with what they read. - **Energy as your meters read it**: a house that imports and exports at once shows both, per phase; with nothing configured the cards read the Energy dashboard, and a day, a week or a month add up to its own figures — or follow its date picker, beside Home Assistant's own cards. - **Five automatic dashboards** built from your registries: the home, the rooms, the energy, the security, a wall. - **Wall mode** for a tablet: no sidebar, no header, a screensaver with the clock, dark at night, the screen kept awake — `?kiosk` on the dashboard's address and the tablet remembers, a × in the corner is the way out. - **A settings panel** for the house and for each person. - **Activity and History pages** in the same idiom. - **Everywhere**: Home Assistant's own pages in the same design while it wears the Fluvy theme — and left as Home Assistant draws them while it wears another. - **Ten languages** — English, Spanish, German, Dutch, French, Italian, Brazilian and European Portuguese, Turkish and Japanese — in every card, page and dialog, each fetched only when spoken. - **No telemetry, no network calls of its own**, no dependency but Lit, pinned to Home Assistant's version. ## Installation [![Open your Home Assistant instance and open a repository inside HACS.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=acosta290&repository=fluvy&category=integration) [![Sponsor Fluvy on GitHub: keep the robot fed](https://raw.githubusercontent.com/acosta290/fluvy/main/docs/images/readme/sponsor.svg)](https://github.com/sponsors/acosta290) Fluvy needs Home Assistant 2026.9 or newer, HACS, and one line most installations already have in `configuration.yaml` — the theme is a file in your `themes` folder, and this is how Home Assistant reads it: ```yaml frontend: themes: !include_dir_merge_named themes ``` 1. Search for **Fluvy** in HACS and download it — or click the button above, which opens it in your HACS. Fluvy is in HACS's default store (and in Home Assistant's Marketplace from 2026.11, which reads the same catalogue) under **Integration**, not Theme: a HACS theme can only be a YAML file, and Fluvy is the theme plus the cards, the dashboards, the settings panel and the restyling of Home Assistant's own pages, which only an integration can install. Search for "Fluvy" or "theme" with no type filter. 2. Restart Home Assistant. 3. Go to **Settings → Devices & services → Add integration**, search for **Fluvy** and add it. There is nothing to configure: the integration puts the settings panel in the sidebar, loads Fluvy on every page and installs the theme. 4. Reload the browser, then choose the **Fluvy** theme: in your profile (**Theme → Fluvy**), or from the panel's *Scope* tab, which offers it. Without HACS: download `fluvy.zip` from the [latest release](https://github.com/acosta290/fluvy/releases/latest), unzip it into `/custom_components/fluvy/`, restart, and continue at step 3. If something is missing — the theme line above, a resource that has to be added by hand because your dashboards are configured in YAML, an old manual install — Home Assistant tells you in **Settings → System → Repairs**, with exactly what to add or remove. ## First steps Open **Fluvy** in the sidebar. - **Appearance** — the palette, the shape and the buttons, for the house; each person can keep their own. - **Charts** — the style every chart is drawn in, the gauge, the series' colours and motion, for the house. - **Scope** — where the look applies: your dashboards only, or everywhere in Home Assistant; whether the frame, the icons and the pages are Fluvy's. - **Dashboards** — create any of the five automatic dashboards with one tap and set its options, or add a dashboard of your own with `strategy: { type: custom:fluvy-home }` (or `fluvy-rooms`, `fluvy-energy`, `fluvy-security`, `fluvy-wall`) in its raw configuration. - **Wall** — what this tablet is, which dashboards are walls, the screensaver, day and night, the background. - **Preferences** — language, motion and haptics, per person. The cards are in the card picker under **Fluvy · …**, each with a preview; `docs/cards.md` lists them with their options. ## Documentation | Guide | What it covers | | --- | --- | | [Installation](docs/installation.md) | HACS or the release zip, updating, uninstalling, what the integration registers, the Repairs it can raise | | [Getting started](docs/getting-started.md) | the first ten minutes | | [The settings panel](docs/settings-panel.md) | the six tabs, house and personal settings, where they are stored | | [The theme](docs/theme.md) | palettes, custom accents, shapes, the tokens | | [The cards](docs/cards.md) | every card, with its configuration | | [The automatic dashboards](docs/automatic-dashboard.md) | what the five templates build from your home, and how to steer them | | [Wall mode](docs/wall.md) | a tablet on the wall: the kiosk, the screensaver, day and night | | [Activity and History](docs/pages.md) | the two pages | | [Everywhere](docs/shell.md) | what the shell restyles, and what to expect after a Home Assistant release | | [Troubleshooting](docs/troubleshooting.md) | when something looks wrong | | [Development](docs/development.md) | the repository, the build, the tools | | [Design language](design/language.md) | the specification every card is built and reviewed against | ## Compatibility Home Assistant **2026.9** or newer. The theme, the shell and the pages are checked against each Home Assistant release; a release can change a page the shell restyles, and `docs/shell.md` says what happens then. Fluvy runs in every current browser and in the Companion apps. Lit is bundled, pinned to the version Home Assistant ships; there is no other runtime dependency, and Fluvy makes no network requests of its own. ## Contributing Issues and pull requests are welcome. `CONTRIBUTING.md` has the development setup, the conventions, and the licensing terms a contribution accepts; `CODE_OF_CONDUCT.md` applies to every space of the project. ## Keep the robot fed Fluvy is free and stays free: every card, every page, no paid tier. It is made by one person and a very hard-working AI that sends a bill every month. If Fluvy saved you an evening of fighting CSS, you can [sponsor it](https://github.com/sponsors/acosta290) and chip in for the robot's subscription. It accepts coffee too, but it prefers tokens. ## Licence Fluvy is free software under the [GNU General Public License v3.0](LICENSE): use it, change it and share it; whatever you distribute that is built on it stays under the same licence, with its source. Third-party work it ships is listed in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). ## Acknowledgements [Lit](https://lit.dev) (Google, BSD-3-Clause); [Material Design Icons](https://pictogrammers.com/library/mdi/) (Pictogrammers, Apache-2.0), used to map Home Assistant's icons to Fluvy's glyphs; [Inter](https://rsms.me/inter/) (The Inter Project Authors, SIL OFL 1.1); and [Home Assistant](https://www.home-assistant.io) and its frontend (Apache-2.0), which Fluvy is built for and is not affiliated with.