SG-Builder component catalog

⏱ ~2 min read · catalog reference — scan a group, follow the link for full trait tables.
In short. SG-Builder ships 48 first-party components in four groups: Basic (14), Extra (17), Posts (6), and Ecommerce (11). Find your component in the tables below, then follow the group link for full trait tables, attribute keys, and scripting API. Layout primitives (container, row, cell) are GrapesJS-native and do not appear in the palette — see Components overview.

On this page: Layout · Content · Composite · Icons & lists · Nav & chrome · Posts · Ecommerce · Troubleshooting


SG-Builder components are the draggable blocks in the Blocks tab of the editor's left panel. Scan this catalog to find the right component for your intent, then follow the group's deep-dive link for full configuration details.

How to place a component: Open a page in SG-Builder → find the component below → drag it from the Blocks tab onto a cell on the canvas → configure via the Traits panel. After placing, verify the Layer Manager shows a clean Section / Container / Row / Column / [Component] hierarchy before saving. Full workflow: Builder workspace.

Ecommerce components require the ECOMMERCE module to be enabled on the site before they appear in the palette.


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 <section>.

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