Design system/Patterns
Connector page
Every tool that connects to external services has a connector page with a fixed shape: live cards at the top, and a "Soon" shelf below that looks exactly like them but has no Connect button.
In codecomponents/soon-connectors.tsxcomponents/connector-catalog.tsx
Connector card
The logo in a 48px tile in the brand's own light color, the name in the form "Connect to <brand>" with the brand name untranslated, one line of description, and one action at the end: "Connect" or the connection status.
Connect Google Drive
See your Drive files next to the Library and attach them to actions; nothing in Drive gets deleted.
Soon
Connect Notion
SoonBring Notion pages into Knowledge.
The "Soon" shelf
A service that isn't built yet gets the same card with a "Soon" badge and no "Connect". The only action it can have is "Notify me": it doesn't connect anything, it just remembers on the account that this person wants to know, and that count is what decides which gets built first.
A system admin can hide any "Soon" card from the admin panel.
Rules
Do
"Soon" in the same shape as a live card, at the end of the page.
Don't
A gray, disabled card with a dead "Connect" button.
Do
State the limits of each connection in its description: what it reads, what it doesn't write.
Don't
"Everything syncs" when it doesn't.
<SoonConnectors
area="meet"
items={[{ key: "teams", name: "Microsoft Teams", desc: "…", accent: "#5059C9", Logo: serviceLogo("teams") }]}
/>The card in every state
- Live card: one action at the end, “Connect” or the connection status. On phones (below 640px) the .conn-card-actions buttons are 40px each and share the width.
- “Soon” card: the same card, with a badge-soft “Soon” badge and at most “Notify me”.
Do
If the connection is one-way, say so on the card.
Don't
A two-way sync symbol for a connection that only sends.
Do
Show the last sync time.
Don't
“Always in sync” when there's no background worker.
Do
A service whose key isn't configured should say “Unavailable”.
Don't
A connect button that fails on the service's consent screen.
Related pages