Reference → SG-Builder component catalog

SG-Builder component catalog

SG-Builder ships 48 first-party components organized into four groups: Basic, Extra, Posts, and Ecommerce. This page is your single reference point — every component in one place, grouped by what it does, with a one-line purpose and a link to the deep-dive doc for each group.

Use this catalog to pick the right component before you build. When you know the group you need, follow the link to that group's dedicated reference page for full trait tables and usage notes.


How to use the catalog

Every page in SG-Builder is built from components. Components are the draggable blocks in the palette on the left side of the editor. This catalog maps your intent to the right component so you reach for the correct one first — without trial and error.

Purpose

This catalog gives you a flat inventory of all 48 SG-Builder components with enough context to make a confident choice. It does not replace the individual group reference pages — those carry the full trait tables, edge-case notes, and scripting API. Use this catalog to find the component, then follow the link to learn how to configure it.

Good use cases

  • You are starting a new page and want to know which component handles a particular piece of content.
  • You are scripting a page programmatically and need to confirm a component exists before writing code.
  • You are onboarding a new team member and want a single-page orientation to everything SG-Builder provides.
  • You are checking whether a composite (hero, pricing table, testimonials) is available as a native component before building one manually.

What NOT to use this for

Do not use this catalog as the authoritative trait reference — it intentionally omits detailed trait tables to stay readable. Do not use it to verify attribute key names for programmatic builds. For those, go to the group reference page (linked per category below) or to the catalog.md skill source. Do not treat the component count (48) as inclusive of layout primitives — the container, row, and cell types are GrapesJS-native and do not appear in the component palette; they are covered in the Components overview.

How this connects to other features

Every component slots into the five-level canonical hierarchy: section → container → row → cell → component. Choosing the wrong component for a job (for example, reaching for sgb-component-code when sgb-component-accordion already handles collapsible FAQ sections) produces pages that are harder to maintain and do not inherit responsive behaviour. The decision table in the Components overview maps common user intentions to the right component pick. This catalog is the exhaustive inventory that backs that decision table.

Before you start

Before picking a component, confirm two things:

  1. You are inside an active SG-Builder session at /sg-admin/pages/edit/:id?action=sgbuilder.
  2. The editor handle is available: window.grapesjs.editors[0] should return the editor object, not undefined. If it is undefined, you are not on a builder page.
For ecommerce components specifically, the ECOMMERCE module must be enabled on the site before those components appear in the palette.

Where to find it

Open any page in SG-Builder. The component palette appears in the left panel under the Blocks tab. Components are grouped in the palette the same way they are grouped here: Basic, Extra, Posts, Ecommerce. The Templates Library (hamburger icon, top-left) gives access to 52 pre-built template blocks that are composed of these same 48 primitives.

Steps

Use this workflow when you want to place a component on a page:

1. Identify your intent

Read your design brief or wireframe. Describe what you need in plain words — "a row of feature cards", "a collapsible FAQ", "a hero with a heading and two buttons". Then match that description to a category in this catalog.

2. Find the component

Scan the category that fits your intent (Layout, Content, Media, Composite, Posts, Ecommerce). Read the one-line purpose for each entry. If two components look similar, the "What NOT to use this for" note in the group reference page will resolve the tie.

3. Place and configure

Drag the component from the palette onto the canvas. Open the Traits panel on the right to configure it — every configurable attribute appears there. For programmatic builds, use component.setAttributes({... }) with the attribute keys listed in the group reference page.

4. Verify in the Layer Manager

After placing the component, open the Layers tab (left panel). The layer label should match the canonical palette name — "Section", "Heading", "Cards", and so on. If you see a label like "Sgb-component-cards", a name field is missing. Correct it before saving.

What success looks like

You know you chose the right component when:

  • The canvas renders the expected element without placeholder text ("Add Your Heading Text Here", "CALL TO ACTION", or "Lorem ipsum").
  • The Layer Manager shows a clean Section / Container / Row / Column / [Component] hierarchy with canonical labels.
  • The Traits panel shows configuration options relevant to your content type.
  • The published page is responsive — content stacks on mobile without custom CSS.

What to do if it does not work

If the component does not appear in the palette, verify that the relevant module is enabled (ECOMMERCE components require the Ecommerce module). If dragging onto the canvas does nothing, confirm you are dropping onto a cell — components are not droppable directly onto container or row nodes. If the layer label reads Sgb-component-* instead of the canonical name, the name field was not set on append; re-append with the correct name using labelForType(). See Layer Manager for the full troubleshooting guide.


Layout components — Basic group (partial)

Layout components define the structural skeleton of every page. They do not render visible content on their own — they control spacing, column count, and responsive collapse.

ComponentPalette labelPurpose
sgb-component-sectionSectionFull-bleed background band. Every page section starts here. Drop a Container inside it.
sgb-component-divDivGeneric inline wrapper div. Rarely needed — a cell already fills this role for most layouts.
sgb-component-column1 ColumnPalette preset that drops a full row > cell (100%) structure in one drag.
sgb-component-column-22 ColumnsPreset: row > cell (50%) + cell (50%). Stacks to 100% on tablet.
sgb-component-column-33 ColumnsPreset: row > 3× cell (33.33%). Stacks to 100% on tablet.
sgb-component-column-2--3-72 Columns (3/7)Preset: row > cell (30%) + cell (70%). Stacks on tablet. Good for image-plus-text splits.
Deep-dive reference: Basic Blocks

Content components — Basic group

Content components render the visible text, images, video, buttons, and embedded maps that fill the layout skeleton.

ComponentPalette labelPurpose
sgb-component-headingHeadingH1–H6 heading tag. Visible text goes in attributes.name; tag level set via heading_tag.
sgb-component-textTextParagraph or rich HTML block. Content goes in attributes.content. Double-click opens HTML modal.
sgb-component-imageImageSingle image with optional link wrap. Stores a full URL from the media picker.
sgb-component-videoVideoEmbedded video (YouTube, Vimeo, direct URL) with autoplay, loop, and controls options.
sgb-component-mapEmbed MapGoogle Maps embed. Configure location string and zoom level via traits.
sgb-component-ctaCTA ButtonStyled call-to-action button. Label goes in attributes.text; nine built-in button styles.
sgb-component-codeCodeRaw HTML/JS escape hatch. Use only when no other component fits — 95% of cases have a dedicated component.
sgb-component-typing-rotatorTyping RotatorAnimated heading that cycles through a list of words with configurable typing and delete speeds.
Deep-dive reference: Basic Blocks

Composite components — Extra group

Composite components bundle multiple content elements into one draggable block. They handle their own internal layout, responsive behaviour, and styling via the Traits panel — no manual composition needed.

ComponentPalette labelPurpose
sgb-component-cardCardSingle opinionated card with two built-in styles. Image, title, subtitle, body, and up to two CTAs.
sgb-component-cardsCardsRepeating card grid. The primary block for feature lists and service overviews. Three card styles, grid and masonry layouts.
sgb-component-pricing-cardPricing CardSingle pricing tier. Title, price, feature list, and CTA buttons.
sgb-component-pricing-cardsPricing CardsRepeating pricing-tier grid. Three tiers by default; full pricing-card fields per item.
sgb-component-accordionAccordionCollapsible FAQ or content sections. Each item has a title and HTML body. The correct choice for any expandable Q&A.
sgb-component-tabsTabsTabbed content panels. Horizontal or vertical orientation, tabs or pills nav style.
sgb-component-testimonialsTestimonialsCustomer quote carousel. Author, content, image, and star rating per item. Four display styles.
sgb-component-sliderSliderImage/content carousel with configurable autoplay, speed, arrows, and pagination.
sgb-component-galleryGalleryPhoto grid or lightbox gallery. Configure columns and layout via the gallery-config trait.
sgb-component-tmp-contact-rowContact RowPre-styled full-bleed contact section with CTA links and info items. Use standalone — drops as its own
.
Deep-dive reference: Extra Blocks

Icon and list components — Extra group

ComponentPalette labelPurpose
sgb-component-iconIconSingle icon from the Lucide or FontAwesome library, with an optional link.
sgb-component-iconsIconsRow of icon links — social-media strip or icon list. Four shape styles: default, box, round, circle.
sgb-component-iconlistsIcon Text ListsIcon-plus-text bullet list. Block or inline layout. The right pick for feature-highlight bullet lists.
Deep-dive reference: Extra Blocks

Navigation and site chrome — Extra group

ComponentPalette labelPurpose
sgb-component-navigationNavigationSite header menu. Pulls menus from SGEN Menu Builder. Header use only — do not use for footer columns.
sgb-component-site-logoSite LogoRenders the site logo from site settings, with an optional HTML override. Wraps in a home-page link by default.
sgb-component-formFormEmbeds a Form record from /sg-admin/forms. Create the form first, then reference it by ID. Supports AJAX submit and popup mode.
sgb-component-widgetWidgetSite-wide widget slot. Five types: header info, header CTAs, footer info, widgets, copyright.
Deep-dive reference: Extra Blocks

Posts components — Posts group

Posts components render dynamic content from SGEN's post system. They work on blog templates and custom post-type pages where a post context is active.

ComponentPalette labelPurpose
sgb-component-post-titlePost TitleRenders the current post's title as a heading. Tag level and optional link configurable.
sgb-component-post-contentPost ContentOutputs the current post's full HTML body. No traits — content comes entirely from the post record.
sgb-component-post-featured-imageFeatured ImageRenders the post's featured image with an optional link.
sgb-component-post-navigationPost NavigationPrevious / Next post links with configurable icon and label text.
sgb-component-posts-archivePosts ArchiveListing of posts with filter, sort, pagination, and category options. Use on archive or listing pages.
sgb-component-posts-related-itemsRelated ItemsRelated-posts block. Same configuration as Posts Archive, plus grouping by category.
Deep-dive reference: Posts Blocks

Ecommerce components — Ecommerce group

Ecommerce components require the ECOMMERCE module to be enabled on the site. Most require a product_id — select the product from the Traits panel. Place these components on product detail page templates.

ComponentPalette labelPurpose
ecommerce-product-titleProduct TitleRenders the selected product's name as a heading, with configurable tag level and optional link.
ecommerce-product-priceProduct PriceOutputs the product's price, including sale price formatting.
ecommerce-product-descriptionProduct DescriptionRenders the product's full description body.
ecommerce-product-galleryProduct GalleryImage gallery for the product's media library.
ecommerce-product-add-to-cartAdd to CartAdd-to-cart button and quantity selector for the selected product.
ecommerce-product-badgesProduct BadgesDisplays configurable sale, new, and category badge labels for the product.
ecommerce-product-cardProduct CardSingle product card with four style options. Use on listing pages alongside the Products Archive.
ecommerce-productsProducts ArchiveFilterable, sortable product grid with configurable card style, items-per-row, and limit.
ecommerce-related-productsRelated ProductsRelated-products block. Same configuration as Products Archive.
ecommerce-cart-buttonCart ButtonCart icon/button with configurable style, icon, item count, and four open modes (redirect, dropdown, popup, drawer).
ecommerce-mini-cartMini CartInline mini-cart with configurable thumbnail, remove, subtotal, and checkout button visibility.
Deep-dive reference: Ecommerce Blocks

Component count summary

GroupCountPalette tab
Basic14Basic
Extra17Extra
Posts6Posts
Ecommerce11Ecommerce
Total48
Layout primitives (container, row, cell) are GrapesJS-native types that do not appear in the palette. They are covered in the Components overview and the Basic Blocks reference.

Deep-dive reference pages

Each group has a dedicated reference page with full trait tables, attribute key names, default values, and scripting examples:

  • Basic Blocks — 14 components: layout presets, heading, text, image, video, map, CTA button, code block, typing rotator
  • Extra Blocks — 17 components: site logo, navigation, form, widget, card, cards, pricing card, pricing cards, gallery, accordion, tabs, testimonials, icons, icon, icon text lists, slider, contact row
  • Posts Blocks — 6 components: post title, post content, featured image, post navigation, posts archive, related items
  • Ecommerce Blocks — 11 components: product title, price, description, gallery, add to cart, badges, product card, products archive, related products, cart button, mini cart

Troubleshooting

What to do if it does not work

Component does not appear in the palette. Check that the relevant module is active. Ecommerce components only show when the ECOMMERCE module is enabled in site settings. Refresh the builder page after enabling a module.

Drag and drop does nothing. Confirm the target drop zone is a cell node — components are not droppable directly onto section, container, or row nodes. The Layer Manager highlights valid drop targets in blue as you drag.

Layer Manager shows "Sgb-component-cards" or similar. The name field was not set on the appended component. For programmatic appends, always include name: labelForType('sgb-component-cards') on the component object. For drag-and-drop placements, the builder sets this automatically — if it did not, delete and re-drag.

Placeholder text remains on the canvas. The visible-text attribute was not set. For sgb-component-heading, set attributes.name. For sgb-component-cta, set attributes.text. For sgb-component-text, set attributes.content. Re-read the Components overview §visible-text fields for the full attribute-key map.

Ecommerce component shows no product data. Confirm a valid product_id is selected in the Traits panel. If the product picker is empty, the ECOMMERCE module may not have fully initialized — save and reload the builder page.


See also

On this page