Помимо отдельных логических свойств, у некоторых старых физических свойств появились новые значения, которые ведут себя по-логическому. Идея везде та же: вместо left/rightstart/end.

float и clear

Раньше выбор был только между left, right и none. Появились значения inline-start и inline-end, которые работают по направлению строки:

.figure-quote {
  float: inline-start; /* налево в LTR, направо в RTL */
  margin-inline-end: 16px;
  inline-size: 240px;
}

В вертикальном письме float: inline-start станет «к началу строки» — то есть к верху или низу контейнера в зависимости от writing-mode. Физический float: left такого не умеет.

У clear логика та же: clear: inline-start, clear: inline-end. Значение both по-прежнему сбрасывает обе стороны и в дополнительной логической версии не нуждается.

text-align

В дополнение к left, right, center, justify добавили логические start и end:

.author { text-align: end; }   /* «к концу строки» */
.intro  { text-align: start; } /* «к началу строки» */

На LTR-странице text-align: end прижимает текст вправо; в RTL — влево. Это поведение по умолчанию, кстати, у обычного text-align без значения, но раньше его нельзя было задать явно — значения left/right игнорировали направление документа. Теперь можно.

resize

У ресайза появились inline и block:

textarea {
  resize: inline;  /* можно растягивать вдоль строки, по высоте — нет */
}

В горизонтальной вёрстке resize: inline ведёт себя как resize: horizontal, в вертикальной — как vertical. Полезно, когда хочется ограничить пользователя одной осью независимо от ориентации.

overflow и overscroll-behavior

Логические аналоги overflow-x/-yoverflow-inline и overflow-block. У overscroll-behavioroverscroll-behavior-inline и overscroll-behavior-block.

Поддержка у этой пары пока хуже, чем у остальных логических свойств, и в продакшене встречается редко. Если нужна максимальная совместимость со старыми браузерами — пока пишем физические overflow-x/-y; если проект явно нацелен на современные браузеры — можно использовать логические.

Парный паттерн для совместимости

Если вы переходите на логические свойства, но переживаете за совсем старые браузеры, есть удобный паттерн — объявить и физическое, и логическое одно за другим:

blockquote {
  border-left: 4px solid crimson;          /* увидят старые движки */
  border-inline-start: 4px solid crimson;  /* увидят новые, и оно «победит» */
}

Почему второе побеждает первое? Это не магия «логические лучше физических». У обоих свойств одинаковая специфичность, и в каскаде CSS выигрывает то, что объявлено позже. Поэтому правило простое: сначала физическое, потом логическое.

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