Universal Field Display
Displaying data consistently across an application is harder than it sounds. A date should look like a date. A status should show as a badge. A file should render as a downloadable link. A currency value should be formatted with the right symbol and decimals. Until now, getting all of that right meant handling each field type separately in every view it appeared.
We've consolidated all of that logic into a single universal field display component.
One Component for Everything
The universal field display component knows how to render any field type your data model contains. Pass it a field definition and a value, and it figures out the right presentation automatically:
- Text and numbers render with appropriate formatting based on locale and field configuration
- Dates and times apply your workspace's date format, no manual formatting needed
- Status fields display as color-coded badges with the status label
- Relation fields show linked record labels, not raw IDs
- File fields render as downloadable attachments with file type icons
- Boolean fields display as clean yes/no indicators
- Structured fields expand nested data clearly
Consistent Across Every View
The same component powers field display in list rows, detail panels, summary cards, and any custom page you build. That means a date field looks identical whether you encounter it in a table, in a record detail view, or in a summary widget on a dashboard.
This consistency isn't cosmetic. When every instance of a field type looks and behaves the same way, users learn the interface once and navigate with confidence everywhere. They don't need to interpret different presentations of the same underlying information.
No Configuration Required
The component derives its rendering logic from the field definition itself. If a field is defined as a date, it renders as a date. If it has options with colors, it renders as a badge. If it's a relation, it resolves the linked record's label.
You don't need to tell the component how to render. The definition already contains everything it needs to know.
Custom Overrides When You Need Them
While automatic rendering covers the vast majority of cases, the component supports display overrides for situations where you need something specific. You can override the format for a particular instance without changing the field definition. The override applies locally; all other uses of the field continue with automatic rendering.
This gives you the consistency of a single component with the flexibility to adjust presentation for edge cases — without introducing inconsistency into your core data model.
The Result
Build a new view, add a field to a layout, or create a new page type — the field displays correctly from the first render. No formatting code, no per-field display logic, no inconsistencies between views. One component handles everything, and it handles it well.