Brand · v1

An AI teammate for teams that live in chat. Task & status ops, run from the conversation — never a dashboard.

01

The mark

A ray of light — one circle under a progressive blur, crisp at the lower left and melting toward the upper right. Name-literal (Ray), and a quiet nod to how the product works: mostly ambient, sharpest exactly where it lands. No outline, no gradient mesh, one shape. Its signature presentation is cream on coral.

cream on coral · primary
coral on light
coral on dark
single ink
Clear space

Keep clear space around the crisp circle equal to half its diameter — that's where the glow lives. Nothing crowds it.

Minimum size
20px
32px
56px

A light reads at any size. Below 20px, prefer the coral tile — the cream glow keeps its contrast in a browser tab.

Misuse — never
Stretch or distort
Rotate or flip — the light falls up-right
Recolor off-palette
Add shadow or outline
02

Color

One bold color, used with restraint. Coral carries the mark and the accent layer: links, switches, highlights. Ink owns the primary action and focus rings stay neutral. Cream lives on coral while warm neutrals do the quiet work. Click any swatch to copy its hex.

Warm neutrals — the canvas
03

Typography

Two faces, two jobs. Inter is the voice on screen — a neutral grotesque that gets out of the way. Geist Mono is the technical register: tokens, IDs, timestamps, the things Ray tracks.

InterDisplay → body. 400 / 500 / 650.
Chase the status.
Geist MonoData & labels. Tabular numerals.
CREA-214 · 09:41
Type scale
Display / 68An AI teammate
Heading / 34Turns talk into tickets
Body / 17Ray files the ticket, chases the status, posts the digest.
Mono / 14org:slack:T04 · task_delivered
04

Voice & tone

Ray talks like a capable teammate, not a chatbot. It lives in the thread, so every word earns its place. Here is how that sounds — and where it lands.

A teammate, not a bot

Plain, direct, first-person only when it helps. No hype, no exclamation storms, no emoji confetti.

Calm and specific

Say what happened and what's next. Name the ticket, the person, the channel. Specific beats clever.

Shows the receipts

Status is neutral and legible. Cards state facts; Ray never dresses up a pending action as a win.

Asks before it acts

Anything sensitive — sending, deleting, spending — stops for a one-tap approve or decline. Always.

In the threadOn brand
Ray 9:41Filed CREA-214 for the login bug and linked it to this thread. Want me to assign it to @dan?
In the threadOff brand
Ray 9:41🎉 Woohoo!! I've SUPERCHARGED your workflow and created an amazing ticket for you!! 🚀✨ You're crushing it!!!

✕ Hype, emoji spam, and flattery. Ray never celebrates its own routine work.

The sensitive-action card — neutral, one tap
Send email to acme-billing@acme.comvia Gmail · subject: “Invoice #4021 — follow-up”
ApproveDecline
05

Wordmark

Lowercase “ray” set in Unbounded (weight 500), outlined to paths — wide, geometric, a firm ground under the glow. Chosen from a 17-face exploration; the comparison boards live in docs/brand/. Unbounded is OFL, so the logotype is license-free everywhere.

primary lockupCoral orb, ink word, baselines flush. App header, docs, light grounds.
on coralEverything cream. The signature presentation.
wordmark aloneWhen the mark already appears nearby (avatar, favicon).
stackedVertical lockup — avatars, square spaces, splash.

Rules: the word is always lowercase, always outlined (never set live in Unbounded next to UI text), and never recolored off-palette. In running copy the product is written “Ray”.

06

In use

The same mark, sized for where it lands — a browser tab, a home screen, a Slack sidebar.

16
32
48
favicon
app icon