Element to render — a landmark wants an aria-label or aria-labelledby.
Also takes the native attributes and event handlers of its element (HTMLAttributes<HTMLElement>).
ref points to its element (HTMLElement).
Accessibility
WCAG target: 2.1 AA
semantic-section-wrapper
Inherits semantics from the as element (defaults to section). When rendered as a landmark, provide aria-label or aria-labelledby for an accessible name.
Usage
import { PixelContainer } from '@pxlkit/ui-kit';
export function Default() {
return (
<PixelContainer>
<p className="text-sm text-retro-muted">Default container — section landmark, xl max-width, lg rhythm.</p>
</PixelContainer>
);
}
Examples
Default
import { PixelContainer } from '@pxlkit/ui-kit';
export function Default() {
return (
<PixelContainer>
<p className="text-sm text-retro-muted">Default container — section landmark, xl max-width, lg rhythm.</p>
</PixelContainer>
);
}
Narrow
import { PixelContainer } from '@pxlkit/ui-kit';
export function Narrow() {
return (
<PixelContainer maxWidth="md" padding="md">
<p className="text-sm text-retro-muted">Narrow container with md rhythm.</p>
</PixelContainer>
);
}
As Main
import { PixelContainer } from '@pxlkit/ui-kit';
export function AsMain() {
return (
<PixelContainer as="main" aria-label="Page content" maxWidth="2xl" padding={{ x: 'lg', y: 'xl' }}>
<p className="text-sm text-retro-muted">Rendered as the main landmark with split padding.</p>
</PixelContainer>
);
}
Prose Width
import { PixelContainer } from '@pxlkit/ui-kit';
export function ProseWidth() {
return (
<PixelContainer maxWidth="prose" padding="sm">
<p className="text-sm text-retro-muted">Prose-width container ideal for long-form reading.</p>
</PixelContainer>
);
}