Intercom Content Table
Figma logo composed of five colorful rounded shapes forming an abstract letter F.
Figmaย fileย available
true
Wiza Contacts Table
Figma logo composed of five colorful rounded shapes forming an abstract letter F.
Figmaย fileย available
true
Lightdash Metrics Catalog
false

Upgrade to SaaSFrame Pro now to see 25 more Sort examples

Monthly

$18 /month

Billed $18 monthly
Browse all screens & flows
Filter and search screens & flows
Search text in screenshots
Access Figma files
Access mobile versions
Join now

Quarterly

$16 /month

Billed $48 quarterly
Browse all screens & flows
Filter and search screens & flows
Search text in screenshots
Access Figma files
Access mobile versions
Join now

Yearly

$15 /month

Billed $180 yearly
Browse all screens & flows
Filter and search screens & flows
Search text in screenshots
Access Figma files
Access mobile versions
Join now
No items found.

Upgrade to SaaSFrame Pro now to see 25 more Sort examples

Monthly

$18 /month

Billed $18 monthly
Browse all screens & flows
Filter and search screens & flows
Search text in screenshots
Access Figma files
Access mobile versions
Join now

Quarterly

$16 /month

Billed $48 quarterly
Browse all screens & flows
Filter and search screens & flows
Search text in screenshots
Access Figma files
Access mobile versions
Join now

Yearly

$15 /month

Billed $180 yearly
Browse all screens & flows
Filter and search screens & flows
Search text in screenshots
Access Figma files
Access mobile versions
Join now

Sort Design Guide

Sorting changes the order of a collection without changing which records qualify for inclusion. It helps people scan recent work, compare quantities, locate names, or prioritize attention. A useful sorting interface makes the active rule visible and applies it consistently across the relevant collection.

Lightdashโ€™s captured Metrics Catalog shows sortable column cues and a highlighted downward arrow beside Popularity. Its search and category, table, and owner filters appear separately above the records. This example supports analysis of visible ordering and the relationship to other collection controls; the screenshot does not establish how toggling, pagination, or persistence is implemented.

Choose an order that serves the collectionโ€™s task

A default order shapes what people see first. Recent activity may help in an operational inbox, alphabetical order may help in a directory, and a relevant ranking may help in a catalog. Choose the default according to the task rather than simply using database insertion order.

Lightdashโ€™s capture places high-popularity metrics near the top and shows the corresponding values in the table. A catalog visitor can compare both the ordering cue and the data that explains it. The screenshot does not define how popularity is calculated, so that measure should not be described as quality or accuracy.

Lightdash Metrics Catalog table with metric names, descriptions, categories, popularity values, and a highlighted downward sort arrow on Popularity
Lightdash Metrics Catalog. The active Popularity direction is visible beside the column label, while filtering controls remain separate above the records.

A useful default can still be inappropriate for another task. Someone looking for a specific metric name may prefer alphabetical order. Someone auditing changes may need an update date. Offer the meaningful alternatives without making every available attribute a sort choice.

Keep sorting distinct from filtering and search

A filter removes records that do not match a condition. Search identifies relevant matches. Sort arranges the resulting set. These controls can work together, but their effects should remain distinguishable.

In Lightdash, the filters sit above the table while the visible sorting cue sits beside a column label. That separation connects the order to the attribute being compared. A person should not mistake selecting a category for changing the order.

When several controls are active, make the result state understandable. Clearing search should not silently remove a chosen sort unless that is the intended model. Likewise, a filtered result should still disclose its ordering so the first item is not mistaken for an arbitrary recommendation.

Make the active key and direction visible

A sort control needs to communicate both the attribute and direction. A highlighted arrow beside Popularity gives a visible cue in the captured table. The other column cue is quieter, distinguishing an available control from the active state.

Do not rely on an arrow without a meaningful label. Ascending and descending have different practical interpretations for dates, quantities, and names. A standalone menu can use wording such as newest first or name A to Z when that helps people predict the result.

Keep the active state visible after the menu closes. A selected option inside a hidden dropdown does little to help someone interpret the current list. Use a concise summary near the collection or a clear state on the relevant header.

Use column headers when the compared attribute is already visible

Clickable headers are useful in a table where people can inspect the values being ordered. The interaction stays close to the data. It can reduce the need for a separate sort menu, particularly when only a few columns have meaningful ordering.

Make sortable headers recognizable as controls rather than plain text with decorative arrows. Preserve a usable activation area and a visible focus state. If an icon explains the direction, ensure the control has a programmatically available name and state.

For card grids or mobile layouts where columns disappear, a separate menu may be clearer. The same ordering options can remain available without forcing the tableโ€™s desktop interaction into a different presentation.

Define the toggle cycle deliberately

A header can alternate between ascending and descending, or include a return to the default unsorted state. Choose a consistent cycle and test whether people can predict it. A third state is useful only if its meaning is clear.

Changing the sort key also needs a rule for the initial direction. Numeric popularity might naturally begin with larger values, while names might begin alphabetically. Consistency does not require every attribute to start in the same mathematical direction if a task-specific default is more understandable.

Explain what reset means. Returning to the default order is different from restoring the last saved view or removing all collection controls. Label a reset action according to the state it actually restores.

Handle equal values with a stable secondary rule

Many records can share the same popularity, status, or date. Define a secondary order so the result does not reshuffle unpredictably when the collection refreshes. A stable order helps people retain their place and compare changes.

The secondary rule can be a readable attribute or a stable identifier, depending on the data model. If the tie-break affects a consequential ranking, explain enough for people to understand it. Avoid presenting arbitrary placement as evidence that one record is more important.

Test repeated refreshes and records arriving with equal values. The design should not make a person lose the row they were reviewing simply because an unresolved tie was returned differently by the server.

Make missing values behave predictably

A missing value is different from zero, an empty string, or an unknown value. Sorting needs a defined treatment for those states. Otherwise people may interpret an unmeasured record as the lowest score or the oldest date.

Choose where missing values belong according to the task and show them honestly. A dash can represent unavailable data if its meaning is clear. Do not quietly replace missing data with a fabricated default merely to simplify ordering.

Consider how the treatment changes by direction. If missing values move between the beginning and end, test whether that helps or interrupts scanning. A consistent โ€œunknown lastโ€ policy may be useful in some collections, but it should follow the productโ€™s actual comparison model.

Sort according to the data type, not the displayed string

Formatted quantities, currency labels, dates, and version-like names can look sortable while producing misleading results if compared as raw text. Define the underlying comparison so the visible order matches the personโ€™s expectation.

For example, a numeric sequence should not put 100 before 20 merely because the text begins with 1. A displayed date needs to be ordered by the relevant timestamp. If several currencies appear, a meaningful comparison may require additional context rather than simply sorting the numbers.

Names and mixed alphanumeric labels also need deliberate behavior. Test accents, case, numbered items, and localized text with representative data. Avoid promising one universal alphabetical rule across every locale.

Apply order to the relevant result set

In a paginated collection, people usually expect sorting to arrange all matching records, not only the rows currently visible. If the product sorts only loaded results, disclose that limitation so the first row is not mistaken for the highest value in the entire collection.

Changing order may move records to different pages. Decide how pagination responds and keep that transition predictable. Returning to the first page can be sensible, but should not erase unrelated filters or selection without reason.

For infinite scrolling, handle already loaded rows and new pages consistently. A sort change should not leave old and new ordering rules mixed in one list. Show loading while the authoritative new result is retrieved when needed.

Support multi-key ordering when the task needs it

Some workflows need a priority order such as status first and due date second. A multi-key interface should show the keys, their directions, and their precedence. The second key refines ties within the first; it is not an independent competing order.

Do not introduce multi-key sorting for every simple list. A single visible order can be easier to understand and operate. Add complexity when realistic tasks require it, such as an operational queue with several prioritization rules.

If the product saves the configuration, make the saved state recognizable. A shared view may have an established sort order while a person temporarily explores another. Explain whether changing it updates the shared view or only the current session.

Preserve context through updates and failures

Live data can change the value used for sorting and move a row. Consider whether to reorder immediately, provide a refresh route, or communicate that updates are available. The right behavior depends on whether freshness or stable inspection matters more.

When a request fails, avoid leaving the header in a new state while the rows remain in the previous order without explanation. Keep the control and result consistent, or show that the update is pending or failed.

Selection should refer to records rather than row positions. After sorting, a selected record should remain the same record. Otherwise a bulk action could affect a different item merely because it moved into the selected visual slot.

Make sorting accessible beyond the arrow icon

W3Cโ€™s sortable-table example uses a control in the header and exposes the active sort state. The relevant principle is that a sorting operation needs both operable controls and an understandable resulting state.

Test keyboard activation, focus visibility, and the announcement of the order. An arrowโ€™s color alone should not be the only distinction between inactive and active controls. A screen-reader user needs to identify the sorted column and direction.

On mobile, retain the order summary even if the table becomes cards. Keep direction labels comprehensible and avoid tiny controls squeezed beside long headings. Changing presentation should not remove a core collection task.

Sort interface review checklist

  • Does the default order match the main task?
  • Are sorting, filtering, and searching distinct?
  • Can people identify the active key and direction?
  • Do header or menu controls suit the collection layout?
  • Is the toggle and reset behavior predictable?
  • Are ties resolved stably?
  • Are missing values distinct from zero or empty text?
  • Does comparison match the underlying data type?
  • Does ordering apply to the expected result set?
  • Are multi-key precedence and saved-view effects clear?
  • Do refreshes, failures, and selection preserve context?
  • Are controls and resulting states accessible on mobile and desktop?

Sort FAQ

Is sorting the same as filtering?

No. Sorting changes order. Filtering changes which records qualify. They can be combined, but the interface should show their separate effects.

Should every table column be sortable?

Only when ordering by that attribute supports a useful task. Decorative or action columns may not have a meaningful comparison.

Should sorting affect only the current page?

Match the expected collection scope. If sorting is limited to loaded rows, make that limitation explicit.

Related collection patterns

Explore Search for locating records, Table for comparing attributes, Saved Views for persistent configurations, and Status Indicator for interpreting record states.

For accessible header controls and sort-state semantics, see W3Cโ€™s sortable-table example. Compare the gallery by how reliably the order supports a decision, rather than by the arrow treatment alone.

Minimalist black and white abstract logo featuring intertwined curved lines forming a diamond shape.
Get SaaSFrame Pro
Monthly
$18
Quarterly
$48
Yearly
$180
Upgrade to access this feature
Browse all screens & flows
Filter and search screens & flows
Access Figma files
Access mobile versions
Bookmark screens & flows
Join now