generated: '2026-08-11' method: searched source: https://cubbystorage.github.io/docs/storefront-css/ description: >- Cubby ships an embeddable client-side component library — the Cubby Storefront components — built as Web Components with Lit and distributed as a single ES module from the company CDN. These are the rental storefront: facility listing, unit search, pricing cards and a complete embedded checkout that takes payment. They are theming-documented at a genuinely detailed level (a full CSS Shadow Parts reference plus 19 global CSS custom properties), which is a stronger developer surface than most of the REST API carries. loader: url: https://cdn.cubbystorage.com/components/latest tag: '' module_type: ES module framework: Lit encapsulation: shadow DOM auth: mechanism: data-api-key attribute on the script tag key: >- "This is the same API key used for the Storefront API endpoints above." A Storefront-role key is therefore published in page HTML by design — the role separation described in authentication/cubby-authentication.yml is what contains the blast radius. versioning: unpinned; see packages/cubby-packages.yml families: - family: Storefront components: - tag: cubby-checkout description: >- Complete embeddable checkout flow for a storefront. Placed anywhere in page HTML. attributes: - name: pricing-groups type: string required: true description: >- The ID of the pricing group to display, as returned by POST /v1/storefront/pricing-groups/search. "Only one pricing group is supported at this time." - name: customer-name type: string required: false description: pre-populates the customer name field - name: customer-email type: string required: false description: pre-populates the customer email field - name: customer-phone type: string required: false description: pre-populates the customer phone field - tag: cubby-facility description: Facility view rendering pricing group cards and tabs; the primary storefront surface. - tag: cubby-facility-info description: Facility information panel. - tag: cubby-portfolio description: Multi-facility portfolio view. - tag: cubby-search description: Unit / facility search with result list. - tag: cubby-contact-form description: Lead capture contact form. theming: mechanism: CSS Shadow Parts description: >- "Parts are the only supported way to style the internals of these components. Anything not listed here is an implementation detail and may change without notice." selector: '::part()' pseudo_class_support: true forwarded_parts: supported: true mechanism: exportparts description: >- Inner components' parts are forwarded up to the outer element, so pricing group card parts and pricing tier parts are styled on the top-level tag. css_variables: count: 19 prefix: --cubby- fallback_pattern: 'var(--cubby-primary-color, )' precedence: a value set by the host page wins over the theme configured in the storefront builder groups: colors: - --cubby-primary-color - --cubby-on-primary-color - --cubby-secondary-color - --cubby-on-secondary-color - --cubby-surface-color - --cubby-on-surface-color - --cubby-success-color - --cubby-error-color - --cubby-shadow-color - --cubby-divider-color - --cubby-outline-color border_and_shape: - --cubby-radius - --cubby-shadow - --cubby-divider-width - --cubby-outline-width - --cubby-spacing - --cubby-density typography: - --cubby-body-font - --cubby-heading-font documented_part_sets: - Facility - Facility Info - Portfolio - Checkout - Search - Contact Form - Pricing group card parts (forwarded) - Pricing tier parts (forwarded) internal_components: note: >- The shipped bundle also registers ~24 cubby-internal-* elements (button, input, select, carousel, payment-form, pricing-dialog, reservation-dialog, waitlist-dialog and so on). These are implementation detail, are not documented, and are explicitly out of the supported theming contract. Recorded for completeness, not as public surface. x-evidence: fetched: '2026-08-11' probes: - url: https://cubbystorage.github.io/docs/storefront-css/ http_status: 200 - url: https://cdn.cubbystorage.com/components/latest http_status: 200 content_type: text/javascript