Не совсем. Я как то пытался повторить такой вот эффект. Нормально не получилось. Собственно у ТГ это тоже только в апах, в вебе нет. Ну и наверняка куча других есть кейсов.

Нажмите, чтобы раскрыть...
Первое, что пришло в голову:
Создать blank-копию интерфейса (пустышку), наложить её поверх существующего, задать ему border-radius 50% и после чего от центра кнопки увеличивать размер объекта, пока не отобразится весь, после чего заменить переменные в css и удалить blank сверху
Сгенерировать blank-канвас интерфейса, наложить поверх старого (текст поместить на слой выше canvas), отрисовать его таким же образом - с кружка и расширять, пока не отобразится весь, следом то же самое - заменяешь переменные с цветами в css и удаляешь blank
100% есть варианты ещё проще и быстрее (вспоминаем filter), но это надо потратить минут 30, а мне лень
Не совсем. Я как то пытался повторить такой вот эффект. Нормально не получилось. Собственно у ТГ это тоже только в апах, в вебе нет. Ну и наверняка куча других есть кейсов.

Нажмите, чтобы раскрыть...
Если прям вообще не вдаваться в подробности (при условии, что тёмная тема у нас не задаётся какими-то определёнными цветами, а просто грубая инверсия), то можно воспользоваться методом наложения цветов друг на друга и опять же там подобная отрисовка не представляет проблем
https://css-live.ru/tricks/ukroshhaem-rezhimy-nalozheniya-difference-i-exclusion.html