Макеты и Сетки 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