π³ Material Button Card β
π Overview β
The material-button-card is a super versatile card π that can be used to display and control a variety of entities in Home Assistant. It can be configured to act as a switch π‘, a button π, a thermometer π‘οΈ, and much more.
βοΈ Light Mode![]() | π Dark Mode![]() |
π οΈ Configuration β
Here are the configuration options for the material-button-card:
π Free Version β
| Name | Type | Description | Default | Required |
|---|---|---|---|---|
type | string | custom:material-button-card | β Yes | |
control_type | string | The type of control the button will have. See Control Types for more information. | generic | β Yes |
name | string | The name to display on the card. π | β No | |
entity | string | The entity ID to associate with the card. π | β
Yes (Not required for action and app_version) | |
use_default_icon | boolean | Use the default icon based on the entity's state. πΌοΈ | true | β No |
icon | string | A custom icon to display. β¨ | β
Yes (Required if use_default_icon is false) | |
dual_icon | boolean | Use two different icons for the "on" and "off" states. π | false | β No |
icon_on | string | The icon to display when the entity is "on". β | β
Yes (Required if dual_icon is true) | |
icon_off | string | The icon to display when the entity is "off". β | β
Yes (Required if dual_icon is true) | |
use_default_text | boolean | Use the default "on" and "off" text. π‘ | true | β No |
text_on | string | Custom text to display when the entity is "on". | β
Yes (Required if use_default_text is false) | |
text_off | string | Custom text to display when the entity is "off". | β
Yes (Required if use_default_text is false) | |
use_material_color | boolean | (Only for thermometer) Use different colors based on the state. π¨ | false | β No |
fix_temperature | string | (Only for thermometer) Set to true or auto to fix temperature display issues. π§ | false | β No |
use_default_toggle | boolean | Enable automatic actions based on entity state. If false, you can configure tap_action and hold_action. π | true | β No |
tap_action | object | Action to perform on tap. See Actions for more information. π | β No | |
hold_action | object | Action to perform on hold. See Actions for more information. HOLD | β No |
β¨ Pro - Ultimate Version β
| Name | Type | Description | Default | Required |
|---|---|---|---|---|
type | string | custom:material-button-card | β Yes | |
control_type | string | The type of control the button will have. See Control Types for more information. | generic | β Yes |
name | string | The name to display on the card. π | β No | |
entity | string | The entity ID to associate with the card. π | β
Yes (Not required for action and app_version) | |
use_default_icon | boolean | Use the default icon based on the entity's state. πΌοΈ | true | β No |
icon | string | A custom icon to display. β¨ | β
Yes (Required if use_default_icon is false) | |
dual_icon | boolean | Use two different icons for the "on" and "off" states. π | false | β No |
icon_on | string | The icon to display when the entity is "on". β | β
Yes (Required if dual_icon is true) | |
icon_off | string | The icon to display when the entity is "off". β | β
Yes (Required if dual_icon is true) | |
use_default_text | boolean | Use the default "on" and "off" text. π‘ | true | β No |
text_on | string | Custom text to display when the entity is "on". | β
Yes (Required if use_default_text is false) | |
text_off | string | Custom text to display when the entity is "off". | β
Yes (Required if use_default_text is false) | |
use_material_color | boolean | (Only for thermometer) Use different colors based on the state. π¨ | false | β No |
fix_temperature | string | (Only for thermometer) Set to true or auto to fix temperature display issues. π§ | false | β No |
tap_action | object | Action to perform on tap. See Actions for more information. π | β No | |
hold_action | object | Action to perform on hold. See Actions for more information. HOLD | β No | |
double_tap_action | object | Action to perform on double tap. See Actions for more information. HOLD | β No |
ποΈ Control Types β
The control_type option determines the behavior and appearance of the card. Here are the possible values:
generic: For generic entities like switches, lights, and input booleans. ΰ¦Έΰ§ΰ¦ΰ¦thermometer: For climate entities. It will display the temperature and allow you to control the HVAC. π‘οΈautomation: For automation entities. It will show the automation's state and allow you to trigger it. π€scene: For scene entities. Tapping the card will activate the scene. π¬media_player: For media player entities. It will show the media player's state and provide playback controls. β―οΈstate: Displays the state of an entity without any action. βΉοΈaction: Performs a specific action when tapped. β‘app_version: Displays the version of the Material Components. π±
π Actions β
π Free Version β
You can configure custom actions for tap_action and hold_action.
The action object can have the following properties:
action: The action to perform. Possible values are:toggle: Toggles the entity's state. πmore-info: Shows the entity's more-info dialog. βΉοΈnavigate: Navigates to a specific path. πΊοΈurl: Opens a URL. πnone: No action. π«
navigation_path: The path to navigate to whenactionisnavigate.url_path: The URL to open whenactionisurl.
β¨ Paid Version β
You can configure custom actions for tap_action, hold_action, and double_tap_action. If you do not specify an action, the system will use the default custom dialogs based on the component type.
Action Object Properties β
| Property | Type | Description |
|---|---|---|
action | string | Required. The type of action to perform (see list below). |
navigation_path | string | Internal path (e.g., /lovelace/lights) required if the action is Maps. |
url_path | string | External URL (e.g., https://google.com) required if the action is url. |
service | string | The service to call (e.g., light.turn_on) if the action is call-service. |
service_data | object | Additional parameters for the service. |
Possible Values for action
more-info (Default): Opens the entity's details window. When configured, it opens the specific custom dialog for the component. βΉοΈtoggle: Toggles the entity state (on/off). πcall-service: Executes a specific Home Assistant service. π οΈnavigate: Navigates to a specific path within the interface. πΊοΈurl: Opens an external hyperlink in a new tab. πassist: Opens the Assist interface (voice/text command). ποΈnone: Disables any interaction. π«
TIP
Note on Custom Dialogs: If you leave the action as default, the system will automatically trigger the custom dialogs optimized for each category (e.g., the sensor dialog for binary sensors and sensors or the alarm dialog for alarm_control_panel), and more...
π Examples β
π‘ Simple Switch β
type: custom:material-button-card
control_type: generic
entity: switch.living_room_light
name: Living Room Lightπ‘οΈ Thermometer with Custom Icons β
type: custom:material-button-card
control_type: thermometer
entity: climate.living_room
name: Living Room
use_default_icon: false
dual_icon: true
icon_on: mdi:hvac
icon_off: mdi:hvac-offπ€ Automation Trigger β
type: custom:material-button-card
control_type: automation
entity: automation.turn_on_lights_at_sunset
name: Sunset Lightsπ¬ Scene Activation β
type: custom:material-button-card
control_type: scene
entity: scene.movie_time
name: Movie Time
icon: mdi:movieβ―οΈ Media Player Controls β
type: custom:material-button-card
control_type: media_player
entity: media_player.living_room_tv
name: Living Room TVπΊοΈ Navigation Button β
type: custom:material-button-card
control_type: action
name: Go to Lights
icon: mdi:lightbulb
use_default_toggle: false
tap_action:
action: navigate
navigation_path: /lovelace/lightsπ¨ Extended Customization β
β οΈ LICENSE
Only for PRO and ULTIMATE users, get your licence now π.
This card have a own version of Card-Mod. You can inject custom CSS to override any style or create unique animations.
π‘ ADVANCED STYLING
π Check out the Styling Guide.


