Layout
Layouts allow a single section to offer multiple visual arrangements. Each layout can show a different subset of content fields and override design defaults, giving merchants a way to switch between predefined looks.
When two or more layouts are defined in layout.ts, a layout selector appears in the Design tab of the Instant Site Editor. If fewer than two layouts are defined, the selector is hidden, and the default layout is applied.
Layout Settings
Each layout is an object created with the layout.init() factory:
import { layout } from '@lightspeed/crane-api';Properties
layoutId
string
Yes
Unique identifier for this layout
layoutIcon
string
No
Icon displayed in the layout selector. If not set, a default icon with the layout index is used. See Layout Icons
selectedContentSettings
string[]
Yes
Content field keys visible in this layout. If empty, all content settings are shown
selectedDesignSettings
array
Yes
Design settings for this layout, with optional default overrides. If empty, all design settings are shown
Design Overrides
The selectedDesignSettings array contains design override objects. Each override references a design field by name and can optionally provide different default values for that layout.
Design Override Properties
type
string
Yes
Design editor type (TEXT, BUTTON, IMAGE, TOGGLE, SELECTBOX, BACKGROUND, COLOR_PICKER, LOGO, DIVIDER)
fieldName
string
Yes
Key name from your design.ts settings
defaults
object
No
Override defaults for this layout. Structure matches the corresponding Design Editors defaults
Design override factories are available for each type:
Example
A section with two layouts — one centered with title and image, another left-aligned with title, description, and button:
Key Mapping
The fieldName values (title_style, hero_image, etc.) must match keys defined in your design.ts file. The selectedContentSettings values must match keys from your content.ts file.
Validation
In showcase overrides, if a layoutId is specified, it must match one of the layout IDs defined in this file. Invalid layout IDs produce the error: "LayoutId must exist in section's layout configuration file."
Layout Icons
Icons are grouped by category. Use any of these values for the layoutIcon property:
Header:
HEADER_LEFT, HEADER_CENTER_LOGO_BURGER, HEADER_CENTER_LOGO_COMPACT, HEADER_CENTER_LOGO_DETAILED, HEADER_LEFT_LOGO_BURGER, HEADER_LEFT_LOGO_COMPACT, HEADER_LEFT_LOGO_DETAILED, HEADER_LEFT_LOGO_SEARCH, HEADER_LEFT_LOGO_TEXT
Text:
TEXT_ONE_COLUMN, TEXT_TITLE_LEFT, TEXT_SUBTITLE_RIGHT, TEXT_TWO_COLUMNS, TEXT_CENTER, TEXT_DESCRIPTION_RIGHT
CTA:
CTA_BANNER_LEFT, CTA_BANNER_RIGHT, CTA_BANNER_CENTER, CTA_BANNER_BOTTOM, CTA_PROMO_BAR_LEFT, CTA_PROMO_BAR_RIGHT, CTA_STORY_LEFT, CTA_STORY_RIGHT, CTA_FULLWIDTH_CENTER, CTA_FULLWIDTH_LEFT
Cover:
COVER_FULLSCREEN_CENTER, COVER_FULLSCREEN_LEFT, COVER_FULLSCREEN_CENTER_LEFT, COVER_FULLSCREEN_RIGHT, COVER_FULLSCREEN_BOTTOM, COVER_FULLSCREEN_BOTTOM_RIGHT, COVER_FULLSCREEN_BOTTOM_LEFT, COVER_FULLSCREEN_TOP, COVER_SIDEBAR_RIGHT, COVER_SIDEBAR_LEFT, COVER_HALFSCREEN_LEFT, COVER_HALFSCREEN_CENTER, COVER_COLLAGE_BOTTOM, COVER_COLLAGE_LEFT
Image:
IMAGE_SUBTITLE_RIGHT, IMAGE_TITLE_LEFT, IMAGE_LEFT, IMAGE_RIGHT, IMAGE_CENTER, IMAGE_SIDE_TITLE
Location:
LOCATION_MAP_RIGHT, LOCATION_MAP_LEFT, LOCATION_IMAGE_RIGHT, LOCATION_IMAGE_LEFT, LOCATION_BACKGROUND_RIGHT, LOCATION_BACKGROUND_LEFT, LOCATION_FULL, LOCATION_SHORT
Reviews:
REVIEWS_MINIMAL, REVIEWS_CARDS, REVIEWS, REVIEWS_CLASSIC, REVIEWS_FULLSCREEN_BG, REVIEWS_FULLSCREEN_SIDEBAR_LEFT, REVIEWS_FULLSCREEN_SIDEBAR_RIGHT, REVIEWS_CARDS_PHOTO, REVIEWS_PHOTO_SPEECH_RIGHT, REVIEWS_PHOTO_SPEECH_LEFT, REVIEWS_SOCIAL_FEED, REVIEWS_ADAPTIVE
Features:
FEATURES_CLASSIC_CENTER, FEATURES_CLASSIC_LEFT, FEATURES_ACCORDION, FEATURES_MINIMAL, FEATURES_SMALL_ICONS, FEATURES_CAROUSEL, FEATURES_IMAGE_LEFT, FEATURES_IMAGE_RIGHT
Announcement:
ANNOUNCEMENT_CENTER
Slider:
SLIDER_FULLSCREEN_CENTER, SLIDER_FULLSCREEN_LEFT
Last updated
Was this helpful?
