Element Type Reference (AlusElementType)
Complete reference of every element type accepted by Alus Builder, grouped by Library category.
The type field on every AlusElement is a string literal identifying the element kind. The builder's validator accepts exactly the 84 types below, grouped into 7 categories matching the Library panel.
Notation:
- Children:
requiredmeans achildren: AlusElement[]property must be present (empty[]is OK);not allowedmeans a leaf element. - Context:
universal= usable on any page/section/template;template only/Form Builder only= valid only in the matching builder.
Layout (5)
Structural wrappers. Only layout types may have children.
| type | Description | Children |
|---|---|---|
section | Full-width flex container — root-level page divider. | required |
container | 1100px centered flex container. | required |
block | Full-width flex-grow block. | required |
slider | Carousel (SplideJS) whose DIRECT children each become a slide — arrows + dots + responsive slides-per-view. | required |
logo | Site logo element. | not allowed |
Basic (10)
The most-used content elements.
| type | Description | Children |
|---|---|---|
heading | Text heading H1-H6 with alignment and optional link. | not allowed |
basicText | Plain paragraph text without rich-text toolbar. | not allowed |
richText | HTML rich text content block. | not allowed |
image | Single image with optional link and alt text. | not allowed |
video | Embedded YouTube video with configurable aspect ratio. | not allowed |
button | Clickable button with link. | not allowed |
textLink | Inline text hyperlink. | not allowed |
icon | Icon element supporting multiple icon libraries (Lucide, FontAwesome, Ionicons, custom SVG). | not allowed |
divider | Horizontal or vertical divider line. | not allowed |
spacer | Empty vertical space. | not allowed |
General (14)
Interactive & informational elements for landing pages and general content.
| type | Description | Children |
|---|---|---|
counter | Animated number/statistic counter with label. | not allowed |
accordion | Expandable FAQ or content accordion. | not allowed |
iconList | List of features/benefits. | not allowed |
iconListItem | A single item inside an Icon List. | not allowed |
alertBanner | Notification/announcement banner. | not allowed |
table | Data table with headers and rows. | not allowed |
countdownTimer | Countdown timer to a target date/time. | not allowed |
breadcrumb | Manual breadcrumb trail (Home > Section > Page). | not allowed |
menu | Self-contained site navigation menu. | not allowed |
searchBar | Multi-mode site search (Bricks parity). | not allowed |
mapEmbed | Google Maps embed. | not allowed |
htmlEmbed | Embed external HTML code or widgets. | not allowed |
customHtml | Raw HTML block. | not allowed |
form | Embeds a form created in Form Builder. | not allowed |
eCommerce (17)
Store, course, and checkout elements. The checkout* slots are valid only inside checkout templates (template only).
| type | Description | Children |
|---|---|---|
cart | Cart icon trigger + badge count + optional subtotal + slide-in panel. | not allowed |
productGrid | Displays site products in a grid. | not allowed |
productImageGallery | Product image gallery (featured + gallery images). | not allowed |
checkoutButton | Button that links directly to checkout for a specific product. | not allowed |
miniCheckout | Self-contained inline checkout for 1 product or 1 bundle. | not allowed |
courseGrid | Grid of courses from the site's course catalog. | not allowed |
curriculumList | Course curriculum accordion with sections and lessons. | not allowed |
checkoutItems | Cart items list for checkout page. | not allowed |
checkoutForm | Buyer shipping information form for checkout. | not allowed |
checkoutShipping | Shipping method selector for checkout. | not allowed |
checkoutPayment | Payment method selector for checkout. | not allowed |
checkoutSummary | Price summary and pay button for checkout. | not allowed |
checkoutField | Single customer-detail field slot in the Checkout template. | not allowed |
checkoutAddress | Address input slot in the Checkout template. | not allowed |
checkoutCoupon | Coupon-code input slot in the Checkout template. | not allowed |
checkoutTotals | Totals breakdown (subtotal/shipping/tax) slot in the Checkout template. | not allowed |
checkoutPayButton | Pay button slot in the Checkout template. | not allowed |
Social (2)
Social proof elements.
| type | Description | Children |
|---|---|---|
testimonial | Customer testimonial cards with avatar, rating, and quote. | not allowed |
socialIcons | Social media icon links. | not allowed |
Forms (7)
Form field elements. Valid only in Form Builder (/dashboard/[siteSlug]/forms/[formId]/builder); not allowed in Page/Template Builder.
| type | Description | Children |
|---|---|---|
nameField | Full name input field. | not allowed |
emailField | Email input field. | not allowed |
phoneField | Phone/WhatsApp input field. | not allowed |
textareaField | Long text input. | not allowed |
selectField | Dropdown select field. | not allowed |
checkboxField | Checkbox for consent/agreement. | not allowed |
submitButton | Form submit button. | not allowed |
Dynamic (29) — Template Only
Elements that resolve their data from the active templateContext (current post / product / page / course). Valid only in matching template builders (e.g. postTitle only in single_post or post_archive). Don't use them in regular sections / headers / footers / checkout / pages.
Post (5) — single_post / post_archive templates
postTitle: Auto-renders the current post's title.postContent: Auto-renders the post's HTML body.postFeaturedImage: Auto-renders the post's featured image.postExcerpt: Auto-renders the post excerpt with truncation.postMeta: Composite meta — author + date + category with separator.
Product (17) — single_product / shop_catalog / product_category templates
productTitle: Auto-renders the product name.productPrice: Auto-renders product price in the site currency; shows sale strikethrough.productDescription: Auto-renders product description (HTML).productImage: Auto-renders the product thumbnail (single image; for gallery use productImageGallery).productVariants: Variant picker for the current product.productPlans: Plan picker for digital one-time products with multiple plans.productQuantity: Quantity picker (−/+) for the current product.productCustomerNote: Optional per-item customer note textarea.addToCartButton: Smart purchase button — adapts to product type: physical → add-to-cart (variant-aware); digital one-time single → buy; digital one-time multiple → buys the plan picked via productPlans; subscription/service → shows subscribeLabel/contactLabel (display-only, matching the default product page).productStock: Stock state badge (In Stock / Low Stock / Out of Stock) for current product.productSku: Shows SKU code for current product (uses slug fallback).productSalePercent: Discount badge (-25% / 'Hemat Rp 50.000') derived from sale price.productSalePrice: Shows ONLY the discounted price in site currency.productRegularPrice: Shows ONLY the original (pre-discount) price in site currency.productCountdown: Countdown timer to sale end.productShare: Social share buttons (WhatsApp/Facebook/Twitter/Copy link) for current product.productWholesaleTable: Renders volume-pricing tier table for current product.
Page (3) — single_page templates
pageTitle: Auto-renders custom page title.pageContent: Auto-renders custom page HTML body.pageFeaturedImage: Auto-renders custom page featured image.
Course (4) — single_course / course_archive templates
courseTitle: Auto-renders course name.courseDescription: Auto-renders course description HTML.courseImage: Auto-renders course thumbnail.courseInstructor: Renders instructor name + avatar with optional prefix.
Unknown types are rejected
The validator rejects any element whose type is outside the 84 listed above (error: Invalid input on the element). Make sure AI- or hand-authored schemas only use literals from this list. Note: legacy helper types like tabs, sidebarLayout, col1, featureGrid, timeline, and pricingTable are not valid element types.