{"id":37942639,"url":"https://github.com/dprischak/foundry-card","last_synced_at":"2026-03-14T17:28:51.121Z","repository":{"id":332685951,"uuid":"1134627966","full_name":"dprischak/Foundry-Card","owner":"dprischak","description":"A collection of custom dashboard cards for Home Assistant, designed with industrial and vintage aesthetics.","archived":false,"fork":false,"pushed_at":"2026-01-22T05:53:57.000Z","size":1727,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-22T09:49:31.210Z","etag":null,"topics":["hacs","home-assistant","home-assistant-card","industrial","iot","lovelace","vintage"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dprischak.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-15T01:20:44.000Z","updated_at":"2026-01-20T22:39:40.000Z","dependencies_parsed_at":"2026-01-21T23:00:50.179Z","dependency_job_id":null,"html_url":"https://github.com/dprischak/Foundry-Card","commit_stats":null,"previous_names":["dprischak/foundry-card"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/dprischak/Foundry-Card","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dprischak%2FFoundry-Card","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dprischak%2FFoundry-Card/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dprischak%2FFoundry-Card/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dprischak%2FFoundry-Card/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dprischak","download_url":"https://codeload.github.com/dprischak/Foundry-Card/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dprischak%2FFoundry-Card/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28897628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T21:06:44.224Z","status":"online","status_checked_at":"2026-01-30T02:00:06.810Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacs","home-assistant","home-assistant-card","industrial","iot","lovelace","vintage"],"created_at":"2026-01-16T17:46:12.659Z","updated_at":"2026-03-14T17:28:51.107Z","avatar_url":"https://github.com/dprischak.png","language":"JavaScript","funding_links":["https://buymeacoffee.com/keithsobo"],"categories":[],"sub_categories":[],"readme":"[![hacs][hacs-default]][hacs-default-link]\n![Downloads][downloads]\n[![forum][forum-badge]][forum-url]\n[![Stable][releases-shield]][releases]\n[![License][license-shield]](LICENSE)\n![Latest Release Downloads](https://img.shields.io/github/downloads/dprischak/Foundry-Card/latest/foundry-card.js)\n![Previous Release Downloads](https://img.shields.io/github/downloads/dprischak/Foundry-Card/v26.3.2/foundry-card.js)\n\n\n\n\u003c!--Badges--\u003e\n\n[downloads]: https://img.shields.io/github/downloads/dprischak/Foundry-Card/total\n[hacs-badge]: https://img.shields.io/badge/HACS-Default-41BDF5.svg\n[hacs-link]: https://hacs.xyz/\n[hacs-default]: https://img.shields.io/badge/HACS-Default-blue?style=flat\u0026logo=homeassistantcommunitystore\u0026logoSize=auto\n[hacs-default-link]: https://my.home-assistant.io/redirect/hacs_repository/?owner=dprischak\u0026repository=Foundry-Card\u0026category=plugin\n[releases]: https://github.com/dprischak/foundry-card/releases/latest\n[forum-url]: https://community.home-assistant.io/\n[forum-badge]: https://img.shields.io/badge/forum-community?style=flat\u0026logo=homeassistant\u0026label=community\u0026color=blue\n[releases-shield]: https://img.shields.io/github/release/dprischak/Foundry-Card.svg\n[license-shield]: https://img.shields.io/github/license/dprischak/Foundry-Card.svg\n\n\n\n# 🏭Foundry Card\n\nA collection of custom dashboard cards for Home Assistant that are designed with industrial and vintage aesthetics.\n\n\u003cp\u003e\u003c/p\u003e\n\u003ca href=\"#\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/dprischak/Foundry-Card/refs/heads/main/media/foundry_card_v26.3.3.gif\" style=\"border-radius: 8px\"\u003e\u003c/a\u003e\n\n## Table of Contents\n\n1. [Cards Included](#cards-included)\n2. [Installation](#installation)\n3. [Usage](#usage)\n   - [Foundry Gauge Card](#foundry-gauge-card)\n   - [Foundry Analog Clock](#foundry-analog-clock)\n   - [Foundry Digital Clock](#foundry-digital-clock)\n   - [Foundry Button Card](#foundry-button-card)\n   - [Foundry Thermometer](#foundry-thermometer)\n   - [Foundry Entities Card](#foundry-entities-card)\n   - [Foundry Uptime Card](#foundry-uptime-card)\n   - [Foundry Chart Card](#foundry-chart-card)\n   - [Foundry Bar Chart Card](#foundry-bar-chart-card)\n   - [Foundry Home Thermostat](#foundry-home-thermostat)\n   - [Foundry Slider Card](#foundry-slider-card)\n   - [Foundry Title Card](#foundry-title-card)\n   - [Foundry Analog Meter Card](#foundry-analog-meter-card)\n   - [Foundry Digital Meter Card](#foundry-digital-meter-card)\n4. [Dynamic Entity Themes](#dynamic-entity-themes) \n5. [Custom Themes](#custom-themes)\n6. [Development](#development)\n7. [Roadmap](#roadmap)\n8. [Support](#support)\n9. [License](#license)\n10. [Credits](#credits)\n\n\u003ca name=\"cards-included\"\u003e\u003c/a\u003e\n\n## Cards Included\n\n\u003ca name=\"foundry-gauge-card\"\u003e\u003c/a\u003e\n\n### ⏱️ Foundry Gauge Card\n\nDisplay your sensor data with a beautiful foundry gauge visualization featuring:\n\n- Customizable min/max values\n- Smooth needle animation\n- Theme-aware colors\n- Responsive design\n\n\u003ca name=\"foundry-analog-clock\"\u003e\u003c/a\u003e\n\n### 🕰️ Foundry Analog Clock\n\nA skeuomorphic analog clock with:\n\n- Realistic hand movements\n- Multiple ring styles (Brass, Silver, Copper, etc.)\n- Time zone support\n- Second hand toggling\n\n\u003ca name=\"foundry-digital-clock\"\u003e\u003c/a\u003e\n\n### 📟 Foundry Digital Clock\n\nA vintage industrial digital display featuring:\n\n- Retro LCD/LED aesthetics\n- 12h/24h formats\n- Custom backlight and digit colors\n- Wear and age effects\n\n\u003ca name=\"foundry-button-card\"\u003e\u003c/a\u003e\n\n### 🔘 Foundry Button Card\n\nA tactile industrial push-button:\n\n- Realistic press animation\n- Configurable indicator light\n- Everything Customizable\n- Jinja2 templating support\n\n\u003ca name=\"foundry-thermometer\"\u003e\u003c/a\u003e\n\n### 🌡️ Foundry Thermometer\n\nAn industrial liquid thermometer card:\n\n- Realistic liquid column animation\n- Color-coded temperature segments\n- Vintage glass tube effects\n- Customizable range and units\n\n\u003ca name=\"foundry-entities-card\"\u003e\u003c/a\u003e\n\n### 📋 Foundry Entities Card\n\nA digital list display for multiple entities:\n\n- Supports secondary info (last-updated, last-changed, etc.)\n- Configurable decimal places for numeric entities\n- `time_since` / `time_since_verbose` display for timestamp entities\n- Configurable 12-hour / 24-hour clock display for timestamp entities\n- Vintage digital VFD/LCD aesthetic\n- Customizable fonts and colors\n- Same industrial casing options\n\n\u003ca name=\"foundry-uptime-card\"\u003e\u003c/a\u003e\n\n### ⚡ Foundry Uptime Card\n\nA vintage uptime monitor:\n\n- Industrial tube visualization\n- Metallic dividers and bezels\n- Color-coded status thresholds\n- Detailed history tracking\n\n\u003ca name=\"foundry-chart-card\"\u003e\u003c/a\u003e\n\n### 📈 Foundry Chart Card\n\nA steampunk-styled line chart for entity history:\n\n- Configurable time range and per-hour data-point density\n- Optional min/max scale and filled area\n- Theme-aware styling with grid overlays\n- Footer start/end labels\n\n\u003ca name=\"foundry-bar-chart-card\"\u003e\u003c/a\u003e\n\n### 📊 Foundry Bar Chart Card\n\nA steampunk-styled bar chart for entity history:\n\n- Configurable time range and per-hour data-point density\n- Segment-based bar coloring with optional gradient blending\n- Theme-aware styling with grid overlays\n- Inspectable values and optional axis min/max labels\n\n\u003ca name=\"foundry-home-thermostat\"\u003e\u003c/a\u003e\n\n### 🌡️ Foundry Home Thermostat\n\nA vintage-style thermostat controller featuring:\n\n- Odometer-style displays for modes and values\n- Interactive controls for temperature, fan, and presets\n- Dual setpoint support for Heat/Cool mode\n- Rich industrial design with wear and glass effects\n\n\u003ca name=\"foundry-slider-card\"\u003e\u003c/a\u003e\n\n### 🎚️ Foundry Slider Card\n\nA vertical retro-style slider control:\n\n- Industrial knob with metallic finish\n- Adjustable track with tick marks\n- LED-style digital display\n- Customizable knob shapes and sizes\n- Multiple ring styles and themes\n\n\u003ca name=\"foundry-title-card\"\u003e\u003c/a\u003e\n\n### 🏷️ Foundry Title Card\n\nA decorative metallic title plate for grouping dashboard sections:\n\n- Clean minimal design: plate, title, and 2 rivets only\n- No ring, no screen, no entity data\n- Full theme support with aged texture effects\n- Transparent plate mode supported\n\n\u003ca name=\"foundry-analog-meter-card\"\u003e\u003c/a\u003e\n\n### 📊 Foundry Analog Meter Card\n\nA vintage VU-style analog meter:\n\n- Landscape Design: Wide rectangular form factor with a rectangular rim, matching the entities card style.\n- VU Meter Arc: Numbers displayed below tick marks with thin connecting lines, like a classic VU meter.\n- PEAK LED: Indicator that lights up with the highest color segment when the value meets its threshold.\n- Shake Action: Custom tap/hold/double-tap action for a fun meter shake animation.\n- Full Theming: Supports all standard Foundry ring styles, plate colors, aged textures, and custom themes.\n\n\u003ca name=\"foundry-digital-meter-card\"\u003e\u003c/a\u003e\n\n### 🎚️ Foundry Digital Meter Card\n\nA vintage digital LED bar meter in a landscape rectangular chassis.\n\n- Dual Entity Support: Can display two separate entities (e.g., L and R audio channels) simultaneously on top and bottom LED bars.\n- Dynamic Scale: A detailed dual-line scale with numbers automatically calculates major/minor ticks between the bars.\n- Custom Segments: Map value ranges to custom LED colors.\n- Full Theming: Matches analog meter face and plate styling perfectly, along with all standard Foundry ring styles and aged textures.\n\n\n\u003ca name=\"installation\"\u003e\u003c/a\u003e\n\n## Installation\n\n### [HACS](https://hacs.xyz) (Home Assistant Community Store)\n\nFoundry card is available in HACS.\n\nUse this link to directly go to the repository in HACS\n\n[![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=dprischak\u0026repository=Foundry-Card\u0026category=plugin)\n\nor\n\n1. If HACS is not installed yet, download it following the instructions on [https://hacs.xyz/docs/use/#getting-started-with-hacs](https://hacs.xyz/docs/use/#getting-started-with-hacs)\n2. Open HACS in Home Assistant\n3. Search for `Foundry Card`\n4. Click the download button. ⬇️\n5. Force refresh the Home Assistant page `Ctrl` + `F5` / `Shift` + `⌘` + `R`\n6. Add any foundry card to your dashboard\n\n### Manual Installation\n\n1. Download `foundry-card.js` and `themes.yaml` from the [latest release](https://github.com/dprischak/Foundry-Card/releases)\n2. Copy `foundry-card.js` to `\u003cconfig\u003e/www/` directory (create the `www` folder if it doesn't exist)\n3. Copy `themes.yaml` to `\u003cconfig\u003e/www/` directory (same location as the .js file)\n4. Add the resource to your Lovelace dashboard:\n   - Go to Settings → Dashboards → Resources\n   - Click \"Add Resource\"\n   - URL: `/local/foundry-card.js`\n   - Resource type: JavaScript Module\n5. Refresh your browser\n\n\u003ca name=\"usage\"\u003e\u003c/a\u003e\n\n## Usage\n\n### Foundry Gauge Card\n\nAdd the card to your dashboard:\n\n```yaml\ntype: custom:foundry-gauge-card\nentity: sensor.temperature\nname: 'Temperature'\nmin: 0\nmax: 100\nunit: '°C'\n```\n\n### Design Features\n\n- **Vintage Aesthetic**: Aged beige/cream background with subtle texture\n- **Aged Texture System**: Procedural noise-based texture that can be applied to gauge face only or everywhere\n  - Three modes: none, glass_only (default), or everywhere\n  - Adjustable intensity (0-100) for fine control over the vintage appearance\n  - High-quality filtering prevents washed-out colors\n- **Brass Rim**: Gradient brass border with realistic metallic sheen\n- **Rivets**: Decorative corner rivets for industrial look\n- **Wear Marks**: Configurable age spots and wear marks (0-100 wear level) for authenticity\n- **Glass Effect**: Optional subtle highlight overlay simulating glass cover\n- **Transparent Plate Option**: Can make the background transparent to show dashboard background\n- **Red Needle**: Bold red needle with shadow and highlight\n- **Flip Display**: Digital odometer-style display with smooth rolling animation\n- **Configurable Odometer**: Adjustable size (25-200) and vertical position (50-150px)\n- **Smooth Animation**: Configurable animation duration (default 1.2s) with ease-out transition\n- **High Needle Tracking**: Optional high value needle that tracks peak values for a configurable duration\n- **Multi-line Titles**: Support for up to 3 lines of text in title using `\\n`\n- **Decorative Rings**: Choice of brass (default), silver, or no ring styles\n- **Customizable Plate**: Adjustable plate color for the gauge face\n\n#### Configuration Options\n\n| Option                       | Type    | Required | Default                 | Description                                                     |\n| ---------------------------- | ------- | -------- | ----------------------- | --------------------------------------------------------------- |\n| `entity`                     | string  | **Yes**  | -                       | Entity ID to display                                            |\n| `title`                      | string  | No       | -                       | Card title (supports multi-line with `\\n`)                      |\n| `min`                        | number  | No       | 0                       | Minimum gauge value                                             |\n| `max`                        | number  | No       | 100                     | Maximum gauge value                                             |\n| `unit`                       | string  | No       | ''                      | Unit of measurement                                             |\n| `decimals`                   | number  | No       | 0                       | Number of decimal places to display                             |\n| `segments`                   | array   | No       | See below               | Color segments configuration                                    |\n| `start_angle`                | number  | No       | 200                     | Start angle of gauge arc (0 = top, clockwise)                   |\n| `end_angle`                  | number  | No       | 160                     | End angle of gauge arc (0 = top, clockwise)                     |\n| `animation_duration`         | number  | No       | 1.2                     | Animation duration in seconds                                   |\n| `title_font_size`            | number  | No       | 12                      | Font size for the title text                                    |\n| `odometer_font_size`         | number  | No       | 60                      | Size of the odometer display (25-200)                           |\n| `odometer_vertical_position` | number  | No       | 120                     | Vertical position of odometer in pixels (50-150)                |\n| `ring_style`                 | string  | No       | 'brass'                 | Decorative ring style: 'none', 'brass', or 'silver'             |\n| `rivet_color`                | string  | No       | '#6a5816'               | Color of the decorative rivets (hex color code)                 |\n| `plate_color`                | string  | No       | '#8c7626'               | Color of the gauge face plate (hex color code)                  |\n| `high_needle_enabled`        | boolean | No       | false                   | Enable the high value tracking needle                           |\n| `high_needle_color`          | string  | No       | '#FF9800'               | Color of the high needle (hex color code)                       |\n| `high_needle_duration`       | number  | No       | 60                      | Duration in seconds to track the high value                     |\n| `high_needle_length`         | number  | No       | 75                      | Length of the high needle as percentage (25-150)                |\n| `plate_transparent`          | boolean | No       | false                   | Make the plate transparent (shows background)                   |\n| `wear_level`                 | number  | No       | 50                      | Amount of wear marks and age spots (0-100)                      |\n| `glass_effect_enabled`       | boolean | No       | true                    | Enable glass effect overlay                                     |\n| `aged_texture`               | string  | No       | 'everywhere'            | Aged texture mode: 'none', 'glass_only', or 'everywhere'        |\n| `aged_texture_intensity`     | number  | No       | 50                      | Intensity of aged texture effect (0-100, higher = more visible) |\n| `background_style`           | string  | No       | 'gradient'              | Background style: 'gradient' (default) or 'solid'               |\n| `face_color`                 | string  | No       | '#f8f8f0'               | Color of the gauge face (if solid) or base for gradient         |\n| `number_color`               | string  | No       | '#3e2723'               | Color of value numbers                                          |\n| `primary_tick_color`         | string  | No       | '#3e2723'               | Color of major hash marks                                       |\n| `secondary_tick_color`       | string  | No       | '#5d4e37'               | Color of minor hash marks                                       |\n| `needle_color`               | string  | No       | '#C41E3A'               | Color of the main needle                                        |\n| `tap_action`                 | object  | No       | `{action: 'more-info'}` | Action to perform on tap (see Actions below)                    |\n| `hold_action`                | object  | No       | `{action: 'more-info'}` | Action to perform on hold (see Actions below)                   |\n| `double_tap_action`          | object  | No       | `{action: 'more-info'}` | Action to perform on double tap (see Actions below)             |\n\n#### Example Configurations\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n**Temperature Sensor:**\n\nUsing the gauge as a temperature sensor\n\n```yaml\ntype: custom:foundry-gauge-card\nentity: sensor.living_room_temperature\ntitle: Living Room\nmin: 50\nmax: 90\nunit: °F\nsegments:\n  - from: 50\n    to: 68\n    color: '#1100ff'\n  - from: 68\n    to: 78\n    color: '#44ff00'\n  - from: 78\n    to: 90\n    color: '#F44336'\n```\n\n\u003cimg src=\"https://raw.githubusercontent.com/dprischak/Foundry-Card/main/media/temperature.png\" width=\"300\" alt=\"Preview\"/\u003e\n\n**Humidity Sensor:**\n\n```yaml\ntype: custom:foundry-gauge-card\nentity: sensor.bathroom_humidity\ntitle: Bathroom\\nHumidity\nmin: 0\nmax: 100\nunit: '%'\nsegments:\n  - from: 0\n    to: 30\n    color: '#1100ff'\n  - from: 30\n    to: 50\n    color: '#44ff00'\n  - from: 50\n    to: 85\n    color: '#f9bc39'\n  - from: 85\n    to: 100\n    color: '#F44336'\n```\n\n\u003cimg src=\"https://raw.githubusercontent.com/dprischak/Foundry-Card/main/media/bathroom.png\" width=\"300\" alt=\"Preview\"/\u003e\n\n**Heavily weathered industrial gauge**\n\n```yaml\ntype: custom:Foundry-Card\nentity: sensor.sumppump_fill_rate\ntitle: Sump Pump\\nFill Rate\naged_texture: everywhere\naged_texture_intensity: 80\nplate_transparent: false\nplate_color: '#d4d4c8'\nunit: cm/min\ndecimals: 1\nmin: -3\nmax: 3\nrivet_color: '#6a5816'\nhigh_needle_color: '#0040ff'\nhigh_needle_enabled: true\nhigh_needle_length: 75\nhigh_needle_duration: 720\nsegments:\n  - from: -3\n    to: 1.3\n    color: '#00ff11'\n  - from: 1.3\n    to: 2\n    color: '#fff700'\n  - from: 2\n    to: 2.5\n    color: '#f9bc39'\n  - from: 2.5\n    to: 3\n    color: '#F44336'\n```\n\n\u003c/details\u003e\n\n### Segment Options\n\nEach segment in the `segments` array can have:\n\n| Option  | Type   | Required | Description                    |\n| ------- | ------ | -------- | ------------------------------ |\n| `from`  | number | **Yes**  | Start value of the segment     |\n| `to`    | number | **Yes**  | End value of the segment       |\n| `color` | string | **Yes**  | Hex color code for the segment |\n\n### Angle Configuration\n\nThe gauge arc can be customized using `start_angle` and `end_angle`:\n\n- **Angle System**: 0° = top of gauge, angles increase clockwise\n- **start_angle**: Where the gauge arc begins (default: 200°)\n- **end_angle**: Where the gauge arc ends (default: 160°)\n- The gauge automatically handles wrapping around 360°\n- The needle will always travel along the shortest arc and never cross the \"dead zone\"\n\n**Common angle configurations:**\n\n- Default (200° to 160°): Classic lower 3/4 arc\n- Full semicircle (270° to 90°): Bottom half\n- Upper arc (180° to 0°): Top half\n- Custom ranges for specific aesthetic needs\n\n### Actions\n\nThe card supports tap, hold, and double-tap actions like standard Home Assistant cards. Actions can be configured using `tap_action`, `hold_action`, and `double_tap_action`.\n\n**Available action types:**\n\n- `more-info`: Show entity more-info dialog (default)\n- `navigate`: Navigate to a different view\n- `call-service`: Call a Home Assistant service\n- `toggle`: Toggle the entity\n- `shake`: Custom shake animation (needle moves away and returns)\n- `none`: No action\n\n**Shake Action Example:**\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:steam-gauge-card\nentity: sensor.temperature\ntitle: Temperature\ntap_action:\n  action: shake # Tap to shake the gauge\n```\n\nThe shake action creates a fun visual effect where the needle moves 10-50% away from the current value and then smoothly returns to the actual value over 3 seconds.\n\n\u003c/details\u003e\n\n**Standard Action Examples:**\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\n# Navigate to another view\ntap_action:\n  action: navigate\n  navigation_path: /lovelace/energy\n\n# Call a service\ntap_action:\n  action: call-service\n  service: light.turn_on\n  service_data:\n    entity_id: light.living_room\n\n# Toggle an entity\ntap_action:\n  action: toggle\n\n# No action on tap\ntap_action:\n  action: none\n```\n\n\u003c/details\u003e\n\n### High Needle Tracking\n\nThe high needle feature tracks the highest (peak) value reached over a configurable time period. This is useful for monitoring maximum temperatures, peak power usage, or any metric where you want to see how high the value has climbed.\n\n**Features:**\n\n- High value tracking needle (customizable color) that marks the highest value\n- Automatically resets after the configured duration (default 60 seconds)\n- Adjustable needle length (25-150% of standard needle)\n- Smooth animations synchronized with main needle\n\n### Aged Texture Effects\n\nThe gauge features a realistic aged texture system that adds vintage character to the display. The texture uses procedural noise to simulate the appearance of aged, weathered gauges from the steam era.\n\n**Configuration Options:**\n\n- **`aged_texture`**: Controls where the texture is applied\n  - `'none'`: No aged texture effect\n  - `'glass_only'`: Applies texture only to the gauge face (default) - creates a subtle aged glass appearance\n  - `'everywhere'`: Applies texture to both the background plate and gauge face - creates a fully weathered vintage look\n- **`aged_texture_intensity`**: Controls the strength of the texture effect (0-100)\n  - `0`: No visible texture (clean, modern look)\n  - `50`: Moderate texture (default) - balanced vintage appearance\n  - `100`: Maximum texture - heavily aged, weathered appearance\n  - Higher values make the texture more prominent and visible\n\n### Foundry Analog Clock\n\nAdd a vintage analog clock to your dashboard:\n\n#### Configuration Options\n\n| Option                   | Type    | Required | Default                 | Description                                                                                         |\n| ------------------------ | ------- | -------- | ----------------------- | --------------------------------------------------------------------------------------------------- |\n| `entity`                 | string  | No       | -                       | Entity ID (optional, for tap action context)                                                        |\n| `title`                  | string  | No       | \"Local Time\"            | Card title (supports multi-line with `\\n`)                                                          |\n| `title_font_size`        | number  | No       | 12                      | Font size for the title text                                                                        |\n| `time_zone`              | string  | No       | Local                   | Time zone (e.g., \"America/New_York\")                                                                |\n| `ring_style`             | string  | No       | 'brass'                 | Ring style: 'brass', 'silver', 'chrome', 'copper', 'black', 'white', 'blue', 'green', 'red', 'none' |\n| `rivet_color`            | string  | No       | '#6d5d4b'               | Color of rivets                                                                                     |\n| `plate_color`            | string  | No       | '#f5f5f5'               | Background plate color                                                                              |\n| `plate_transparent`      | boolean | No       | false                   | Make the plate transparent                                                                          |\n| `wear_level`             | number  | No       | 50                      | Intensity of wear marks (0-100)                                                                     |\n| `glass_effect_enabled`   | boolean | No       | true                    | Enable glass effect overlay                                                                         |\n| `aged_texture`           | string  | No       | 'everywhere'            | Aged texture mode: 'none', 'glass_only', 'everywhere'                                               |\n| `aged_texture_intensity` | number  | No       | 50                      | Intensity of aged texture effect (0-100)                                                            |\n| `second_hand_enabled`    | boolean | No       | true                    | Show/hide the second hand                                                                           |\n| `tap_action`             | object  | No       | `{action: 'more-info'}` | Action to perform on tap                                                                            |\n| `hold_action`            | object  | No       | `{action: 'more-info'}` | Action to perform on hold                                                                           |\n| `background_style`       | string  | No       | 'gradient'              | Background style: 'gradient' (default) or 'solid'                                                   |\n| `face_color`             | string  | No       | '#f8f8f0'               | Color of clock face (if solid) or base for gradient                                                 |\n| `number_color`           | string  | No       | '#3e2723'               | Color of numbers                                                                                    |\n| `primary_tick_color`     | string  | No       | '#3e2723'               | Color of major hash marks                                                                           |\n| `secondary_tick_color`   | string  | No       | '#5d4e37'               | Color of minor hash marks                                                                           |\n| `hour_hand_color`        | string  | No       | '#3e2723'               | Color of hour hand                                                                                  |\n| `minute_hand_color`      | string  | No       | '#3e2723'               | Color of minute hand                                                                                |\n| `second_hand_color`      | string  | No       | '#C41E3A'               | Color of second hand                                                                                |\n| `double_tap_action`      | object  | No       | `{action: 'more-info'}` | Action to perform on double tap                                                                     |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-analog-clock-card\nentity: sun.sun\ntitle: Local Time\ntitle_font_size: 12\nring_style: brass\nrivet_color: '#6a5816'\nplate_color: '#8c7626'\nplate_transparent: false\nwear_level: 50\nglass_effect_enabled: true\naged_texture: everywhere\naged_texture_intensity: 50\nsecond_hand_enabled: true\ntap_action:\n  action: more-info\nhold_action:\n  action: more-info\ndouble_tap_action:\n  action: more-info\ntime_zone: America/New_York\n```\n\n\u003cimg src=\"https://raw.githubusercontent.com/dprischak/Foundry-Card/main/media/analogclock.png\" width=\"300\" alt=\"Preview\"/\u003e\n\n\u003c/details\u003e\n\n### Foundry Digital Clock\n\nA retro digital timepiece:\n\n#### Configuration Options\n\n| Option                   | Type    | Required | Default                 | Description                                                                                 |\n| ------------------------ | ------- | -------- | ----------------------- | ------------------------------------------------------------------------------------------- |\n| `entity`                 | string  | No       | -                       | Entity ID (optional, for tap action context)                                                |\n| `title`                  | string  | No       | \"Local Time\"            | Card title                                                                                  |\n| `title_font_size`        | number  | No       | 14                      | Font size for the title text                                                                |\n| `title_color`            | string  | No       | '#3e2723'               | Color of the title text                                                                     |\n| `use_24h_format`         | boolean | No       | true                    | Use 24-hour format (false for 12h)                                                          |\n| `show_seconds`           | boolean | No       | true                    | Show seconds display                                                                        |\n| `time_zone`              | string  | No       | Local                   | Time zone (e.g., \"America/New_York\")                                                        |\n| `ring_style`             | string  | No       | 'brass'                 | Ring style: 'brass', 'silver', 'chrome', 'copper', 'black', 'white', 'blue', 'green', 'red' |\n| `rivet_color`            | string  | No       | '#6d5d4b'               | Color of rivets                                                                             |\n| `plate_color`            | string  | No       | '#f5f5f5'               | Background plate color                                                                      |\n| `plate_transparent`      | boolean | No       | false                   | Make the plate transparent                                                                  |\n| `font_color`             | string  | No       | '#000000'               | Color of the digital digits                                                                 |\n| `font_bg_color`          | string  | No       | '#ffffff'               | Background color of the display area                                                        |\n| `wear_level`             | number  | No       | 50                      | Intensity of wear marks (0-100)                                                             |\n| `glass_effect_enabled`   | boolean | No       | true                    | Enable glass effect overlay                                                                 |\n| `aged_texture`           | string  | No       | 'everywhere'            | Aged texture mode: 'none', 'glass_only', 'everywhere'                                       |\n| `aged_texture_intensity` | number  | No       | 50                      | Intensity of aged texture effect (0-100)                                                    |\n| `tap_action`             | object  | No       | `{action: 'more-info'}` | Action to perform on tap                                                                    |\n| `hold_action`            | object  | No       | `{action: 'more-info'}` | Action to perform on hold                                                                   |\n| `double_tap_action`      | object  | No       | `{action: 'more-info'}` | Action to perform on double tap                                                             |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-digital-clock-card\nentity: sun.sun\ntitle: Local\ntitle_font_size: 12\nring_style: brass\nrivet_color: '#6a5816'\nplate_color: '#8c7626'\nplate_transparent: false\nfont_bg_color: '#ffffff'\nfont_color: '#000000'\nshow_seconds: true\nwear_level: 50\nglass_effect_enabled: true\naged_texture: everywhere\naged_texture_intensity: 50\nuse_24h_format: false\ntime_zone: America/New_York\n```\n\n\u003cimg src=\"https://raw.githubusercontent.com/dprischak/Foundry-Card/main/media/digitalclock.png\" width=\"300\" alt=\"Preview\"/\u003e\n\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n### Foundry Button Card\n\nA robust industrial push-button with integrated status text and icon.\n\n#### Configuration Options\n\n| Option                   | Type   | Required | Default      | Description                                   |\n| ------------------------ | ------ | -------- | ------------ | --------------------------------------------- |\n| `entity`                 | string | No       | -            | Entity to control/monitor                     |\n| `icon`                   | string | No       | -            | Icon to display                               |\n| `primary_info`           | string | No       | -            | Primary text (top line)                       |\n| `secondary_info`         | string | No       | -            | Secondary text (middle line)                  |\n| `secondary_info_2`       | string | No       | -            | Extra info text (bottom line)                 |\n| `card_width`             | number | No       | 240          | Maximum width of the card in pixels           |\n| `ring_style`             | string | No       | 'brass'      | Ring style: 'brass', 'silver', 'chrome', etc. |\n| `plate_color`            | string | No       | '#f5f5f5'    | Button face color                             |\n| `font_color`             | string | No       | '#000000'    | Text color                                    |\n| `font_bg_color`          | string | No       | '#ffffff'    | Text background inset color                   |\n| `icon_color`             | string | No       | -            | Color of the icon                             |\n| `wear_level`             | number | No       | 50           | Wear intensity (0-100)                        |\n| `aged_texture`           | string | No       | 'everywhere' | Texture mode                                  |\n| `aged_texture_intensity` | number | No       | 50           | Texture intensity                             |\n| `tap_action`             | object | No       | -            | Action on tap                                 |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-button-card\nentity: light.basement_cans_group\nicon: mdi:lightbulb\nprimary_info: Basement\nsecondary_info: \"{{states('light.basement_cans_group')}}\"\nring_style: brass\nplate_color: '#8c7626'\nfont_bg_color: '#ffffff'\nfont_color: '#000000'\nwear_level: 50\nglass_effect_enabled: true\naged_texture: everywhere\naged_texture_intensity: 50\nplate_transparent: false\nsecondary_info_2: \u003e-\n  {{ (state_attr('light.basement_cans_group', 'brightness') | int(0) / 2.55) |\n  round(0) | int }}%\nicon_color: |-\n  {% set rgb = state_attr('light.basement_cans_group', 'rgb_color') %}\n  {% if rgb %}\n    #{{ '%02x%02x%02x' | format(rgb[0], rgb[1], rgb[2]) }}\n  {% else %}\n    grey\n  {% endif %}\ncard_width: 240\ntap_action:\n  action: more-info\n```\n\n\u003cimg src=\"https://raw.githubusercontent.com/dprischak/Foundry-Card/main/media/button-off.png\" width=\"200\" alt=\"Button Off\"/\u003e \u003cimg src=\"https://raw.githubusercontent.com/dprischak/Foundry-Card/main/media/button-on.png\" width=\"200\" alt=\"Button On\"/\u003e\n\n\u003c/details\u003e\n\n### Foundry Thermometer\n\nAn industrial liquid-in-glass thermometer:\n\n#### Configuration Options\n\n| Option                   | Type         | Required | Default                 | Description                                                                                           |\n| ------------------------ | ------------ | -------- | ----------------------- | ----------------------------------------------------------------------------------------------------- |\n| `entity`                 | string       | **Yes**  | -                       | Temperature entity to monitor                                                                         |\n| `title`                  | string       | No       | \"Temperature\"           | Card title                                                                                            |\n| `font_color`             | string       | No       | \"#3e2723\"               | Color of the title and scale text                                                                     |\n| `unit`                   | string       | No       | -                       | Unit of measurement string to display                                                                 |\n| `min`                    | number       | No       | -40                     | Minimum temperature value                                                                             |\n| `max`                    | number       | No       | 120                     | Maximum temperature value                                                                             |\n| `ring_style`             | string       | No       | 'brass'                 | Casing style: 'brass', 'silver', 'chrome', 'copper', 'black', 'white', 'blue', 'green', 'red', 'none' |\n| `liquid_color`           | string/array | No       | '#cc0000'               | Color of the liquid (mercury)                                                                         |\n| `mercury_width`          | number       | No       | 50                      | Width of liquid column (percentage of tube)                                                           |\n| `segments_under_mercury` | boolean      | No       | true                    | Render colored segments behind the liquid tube                                                        |\n| `segments`               | array        | No       | []                      | Color zones (from/to/color)                                                                           |\n| `animation_duration`     | number       | No       | 1.5                     | Animation speed in seconds                                                                            |\n| `plate_color`            | string       | No       | '#8c7626'               | Background plate color                                                                                |\n| `plate_transparent`      | boolean      | No       | false                   | Make the plate transparent                                                                            |\n| `rivet_color`            | string       | No       | '#6a5816'               | Color of rivets                                                                                       |\n| `font_bg_color`          | string       | No       | '#ffffff'               | Background color of the tube scale area                                                               |\n| `primary_tick_color`     | string       | No       | '#333333'               | Color of major ticks                                                                                  |\n| `secondary_tick_color`   | string       | No       | '#333333'               | Color of minor ticks                                                                                  |\n| `wear_level`             | number       | No       | 50                      | Intensity of wear marks (0-100)                                                                       |\n| `aged_texture`           | string       | No       | 'everywhere'            | Aged texture mode: 'none', 'glass_only', 'everywhere'                                                 |\n| `aged_texture_intensity` | number       | No       | 50                      | Intensity of aged texture effect (0-100)                                                              |\n| `tap_action`             | object       | No       | `{action: 'more-info'}` | Action to perform on tap                                                                              |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-thermometer-card\nentity: sensor.outside_temperature\nmin: 0\nmax: 100\nring_style: brass\ntitle: Temp\nmercury_width: 50\nsegments_under_mercury: true\nanimation_duration: 1.5\nplate_color: '#8c7626'\nrivet_color: '#ffffff'\nfont_bg_color: '#fcfcfc'\nfont_color: '#000000'\nprimary_tick_color: '#000000'\nsecondary_tick_color: '#444444'\nsegments:\n  - from: 0\n    to: 33\n    color: '#4CAF50'\n  - from: 33\n    to: 66\n    color: '#FFC107'\n  - from: 66\n    to: 100\n    color: '#F44336'\nliquid_color: '#cc0000'\nplate_transparent: false\nwear_level: 50\naged_texture: everywhere\naged_texture_intensity: 50\nunit: °C\n```\n\n\u003cimg src=\"https://raw.githubusercontent.com/dprischak/Foundry-Card/main/media/tempsensor.png\" width=\"300\" alt=\"Preview\"/\u003e\n\n\u003c/details\u003e\n\n### Foundry Entities Card\n\nA digital display for a list of entities.\n\n#### Configuration Options\n\n| Option                   | Type    | Required | Default                 | Description                                                                         |\n| ------------------------ | ------- | -------- | ----------------------- | ----------------------------------------------------------------------------------- |\n| `entities`               | array   | **Yes**  | -                       | List of entities to display. Can be strings or objects.                             |\n| `entities[].entity`      | string  | **Yes**  | -                       | Entity ID                                                                           |\n| `entities[].name`        | string  | No       | -                       | Override the display name for this entity                                           |\n| `entities[].secondary_info` | string | No    | `'none'`                | Secondary info shown below the value: `'none'`, `'entity-id'`, `'state'`, `'last-updated'`, `'last-changed'` |\n| `entities[].decimals`    | number  | No       | -                       | Number of decimal places to show for numeric entities (0–6). Hidden for non-numeric entities. |\n| `entities[].time_format` | string  | No       | -                       | Display format for `timestamp` device-class entities: `'time_since'` (e.g. `5m ago`), `'time_since_verbose'` (e.g. `5 minutes ago`), or omit for the default locale date/time string. |\n| `entities[].clock_format` | string | No       | `'local'`               | Hour format for date/time display (only when `time_format` is not a `time_since` variant): `'local'` (browser default), `'12h'` (force AM/PM), `'24h'` (force 24-hour). |\n| `title`                  | string  | No       | \"Entities\"              | Card title                                                                          |\n| `title_font_size`        | number  | No       | 14                      | Font size for the title text                                                        |\n| `title_color`            | string  | No       | '#3e2723'               | Color of the title text                                                             |\n| `ring_style`             | string  | No       | 'brass'                 | Casing style: 'brass', 'silver', 'copper', 'black', 'white', 'blue', 'green', 'red' |\n| `plate_color`            | string  | No       | '#f5f5f5'               | Background plate color                                                              |\n| `plate_transparent`      | boolean | No       | false                   | Make the plate transparent                                                          |\n| `rivet_color`            | string  | No       | '#6d5d4b'               | Color of rivets                                                                     |\n| `font_bg_color`          | string  | No       | '#ffffff'               | Background color of digital display area                                            |\n| `font_color`             | string  | No       | '#000000'               | Color of the digital text                                                           |\n| `wear_level`             | number  | No       | 50                      | Intensity of wear marks (0-100)                                                     |\n| `glass_effect_enabled`   | boolean | No       | true                    | Enable glass effect overlay                                                         |\n| `aged_texture`           | string  | No       | 'everywhere'            | Aged texture mode: 'none', 'glass_only', 'everywhere'                               |\n| `aged_texture_intensity` | number  | No       | 50                      | Intensity of aged texture effect (0-100)                                            |\n| `tap_action`             | object  | No       | `{action: 'more-info'}` | Action to perform on tap                                                            |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-entities-card\nentities:\n  - entity: input_number.testlargenumber1\n    name: Large Number\n    secondary_info: none\n    decimals: 1\n  - entity: input_number.testlargenumber2\n    name: Large Number 2\n    secondary_info: none\n    decimals: 2\ntitle: Entities\ntitle_font_size: 14\nring_style: brass\nrivet_color: '#6a5816'\nplate_color: '#8c7626'\nplate_transparent: false\nfont_bg_color: '#ffffff'\nfont_color: '#0a0000'\nwear_level: 50\nglass_effect_enabled: true\naged_texture: everywhere\naged_texture_intensity: 50\n```\n\n\u003cimg src=\"https://raw.githubusercontent.com/dprischak/Foundry-Card/main/media/entities.png\" width=\"300\" alt=\"Preview\"/\u003e\n\n\u003c/details\u003e\n\n### Foundry Uptime Card\n\nA detailed uptime monitoring card simulating an industrial vacuum tube display.\n\n#### Configuration Options\n\n| Option                   | Type         | Required | Default          | Description                                                                         |\n| ------------------------ | ------------ | -------- | ---------------- | ----------------------------------------------------------------------------------- |\n| `entity`                 | string       | **Yes**  | -                | Binary Sensor or entity to monitor                                                  |\n| `title`                  | string       | No       | \"Uptime Monitor\" | Card title                                                                          |\n| `title_font_size`        | number       | No       | 14               | Font size for the title text                                                        |\n| `title_color`            | string       | No       | '#3e2723'        | Color of the title text                                                             |\n| `hours_to_show`          | number       | No       | 24               | Number of history hours to display                                                  |\n| `update_interval`        | number       | No       | 60               | Refresh interval in seconds                                                         |\n| `show_footer`            | boolean      | No       | true             | Show start/end time labels                                                          |\n| `ring_style`             | string       | No       | 'brass'          | Casing style: 'brass', 'silver', 'copper', 'black', 'white', 'blue', 'green', 'red' |\n| `plate_color`            | string       | No       | '#f5f5f5'        | Background plate color                                                              |\n| `plate_transparent`      | boolean      | No       | false            | Make the plate transparent                                                          |\n| `rivet_color`            | string       | No       | '#6d5d4b'        | Color of rivets                                                                     |\n| `font_bg_color`          | string       | No       | '#ffffff'        | Background color of status area                                                     |\n| `font_color`             | string       | No       | '#000000'        | Color of status text                                                                |\n| `wear_level`             | number       | No       | 50               | Intensity of wear marks (0-100)                                                     |\n| `glass_effect_enabled`   | boolean      | No       | true             | Enable glass effect overlay                                                         |\n| `aged_texture`           | string       | No       | 'everywhere'     | Aged texture mode: 'none', 'glass_only', 'everywhere'                               |\n| `aged_texture_intensity` | number       | No       | 50               | Intensity of aged texture effect (0-100)                                            |\n| `ok`                     | string/array | No       | 'on',...         | States considered \"Up\"                                                              |\n| `ko`                     | string/array | No       | 'off',...        | States considered \"Down\"                                                            |\n| `alias.ok`               | string       | No       | \"Up\"             | Display text for OK state                                                           |\n| `alias.ko`               | string       | No       | \"Down\"           | Display text for KO state                                                           |\n| `color_thresholds`       | array        | No       | []               | Array of { value, color } for score coloring                                        |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-uptime-card\nentity: binary_sensor.google_com\ntitle: Uptime Monitor\nhours_to_show: 24\nok: 'on'\nko: 'off'\nring_style: brass\nrivet_color: '#6a5816'\nplate_color: '#8c7626'\nplate_transparent: false\nfont_bg_color: '#ffffff'\nfont_color: '#000000'\nwear_level: 50\nglass_effect_enabled: true\ncolor_thresholds:\n  - value: 20\n    color: '#c229b5'\n  - value: 60\n    color: '#F44336'\n  - value: 99.9\n    color: '#FF9800'\n  - value: 100\n    color: '#4CAF50'\n```\n\n\u003cimg src=\"https://raw.githubusercontent.com/dprischak/Foundry-Card/main/media/uptime.png\" width=\"300\" alt=\"Preview\"/\u003e\n\n\u003c/details\u003e\n\n### Foundry Chart Card\n\nShow entity history in a compact chart:\n\n#### Configuration Options\n\n| Option                   | Type    | Required | Default         | Description                                                                 |\n| ------------------------ | ------- | -------- | --------------- | --------------------------------------------------------------------------- |\n| `entity`                 | string  | **Yes**  | -               | Entity ID to chart                                                          |\n| `title`                  | string  | No       | \"Foundry Chart\" | Card title                                                                  |\n| `hours_to_show`          | number  | No       | 24              | Number of history hours to include                                          |\n| `points_per_hour`        | number  | No       | -               | Number of data points per hour (e.g. `2` = one point every 30 min). Takes priority over `bucket_count` when set. |\n| `bucket_count`           | number  | No       | 50              | Total number of data points for the chart (legacy; use `points_per_hour` instead) |\n| `bucket_minutes`         | number  | No       | null            | Data point interval in minutes (overrides both `points_per_hour` and `bucket_count` when set) |\n| `update_interval`        | number  | No       | 60              | Refresh interval in seconds                                                 |\n| `aggregation`            | string  | No       | 'avg'           | Aggregation: 'avg', 'min', or 'max'                                         |\n| `min_value`              | number  | No       | auto            | Minimum value for the chart scale                                           |\n| `max_value`              | number  | No       | auto            | Maximum value for the chart scale                                           |\n| `value_precision`        | number  | No       | 2               | Decimal places for the current value display                                |\n| `show_footer`            | boolean | No       | true            | Show start/end time labels                                                  |\n| `show_inspect_value`     | boolean | No       | true            | During inspect, replace current value with inspected Y and show inspect bar |\n| `show_x_axis_minmax`     | boolean | No       | false           | Show X-axis min/max labels under chart (auto-hides footer start/Now labels) |\n| `show_y_axis_minmax`     | boolean | No       | false           | Show Y-axis min/max value labels on the chart axis                          |\n| `x_axis_time_format`     | string  | No       | `'local'`       | Hour format for X-axis time labels: `'local'` (browser default), `'12h'` (force AM/PM), `'24h'` (force 24-hour). |\n| `segments`               | array   | No       | []              | Value color ranges (`from`, `to`, `color`) for line/fill coloring           |\n| `segment_blend_width`    | number  | No       | 0               | Total blend width around each touching range boundary (value units)         |\n| `line_color`             | string  | No       | '#d32f2f'       | Line color                                                                  |\n| `line_width`             | number  | No       | 2               | Line width                                                                  |\n| `fill_under_line`        | boolean | No       | false           | Fill the area under the line                                                |\n| `grid_minor_color`       | string  | No       | '#cfead6'       | Minor grid color                                                            |\n| `grid_major_color`       | string  | No       | '#8fc79d'       | Major grid color                                                            |\n| `grid_opacity`           | number  | No       | 0.6             | Grid opacity                                                                |\n| `ring_style`             | string  | No       | 'brass'         | Casing style: 'brass', 'silver', 'chrome', 'copper', 'black', 'white', etc. |\n| `plate_color`            | string  | No       | '#f5f5f5'       | Background plate color                                                      |\n| `background_style`       | string  | No       | 'gradient'      | 'gradient' or 'solid'. Controls the background fill of the plate.           |\n| `face_color`             | string  | No       | '#f8f8f0'       | Color of the face when `background_style` is `solid`.                       |\n| `plate_transparent`      | boolean | No       | false           | Make the plate transparent                                                  |\n| `rivet_color`            | string  | No       | '#6d5d4b'       | Color of rivets                                                             |\n| `font_bg_color`          | string  | No       | '#ffffff'       | Background color of the chart screen                                        |\n| `number_color`           | string  | No       | '#3e2723'       | Color of the Title, Unit, and Scale numbers.                                |\n| `wear_level`             | number  | No       | 50              | Intensity of wear marks (0-100)                                             |\n| `glass_effect_enabled`   | boolean | No       | true            | Enable glass effect overlay                                                 |\n| `aged_texture`           | string  | No       | 'everywhere'    | Aged texture mode: 'none', 'glass_only', 'everywhere'                       |\n| `aged_texture_intensity` | number  | No       | 50              | Intensity of aged texture effect (0-100)                                    |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-chart-card\nentity: sensor.outside_temperature\ntitle: Outside Temp\nhours_to_show: 24\nbucket_count: 60\nupdate_interval: 60\naggregation: avg\nshow_inspect_value: true\nshow_x_axis_minmax: false\nshow_y_axis_minmax: false\nsegment_blend_width: 4\nsegments:\n  - from: 10\n    to: 20\n    color: '#F44336'\n  - from: 20\n    to: 30\n    color: '#4CAF50'\n  - from: 30\n    to: 60\n    color: '#2196F3'\nline_color: '#d32f2f'\nline_width: 2\nfill_under_line: true\ngrid_minor_color: '#cfead6'\ngrid_major_color: '#8fc79d'\ngrid_opacity: 0.6\nring_style: brass\nplate_color: '#f5f5f5'\nrivet_color: '#6d5d4b'\nfont_bg_color: '#ffffff'\nfont_color: '#000000'\ntitle_color: '#3e2723'\nwear_level: 50\nglass_effect_enabled: true\naged_texture: everywhere\naged_texture_intensity: 50\n```\n\n\u003c/details\u003e\n\n### Foundry Bar Chart Card\n\nShow entity history as a segmented bar chart:\n\n#### Configuration Options\n\n| Option                   | Type    | Required | Default              | Description                                                                 |\n| ------------------------ | ------- | -------- | -------------------- | --------------------------------------------------------------------------- |\n| `entity`                 | string  | **Yes**  | -                    | Entity ID to chart                                                          |\n| `title`                  | string  | No       | \"Foundry Bar Chart\"  | Card title                                                                  |\n| `hours_to_show`          | number  | No       | 24                   | Number of history hours to include                                          |\n| `points_per_hour`        | number  | No       | -                    | Number of bars per hour (e.g. `4` = one bar every 15 min). Takes priority over `bucket_count` when set. |\n| `bucket_count`           | number  | No       | 50                   | Total number of bars for the chart (legacy; use `points_per_hour` instead)  |\n| `bucket_minutes`         | number  | No       | null                 | Bar interval in minutes (overrides both `points_per_hour` and `bucket_count` when set) |\n| `update_interval`        | number  | No       | 60                   | Refresh interval in seconds                                                 |\n| `aggregation`            | string  | No       | `'avg'`              | Aggregation per bar: `'avg'`, `'min'`, or `'max'`                           |\n| `min_value`              | number  | No       | auto                 | Minimum value for the chart scale                                           |\n| `max_value`              | number  | No       | auto                 | Maximum value for the chart scale                                           |\n| `value_precision`        | number  | No       | 2                    | Decimal places for the current value display                                |\n| `show_footer`            | boolean | No       | true                 | Show start/end time labels                                                  |\n| `show_inspect_value`     | boolean | No       | true                 | During inspect, replace current value with inspected Y and show inspect bar |\n| `show_x_axis_minmax`     | boolean | No       | false                | Show X-axis min/max labels under chart                                      |\n| `show_y_axis_minmax`     | boolean | No       | false                | Show Y-axis min/max value labels on the chart axis                          |\n| `x_axis_time_format`     | string  | No       | `'local'`            | Hour format for X-axis time labels: `'local'`, `'12h'`, or `'24h'`         |\n| `bar_color`              | string  | No       | `'#d32f2f'`          | Default bar color (used when no segments are defined)                       |\n| `bar_padding`            | number  | No       | 2                    | Pixel gap between bars                                                      |\n| `bar_range_blend`        | string  | No       | `'single'`           | How bar color is determined across segments: `'single'` or `'blend'`        |\n| `segments`               | array   | No       | []                   | Value color ranges (`from`, `to`, `color`) for bar coloring                 |\n| `segment_blend_width`    | number  | No       | 0                    | Total blend width around each touching range boundary (value units)         |\n| `grid_minor_color`       | string  | No       | `'#cfead6'`          | Minor grid color                                                            |\n| `grid_major_color`       | string  | No       | `'#8fc79d'`          | Major grid color                                                            |\n| `grid_opacity`           | number  | No       | 0.6                  | Grid opacity                                                                |\n| `ring_style`             | string  | No       | `'brass'`            | Casing style: `'brass'`, `'silver'`, `'chrome'`, `'copper'`, `'black'`, `'white'`, etc. |\n| `plate_color`            | string  | No       | `'#f5f5f5'`          | Background plate color                                                      |\n| `plate_transparent`      | boolean | No       | false                | Make the plate transparent                                                  |\n| `rivet_color`            | string  | No       | `'#6d5d4b'`          | Color of rivets                                                             |\n| `font_bg_color`          | string  | No       | `'#ffffff'`          | Background color of the chart screen                                        |\n| `font_color`             | string  | No       | `'#000000'`          | Color of the digital text                                                   |\n| `wear_level`             | number  | No       | 50                   | Intensity of wear marks (0-100)                                             |\n| `glass_effect_enabled`   | boolean | No       | true                 | Enable glass effect overlay                                                 |\n| `aged_texture`           | string  | No       | `'everywhere'`       | Aged texture mode: `'none'`, `'glass_only'`, `'everywhere'`                 |\n| `aged_texture_intensity` | number  | No       | 50                   | Intensity of aged texture effect (0-100)                                    |\n| `tap_action`             | object  | No       | `{action: 'more-info'}` | Action to perform on tap                                                 |\n| `hold_action`            | object  | No       | `{action: 'more-info'}` | Action to perform on hold                                                |\n| `double_tap_action`      | object  | No       | `{action: 'more-info'}` | Action to perform on double tap                                          |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-bar-chart-card\nentity: sensor.outside_temperature\ntitle: Outside Temp\nhours_to_show: 24\nbucket_count: 60\nupdate_interval: 60\naggregation: avg\nshow_inspect_value: true\nshow_x_axis_minmax: false\nshow_y_axis_minmax: false\nx_axis_time_format: local\nsegment_blend_width: 4\nsegments:\n  - from: 10\n    to: 20\n    color: '#F44336'\n  - from: 20\n    to: 30\n    color: '#4CAF50'\n  - from: 30\n    to: 60\n    color: '#2196F3'\nbar_color: '#d32f2f'\nbar_padding: 2\nbar_range_blend: single\ngrid_minor_color: '#cfead6'\ngrid_major_color: '#8fc79d'\ngrid_opacity: 0.6\nring_style: brass\nplate_color: '#f5f5f5'\nrivet_color: '#6d5d4b'\nfont_bg_color: '#ffffff'\nfont_color: '#000000'\nwear_level: 50\nglass_effect_enabled: true\naged_texture: everywhere\naged_texture_intensity: 50\n```\n\n\u003c/details\u003e\n\n### Foundry Home Thermostat\n\nA vintage-style thermostat controller with odometer-style displays and interactive controls.\n\n#### Configuration Options\n\n| Option                   | Type    | Required | Default      | Description                                                                                 |\n| ------------------------ | ------- | -------- | ------------ | ------------------------------------------------------------------------------------------- |\n| `entity`                 | string  | **Yes**  | -            | Thermostat entity (climate domain)                                                          |\n| `title`                  | string  | No       | \"Thermostat\" | Card title                                                                                  |\n| `ring_style`             | string  | No       | 'brass'      | Casing style: 'brass', 'silver', 'copper', 'black', 'white', 'blue', 'green', 'red', 'none' |\n| `plate_color`            | string  | No       | '#8c7626'    | Background plate color                                                                      |\n| `title_color`            | string  | No       | '#3e2723'    | Color of the title text and labels                                                          |\n| `font_bg_color`          | string  | No       | '#ffffff'    | Background color of the odometer displays                                                   |\n| `font_color`             | string  | No       | '#000000'    | Color of the odometer text                                                                  |\n| `rivet_color`            | string  | No       | '#6d5d4b'    | Color of rivets                                                                             |\n| `plate_transparent`      | boolean | No       | false        | Make the plate transparent                                                                  |\n| `wear_level`             | number  | No       | 50           | Intensity of wear marks (0-100)                                                             |\n| `glass_effect_enabled`   | boolean | No       | true         | Enable glass effect overlay                                                                 |\n| `aged_texture`           | string  | No       | 'everywhere' | Aged texture mode: 'none', 'glass_only', 'everywhere'                                       |\n| `aged_texture_intensity` | number  | No       | 50           | Intensity of aged texture effect (0-100)                                                    |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-homethermostat-card\nentity: climate.t6_pro_z_wave_programmable_thermostat_with_smartstart\ntitle: Thermostat\nring_style: brass\nplate_color: '#8c7626'\ntitle_color: '#3e2723'\nfont_bg_color: '#ffffff'\nfont_color: '#000000'\nrivet_color: '#6d5d4b'\nplate_transparent: false\nwear_level: 50\nglass_effect_enabled: true\naged_texture: everywhere\naged_texture_intensity: 50\n```\n\n\u003cimg src=\"https://raw.githubusercontent.com/dprischak/Foundry-Card/main/media/homethermo.png\" width=\"300\" alt=\"Preview\"/\u003e\n\n\u003c/details\u003e\n\n### Foundry Slider Card\n\nA vertical slider control with vintage industrial aesthetics.\n\n#### Configuration Options\n\n| Option                   | Type    | Required | Default            | Description                                                                                 |\n| ------------------------ | ------- | -------- | ------------------ | ------------------------------------------------------------------------------------------- |\n| `entity`                 | string  | No       | -                  | Entity ID (optional, for control integration)                                               |\n| `title`                  | string  | No       | \"Slider\"           | Card title                                                                                  |\n| `min`                    | number  | No       | 0                  | Minimum slider value                                                                        |\n| `max`                    | number  | No       | 100                | Maximum slider value                                                                        |\n| `step`                   | number  | No       | 1                  | Slider step increment                                                                       |\n| `value`                  | number  | No       | 50                 | Initial/current slider value                                                                |\n| `ring_style`             | string  | No       | 'brass'            | Ring style: 'brass', 'silver', 'chrome', 'copper', 'black', 'white', 'blue', 'green', 'red' |\n| `background_style`       | string  | No       | 'gradient'         | Screen face fill: `'gradient'` (default) or `'solid'`. Solid uses `face_color`.             |\n| `face_color`             | string  | No       | '#8c7626'          | Screen face color when `background_style` is `solid`                                        |\n| `plate_color`            | string  | No       | '#8c7626'          | Background plate color                                                                      |\n| `plate_transparent`      | boolean | No       | false              | Make the plate transparent                                                                  |\n| `rivet_color`            | string  | No       | '#6a5816'          | Color of decorative rivets                                                                  |\n| `slider_color`           | string  | No       | '#444444'          | Color of the slider track                                                                   |\n| `knob_color`             | string  | No       | '#c9a961'          | Color of the slider knob (derived from ring_style)                                          |\n| `knob_shape`             | string  | No       | 'square'           | Knob shape: 'circular', 'square', 'rectangular'                                             |\n| `knob_size`              | number  | No       | 100                | Knob size percentage (0-100)                                                                |\n| `primary_tick_color`     | string  | No       | 'rgba(0,0,0,0.22)' | Color of major tick marks                                                                   |\n| `secondary_tick_color`   | string  | No       | 'rgba(0,0,0,0.22)' | Color of minor tick marks                                                                   |\n| `font_bg_color`          | string  | No       | '#ffffff'          | Screen Background — background color of the LED display (same as Entities card)             |\n| `font_color`             | string  | No       | '#000000'          | Digital Font Color — color of LED display digits (same as Entities card)                    |\n| `number_color`           | string  | No       | '#3e2723'          | Color of the title text (replaces `title_color`)                                            |\n| `title_font_size`        | number  | No       | 14                 | Font size for the title                                                                     |\n| `value_font_size`        | number  | No       | 36                 | Font size for the value display                                                             |\n| `show_value`             | boolean | No       | true               | Show the digital value display                                                              |\n| `wear_level`             | number  | No       | 50                 | Intensity of wear marks (0-100)                                                             |\n| `aged_texture`           | string  | No       | 'everywhere'       | Aged texture mode: 'none', 'glass_only', 'everywhere'                                       |\n| `aged_texture_intensity` | number  | No       | 50                 | Intensity of aged texture effect (0-100)                                                    |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-slider-card\ntitle: Volume\nmin: 0\nmax: 100\nstep: 1\nvalue: 50\nring_style: brass\nbackground_style: gradient\nface_color: '#8c7626'\nplate_color: '#8c7626'\nplate_transparent: false\nrivet_color: '#6a5816'\nslider_color: '#444444'\nknob_shape: square\nknob_size: 100\nprimary_tick_color: 'rgba(0,0,0,0.22)'\nsecondary_tick_color: 'rgba(0,0,0,0.22)'\nfont_bg_color: '#ffffff'\nfont_color: '#000000'\nnumber_color: '#3e2723'\ntitle_font_size: 14\nvalue_font_size: 36\nshow_value: true\nwear_level: 50\naged_texture: everywhere\naged_texture_intensity: 50\n```\n\n\u003c/details\u003e\n\n\u003ca name=\"foundry-title-card\"\u003e\u003c/a\u003e\n\n### Foundry Title Card\n\nA minimal decorative title plate for labelling sections of your dashboard.\n\n#### Configuration Options\n\n| Option                   | Type    | Required | Default        | Description                                   |\n| ------------------------ | ------- | -------- | -------------- | --------------------------------------------- |\n| `title`                  | string  | No       | \"Title\"        | Text displayed on the plate                   |\n| `title_font_size`        | number  | No       | 18             | Font size of the title text                   |\n| `title_color`            | string  | No       | `'#3e2723'`    | Color of the title text                       |\n| `plate_color`            | string  | No       | `'#f5f5f5'`    | Background plate color                        |\n| `plate_transparent`      | boolean | No       | false          | Make the plate transparent (hides background) |\n| `rivet_color`            | string  | No       | `'#6d5d4b'`    | Color of the two side rivets                  |\n| `aged_texture`           | string  | No       | `'everywhere'` | Aged texture mode: `'none'` or `'everywhere'` |\n| `aged_texture_intensity` | number  | No       | 50             | Intensity of aged texture effect (0–100)      |\n| `theme`                  | string  | No       | -              | Name of a built-in or custom theme to apply   |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-title-card\ntitle: Living Room\ntitle_font_size: 18\ntitle_color: '#3e2723'\nplate_color: '#8c7626'\nrivet_color: '#6a5816'\nplate_transparent: false\naged_texture: everywhere\naged_texture_intensity: 50\ntheme: industrial\n```\n\n\u003c/details\u003e\n\n\u003ca name=\"foundry-analog-meter-card\"\u003e\u003c/a\u003e\n\n### Foundry Analog Meter Card\n\nA vintage VU-style analog meter in a landscape rectangular chassis.\n\n#### Configuration Options\n\n| Option                   | Type    | Required | Default                 | Description                                                                                          |\n| ------------------------ | ------- | -------- | ----------------------- | ---------------------------------------------------------------------------------------------------- |\n| `entity`                 | string  | **Yes**  | -                       | Entity ID to display                                                                                 |\n| `title`                  | string  | No       | -                       | Card title (supports multi-line with `\\n`)                                                           |\n| `min`                    | number  | No       | 0                       | Minimum meter value                                                                                  |\n| `max`                    | number  | No       | 100                     | Maximum meter value                                                                                  |\n| `unit`                   | string  | No       | ''                      | Unit of measurement                                                                                  |\n| `segments`               | array   | No       | See below               | Color segments configuration                                                                         |\n| `animation_duration`     | number  | No       | 1.2                     | Animation duration in seconds                                                                        |\n| `title_font_size`        | number  | No       | 12                      | Font size for the title text                                                                         |\n| `ring_style`             | string  | No       | 'brass'                 | Ring style: 'brass', 'silver', 'chrome', 'copper', 'black', 'white', 'blue', 'green', 'red', 'none'  |\n| `rivet_color`            | string  | No       | '#6a5816'               | Color of the decorative rivets                                                                       |\n| `plate_color`            | string  | No       | '#8c7626'               | Color of the plate                                                                                   |\n| `plate_transparent`      | boolean | No       | false                   | Make the plate transparent                                                                           |\n| `wear_level`             | number  | No       | 50                      | Amount of wear marks and age spots (0-100)                                                           |\n| `glass_effect_enabled`   | boolean | No       | true                    | Enable glass effect overlay                                                                          |\n| `aged_texture`           | string  | No       | 'everywhere'            | Aged texture mode: 'none', 'glass_only', or 'everywhere'                                             |\n| `aged_texture_intensity` | number  | No       | 50                      | Intensity of aged texture effect (0-100)                                                             |\n| `background_style`       | string  | No       | 'gradient'              | Background style: 'gradient' or 'solid'                                                              |\n| `face_color`             | string  | No       | '#f8f8f0'               | Color of the meter face                                                                              |\n| `number_color`           | string  | No       | '#3e2723'               | Color of value numbers                                                                               |\n| `primary_tick_color`     | string  | No       | '#3e2723'               | Color of major tick marks                                                                            |\n| `secondary_tick_color`   | string  | No       | '#5d4e37'               | Color of minor tick marks                                                                            |\n| `needle_color`           | string  | No       | '#1a1a1a'               | Color of the needle                                                                                  |\n| `tap_action`             | object  | No       | `{action: 'more-info'}` | Action to perform on tap (see Actions)                                                               |\n| `hold_action`            | object  | No       | `{action: 'more-info'}` | Action to perform on hold                                                                            |\n| `double_tap_action`      | object  | No       | `{action: 'more-info'}` | Action to perform on double tap                                                                      |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-analog-meter-card\nentity: sensor.temperature\ntitle: Analog Meter\ntitle_font_size: 12\nring_style: brass\nrivet_color: '#6a5816'\nplate_color: '#8c7626'\nplate_transparent: false\nmin: 0\nmax: 100\nunit: ''\nanimation_duration: 1.2\nwear_level: 50\nglass_effect_enabled: true\naged_texture: everywhere\naged_texture_intensity: 50\nsegments:\n  - from: 80\n    to: 100\n    color: '#F44336'\nnumber_color: '#3e2723'\nprimary_tick_color: '#3e2723'\nsecondary_tick_color: '#5d4e37'\nneedle_color: '#1a1a1a'\n```\n\n\u003c/details\u003e\n\n\u003ca name=\"foundry-digital-meter-card\"\u003e\u003c/a\u003e\n\n### Foundry Digital Meter Card\n\nA vintage digital LED bar meter in a landscape rectangular chassis.\n\n#### Configuration Options\n\n| Option                   | Type    | Required | Default                 | Description                                                                                          |\n| ------------------------ | ------- | -------- | ----------------------- | ---------------------------------------------------------------------------------------------------- |\n| `entity`                 | string  | **Yes**  | -                       | Primary entity ID to display on the top bar                                                          |\n| `bottom_entity`          | string  | No       | -                       | Secondary entity ID to display on the bottom bar                                                     |\n| `card_title`             | string  | No       | -                       | Card title displayed above the meter face                                                            |\n| `title`                  | string  | No       | 'L'                     | Label for the top bar                                                                                |\n| `bottom_title`           | string  | No       | 'R'                     | Label for the bottom bar                                                                             |\n| `min`                    | number  | No       | 0                       | Minimum meter value                                                                                  |\n| `max`                    | number  | No       | 100                     | Maximum meter value                                                                                  |\n| `unit`                   | string  | No       | 'dB'                    | Unit of measurement                                                                                  |\n| `segments`               | array   | No       | See below               | Color segments configuration                                                                         |\n| `animation_duration`     | number  | No       | 0.15                    | Animation duration in seconds                                                                        |\n| `ring_style`             | string  | No       | 'brass'                 | Ring style: 'brass', 'silver', 'chrome', 'copper', 'black', 'white', 'blue', 'green', 'red', 'none'  |\n| `rivet_color`            | string  | No       | '#6d5d4b'               | Color of the decorative rivets                                                                       |\n| `plate_color`            | string  | No       | 'transparent'           | Color of the plate                                                                                   |\n| `plate_transparent`      | boolean | No       | false                   | Make the plate transparent                                                                           |\n| `wear_level`             | number  | No       | 50                      | Amount of wear marks and age spots (0-100)                                                           |\n| `glass_effect_enabled`   | boolean | No       | true                    | Enable glass effect overlay                                                                          |\n| `aged_texture`           | string  | No       | 'glass_only'            | Aged texture mode: 'none', 'glass_only', or 'everywhere'                                             |\n| `aged_texture_intensity` | number  | No       | 20                      | Intensity of aged texture effect (0-100)                                                             |\n| `background_style`       | string  | No       | 'gradient'              | Background style: 'gradient' or 'solid'                                                              |\n| `face_color`             | string  | No       | '#111111'               | Color of the meter face                                                                              |\n| `title_color`            | string  | No       | '#9e9e9e'               | Color of the card title text                                                                         |\n| `number_color`           | string  | No       | '#9e9e9e'               | Color of the labels and scale numbers                                                                |\n| `primary_tick_color`     | string  | No       | '#616161'               | Color of major tick marks and outline                                                                |\n| `secondary_tick_color`   | string  | No       | '#424242'               | Color of minor tick marks                                                                            |\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see examples\u003c/summary\u003e\n\n```yaml\ntype: custom:foundry-digital-meter-card\nentity: sensor.audio_level_left\nbottom_entity: sensor.audio_level_right\ncard_title: Digital Meter\ntitle: L\nbottom_title: R\nmin: 0\nmax: 100\nunit: dB\ntheme: industrial\nsegments:\n  - from: 0\n    to: 50\n    color: '#4caf50'\n  - from: 50\n    to: 60\n    color: '#8bc34a'\n  - from: 60\n    to: 80\n    color: '#ffeb3b'\n  - from: 80\n    to: 100\n    color: '#f44336'\n```\n\n\u003c/details\u003e\n\n\u003ca name=\"dynamic-entity-themes\"\u003e\u003c/a\u003e\n\n## Dynamic Entity Themes\n\nFoundry Cards allow you to dynamically change a card's theme based on the state of a Home Assistant entity (like an `input_select` dropdown helper). This means you can create a single dropdown on your dashboard that instantly changes the theme of your cards!\n\n### How to Create a Theme Selector Helper\n\n1. **Open the Helpers Page**\n   - Go to **Settings**\n   - Click **Devices \u0026 Services**\n   - Select the **Helpers** tab at the top\n   - Click **➕ Create Helper**\n\n2. **Choose the Correct Helper Type**\n   - Select: **Dropdown** (This creates an `input_select` entity).\n\n3. **Configure the Helper**\n   - Fill in the fields:\n     - **Name**: `Gauge Theme` (or any name you prefer)\n     - **Icon** (optional): `mdi:palette`\n     - **Options**: Paste each theme on its own line:\n       ```text\n       industrial\n       racing\n       warm\n       cool\n       vintage\n       midnight\n       steampunk\n       military\n       retro\n       arctic\n       copper\n       neon\n       pink\n       blue\n       green\n       spring\n       summer\n       autumn\n       winter\n       purple\n       orange\n       yellow\n       teal\n       aerospace\n       cherry_blossom\n       deep_sea\n       mediterranean\n       stealth_black\n       pine_forest\n       ```\n\nOnce your helper is created, open the visual editor for any Foundry Card, set the **Theme** dropdown to **Entity**, and select your new entity (e.g., `input_select.gauge_theme`)!\n\n\u003ca name=\"custom-themes\"\u003e\u003c/a\u003e\n\n## Custom Themes\n\nFoundry Cards include built-in themes (industrial, racing, warm, cool) that can be applied through the visual editor. You can also create your own custom themes using a `UserThemes.yaml` file.\n\n### Creating Custom Themes\n\n1. Create a file named `userthemes.yaml` (case-sensitive) in your `\u003cconfig\u003e/www/` directory (same location as `foundry-card.js` and `themes.yaml`)\n\n2. Define your custom themes using the YAML format shown below\n\n3. Refresh your browser - your custom themes will automatically appear in the theme dropdown in the card editor\n\n### Theme File Format\n\nEach theme is defined with a name followed by its properties. Here's the structure:\n\n```yaml\ntheme_name:\n  plate_color: '#8c7626' # Background plate color\n  rivet_color: '#6a5816' # Corner rivet color\n  title_color: '#3e2723' # Title text color\n  font_color: '#3e2723' # Digital display text color\n  font_bg_color: '#f8f8f0' # Digital display background\n  ring_style: 'brass' # Ring style: brass, silver, chrome, copper, black, white, blue, green, red\n  number_color: '#3e2723' # Gauge numbers color\n  primary_tick_color: '#3e2723' # Major tick marks color\n  secondary_tick_color: '#5d4e37' # Minor tick marks color\n  needle_color: '#C41E3A' # Gauge needle color\n  plate_transparent: false # true/false - transparent background\n  glass_effect_enabled: true # true/false - glass overlay effect\n  wear_level: 50 # 0-100 - amount of wear marks\n  aged_texture: 'everywhere' # none, glass_only, or everywhere\n  aged_texture_intensity: 50 # 0-100 - texture intensity\n  face_color: '#929090' # Gauge/clock face color\n  background_style: 'gradient' # gradient or solid\n```\n\n### Example Custom Theme\n\nHere's an example `userthemes.yaml` with two custom themes:\n\n```yaml\nmidnight:\n  plate_color: '#1a1a2e'\n  rivet_color: '#16213e'\n  title_color: '#eee'\n  font_color: '#00ff41'\n  font_bg_color: '#0a0e27'\n  ring_style: 'black'\n  number_color: '#eee'\n  primary_tick_color: '#eee'\n  secondary_tick_color: '#888'\n  needle_color: '#00ff41'\n  plate_transparent: false\n  glass_effect_enabled: true\n  wear_level: 20\n  aged_texture: 'glass_only'\n  aged_texture_intensity: 30\n  face_color: '#0f3460'\n  background_style: 'solid'\n\nsteampunk:\n  plate_color: '#8b4513'\n  rivet_color: '#654321'\n  title_color: '#f4e4c1'\n  font_color: '#f4e4c1'\n  font_bg_color: '#3e2723'\n  ring_style: 'copper'\n  number_color: '#f4e4c1'\n  primary_tick_color: '#f4e4c1'\n  secondary_tick_color: '#cd853f'\n  needle_color: '#ff6347'\n  plate_transparent: false\n  glass_effect_enabled: true\n  wear_level: 80\n  aged_texture: 'everywhere'\n  aged_texture_intensity: 70\n  face_color: '#d2691e'\n  background_style: 'gradient'\n```\n\n### Notes\n\n- Theme names must be unique and use lowercase letters, numbers, and underscores only\n- Not all properties are used by all cards (e.g., `needle_color` only applies to gauge cards)\n- Custom themes will appear in the theme dropdown alongside built-in themes\n- If a property is omitted, the card will use its default value\n- If you change a value in a card that is controlled by the themes it will change your card to no theme.\n\n### Theme Caching\n\nTo ensure your dashboard loads as quickly as possible, Foundry Cards aggressively cache your `themes.yaml` and `userthemes.yaml` files.\n\n- **10-Minute Cache:** Once loaded, themes are cached in your browser's Local Storage for 10 minutes. During this time, navigating around your dashboard will instantly load themes without making any network requests to the server.\n- **Forcing a Refresh:** If you edit your theme files and want to see the changes immediately (without waiting 10 minutes or clearing your browser data), simply append `?refreshcache=true` to your Home Assistant URL and hit Enter.\n  - Example: `http://homeassistant.local:8123/lovelace/home?refreshcache=true`\n  - _(If your URL already has `?` parameters, use `\u0026refreshcache=true` instead)_\n  - This forces the cards to bypass all local caches, download the freshest copy of the theme files directly from the server, and restart the 10-minute timer.\n\n\u003ca name=\"development\"\u003e\u003c/a\u003e\n\n## Development\n\nWant to contribute or customize the cards?\n\n### Prerequisites\n\n1. **Install Node.js**\n   - Download and install Node.js from [nodejs.org](https://nodejs.org/), which includes `npm`.\n\n### Setting Up Your Development Environment\n\n1. **Clone the Repository**\n   ```bash\n   git clone https://github.com/dprischak/Foundry-Card.git\n   cd Foundry-Card\n   ```\n2. **Install Dependencies**\n   ```bash\n   npm install\n   ```\n\n### Development Workflow\n\n1. **Create a branch and make the changes into that branch**\n\n   ```bash\n   git checkout -b feature/your-feature-name\n   # or\n   git checkout -b fix/your-bug-fix\n   ```\n\n2. Make Your Changes:\n   - Write clean, readable code\n   - Follow the existing code style\n   - Add comments for complex logic\n   - Update documentation if needed\n\n3. **Build the Project**\n\n   ```bash\n   npm run build\n   ```\n\n4. **Code Quality**\n\n   The project enforces code quality through linting and formatting. These checks run automatically on Pull Requests and must pass.\n\n   **Run checks locally:**\n\n   ```bash\n   # Check for linting errors\n   npm run lint\n\n   # Check for formatting issues\n   npm run format\n   ```\n\n   **Fix issues automatically:**\n\n   ```bash\n   # Fix linting errors\n   npm run lint:fix\n\n   # Fix formatting issues\n   npm run format:fix\n   ```\n\n5. **Commit your changes**\n   ```bash\n   git add .\n   git commit -m \"feat: add new feature\" # or \"fix: resolve bug\"\n   ```\n6. **Push and Create a Pull Request**\n   ```bash\n   git push origin feature/your-feature-name\n   ```\n\nThen open a pull request on GitHub with a clear description of your changes.\n\n## Ways to Contribute\n\n- **Report Bugs:** Open an issue with detailed steps to reproduce\n- **Suggest Features:** Share your ideas for improvements\n- **Fix Issues:** Look for open issues and submit fixes\n- **Improve Documentation:** Help make the docs clearer and more comprehensive\n\n\u003ca name=\"roadmap\"\u003e\u003c/a\u003e\n\n## Roadmap\n\nFuture cards planned for the Foundry Card collection:\n\n2023.3.2\n- Bar Chart\n\n2023.3.3\n- Digital VU Meter\n\nFuture\n- Standard Odometer\n- Industrial Energy Map\n- Automated Unit Testing\n\n\u003ca name=\"support\"\u003e\u003c/a\u003e\n\n## Support\n\nIf you encounter any issues or have feature requests:\n\n- [Open an issue](https://github.com/dprischak/Foundry-Card/issues)\n- [Start a discussion](https://github.com/dprischak/Foundry-Card/discussions)\n\n\u003ca name=\"license\"\u003e\u003c/a\u003e\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n\u003ca name=\"credits\"\u003e\u003c/a\u003e\n\n## Credits\n\nCreated by [dprischak](https://github.com/dprischak) and [KeithSobo](https://github.com/KeithSobo)\n\nIf you find this project useful, consider giving it a ⭐ on GitHub!\n\nSupport the development of this project:\n\n[![Buy Me A Coffee](https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png)](https://buymeacoffee.com/keithsobo)\n\nEven a symbolic gesture makes a difference. Thank you so much for your support ❤️\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdprischak%2Ffoundry-card","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdprischak%2Ffoundry-card","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdprischak%2Ffoundry-card/lists"}