A native LVGL 9 widget for ESPHome: drop it under lvgl: widgets:
like any other widget, give it a size and a time source, and it draws and
animates itself — no interval: + lambda glue. Five styles,
all vector-drawn on its own canvas.
ClockClock 24 — 24 tiny analogue clocks whose hands
sweep to form the digits.

Split-flap — real font glyphs with a two-phase flip.

7-segment — with the unlit “ghost 8” and an
AM/PM column in 12h mode.

Analogue — independently configurable tick rings and
per-hand style/colour.

7-segment display array — big digits made of small
7-segment displays, after
this project.

The GIFs are the real component: it compiles against desktop LVGL and runs headless, so they are pixel-identical to what the ESP32 draws.
Runs on any ESP32 and any display ESPHome’s LVGL supports. Ready-made configs for an ESP32-S3 devkit and a XIAO ESP32-S3 with 1.8″/1.69″/4.0″ SPI panels are included.
Source and docs: github.com/tuct/esphome-lvgl-clock