Skip to content

Workflows Table Row Density#3285

Merged
Alex-Tideman merged 12 commits intomainfrom
workflows-row-compact
Apr 16, 2026
Merged

Workflows Table Row Density#3285
Alex-Tideman merged 12 commits intomainfrom
workflows-row-compact

Conversation

@Alex-Tideman
Copy link
Copy Markdown
Collaborator

@Alex-Tideman Alex-Tideman commented Apr 9, 2026

Description & motivation 💭

Reduce the whitespace in the Workflows List to allow users to more quickly scan information, especially if they have configured lots of columns.

Summary

  • Add a table density toggle to the workflows summary table, allowing users to switch between Dense (dense rows with truncated values and short timestamps) and Comfortable (standard spacing with full values) views
  • Add table-dense and table-comfy icons to the Holocene icon system for the density toggle button
  • Extract a reusable truncateValue utility and add a persisted tableDensity store

Test plan

  • Verify the density toggle button appears in the workflows table toolbar, with the first time showing the FeatureTag icon (indigo dot) to draw attention to it.
  • Click the toggle and confirm the table switches between compact and comfy views
  • In Dense mode: values are truncated, timestamps use short format, row actions are smaller
  • In comfy mode: full values are shown with filter/copy buttons, timestamps use long format
  • Refresh the page and confirm the density preference persists
  • Verify both table-dense and table-comfy icons render correctly at various sizes

Screenshots (if applicable) 📸

Dense.ComfyQuick.mov

Design Considerations 🎨

  • Do we want to keep Copy and Filter icon buttons on Compact density? If so, where would they go? Yes keep.

Testing 🧪

How was this tested 👻

  • Manual testing
  • E2E tests added
  • Unit tests added

Steps for others to test: 🚶🏽‍♂️🚶🏽‍♀️

Checklists

Draft Checklist

Merge Checklist

Issue(s) closed

Docs

Any docs updates needed?

@Alex-Tideman Alex-Tideman requested a review from a team as a code owner April 9, 2026 03:20
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 9, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
holocene Ready Ready Preview, Comment Apr 16, 2026 3:00pm

Request Review

@acav-temporalio
Copy link
Copy Markdown

The design team is currently doing our own table density work to make sure everything plays nice for all the various types of styles we have in our tables, as well as adjusting sizing of components within tables that will impact table row height and truncation. We definitely want to tackle this but we want to make sure we're covering all our bases so this can become a pattern across the board for all high density tables. We already have "All/Compact" and then adding a "Compact/Comfy" may start crossing some boundaries we want to care for preemptively.

Can we pause on this while the UX team wraps up our discovery and comparison and then we'll come back with a comprehensive plan for how a compact/comfy treatment will work across all tables in the UI?

This would be an excellent candidate for a UX/Eng collaborative pairing.

Noting some things that this would cover:

  • row height
  • row width
  • truncation and inline button access
  • timestamp format (? overrides user-chosen timestamp format?)

@@ -71,6 +72,7 @@
workflowId={workflow.id}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ 'workflow' is possibly 'undefined'.
  • ⚠️ Type 'string | undefined' is not assignable to type 'string'.

@@ -71,6 +72,7 @@
workflowId={workflow.id}
taskQueue={workflow.taskQueue}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ 'workflow' is possibly 'undefined'.

class={$tableDensity === 'compact' ? 'mt-1 h-5 w-5' : ''}
>
<Tooltip
text={childrenShown
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ Argument of type '{ count: number | undefined; }' is not assignable to parameter of type 'I18nReplace'.

@temporal-cicd
Copy link
Copy Markdown
Contributor

temporal-cicd Bot commented Apr 13, 2026

Warnings
⚠️

📊 Strict Mode: 12 errors in 3 files (1.1% of 1062 total)

src/lib/components/workflow/workflows-summary-configurable-table/table-body-cell.svelte (1)
  • L190:8: Type 'string | undefined' is not assignable to type 'string'.
src/lib/components/workflow/workflows-summary-configurable-table/table-row.svelte (7)
  • L38:4: Type 'string | undefined' is not assignable to type 'string | number'.
  • L70:17: 'workflow' is possibly 'undefined'.
  • L71:22: 'workflow' is possibly 'undefined'.
  • L72:10: Type 'string | undefined' is not assignable to type 'string'.
  • L72:21: 'workflow' is possibly 'undefined'.
  • L73:24: 'workflow' is possibly 'undefined'.
  • L87:50: Argument of type '{ count: number | undefined; }' is not assignable to parameter of type 'I18nReplace'.
src/lib/components/workflow/workflows-summary-configurable-table.svelte (4)
  • L78:56: Argument of type 'string | null' is not assignable to parameter of type 'string | undefined'.
  • L117:9: Type '(workflow: WorkflowExecution) => Promise' is not assignable to type '(workflow?: WorkflowExecution | undefined) => void'.
  • L125:15: Object is possibly 'undefined'.
  • L136:8: '$$_etatSytpmEelbaT2.$$slot_def' is of type 'unknown'.

Generated by 🚫 dangerJS against ad9b314

@@ -74,6 +77,13 @@
};

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ Argument of type 'string | null' is not assignable to parameter of type 'string | undefined'.

Comment thread src/lib/i18n/locales/en/common.ts Outdated
Comment thread src/lib/holocene/feature-tag.svelte Outdated
<td
class="workflows-summary-table-body-cell filterable"
class="workflows-summary-table-body-cell"
class:filterable={!truncate}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If there aren't a lot of columns in the table, the filter and copy buttons can get super far away from the actually cell data. Wondering if it would look at all better to make them stick close to the end of the text?

Image

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah was thinking about this, but if you don't have many columns, you aren't going to use Dense mode. I don't want to add a bunch of complexity here when its not really the point of the mode to use when you just have a couple of columns.

Comment thread src/lib/holocene/feature-tag.svelte Outdated
<TableBodyCell {workflow} {column} truncate={dense} />
{/each}
</TableRow>
{#if childrenActive(workflow)}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ Object is possibly 'undefined'.

@@ -165,6 +190,7 @@
attribute={label}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ Type 'string | undefined' is not assignable to type 'string'.

@Alex-Tideman Alex-Tideman merged commit b223105 into main Apr 16, 2026
19 checks passed
@Alex-Tideman Alex-Tideman deleted the workflows-row-compact branch April 16, 2026 21:07
rossnelson added a commit that referenced this pull request Apr 20, 2026
Auto-generated version bump from 2.48.3 to 2.48.4

Specific version: 2.48.4

Changes included:
- [`7cf1be53`](7cf1be5) Adjust breadcrumb spacing and min-height (#3304)
- [`c9834815`](c983481) Add missing Nexus Operation events to event groups (#3309)
- [`5c7aa86c`](5c7aa86) feat: add onItemsChange callback to PaginatedTable (#3300)
- [`66d3cf68`](66d3cf6) Update pre-release badge to secondary in Workers (#3310)
- [`393e84de`](393e84d) Keep Pending Activities/Operations at the top of Timeline and Compact view (#3307)
- [`9f721347`](9f72134) Update error link in codec-server-error-banner (#3313)
- [`e698bda3`](e698bda) Add class prop to BottomNav component (#3314)
- [`55767fc9`](55767fc) Add overrides (#3317)
- [`256cd274`](256cd27) refactor(decode-payload): clean up decode-payload.ts API surface (#3302)
- [`04f8c251`](04f8c25) Make input height full so its easier to click into the input (#3318)
- [`b2231056`](b223105) Workflows Table Row Density (#3285)
- [`0b2ce4fd`](0b2ce4f) PR Review Notifications (#3322)
- [`84618196`](8461819) feat: serverless worker deployment CRUD (#3236)

Co-authored-by: rossnelson <146089+rossnelson@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants