Skip to main content
Neighborhood Design System v5.0.0-rc.2

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, results
Data: 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-option
Data: 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, error
Data: 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, requirements
Data: 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)
Esc
↑ ↓ to move↵ to open