1 звезда на GitHub = 1 новый компонент.

Поставить звезду
Макеты и Сетки layoutcontainergrid

Centered Container

Центрированный контейнер с ограничением максимальной ширины и отступами.

Живое превью

Centered content within max-width constraint

Использование

Скопируйте и вставьте этот код на вашу страницу Astro:

astro
---
import { CenteredContainer } from 'astro-component-kit';
---

<CenteredContainer maxWidth="1200px">Content</CenteredContainer>
--- import { CenteredContainer } from 'astro-component-kit'; --- <CenteredContainer maxWidth="1200px">Content</CenteredContainer>

Ручная установка

Если вы не используете пакет npm, создайте файл и вставьте следующий код: src/components/lib/CenteredContainer.astro:

astro
---
/**
 * CenteredContainer — A responsive centered container with configurable max-width.
 *
 * Provides consistent horizontal padding and centers content within a max-width constraint.
 * Uses the global container token for consistency across the library.
 *
 * @param {string} maxWidth - Maximum width of the container. Default: '1200px'.
 * @param {string} padding - Horizontal padding on each side. Default: '1.5rem'.
 * @param {string} className - Additional CSS class to apply.
 *
 * @example
 * ```astro
 * <CenteredContainer maxWidth="900px">
 *   <p>Centered content</p>
 * </CenteredContainer>
 * ```
 */
interface Props {
  maxWidth?: string;
  padding?: string;
  className?: string;
}

const { maxWidth = '1200px', padding = '1.5rem', className = '' } = Astro.props;
---

<div class="cq-centered-container-cq">
<div class:list={['centered-container', className]} style={`--container-max: ${maxWidth}; --container-pad: ${padding}`}>
  <slot />
</div>
</div>
<style>
  .cq-centered-container-cq { container-type: inline-size; }
  .centered-container {
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding-left: var(--container-pad);
    padding-right: var(--container-pad);
  }

  @container (max-width: 640px) {
    .centered-container {
      padding-left: 1rem;
      padding-right: 1rem;
    }
  }
</style>
--- /** * CenteredContainer — A responsive centered container with configurable max-width. * * Provides consistent horizontal padding and centers content within a max-width constraint. * Uses the global container token for consistency across the library. * * @param {string} maxWidth - Maximum width of the container. Default: '1200px'. * @param {string} padding - Horizontal padding on each side. Default: '1.5rem'. * @param {string} className - Additional CSS class to apply. * * @example * ```astro * <CenteredContainer maxWidth="900px"> * <p>Centered content</p> * </CenteredContainer> * ``` */ interface Props { maxWidth?: string; padding?: string; className?: string; } const { maxWidth = '1200px', padding = '1.5rem', className = '' } = Astro.props; --- <div class="cq-centered-container-cq"> <div class:list={['centered-container', className]} style={`--container-max: ${maxWidth}; --container-pad: ${padding}`}> <slot /> </div> </div> <style> .cq-centered-container-cq { container-type: inline-size; } .centered-container { width: 100%; max-width: var(--container-max); margin: 0 auto; padding-left: var(--container-pad); padding-right: var(--container-pad); } @container (max-width: 640px) { .centered-container { padding-left: 1rem; padding-right: 1rem; } } </style>

Краткая информация

Категория
Макеты и Сетки
Имя файла
CenteredContainer.astro
Зависимости
Нет — чистый Astro + CSS
Теги
layoutcontainergrid