Skip to content

List Component

The List component is the most powerful data display component in EmberBlocks. It connects to your database tables and displays records in various styles with built-in features for filtering, sorting, and pagination.

The List component supports four display styles:

StyleDescriptionBest For
TableTraditional columns and rows with sorting and filteringData grids, spreadsheet-like views
ListCompact vertical list with primary/secondary fieldsContact lists, simple item lists
KanbanDrag-and-drop board with cards in lanesTask management, workflow tracking
CardsGrid of cards with images and action buttonsProduct catalogs, galleries
  1. Open the Layout tab in your app editor
  2. Drag the List component from the palette onto your canvas
  3. Select the component to open the settings panel
  4. Choose a data table and configure display options

These settings apply to all display styles:

SettingTypeDescription
Display StyleDropdowntable, list, kanban, or cards
TableDropdownSelect the source data table
TitleText/FormulaComponent title
DescriptionText/FormulaComponent description
Filter FormulaFormulaFilter which rows to display
Sort FieldDropdownDefault field to sort by
Sort DirectionToggleAscending or Descending
PaginationToggleEnable/disable pagination
Rows Per PageNumberItems per page (10, 25, 50, 100)
Show SearchToggleEnable search functionality
Row Click ActionActionAction when a row is clicked
DensityDropdowncompact, comfortable, or spacious

The Table style provides a spreadsheet-like view with advanced features for data management.

Configure which fields appear and their order:

  1. In the settings panel, go to Columns
  2. Drag fields to reorder
  3. Toggle visibility for each field
  4. Set column width and alignment

Pin important columns to the left or right edge:

Column Settings:
- Pin Position: left | right | none

Pinned columns stay visible while scrolling horizontally.

Format values for better readability:

Format TypeOptionsExample
NumberDecimals, thousands separator1,234.56
CurrencySymbol, decimals$1,234.00
PercentageDecimals75.5%
Dateshort, long, relativeJan 23, 2026

Group rows by field values:

Grouping:
- Level 1: status
- Level 2: category
- Level 3: assigned_to
  • Supports up to 3 grouping levels
  • Groups can be expanded/collapsed
  • Shows group counts

Apply colors based on data values:

Conditional Styles:
- Condition: {{$row.status = 'overdue'}}
Background: #fee2e2
Text: #991b1b
- Condition: {{$row.status = 'completed'}}
Background: #dcfce7
Text: #166534

Styles are applied in priority order (first match wins).

Display aggregate values at the top or bottom:

AggregationDescription
SUMTotal of all values
AVGAverage of all values
COUNTNumber of rows
MINMinimum value
MAXMaximum value

Enable selection for bulk actions:

SettingDescription
Selection ModeSingle or Multi-select
Show CheckboxesDisplay selection checkboxes
Select AllAllow selecting all visible rows

Export data with the built-in export button:

OptionDescription
Current PageExport visible rows only
All DataExport all matching rows
Selected RowsExport only selected rows

The List style provides a compact vertical view, ideal for mobile or sidebar displays.

SettingTypeDescription
Primary FieldDropdownMain display field
Secondary FieldDropdownSubtitle field
Tertiary FieldDropdownAdditional info line
Image FieldDropdownThumbnail image field
Image ShapeDropdowncircle, square, or rounded
Image SizeDropdownsm, md, or lg
Show DividersToggleLines between items
Badge FieldDropdownStatus badge field
Badge ColorsObjectValue to color mapping

Map field values to badge colors:

Badge Field: status
Badge Colors:
active: green
pending: yellow
inactive: gray

The Kanban style displays data as cards organized in columns (lanes), perfect for workflow management.

SettingTypeDescription
Lane FieldDropdownField to group cards by
Lane OrderArrayCustom lane ordering
Lane ColorsObjectLane header colors by value
Card Title FieldDropdownCard title field
Card Description FieldDropdownCard body text
Card Avatar FieldDropdownAssignee avatar
Tags FieldDropdownTags/labels field
Due Date FieldDropdownDue date indicator
Priority FieldDropdownPriority indicator
Cover Image FieldDropdownCard cover image
Show Lane CountToggleShow item count per lane
WIP LimitNumberWork-in-progress limit
Show WIP WarningToggleHighlight when over limit
Enable Drag & DropToggleAllow card dragging
Update Field on DropToggleUpdate lane field when moved

When enabled, users can drag cards between lanes:

  1. Enable Drag & Drop in settings
  2. Enable Update Field on Drop
  3. The lane field value updates automatically when a card is moved

Set work-in-progress limits to highlight overloaded lanes:

WIP Limit: 5
Show WIP Warning: enabled

Lanes exceeding the limit show a visual warning.

The Cards style displays data as a grid of cards, ideal for visual content.

SettingTypeDescription
ColumnsNumberGrid columns (1-4)
GapDropdownsm, md, or lg
Show HeaderToggleDisplay card header
Header Avatar FieldDropdownAvatar in header
Header Title FieldDropdownTitle in header
Header Subtitle FieldDropdownSubtitle in header
Image FieldDropdownMain image field
Image AspectDropdownvideo (16:9) or square (1:1)
Title FieldDropdownCard title
Description FieldDropdownCard description
Show FooterToggleDisplay footer actions
Left ActionActionLeft footer button
Right ActionActionRight footer button
Menu ActionsActions3-dot menu actions (max 3)

Configure interactive elements on each card:

Footer:
Left Action: View Details
Right Action: Edit
Menu Actions:
- Duplicate
- Archive
- Delete

Write formulas to filter displayed rows:

{{$row.status = 'active'}}
{{$row.created_at > TODAY() - 7}}
{{$row.assigned_to = $user.id}}

Connect a separate Filter component for user-controlled filtering:

  1. Add a Filter component to your view
  2. In the List settings, reference filter values:
{{GET_FILTER('status') = $row.status}}

Enable the search bar to let users search across text fields:

Show Search: enabled
Search Fields: name, email, description

Set the initial sort order:

Sort Field: created_at
Sort Direction: Descending

In Table style, users can click column headers to sort. The current sort is indicated by an arrow icon.

SettingDescription
EnabledToggle pagination on/off
Rows Per PageDefault page size
Page Size OptionsAvailable size choices

For List and Cards styles, enable infinite scroll instead of pagination:

Pagination: disabled
Infinite Scroll: enabled

Configure what happens when a row is clicked:

Row Click Action: Navigate
Target View: item-details
Parameters:
- id: {{$row.id}}

Enable selection and add actions for selected rows:

  1. Enable row selection in settings
  2. Add a Button component with an action using $selectedRows
  3. The action runs for all selected rows

Example button configuration:

Label: "Delete Selected"
Action: Delete Row
Row: {{$selectedRows}}
Confirm Dialog: enabled
  • Enable pagination for large datasets
  • Limit visible columns to essential fields
  • Use filter formulas to reduce initial data load
  • Choose the display style that matches your use case
  • Provide clear column headers and descriptions
  • Enable search for tables with many rows
  • Use confirmation dialogs for destructive bulk actions
  • Validate row selection before bulk operations
  • Provide undo options where possible
  • Use List or Cards style for mobile-friendly views
  • Reduce columns in Table style for smaller screens
  • Consider responsive column hiding
Style: Kanban
Lane Field: status
Lane Order: ["todo", "in_progress", "review", "done"]
Card Title: task_name
Enable Drag & Drop: true
Update Field on Drop: true
Style: Cards
Columns: 3
Image Field: product_image
Image Aspect: square
Title Field: product_name
Description Field: short_description
Footer Actions: View Details, Add to Cart
Style: List
Primary Field: full_name
Secondary Field: email
Tertiary Field: phone
Image Field: avatar
Image Shape: circle
Style: Table
Show Search: true
Pagination: true
Rows Per Page: 25
Row Selection: multi
Export: enabled

Learn about related components and features: