CSS Grid
Утилиты для построения двумерных лэйаутов с CSS Grid. Все классы поддерживают адаптивные префиксы.
Включить grid-контекст
Используйте d-grid или d-inline-grid из утилит Display, чтобы активировать grid.
<div class="d-grid grid-cols-3 gap-4">
<div>1</div>
<div>2</div>
<div>3</div>
</div>grid-template-columns
Определяет количество равных колонок на дробных единицах.
grid-cols-1grid-template-columns: repeat(1, minmax(0, 1fr))grid-cols-2grid-template-columns: repeat(2, minmax(0, 1fr))grid-cols-3grid-template-columns: repeat(3, minmax(0, 1fr))grid-cols-4grid-template-columns: repeat(4, minmax(0, 1fr))grid-cols-6grid-template-columns: repeat(6, minmax(0, 1fr))grid-cols-12grid-template-columns: repeat(12, minmax(0, 1fr))grid-cols-nonegrid-template-columns: noneГенерируются классы от 1 до 12.
grid-template-rows
grid-rows-1grid-template-rows: repeat(1, minmax(0, 1fr))grid-rows-2grid-template-rows: repeat(2, minmax(0, 1fr))grid-rows-3grid-template-rows: repeat(3, minmax(0, 1fr))grid-rows-6grid-template-rows: repeat(6, minmax(0, 1fr))grid-rows-nonegrid-template-rows: noneГенерируются классы от 1 до 6.
Растяжение по колонкам (col-span)
Управляет тем, сколько колонок занимает элемент.
col-span-1grid-column: span 1 / span 1col-span-2grid-column: span 2 / span 2col-span-6grid-column: span 6 / span 6col-span-12grid-column: span 12 / span 12col-span-fullgrid-column: 1 / -1<div class="d-grid grid-cols-12 gap-4">
<div class="col-span-8">Основной контент</div>
<div class="col-span-4">Боковая панель</div>
</div>Растяжение по строкам (row-span)
row-span-1grid-row: span 1 / span 1row-span-2grid-row: span 2 / span 2row-span-fullgrid-row: 1 / -1Генерируются классы от 1 до 6.
Позиция по колонкам (col-start / col-end)
Явное размещение элемента по линиям сетки.
col-start-1 … col-start-13grid-column-start: Ncol-end-1 … col-end-13grid-column-end: Ncol-start-autogrid-column-start: autocol-end-autogrid-column-end: autoПозиция по строкам (row-start / row-end)
row-start-1 … row-start-7grid-row-start: Nrow-end-1 … row-end-7grid-row-end: Nrow-start-autogrid-row-start: autorow-end-autogrid-row-end: autogrid-auto-flow
Управляет направлением авто-размещения элементов.
grid-flow-rowgrid-auto-flow: rowgrid-flow-colgrid-auto-flow: columngrid-flow-densegrid-auto-flow: densegrid-flow-row-densegrid-auto-flow: row densegrid-flow-col-densegrid-auto-flow: column densegrid-auto-columns / grid-auto-rows
Размер неявно создаваемых треков.
auto-cols-autogrid-auto-columns: autoauto-cols-mingrid-auto-columns: min-contentauto-cols-maxgrid-auto-columns: max-contentauto-cols-frgrid-auto-columns: minmax(0, 1fr)auto-rows-autogrid-auto-rows: autoauto-rows-mingrid-auto-rows: min-contentauto-rows-maxgrid-auto-rows: max-contentauto-rows-frgrid-auto-rows: minmax(0, 1fr)place-items
Шорткат для align-items + justify-items.
place-items-startstartplace-items-endendplace-items-centercenterplace-items-stretchstretchplace-items-baselinebaselineplace-content
Шорткат для align-content + justify-content.
place-content-startstartplace-content-endendplace-content-centercenterplace-content-stretchstretchplace-content-betweenspace-betweenplace-content-aroundspace-aroundplace-content-evenlyspace-evenlyplace-self
Шорткат для align-self + justify-self отдельного элемента.
place-self-autoautoplace-self-startstartplace-self-endendplace-self-centercenterplace-self-stretchstretchАдаптивные варианты
Все grid-утилиты поддерживают адаптивные префиксы (mobile-first):
<!-- 1 колонка на мобильных → 2 с sm → 3 с md → 4 с lg -->
<div class="d-grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
</div>Адаптивный col-span:
<div class="d-grid grid-cols-12 gap-4">
<!-- полная ширина на мобильных, 8/12 с md -->
<div class="col-span-12 md:col-span-8">Основной</div>
<div class="col-span-12 md:col-span-4">Боковой</div>
</div>Примеры
Dashboard — 12-колоночная сетка:
<div class="d-grid grid-cols-12 gap-4">
<div class="col-span-12 md:col-span-3">Навигация</div>
<div class="col-span-12 md:col-span-6">Контент</div>
<div class="col-span-12 md:col-span-3">Виджеты</div>
</div>Карточки — адаптивная сетка:
<div class="d-grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
<div class="col-span-1 sm:col-span-2 lg:col-span-1">Главная карточка</div>
<div>Карточка</div>
<div>Карточка</div>
</div>Центрирование элемента:
<div class="d-grid grid-cols-3 grid-rows-3 place-items-center" style="height: 300px">
<div class="col-start-2 row-start-2">По центру</div>
</div>Для нестандартных grid templates вроде
grid-template-columns: repeat(5, 120px)добавьте проектное правило черезdefineRuleв@vueland/utils-jit, например utilitygrid-cols-[...]илиgrid-template-[...].
