TGViewer
Будни разработчика Будни разработчика @htmlshit · 14.4K subscribers
Post #3355 3.17K
#фишка дня

Продолжим тему ответов на ваши вопросы на собеседованиях.

Почему ваши? Ну потому что вы их предлагали! Вот тут: https://t.me/htmlshit/3290

Итак, вопрос: как показать спиннер загрузки прямо в кнопке, сохранив размер кнопки и её доступность?

То есть, не делать такое:


‹button>{ isLoading ? <LoadingSpinner/> : "Save" }</button>


Очевидный ответ: абсолютом спиннер сверху навернуть. Но мы же не в 2009 году, в самом деле!

А что, если нам больше одного наслоения надо? А что, если на разных устройствах нужен разный порядок отображения, например, спиннер и текст одновременно? А что, если текст состояния загрузки на самом деле длиннее, чем основной? Мы же не хотим, чтоб интерфейс прыгал.

Когда-то давно мы сделали табло, в котором меняли строки на разных языках: https://t.me/htmlshit/2814

И там как раз применили такую фишку CSS Grid, как стек. Т. е. накладывание блоков друг на друга без изменения их позиционной модели.

Самое время это применить и тут!

Только на сей раз мы воспользуемся именованными зонами грида, вместо grid-area: 1/1 как в прошлом примере.

Итого:

.button {
display: grid;
grid-template-areas: "stack";

.spinner,
.text {
grid-area: stack;
justify-self: center;
}
}


Ну и как-то так вышло: https://codepen.io/alinaki/pen/ogvBMLv

#css #grid
  • 👍 29
  • ❤ 9
More from @htmlshit
  1. Oct 14, 2026Атмосфера HolyJS: ради чего стоит приехать на площадку 23–24 октября в Санкт Петербурге и…
  2. Oct 13, 2026#такое дня Сидим, разрабатываем дизайн систему, следуем WCAG, вычитываем эксплейнеры с htt…
  3. Oct 13, 2026🏁Тестовый собес на Frontend с разработчиком из R-Vision, ex-Сбер 15 октября в 19:00 (МСК)…
  4. Oct 13, 2026#инструмент дня Когда надоело, что ссылки из рабочего Slack открываются в личном профиле C…
  5. Oct 12, 2026#статья дня У vlt.io есть собственный коммерческий реестр npm-пакетов. Казалось бы, зачем…
  6. Oct 11, 2026#дичь дня Лукас Бономи сделал GSS (GPU Style Sheets) — язык, на котором можно создавать по…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →