Well

A Well is a content container that displays non-editable content separate from other content on the screen. Often this is used to display preformatted text, such as code/markup examples on a documentation page.

installyarn add @react-spectrum/well
version3.0.0-rc.1
usageimport {Well} from '@react-spectrum/well'

Example#


<Well>Better a little which is well done, than a great deal imperfectly.</Well>
Better a little which is well done, than a great deal imperfectly.

Content#


Wells can have children. They can be nested.

<Well>Well</Well>

<Well>Well <Well>oh well.</Well></Well>
Well
Well
oh well.

Internationalization#

In order to internationalize a well, a localized string should be passed to the children prop.

Accessibility#

By default, the visual separation of a Well is not conveyed to assistive technologies. As such it should be used where this separation makes no difference in understanding the content.

However, if the Well does convey semantic meaning then a role must be specified and, if appropriate, labeled using either aria-label or aria-labelledby.

<Well role="region" aria-labelledby="wellLabel">
    <Heading id="wellLabel" variant="subtitle1">Shipping Address</Heading>
    <p>601 Townsend Street<br /> San Francisco, CA 94103</p>
</Well>

Shipping Address

601 Townsend Street
San Francisco, CA 94103

Props#


NameTypeDefaultDescription
childrenReactNode
UNSAFE_classNamestring
UNSAFE_styleCSSProperties
Layout
NameTypeDefaultDescription
flexstringnumberboolean
flexGrownumber
flexShrinknumber
flexBasisnumberstring
alignSelf'auto' | 'normal' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'center' | 'stretch'
justifySelf'auto' | 'normal' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'center' | 'left' | 'right' | 'stretch'
flexOrdernumber
gridAreastring
gridColumnstring
gridRowstring
gridColumnStartstring
gridColumnEndstring
gridRowStartstring
gridRowEndstring
slotstring
Spacing
NameTypeDefaultDescription
margin
marginTop
marginLeft
marginRight
marginBottom
marginStart
marginEnd
marginX
marginY
Sizing
NameTypeDefaultDescription
width
minWidth
maxWidth
height
minHeight
maxHeight
Positioning
NameTypeDefaultDescription
position'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'
top
bottom
left
right
start
end
zIndexnumber
isHiddenboolean
Accessibility
NameTypeDefaultDescription
rolestring
idstring
tabIndexnumber
aria-labelstringDefines a string value that labels the current element.
aria-labelledbystringIdentifies the element (or elements) that labels the current element.
aria-describedbystringIdentifies the element (or elements) that describes the object.
aria-controlsstringIdentifies the element (or elements) whose contents or presence are controlled by the current element.
aria-ownsstring

Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship between DOM elements where the DOM hierarchy cannot be used to represent the relationship.

aria-hiddenboolean'false''true'Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.