Found a pretty good solution using custom:button-card so sharing here. It shows the icon of the light with the timer and colors it appropriately. It also reacts to taps to turn it on and off manually. Then the time remaining before the light goes off is displayed below the icon.
type: conditional
conditions:
- entity: timer.timer_garage
state_not: nothing
card:
type: 'custom:button-card'
entity: timer.timer_garage
icon: 'mdi:lightbulb'
name: Garage
show_state: true
show_label: true
show_icon: true
size: '7%'
tap_action:
action: call-service
service: light.toggle
service_data:
entity_id: light.jasco_products_zw7101_smart_led_light_bulb_ze26i_level
styles:
icon:
- color: |
[[[
if (states["light.jasco_products_zw7101_smart_led_light_bulb_ze26i_level"].state == 'off') return 'deepskyblue';
else return 'yellow';
]]]