Skip to content
zedkit
@zedtech/zedkit-ui

Container

Named container widths and edge-to-edge section bands from the layout token scale. `query` makes the container a sizing slot for adaptive components.

alpha@zedtech/zedkit-ui

Wraps: class-variance-authority

Narrow — forms and focused flows.

Reading — long-form text measure.

Default — standard page shell.

Wide — landing sections on large viewports.

Bleed band

Background runs edge to edge; content stays capped.

Band content.

View props table
Who is it for?
Developers building marketing and docs pages with capped measures and full-bleed bands.
When should I use it?
For page shells and banded landing sections instead of hand-written max-width, gutter and section-padding strings. Add `query` where descendants should size to their allocated space, not the viewport.
When should I pick something else?
For app chrome with sidebars — use the app shell; for component-internal widths — use the spacing scale.

Use it

Simple
import { Container, Section } from "@zedtech/zedkit-ui";
<Section bleed tone="muted" spacing="lg" title="Pricing" description="What each plan includes.">...</Section>
<Container width="wide">...</Container>

Kit not installed yet?

This ships on npm only; there is no copy-source brick for it.

You get
Every component from one import, with the theme tokens included. Updates arrive with your package manager.
You need
  • React 19 and Tailwind CSS 4, for example a Next.js app created with the Tailwind option.
  1. Install

    Terminal
    pnpm add @zedtech/zedkit-ui @fontsource-variable/inter @fontsource-variable/space-grotesk
  2. Load the styles

    Tailwind does not scan node_modules, so the @source line points it at the kit's class names. The path is relative to this file.

    src/app/globals.cssReplace the contents
    @import "tailwindcss";
    @import "@zedtech/zedkit-ui/styles.css";
    @source "../../node_modules/@zedtech/zedkit-ui/src/**/*.{ts,tsx}";
    @source not "../../node_modules/@zedtech/zedkit-ui/src/**/*.test.*";
    
  3. Pick a look

    Set data-identity="glass" on <html> so the finished app matches the site. Fresh app: replace src/app/layout.tsx. Existing app: merge, and keep ThemeProvider and other providers.

    src/app/layout.tsxReplace the contents
    import "./globals.css";
    import "./fonts";
    
    export default function RootLayout({ children }: { children: React.ReactNode }) {
      return (
        <html lang="en" data-identity="glass">
          <body>{children}</body>
        </html>
      );
    }
    
  4. Load the fonts

    The Glass look uses Inter and Space Grotesk; these imports self-host them.

    src/app/fonts.tsCreate the file
    import "@fontsource-variable/inter";
    import "@fontsource-variable/space-grotesk";
    
  5. Import and render

    src/app/page.tsxReplace the contents
    import { Container, Section } from "@zedtech/zedkit-ui";
    
    export default function Page() {
      return (
        <main className="px-page-gutter py-section-sm">
          <Section bleed tone="muted" spacing="lg" title="Pricing" description="What each plan includes.">...</Section>
          <Container width="wide">...</Container>
        </main>
      );
    }
    

Package version 2.0.1.

Props

Prop

Type

Show inherited HTML attributes

Standard attributes from the underlying element. See MDN.

Prop

Type

Accessibility

Bleed sections keep the heading outline inside the capped container; do not nest landmarks inside the band. A string title names the <section> (aria-label); a description still renders when there is no title.

On this page