Skip to content

ShellScreen

Full-page layout component with a decorative grid background for standalone pages like 404, login, maintenance, or password recovery screens. Centers content vertically and horizontally with a radially-fading grid pattern.

Also known as: full-page layout, error page, auth page, status page

View in Storybook

When to use

  • Building standalone pages: 404, 500, maintenance, coming soon.
  • Login, registration, and password recovery screens.
  • Any page that needs a centered card layout with visual emphasis.

Import

tsx
import { ShellScreen } from '@vacano/ui'

Usage

tsx
<ShellScreen
  icon={<SearchIcon />}
  title="Page not found"
  description="Sorry, the page you are looking for does not exist."
>
  <Button>Go to homepage</Button>
</ShellScreen>
tsx
<ShellScreen
  logo={<img src="/logo.svg" alt="Logo" />}
  title="Welcome back"
  description="Enter your credentials to access your account."
>
  <Input label="Email" placeholder="Enter your email" />
  <Input label="Password" placeholder="Enter your password" type="password" />
  <Button style={{ width: '100%' }}>Sign in</Button>
</ShellScreen>
tsx
<ShellScreen
  logo={<img src="/logo.svg" alt="Logo" />}
  title="Page not found"
  description="Sorry, the page you are looking for doesn't exist."
  footer="Need help? Contact support"
>
  <Button>Back to homepage</Button>
</ShellScreen>

Custom grid size

The gridSize prop controls the size of the background grid cells in pixels (default 64).

tsx
<ShellScreen
  icon={<LockIcon />}
  title="Under maintenance"
  description="We'll be back shortly."
  gridSize={48}
/>

Props

PropTypeDefaultDescription
logoReactNode-Logo or brand element displayed above the icon
iconReactNode-Icon displayed in a bordered box
titleReactNode-Main heading text
descriptionReactNode-Supporting text below the title
childrenReactNode-Content area (forms, buttons, etc.)
footerReactNode-Footer text or links
gridSizenumber64Background grid cell size in pixels
classNamestring-CSS class name
classnamesShellScreenClassNames-Custom class names for sub-elements

ShellScreenClassNames

KeyDescription
gridBackground grid overlay
headerHeader section (title + description)
titleTitle heading
descriptionDescription text
contentContent container
footerFooter container
  • EmptyState - Empty content placeholder with concentric rings
  • Panel - Content container with header

Released under the MIT License.