А где логика?

Правильный способ писать CSS

А где логика?

Правильный способ писать CSS

Алёна Батицкая

U•ᴥ•U

Дока

Алёна Батицкая

Твиттер @ABatickaya

Всё изменилось

Логические свойства в CSS

Физические стороны

Каждый человек имеет право на свободу убеждений и на свободное выражение их; это право включает свободу беспрепятственно придерживаться своих убеждений и свободу искать, получать и распространять информацию и идеи любыми средствами и независимо от государственных границ.

Статистика

Забудьте всё

Гибкость веба

ОСИ!

Блочная и строчная оси

Размеры

+ min/max

                .selector {
                  width: 50%;
                  min-width: 150px;
                  max-width: 800px;
                  height: 50%;
                  min-height: 150px;
                  max-height: 800px;
                }
            
→
                .selector {
                  inline-size: 50%;
                  min-inline-size: 150px;
                  max-inline-size: 800px;
                  block-size: 50%;
                  min-block-size: 150px;
                  max-block-size: 800px;
                }
            
→
                .selector {
                  inline-size: clamp(150px, 50%, 800px);
                  block-size: clamp(150px, 50%, 800px);
                }
            
→
                .selector {
                  inline-size: clamp(150px, 50%, 800px);
                  aspect-ratio: 1/1;
                }
            

Поддержка

Отступы и поля

padding-top/margin-top padding-block-start/margin-block-start
padding-right/margin-right padding-inline-end/margin-inline-end
padding-bottom/margin-bottom padding-block-end/margin-block-end
padding-left/margin-left padding-inline-start/margin-inline-start
padding-inline/margin-inline
padding-block/margin-block
                .block {
                    width: 1200px;
                    margin: 0 auto;
                }
            
→
                .block {
                    inline-size: 1200px;
                    margin-inline: auto;
                }
            

Рамки

border-start-start-raduis верхний левый угол
border-start-end-radius верхний правый угол
border-end-end-radius нижний правый угол
border-end-start-radius нижний левый угол

Позиционирование

                .element::after {
                    content: "";
                    position: absolute;
                    top: 0;
                    left: 0;
                    right: 0;
                    bottom: 0;
                }
            
→
                .block {
                    content: "";
                    position: absolute;
                    inset: 0;
                }
            

Единицы измерения

vw → vi (viewport inline)

vh → vb (viewport block)

Оффтоп

dvb, dvi, dvh, dvw, dvmax, dvmin, lvh, svh, lvw, svw, lvb, svb, lvi, svi…

Кого ещё зацепило?

Чего ждать?

Ишьюс про логические свойства в репозитории W3C

«Для меня не актуально…»

Дока на арабском

Ваша жизнь не будет прежней

В проде: линтер

stylelint-use-logical

Материалы

Спасибо!