Explore: enhanced table capabilities for enterprise users
Purpose
Expand the existing table component guidelines and documentation to support a broader array of capabilities expected for an enterprise product.
Definition
Tables display tabular data in a basic grid composed of cells, columns, and rows. This format makes it easy for users to scan and compare large amounts of data.
Tables suited for enterprise use also need to make it easy to manage large amounts of data, at scale, and account for multiple users interacting with the same data set though not necessarily at the same time or in the same way.
Background
In the Vulnerability Lists in GitLab, users require the ability to manage a large number of results (often in the thousands) with efficiency. Today, the table component is adequate for simple lists and interactions but falls short when managing a lot of information at scale.
Goal
- Provide a point-of-view on how GitLab can solve for managing a large amount of data in tables at scale.
- Generate a broken-down list of sub-components and micro-interactions that need to be accounted for in this effort.
Core concepts
Multi-select
Users can select multiple items in a list in preparation to take a single action that is attributed to the selected item set.
Row item states
- Hover states
- Selected states
- Focus states
Bulk item actions
Users can attribute a single action to multiple items in a list to save time and energy when completing their task.
Grouping
Users can group items with similar attributes into one object thus reducing the number of manageable objects in the table.
Group selection
Users can select a group and take action on all items at one time, increasing their efficiency and reducing the effort of managing similar items with similar end results in singular flows.
Custom tab views
Users can save filtered views they use most often as well as define the columns of the table based on available attributes in the data set.
Items shown
Users can set the number of items shown in the table before the list is paginated. Typically you may see this at the bottom of a table with predefined buckets (20 items, 40 items, 60 items, 80 items).