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

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

Absolute Center Box

Точно центрированный блок по осям экрана с ограничением ширины.

Живое превью

Absolute Center Box

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

Скопируйте и вставьте этот код в ваш React-компонент:

tsx
import { CenterFixedBox } from 'react-component-kit-ui/layout';

<CenterFixedBox>Content</CenterFixedBox>

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

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

CenterFixedBox.tsx
'use client';

import type { ReactNode } from 'react';
import './CenterFixedBox.css';

/**
 * CenterFixedBox — Absolute center box helper component.
 */
export interface CenterFixedBoxProps {
  className?: string;
  children?: ReactNode;
}

export function CenterFixedBox({ className = '',
  children
}: CenterFixedBoxProps) {
  return (
    <>
      <div className={`abs-center-container ${className}`} data-rk-bc4cce="">
        <div className="abs-center" data-rk-bc4cce="">
          {children ?? (<>
            <div className="abs-card" data-rk-bc4cce="">
              <h4 data-rk-bc4cce="">Centered Content</h4>
              <p data-rk-bc4cce="">Centered cleanly in viewport or parent container.</p>
            </div>
          </>)}
        </div>
      </div>
    </>
  );
}

export default CenterFixedBox;
CenterFixedBox.css
/* CenterFixedBox — ported from astro-component-kit (layout/CenterFixedBox.astro) */

.abs-center-container:where([data-rk-bc4cce]) {
  position: relative;
  width: 100%;
  min-height: 200px;
  background: rgba(0, 0, 0, 0.2);
  border-radius: var(--r-lg, 12px);
  overflow: hidden;
  border: 1px dashed rgb(var(--ink-rgb, 255 255 255) / 0.15);
}
.abs-center:where([data-rk-bc4cce]) {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: max-content;
}
.abs-card:where([data-rk-bc4cce]) {
  padding: 1.25rem 2rem;
  background: rgba(20, 20, 20, 0.85);
  border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
  border-radius: 12px;
  text-align: center;
}
.abs-card:where([data-rk-bc4cce]) h4:where([data-rk-bc4cce]) {
  margin: 0 0 0.25rem;
  color: #fff;
}
.abs-card:where([data-rk-bc4cce]) p:where([data-rk-bc4cce]) {
  margin: 0;
  font-size: 0.85rem;
  color: #94a3b8;
}

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

Категория
Макеты и Сетки
Имя файла
CenterFixedBox.tsx
Зависимости
Нет — чистый React + CSS
Теги
layoututilityabsolute