Skip to content

Commit 840e1ef

Browse files
apply ideation feedback from discussion with Bernhard
1 parent 8c3f977 commit 840e1ef

1 file changed

Lines changed: 35 additions & 47 deletions

File tree

docs/components/generic-list/ideation.md

Lines changed: 35 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -9,33 +9,31 @@ The generic list (`ix-list` and `ix-list-item`) is a single-column collection fo
99

1010
## 1. Anatomy
1111

12-
A list fills the available width of its parent and grows in height to fit its content. The standard item:
12+
A list item fills the available width of its parent and grows in height to fit its content. The standard item:
1313

14-
1. Leading icon
15-
2. Primary label or title
16-
3. Supporting description or subtitle
17-
4. Status label, pill or other supporting content
18-
5. Actions
14+
1. Drag indicator
15+
2. Checkbox
16+
3. Content with leading icon and label
17+
4. Actions
18+
19+
Lists:
20+
21+
1. List items
22+
2. Separator
1923

2024
Multi-line descriptions, notification content, and custom content increase the item height to fit. The default slot places non-interactive custom content after the standard icon, label, and description layout. The `action` slot places trailing interactive controls that do not activate the item.
2125

22-
A divider appears within the item boundary. A separator is a distinct content element that adds space between item groups. Keep those concepts separate: use a divider for item delineation and a separator for a meaningful group boundary.
26+
A divider appears within the item boundary. A separator is a distinct content element that adds space between item groups. Keep those concepts separate: use a divider (property) for item delineation and a separator (separate component) to group list items visually within a list.
2327

2428
**Additional information**
2529

2630
- The branch implementation renders the list with `role="list"` and items with `role="listitem"`
2731

28-
**Open discussion points**
29-
30-
- ▶️ `ix-list-separator`-> option or separate component? Any special recommendations?
31-
- ▶️ What are the standard-item anatomy for status labels and pills?
32-
- ▶️How do we document the templates?
33-
3432
## 2. When to use
3533

3634
Use the generic list when:
3735

38-
- Content is straightforward, related, and primarily single-column
36+
- Content is straightforward, related, and primarily single-column -> We typically use single column but can also be multi-column for additional details if focus is not data analysis (use Grid/Table instead).
3937
- Users need to scan items vertically and possibly activate, select, or reorder them
4038
- Items need a consistent combination of icon, label, description, status, and actions
4139
- A lighter alternative to a table is useful for basic data
@@ -59,34 +57,30 @@ Keep the list focused on one item type and one primary purpose. For our software
5957
- Carbon recommends moving complex, sortable, filterable, or selection-heavy data to a data table
6058
- Separate list groups may sit side by side when they align to a larger grid, but individual items should remain vertically arranged
6159

62-
**Open discussion points**
63-
64-
- ▶️ Should we include a formal decision table comparing generic list, grid, tree, event list, and card list?
65-
- ▶️ Define the maximum content complexity before custom content should become a dedicated component or pattern
66-
- ▶️ If content is non-interactive and simple text -> should native HTML lists be used?
67-
6860
## Variants
6961

7062
- Filled (default): Use for standard row
7163
- Ghost: Surrounding surface already provides containment
7264
- Outline: If stronger item boundary is needed
7365

74-
▶️ Is mixing within a list encouraged / in specific scenarios?
75-
7666
## 3. Options
7767

7868
### List
7969

8070
- **`hasDivider`:**
81-
82-
Displays dividers between direct list items. ▶️ when?
71+
Displays dividers between direct list items. ▶️ when?
8372
- **`itemGap`:** Sets the space between list items in pixels
84-
- Use 0 for cotinuous list
85-
- Use 4 or 8 for light separation
86-
- Use 12 (default) for strong separation (if item content needs clearer grouping)
73+
- Use 0 for continuous list
74+
- Use 4 or 8 for light separation (8px default)
75+
- Use 12 for strong separation (if item content needs clearer grouping)
8776
- **`checkbox`:** Sets the default selection-checkbox setting for items that do not define their own setting
8877
- **`actionOnHover`:** Sets the default behavior for showing action content on hover or focus
8978
- **`actionSlotAlignment`:** Sets the default vertical alignment of action content to `start` or `center`
79+
- **`content`:** Is a slot for non-interactive custom content, there are several templates prepared
80+
- Simple (icon + title): Use for standard list items
81+
- Advanced (icon + title + description): Use for items with supporting text and status badges
82+
- Custom: Use to realize e.g. notifications or event lists
83+
- **`action`:** For interactive controls that do not activate the item; we recommend to use up to four icon buttons, up to two text buttons or a toggle switch
9084
- **`draggable`:** Enables pointer and keyboard reordering
9185
- **`dragBehavior`:** Chooses the visual behavior while dragging; supported values are `dynamic` (default) and `separator`
9286

@@ -112,13 +106,6 @@ Keep the list focused on one item type and one primary purpose. For our software
112106
- Reserve hover-only actions for supplementary actions; keep essential actions visible or keyboard reachable
113107
- Use custom content when the standard layout cannot represent the item, not to bypass consistent alignment
114108

115-
**Additional discussion points**
116-
117-
- ▶️ Is`actionSlotAlignment` a visual option or reserved for advanced layouts?
118-
- ▶️ Is `itemGap: 12` also default in Figma?
119-
- ▶️ Are "max 4 icon buttons" and "max 2 buttons" hard limits or design recommendations?
120-
- ▶️ Confirm the intended label truncation and tooltip behavior; the branch API has no truncation option
121-
122109
## 4. Behavior in context
123110

124111
- Height of a list item expands with its content
@@ -146,9 +133,10 @@ Keep the list width fluid and allow item height to grow with descriptions, notif
146133
- List
147134
- list width as fill or 100% of the parent and the height as hug or content-driven
148135
- A scrollable list should make overflow discoverable with a scrollbar
136+
- Height or width of list can be overridden als will show
149137
- List item
150-
- ▶️ Does text truncate or wrap? (-> long identifiers in industrial contexts)
151-
- ▶️ Tooltips?
138+
- The title truncates on overflow and shows a tooltip with the full text; if a status badge is shown, the badge is always visible and the title truncates before the badge
139+
- Height of a list item can be overridden but content doesn't grow (still truncates on one line)
152140

153141
### Screen readers and accessible input
154142

@@ -162,10 +150,6 @@ Use semantic list roles, preserve logical reading order, and provide accessible
162150
- Element and Material both emphasize responsive layouts, concise content, and predictable item alignment
163151
- Figma documents reading order as icon, title, label or subtitle, then action
164152

165-
**Open discussion points**
166-
167-
- ▶️ Validate the exact Tab behavior for custom focusable content in the default slot -> do??
168-
169153
## 5. Statuses
170154

171155
The component should document these states separately for list items and controls:
@@ -184,17 +168,15 @@ The component should document these states separately for list items and control
184168
- The action slot can remain persistent or appear on hover/focus depending on `actionOnHover`
185169
- The Figma edge-case examples include long text, tooltip disclosure, always-visible pills, multi-line content, and scrollbars
186170

187-
**Open discussion points**
188-
189-
- ▶️ How about loading, error and empty states?
190-
- ▶️ Is overflow tooltip a component guarantee or an author responsibility?
191-
192171
## 6. Other Dos and Don’ts
193172

194173
- Do use one consistent item type, alignment, and spacing model within a list
195174
- Do make essential actions visible and keyboard accessible
175+
- Do take care of keyboard interaction when using the custom template
176+
- Do use empty states and spinners for empty or loading lists
196177
- Don’t use a generic list for multi-column comparison, sorting, filtering, or dense editing, use Grid/Tables instead
197178
- Don’t hide the only way to complete an essential task behind hover
179+
- Don't mix list item variants, instead use content to highlight specific items if necessary
198180

199181
**Additional information**
200182

@@ -203,9 +185,15 @@ The component should document these states separately for list items and control
203185
- Element recommends concise items and responsive behavior in cards, modals, side panels, and similar containers
204186
- Industrial interfaces may involve glare, high-contrast displays, gloves, and time pressure; validate more than a conventional mouse-and-keyboard path
205187

206-
**Open discussion points**
188+
▶️ Identify representative industrial examples for the final documentation playgrounds -> example image will be added to dos and donts
189+
190+
## 7. Related components
207191

208-
- ▶️ Identify representative industrial examples for the final documentation playgrounds
192+
- Grid
193+
- Tree
194+
- Table
195+
- Card list
196+
- Group
209197

210198
## References
211199

0 commit comments

Comments
 (0)