BridgeHandbookDraft
For agents
Menu
Draft

Dates and times

One way to show when something happened.

Bridge writes dates one way everywhere, so people never decode two formats on one screen.

The problem

Bridge OS writes dates in several ways today: "3d ago" in one table, "Sep 12, 2026" in the intros table, "Thu, Aug 13 · 9:59 AM" on a meeting card. Two formats on one screen make people stop and decode. Bridge now has one rule for every date.

What to do

  • Recent dates say how long ago. Under 7 days: "Today", "Yesterday", "4 days ago".
  • Older dates are short. After that, the short month then the day: "Jul 20". Add the year only when it isn't this year: "Jul 20, 2025".
  • The viewer's time, lined up. Times are shown in the viewer's own time zone. Dates in a column use tabular-nums, so they line up.

Which one do I use?

SituationDo thisBridge example
When an intro was made, in the intros tableThe date rule, in a column with tabular-nums4 days ago · Jul 20
When something happened, in the activity feedThe same rule; no "2d" or "3w"Yesterday
Last met, or when the calendar last syncedThe same rule inside the sentence, lower caseLast met 6 days ago · Calendar synced today
A date from another yearShort date with the year3 Nov 2025
Someone needs the exact momentA Tip on the date with the full date and time (approved, not built yet)12 Sep 2026, 14:05

See it work

Live examples built from the package on the sample network. Click through them.

One helper, every date

The same stored dates, written the Bridge way. Measured from the handbook's fixed today, 16 Sep 2026.

Stored dateWhat Bridge writes
  • 2026-09-16Today
  • 2026-09-15Yesterday
  • 2026-09-124 days ago
  • 2026-08-18Aug 18
  • 2026-07-20Jul 20
  • 2025-11-03Nov 3, 2025

Dates in a table column

Newest first. The recent ones say how long ago; the July intro switches to a short date. `tabular-nums` keeps them lined up.

Intro
Made by
Created
Jonas Becker → Hannah Weiss
Ana Ruiz
Yesterday
Fatima Al-Sayed → Isabella Rossi
Marcus Bell
2 days ago
Priya Natarajan → Leah Okonkwo
Ana Ruiz
4 days ago
Kwame Asante → Leah Okonkwo
Marcus Bell
6 days ago
Mei Lin Zhou → Ravi Menon
Marcus Bell
Sep 2
Daniel Osei → Tomás Herrera
Ana Ruiz
Sep 1
Aleksandr Volkov-Petrenko → Ravi Menon
Ana Ruiz
Aug 28
Priya Natarajan → Fatima Al-Sayed
Hannah Weiss
Jul 20

The exact time on hover or focus

The approved addition: hover a date, or reach it with Tab, to see the full date and time in your own time zone.

  • Jonas Becker → Hannah Weiss

    Intro by Ana Ruiz

    Yesterday
  • Priya Natarajan → Leah Okonkwo

    Intro by Ana Ruiz

    4 days ago
  • Priya Natarajan → Fatima Al-Sayed

    Intro by Hannah Weiss

    Jul 20

What to write

PartRuleExample
Today"Today" on its own; lower case inside a sentence.Today · Calendar synced today
One day ago"Yesterday", never "1 day ago".Yesterday
Under 7 daysThe number and "days ago", in words. No "d", "w" or "mo".4 days ago
Older, this yearThe short month, then the day. No period.Jul 20
Another yearAdd a comma and the year.Jul 20, 2025
Exact timeThe full date, "at", then the 12-hour time, in the viewer's time zone.Jul 20, 2026 at 2:05 PM

Approved, not built yet

  • Exact time on hover or focus ("Jul 20, 2026 at 2:05 PM") through Tip, for relative dates.

Accessibility

  • Dates are written in words ("4 days ago"), so they read aloud the same way they look.
  • A Tip is a visual extra that screen readers don't announce: the date people can see must make sense on its own.
  • A date with an exact-time Tip uses Tip's focusable, so keyboard users can reach it with Tab, not only mouse users.
KeysWhat happens
TabMoves to a date that has an exact-time Tip and shows it.
EscCloses the Tip.

Components this uses

Each opens that component’s own page, with its options and code.

ComponentIts job here
DataTableDate columns (Created, Updated); render the cell with tabular-nums.
InfoHint, HoverTip and TipTip shows the exact date and time on hover or focus (approved, not built yet).

Not decided yet

Proposals for Aman to approve, change or reject. Not rules.

  • How to write future dates and meeting times (an upcoming meeting today, tomorrow or next week), and whether times use 24 hours as in the approved "14:05" example.
  • Whether the activity feed keeps minutes and hours for very recent items ("5m", "3h") or always says "Today".
  • Whether date ranges (a growth chart's week, "Week of 7 Sep") follow a fixed wording.

Where Bridge OS differs today

Follow this page, not the gap.

  • Bridge OS's timeAgo writes "3mo ago" / "2 years ago" in some tables.
  • Bridge OS's intros table writes "Sep 12, 2026" (US order, always with the year) in its Created and Updated columns (intros-table.tsx → formatIntroDate).
  • Bridge OS's activity feed writes "5m", "3h", "2d", "3w", "2mo" (activity-feed-item.tsx → feedTime), and the sharing table writes "3d ago", "2w ago" (connectors-tab.tsx → relativeTime).
  • Bridge OS's meeting card writes "Thu, Aug 13 · 9:59 AM" (upcoming-meeting-card.tsx → formatMeetingWhen), and the growth chart's week labels follow the browser's locale.

Sources

  • Decision 2026-11-02
  • Rule: Numbers line up
  • 01-decisions.md → Answers from Aman (Phase 4 start) → Sentence case everywhere
  • Package info-hint.tsx → Tip; handbook InfoHint guidance → Accessibility
  • Bridge OS intros-table.tsx (Created / Updated columns); recently-met-rail.tsx; calendar-sync-status.tsx
  • Proposals approved by Aman 2026-11-02.