fit-content работает так — если родительский элемент может предоставить текущему элементу значение ширины больше чем max-content, то fit-content = max-content.
Используйте Critical Path CSS Generator: penthouse или critical. Их принцип работы — запустить сайт в клиентской среде (headless browser) и выбрать стили необходимые только для первого экрана. Стили для нескольких страниц (различных шаблонов) можно склеить в один файл. Отмечу, что рендерить стили стоит на нескольких разрешениях — для десктопов и мобильных, а также проверить наличие стилей состояний и модальных окон — подключив только сгенерированный critical css.
Если я правильно поняла, вопрос о состоянии левого блока во время проигрывания видео. Тогда, можно проиграть видео в модальном окне (на мобильных это обычно удобней всего, т.к. при просмотре можно сменить ориентацию на горизонтальную, а блок с видео останется в фокусе), либо не смещая имеющихся координат позиционировать блок видео самым верхним слоем, а под ним сделать полупрозрачный оверлей — для удобства просмотра ролика. Если есть возможность, можно уточнить у дизайнера задуманную логику поведения элемента.
Это фиксированный блок, логика работы такая: сделать блок в сайдбаре – фиксированным (плавающим). Чтобы он прилипал только в тот момент, когда пользователь доскроллит до него. Блок должен «отлипать», доходя до футера (т.е. не перекрывать его). На tproger.ru сделано стилями position: fixed (см. скрин), но присваиваются они через js:
open sans — конвертируйте и подключите как woff2 и woff — отберите 2-3 фактически
используемых начертания, у которых возьмите только нужные charset (например, cyrillic)).
Оптимизируйте загрузку и рендеринг шрифтов:
Используйте свойство font-display (также можно сделать фоллебек из визуально схожих системных шрифтов)
Приоритезируйте загрузку шрифтов "из первого экрана", например:
Можно использовать множественный фон background-image: url(img.png), url(img.png);— изображения нужно перечислять в порядке наложения, выше будет то изображение, которое находится раньше в списке. И позиционируем каждое в отдельности через background-position.
Для множества иконок обычно использую спрайты во внешнем файле. Преимущество: кэшируется и отчасти управляемо из стилей, не мусорит разметку. Спрайт генерируется галп-таском из папки с отдельными svg. Для IE полифилл.
Красную часть блока кот. реагирует на hover (правый нижний угол) можно очертить с помощью clip-path в % и по наведению на нее показывать "скрытое содержимое", пример:
Другой вариант — рассчитывать "треугольную половину экрана" на js, чтоб двумя треугольниками поровну разделить экран CSS-трансформаций не достаточно, т.к. ширина и высота экранов вариативная нужно будет вычислять размер гипотенузы и угол ее наклона для каждого конкретного случая, пример.
Тег picture не стилизуют и не дают ему классы потому, что в некоторых браузерах стилизация отвалится. Если нужны старые браузеры, IE11 или Opera Mini — стоит стилизовать <img> или блок-обертку.
Пропишите для .wrapper{ align-items: flex-start; } и для .sticky{ position: fixed; }
Можно еще для .left { overflow-y: auto; }
Так происходит от того, что по умолчанию, флекс контейнер растягивает обе колонки на одинаковую высоту.