Content model
Content goes in slots, settings are properties: the content and settings of every component.
Every Neighborhood component separates what it says from how it looks. Content goes into slots: the headlines, copy, calls to action and media. Settings are properties: the variant, surface, alignment and other options. The same split works on every platform, so a Neighborhood section maps the same way into Shopify, Bloomreach, Power Pages or a React site.
Slots and properties
Slots are named places for content. In HTML, you fill a slot by adding a slot attribute to the element that holds the content. The default slot takes content with no slot attribute.
<nbhd-headline-content surface="inverse">
<nbhd-text slot="title" tag="h2" variant="title">Built to last</nbhd-text>
<nbhd-cta slot="cta" href="/warranty">See the warranty</nbhd-cta>
</nbhd-headline-content>
Here, the title and the call to action are content, and surface="inverse" is a setting.
Properties are settings, written as attributes in HTML or as props in React. Most take a fixed set of values, such as primary or secondary.
A few components take lists of content as data instead of slots, such as the options in a Select or the products in a Product Card. Their component pages describe the shape of that data under a Structure heading.
In a CMS
When a component becomes a CMS section or content type, the split carries over:
- Slots become content fields that authors fill in: text fields for eyebrows and titles, rich text for body copy, link fields for calls to action and media fields for images and video.
- Properties become section settings or parameters, usually a dropdown or toggle for each one.
- Repeating content, such as the cards in a Card List, becomes a repeatable group of fields.
Platform setup covers each platform.
All components
Slot and property names link to each component's full reference.
| Component | Content (slots) | Settings (properties) |
|---|---|---|
| Accordion Draft | (default)
|
allow-multiple
|
| Accordion Item Draft | (default), header
|
expanded, icon, heading-level, header
|
| Autosuggest | breadcrumb, suggestions, resultsData: breadcrumbs, products, suggestions
|
surface, search-term, heading, label, cta-label, max-suggestion-lists, max-suggestion-items, max-breadcrumbs, max-products, heading-level, suggestions-announcement, products-announcement, no-results-announcement
|
| Badge | (default), prefix, suffix
|
css-class
|
| Breadcrumb | items, label, css-class, separator, margin-top, margin-bottom, padding-top, padding-bottom, surface
|
|
| Button | (default), prefix, suffix
|
type, variant, aria-label, aria-current, aria-expanded, aria-haspopup, aria-pressed, aria-disabled, css-class, icon-only, disabled
|
| Card | title, media, content, cta
|
css-class, shadow, alignment, surface, reverse, aspect-ratio, zoom, media-inset, layout, aria-label, clickable, href, external
|
| Card List | (default), eyebrow, title, subtitle, content, cta
|
intro-alignment, compact, surface-scope, cta-placement, grid-alignment, size, surface, margin-top, margin-bottom, padding-top, padding-bottom
|
| Carousel Draft | variant, slides-per-view, space-between, hide-navigation, hide-pagination, loop, fade, speed, autoplay, pagination-variant, navigation-variant, navigation-position, fullwidth, keyboard, breakpoints, surface, margin-top, margin-bottom, padding-top, padding-bottom
|
|
| Carousel Item Draft | (default)
|
|
| Checkbox | label, help, error
|
label, value, title, name, form, id, css-class, aria-label, error-text, help-text, invalid, disabled, checked, required
|
| Container | (default)
|
surface
|
| Content Block Draft | eyebrow, title, subtitle, (default)
|
compact, tag, surface, margin-top, margin-bottom, padding-top, padding-bottom
|
| CTA | (default), prefix, suffix
|
href, aria-label, css-class, external, external-label, variant
|
| Dialog Draft | (default), label, footer
|
label, hide-header, open, persistent, width, surface
|
| Filters | Data: filters
|
surface, heading, heading-level, clear-filters-label, max-visible-options, expand-label, collapse-label, total-results, count-style, remove-filter-label, results-announcement
|
| Finish | Data: product
|
href, name, identifier, image, shape, label, active
|
| Flex | (default)
|
surface, split, reverse, justify-content, align-items
|
| Headline Content | eyebrow, title, subtitle, content, cta
|
compact, surface, margin-top, margin-bottom, padding-top, padding-bottom
|
| Hero Split | eyebrow, title, subtitle, content, cta, note, media
|
reverse, shadow, compact, framed, alignment, content-alignment, media-radius, media-radius-pattern, surface, margin-top, margin-bottom, padding-top, padding-bottom
|
| Humongotron | media, logo, eyebrow, title, subtitle, content, cta
|
layout, scroll-indicator, scroll-label, overlay-opacity, alignment, vertical-placement, horizontal-placement, surface, margin-top, margin-bottom, padding-top, padding-bottom
|
| Image | src, alt, css-class, loading, width, height, provider, image-focus, crop
|
|
| Input | label, help, error
|
surface, type, inputmode, spellcheck, placeholder, value, name, label, title, id, css-class, aria-label, error-text, help-text, pattern, maxlength, minlength, max, min, invalid, disabled, required, autofocus, readonly, autocomplete, autocorrect
|
| Jumbotron | logo, eyebrow, title, subtitle, content, cta, media
|
reverse, compact, alignment, vertical-placement, surface, content-surface, margin-top, margin-bottom, padding-top, padding-bottom
|
| Link | (default), prefix, suffix
|
href, aria-label, aria-current, css-class, external, external-label, active
|
| List | title, item
|
divider
|
| Minitron | badge, eyebrow, title, subtitle, content, cta, media
|
reverse, compact, shadow, zoom, alignment, content-surface, surface, margin-top, margin-bottom, padding-top, padding-bottom
|
| Navbar | title, content, logo-main, logo-secondary, links, cta
|
layout, alignment, logo-separator, mobile-hidden, aria-label, shadow, border, sticky, surface, margin-top, margin-bottom, padding-top, padding-bottom
|
| Pagination | surface, margin-top, margin-bottom, padding-top, padding-bottom, max-visible-pages, show-labels, current-page, total-pages, next-label, previous-label, next-aria-label, previous-aria-label, label
|
|
| Pagination Search | Data: sortOptions
|
surface, margin-top, margin-bottom, padding-top, padding-bottom, max-visible-pages, show-labels, current-page, total-pages, next-label, previous-label, label, heading, heading-level, results-announcement, search-term, total-results, selected-sort, sort-label
|
| Product Card | media, media-alternate, media-option-image, title, identifier, price, product-optionData: badges, product
|
css-class, shadow, alignment, surface, reverse, aspect-ratio, zoom, media-inset, layout, aria-label, clickable, href, external, identifier, identifier-label, no-identifier-label
|
| Radio | label, help, error
|
form, id, label, value, title, name, aria-label, css-class, error-text, help-text, invalid, disabled, checked, required
|
| Radio Group | (default), label, help, error
|
label, name, value, aria-label, css-class, help-text, error-text, invalid, required, disabled
|
| Range | label, help, error
|
surface, invalid, disabled, required, readonly, show-value, min, max, step, value, name, label, error-text, help-text, css-class, aria-label
|
| Search | search-value, autofocus, surface, aria-label, landmark-label, clear-label, submit-label, placeholder, autosuggest
|
|
| Select | label, help, errorData: items
|
selected-values, surface, multiple, hide-placeholder, placeholder, max-multiple, name, label, aria-label, error-text, help-text, invalid, required
|
| Spinner | (default), visual
|
size, speed, label
|
| Text | (default)
|
tag, variant, css-class
|
| Upload Draft | label, icon, instructions, help, error, requirementsData: files
|
label, help-text, error-text, invalid, instructions, browse-label, browse-variant, upload-type, accept, multiple, max-files, max-file-size, name, disabled, required, required-label, surface, aria-label, css-class
|
| Video | src, poster, alt, css-class, loop, autoplay, muted, controls, no-a11y
|
|
| Video Player | media, content
|
compact, controls, sd, surface, margin-top, margin-bottom, padding-top, padding-bottom
|
| Visually Hidden Draft | (default)
|
No components match.