sheengemologic ui
All components

DetailsPanel

One retained detail-content owner with docked, accessible-resizable, and modal Sheet presentations.@gemologic/sheen-patterns · application

Playground

<ThemeProvider><DetailsPanel panelId="order-42" title="Order 42" open onOpenChange={() => {}} resizable presentation="docked"><p>Accepted detail</p></DetailsPanel></ThemeProvider>

Variant matrix

Docked inspector
presentation: docked
presentation: sheet

Anatomy

Package
@gemologic/sheen-patterns
Source
packages/patterns/src/DetailsPanel.tsx
Tokens
  • --sheen-color-bg-raised
  • --sheen-color-border-control
  • --sheen-color-focus-ring

Accessibility

Role: complementary, dialog, separatorKeyboard: Tab, Shift+Tab, Escape, ArrowLeft, ArrowRight, Home, End

Do

  • Keep panelId URL-backed or controlled and pass server-resolved presentation inputs when rendering standalone.

Do not

  • Do not render separate desktop and mobile copies of the content.

Generated props

NameTypeDefaultDescription
panelId *stringStable app or URL-backed identity for the accepted detail record.
title *stringVisible panel heading and accessible name.
open *booleanApp-owned visibility. Closed content remains mounted and inert while the model exists.
presentation"docked" | "sheet"dockedDeterministic docked or Sheet behavior. AdminApp changes this without replacing content.
onOpenChange *(open: boolean) => voidVisibility proposal from close, backdrop, or Escape.
returnFocus() => HTMLElement | undefinedOptional surviving focus origin used when closing.
resizablebooleanfalseExpose a pointer and keyboard separator in docked presentation.
widthnumberControlled width in CSS pixels.
defaultWidthnumber360Initial uncontrolled width in CSS pixels.
minWidthnumber280Minimum accepted width in CSS pixels.
maxWidthnumber640Maximum accepted width in CSS pixels.
onWidthChange(width: number) => voidAccepted resize proposal for app persistence or controlled state.
closeLabelstringClose detailsLocalized close-control and backdrop label.
children *JSX.ElementThe single accepted details content owner, never duplicated between presentations.
Native Solid/HTML attributes remain available and are omitted from this authored-prop view.