{"id":14293,"url":"\/distributions\/14293\/click?bit=1&hash=05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","hash":"05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","title":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u043d\u0438 \u043a\u043e\u043f\u0435\u0439\u043a\u0438","buttonText":"","imageUuid":""}

Как правильно показывать тени

Речь идёт о появлении тени при наведении курсора.

В реальности чем ближе объект к поверхности, на которую он отбрасывает тень, тем тень четче.

В большинстве случаев появление тени в веб интерфейсах у объекта при наведении курсора происходит путем проявления тени: она появляется через прозрачность. С реальностью это имеет мало общего. Но мы же любим заморочиться 😁

На самом деле, тень у объекта есть всегда. Просто она меняется в зависимости от удаленности объекта от поверхности. И это не сложно реализуется в вебе.

На видео ниже показано появление тени. Слева — как обычно делают. Справа — если заморочиться. Сделано специально медленно, чтобы нагляднее продемонстрировать разницу.

Слева: появление тени через прозрачность без её изменения. Справа: изменение тени.

Код CSS объекта с простой тенью (слева):

div { transition: box-shadow 3000ms; } div:hover { box-shadow: 0 5vw 10vh rgba(0, 0, 0, .2); }

Код CSS объекта с правильной тенью (справа):

div { transition: box-shadow 3000ms; box-shadow: 0 0 0 rgba(0, 0, 0, .2); } div:hover { box-shadow: 0 5vw 10vh rgba(0, 0, 0, .2); }

Разница всего лишь в одной строке, которая описывает тень у объекта до наведения курсора:

box-shadow: 0 0 0 rgba(0, 0, 0, .2);

Если тень описана до наведения курсора, то переход будет уже не из ничего в определенное состояние (через прозрачность), а из одного состояния в другое (через изменение параметров тени).

Вариант с правильной тенью можно потыкать самостоятельно:

На пользовательский опыт это не влияет ровным счетом никак, никто не будет обращать внимание на такие детали. Но при прочих равных, в мелочах всегда хочется быть лучшим.

0
3 комментария
Олег Толочко

В google material design интереснее покопаться - там тень состоит из 3 отдельных теней, каждая из которых меняется при наведению - что-то типа общей тени, тени объекта от света, еще чего-то… крч интересно

Ответить
Развернуть ветку
Никита Пономарев

одна строка в изменении кода , а такая разница

Ответить
Развернуть ветку
LOGOFABRIKA
Ответить
Развернуть ветку
0 комментариев
Раскрывать всегда