Skip to content
Protocore Design Systemv1.6.9

/// Layout

EnvStrip

The persistent environment band — a sticky full-width dev/staging/prod chrome that colours itself from the env token layer.

import { EnvStrip } from "@protocore/pds";
View as Markdown

Basics

Pass an env and the strip stamps data-env locally, so --pds-color-env / --pds-color-env-fg resolve without any surrounding provider. Sticky is disabled here so it sits inline in the demo.

DEV

Environments

dev, staging, and prod each resolve their own colour from the [data-env] token layer — no per-environment branching in your code.

DEV
STAGING
PROD

Loud form

Supplying a message grows the band into its loud form — for the high-stakes wayfinding you want when someone is pointed at production.

You are operating against PRODUCTION — changes are livePROD

When to use it

EnvStrip is the single most important wayfinding element in an operator UI: a persistent, sticky band that makes the current environment impossible to miss. Mount one at the very top of any console that can target more than one environment — AppShell has a first-class env slot that renders it above the top bar. Use its loud message form for prod (and risky staging) so intent is unmistakable. It is the page-level chrome; for the inline, in-context stamp of an environment (in a table cell, next to a resource name) use EnvBadge, which shares the same env token layer.

Usage

Do

  • Mount one EnvStrip at the top of any multi-environment console.
  • Use the loud message form for prod so the stakes read at a glance.
  • Let AppShell's env slot place it above the top bar.

Don't

  • Use EnvStrip inline inside a table or next to a name — that is EnvBadge.
  • Hardcode colours per environment; the [data-env] token layer resolves them.
  • Show more than one EnvStrip on a page — it is singular page chrome.

Accessibility

  • The band is a live region: `role="status"` with `aria-live="polite"`, so a change of environment is announced.
  • Colour is reinforced by the always-present text label, so the environment is never conveyed by colour alone.
  • The leading status dot is decorative (`aria-hidden`).

EnvStrip props

PropTypeDefaultDescription
classNamestring
dotbooleantrueShow a leading status dot (pulses under motion). Default true.
envenumEnvironment to display. Stamps `data-env` locally so the color resolves without a provider. When omitted, inherits an ancestor's `data-env`.
labelReactNodeThe band label (defaults to the uppercased environment name).
messageReactNodeA longer wayfinding message shown on wider viewports (falls back to `label` on narrow screens). Its presence also grows the band.
stickybooleantruePin to the top with sticky positioning at the sticky z-layer. Default true.
styleCSSProperties

Related

  • EnvBadgeA solid deployment-environment stamp — dev/staging/prod — in mono uppercase, colour-coded per environment.
  • AppShellThe application frame — an optional env strip and top bar over a sidebar + main body row, with an optional footer and a responsive mobile drawer.
  • TopBarA sticky, blurred top navigation bar with brand, mono uppercase links, and an actions cluster.
  • BannerA full-width tinted notice band for page- or section-level status, with optional action and dismiss.