Pluslide LogoPluslide
Design Template

Layout System

Master the Group grid layout system for creating dynamic, responsive templates in Pluslide. Learn columns, rows, sizing modes, and nested layouts.

When elements in your template need to respond to each other based on dynamic data, you need Group. Group implements a powerful grid layout system similar to CSS Grid, enabling your templates to adapt gracefully to varying content.

Why Use Group?

The Problem with Fixed Positioning

Without Group, elements have fixed positions:

┌─────────────────────────────────────────────┐
│ ┌─────────────────┐    ┌─────────────────┐  │
│ │ Short Text      │    │ Image           │  │
│ │ (100px wide)    │    │ (200px wide)    │  │
│ └─────────────────┘    └─────────────────┘  │
│                                             │
│ What happens with longer text?              │
│ ┌────────────────────────────┐───────────┐  │
│ │ This is a much longer text │   Image   │  │
│ │ (180px wide)               │ overlapped│  │
│ └────────────────────────────┘───────────┘  │
└─────────────────────────────────────────────┘

Fixed positions cause overlapping when content varies.

The Group Solution

With Group, elements automatically adjust:

┌─────────────────────────────────────────────┐
│ ┌─────────────────────────────────────────┐ │
│ │ Group (Grid Container)                  │ │
│ │ ┌─────────────────┬───────────────────┐ │ │
│ │ │ Short Text      │ Image             │ │ │
│ │ │ (auto width)    │ (flex: 1)         │ │ │
│ │ └─────────────────┴───────────────────┘ │ │
│ └─────────────────────────────────────────┘ │
│                                             │
│ With longer text - adapts automatically:    │
│ ┌─────────────────────────────────────────┐ │
│ │ ┌─────────────────────────┬───────────┐ │ │
│ │ │ This is a much longer   │ Image     │ │ │
│ │ │ text that fits properly │ (shrinks) │ │ │
│ │ └─────────────────────────┴───────────┘ │ │
│ └─────────────────────────────────────────┘ │
└─────────────────────────────────────────────┘

When to Use Group

Use Group when:

  • Elements need to sit side-by-side in a row
  • Content length varies (names, descriptions, numbers)
  • You want consistent spacing between elements
  • You need card-like layouts with multiple parts
  • Elements should share available space proportionally

Don't use Group when:

  • You have a single, isolated element
  • Positions are truly fixed and content never varies
  • You need overlapping elements (like text over image)

Grid Fundamentals

Basic Structure

A Group defines a grid with rows and columns. In the Group editor (click Advanced button), you can configure:

Group Settings:
├── Columns          Number of columns in the grid
├── Rows             Number of rows in the grid
├── Gap              Spacing between cells (in pixels)
├── Padding          Internal padding (in pixels)
├── Column sizes     Width setting for each column
└── Row sizes        Height setting for each row

Column and Row Sizes

In the Group editor, each row and column can be configured with one of three sizing modes:

OptionBehaviorWhen to Use
Fill containerTakes equal share of remaining space (like CSS 1fr)When columns/rows should split available space
FixedAlways exactly the specified pixelsWhen you need precise dimensions
Hug contentShrinks to fit the largest content in that trackWhen track should adapt to content

Visual Examples

Equal columns (default - both set to "Fill container"):

┌─────────────────────────────────────┐
│ ┌───────────────┬───────────────┐   │
│ │ Fill container│ Fill container│   │
│ │   (50%)       │   (50%)       │   │
│ └───────────────┴───────────────┘   │
└─────────────────────────────────────┘

Fixed + Fill container:

Column 1: Fixed (100px)
Column 2: Fill container

┌─────────────────────────────────────┐
│ ┌──────────┬────────────────────┐   │
│ │  100px   │   Fill container   │   │
│ │ (fixed)  │   (takes rest)     │   │
│ └──────────┴────────────────────┘   │
└─────────────────────────────────────┘

Hug content + Fill container:

Column 1: Hug content
Column 2: Fill container

┌─────────────────────────────────────┐
│ ┌──────┬────────────────────────┐   │
│ │ Hug  │    Fill container      │   │
│ │(fits)│     (takes rest)       │   │
│ └──────┴────────────────────────┘   │
└─────────────────────────────────────┘

Mixed sizing (Fixed + Hug content + Fill container):

Column 1: Fixed (80px)
Column 2: Hug content
Column 3: Fill container

┌─────────────────────────────────────┐
│ ┌────────┬──────┬───────────────┐   │
│ │  80px  │ Hug  │Fill container │   │
│ │(fixed) │(fits)│  (remaining)  │   │
│ └────────┴──────┴───────────────┘   │
└─────────────────────────────────────┘

Placing Child Elements

Grid Position

In the Group editor, you can place child elements by dragging them into the desired grid cell. The editor shows a visual grid preview where you can:

  1. Drag elements to any cell in the grid
  2. Resize elements to span multiple cells

Basic Placement

Grid (2 cols × 2 rows):
         Col 1      Col 2
       ┌─────────┬─────────┐
Row 1  │  Cell   │  Cell   │
       ├─────────┼─────────┤
Row 2  │  Cell   │  Cell   │
       └─────────┴─────────┘

Drag elements from the "Add Element" dropdown into any cell.

Spanning Multiple Cells

Resize an element to make it span across multiple columns or rows:

Header spanning 2 columns:

       ┌─────────┬─────────┐
Row 1  │     Header        │  ← spans 2 columns
       ├─────────┼─────────┤
Row 2  │  Left   │  Right  │
       └─────────┴─────────┘
Image spanning 2 rows:

       ┌─────────┬─────────┐
Row 1  │         │  Top    │
       │  Image  ├─────────┤  ← spans 2 rows
Row 2  │         │  Bottom │
       └─────────┴─────────┘

Common Layout Patterns

Pattern 1: Two-Column (Image + Text)

┌─────────────────────────────────────┐
│ ┌──────────────┬──────────────────┐ │
│ │    Image     │    Title         │ │
│ │              │    Description   │ │
│ │   (fixed)    │ (fill container) │ │
│ └──────────────┴──────────────────┘ │
└─────────────────────────────────────┘

Configuration:
- Columns: 2, Rows: 1
- Column 1: Fixed (120px)
- Column 2: Fill container

Pattern 2: Card with Header and Body

┌─────────────────────────────────────┐
│ ┌─────────────────────────────────┐ │
│ │            Header               │ │
│ ├─────────────────────────────────┤ │
│ │                                 │ │
│ │            Body                 │ │
│ │                                 │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────┘

Configuration:
- Columns: 1, Rows: 2
- Row 1: Hug content (header fits its text)
- Row 2: Fill container (body takes remaining space)

Pattern 3: Three-Column Comparison

┌─────────────────────────────────────────────┐
│ ┌───────────┬───────────┬───────────┐       │
│ │  Basic    │   Pro     │Enterprise │       │
│ │  $9/mo    │  $29/mo   │  $99/mo   │       │
│ │           │           │           │       │
│ │  • 5GB    │  • 50GB   │  • 500GB  │       │
│ │  • Email  │  • Phone  │  • 24/7   │       │
│ └───────────┴───────────┴───────────┘       │
└─────────────────────────────────────────────┘

Configuration:
- Columns: 3, Rows: 1
- All columns: Fill container (equal thirds)
- Gap: 16px

Pattern 4: Sidebar Layout

┌─────────────────────────────────────────────┐
│ ┌─────────┬───────────────────────────────┐ │
│ │         │                               │ │
│ │ Sidebar │         Main Content          │ │
│ │ (fixed) │      (fill container)         │ │
│ │         │                               │ │
│ └─────────┴───────────────────────────────┘ │
└─────────────────────────────────────────────┘

Configuration:
- Columns: 2, Rows: 1
- Column 1: Fixed (200px)
- Column 2: Fill container

Pattern 5: Icon + Label Row

┌─────────────────────────────────────┐
│ ┌──────┬────────────────────────┐   │
│ │ Icon │ Feature description... │   │
│ │ hug  │ takes remaining width  │   │
│ └──────┴────────────────────────┘   │
└─────────────────────────────────────┘

Configuration:
- Columns: 2, Rows: 1
- Column 1: Hug content (icon fits)
- Column 2: Fill container (text fills)

Interactive Grid Playground

To understand how grid sizing works, try this CSS Grid Playground:

CSS Grid Generator

The concepts are similar:

  • 1fr in CSS Grid = Fill container in Pluslide
  • auto in CSS Grid = Hug content in Pluslide
  • 100px in CSS Grid = Fixed (100px) in Pluslide

Nesting Groups

Groups can contain other Groups for complex layouts:

┌─────────────────────────────────────────────┐
│ Outer Group (1 col × 2 rows)                │
│ ┌─────────────────────────────────────────┐ │
│ │                 Header                  │ │
│ ├─────────────────────────────────────────┤ │
│ │ Inner Group (3 cols × 1 row)            │ │
│ │ ┌───────────┬───────────┬───────────┐   │ │
│ │ │  Card 1   │  Card 2   │  Card 3   │   │ │
│ │ └───────────┴───────────┴───────────┘   │ │
│ └─────────────────────────────────────────┘ │
└─────────────────────────────────────────────┘

Best Practices

For tips on creating effective and maintainable grid layouts, see Layout Tips.

On this page