Change icon based on sensor state in button card does not find card

Hi, another noob question (I’ve been trying hard for some hours now).

I want to change an icon based on a sensor state. I am trying this:

type: custom:restriction-card
duration: 40
restrictions:
  confirm:
    text: Watch out
card:
  type: 'custom:button-card'
  entity: switch.garage_relay
  icon: garage-variant
  show_state: true
  state:
    - value: 'on'
      color: var(--disabled-text-color)
      icon: mdi:garage-variant
    - value: 'off'
      color: rgb(5, 147, 255)
      icon: mdi:garage-openvariant

However I get “custom card element doesn’t exist: button-card”
I tried to find this one in the cards in HACS, but its not there so that I can install it.
Any hints?

I tried it with a switch template. This works somehow, but does not show the right behavior. The reason ist that the garage_relay has a delayed turn off, but the template doesn’t. I have no way of switching a template off after a certain time…

Just in case anyone reads this.
Button card is shown in HACS in the add repository view, not in the icon view.

The following config shows a warning pop-up before the garage door is opened. It changes the garage door icon based on a open/close sensor - I am using an inductive proximity sensor. The button works as amomentary switch, which is configured in the ESP Home setting of the device. Based on thec sensor, also icon color and status text are set.

type: custom:restriction-card
duration: 40
restrictions:
  confirm:
    text: Aufpassen - Tor bewegt sich!
card:
  type: custom:button-card
  color_type: icon
  entity: switch.garage_relay
  show_state: false
  show_label: true
  show_name: false
  state:
    - operator: template
      value: |
        [[[ return states['binary_sensor.garage_doorsensor'].state === 'on' ]]]
      icon: mdi:garage-open-variant
      label: Nicht geschlossen!
      color: rgb(2, 215, 20)
    - operator: default
      icon: mdi:garage-variant
      label: Geschlossen

Took me a while to figure this out.