Список Live Templates которые я активно использую вместе с Emmet.
Чтобы увеличить скорость и снизить количество опечаток.
# BEM block based on file name.
# Abbreviation: "--"
# BEM_BLOCK: regularExpression(fileNameWithoutExtension(), "_", "")
--$BEM_BLOCK$
# BEM block based on file name.
# Abbreviation: "."
# BEM_BLOCK: regularExpression(fileNameWithoutExtension(), "_", "")
.$BEM_BLOCK$
# Field class name.
# Abbreviation: ".fn"
.field--name-field-
# After with content and display.
# Abbreviation: "::after"
::after{
content: '';
display: block;$SELECTION$
}
# Before with content and display.
# Abbreviation: "::before"
::before{
content: '';
display: block;$SELECTION$
}
# Abbreviation: ":notlast"
:not(:last-child) {$SELECTION$}
# Display grid.
# Abbreviation: "dg".
display: grid;
# Wide container.
# Abbreviation: "wc".
$SELECTION$
top: 0;
bottom: 0;
left: 50%;
margin-left: -50vw;
width: 100vw;
        
          
  В flexbox отсутствует gap (расстояние между элементами).
Решение - для элементов использовать margin-top вместо margin-bottom.
Тогда можно без труда исключить отступ у первых элементов зная количество колонок.
А также исключить отступ справа у элементов последней колонки.
.parent {
  display: flex;
  flex-wrap: wrap;
  --gap: 20px;
}
.child {
  /* ширина колонки 1/4. */
  flex: 0 1 calc(25% - var(--gap)*3/4);
}
/* gap сверху начинается со второй строки (5 элемент). */
.child:nth-child(n+5) {
  margin-top: var(--gap);
}
/* gap с правой стороны присутствует везде кроме 4 колонки. */
.child:not(:nth-child(4n)) {
  margin-right: var(--gap);
}
        
          
  Раньше для оформления элементов приходилось использовать дополнительные обёртки.
Теперь если на input положить appearance: none; внезапно появляется возможность использовать псевдо-элементы (::after, ::before).
input[type='checkbox']::after,
input[type='radio']::after {
  content: '';
  display: block;
  left: 0;
  top: 0;
  position: absolute;
}
        
          
  Замечательное свойство pointer-events, которое можно случайно упустить из виду.
Позволяет делать декоративные элементы, которые не должны реагировать на события мышки (клики, наведение и тд).
.shadow {
  /* Элемент не реагирует на мышку, как тень. */
  pointer-events: none;
}
        
          
  Наследует цвет от свойства color.
a {
  text-decoration: underline;
  color: red;
  /* Красная полоска. */
  border-bottom: 1px dashed;
}
        
          
  Если написать z-index: -1; элемент уйдёт ниже родителя вплоть до html.
Но если на родителя добавить z-index: 0; тогда дочерний элемент ведёт себя, как фон родителя.
z-index не работает без использования position отличного от static.
.parent {
  position: relative;
  /* Останавливает элементы с отрицательным z-index. */
  z-index: 0;
}
.parent .background {
  position: absolute;
  /* Я фон. */
  z-index: -1;
}