The Gravixar identity system
Brand identity · 2026
My own brandWhat it is
The identity Gravixar runs on: the mark, one accent color with one job, a warm dark palette, one type family, a serif voice for a single phrase, and mono kept for machine output. Not a deck describing a system. The system itself, in use, with the tokens that enforce it living in one theme block.
The coral is not the logo color, and it has one job
The mark carries a small solid square in pure red. Red at full saturation is a poor interface accent: it fights everything near it, and it already means "error" everywhere else on a page. So the accent is coral at #ff6b35, chosen to sit beside that red rather than compete with it. The dark-ink wordmark variant shifts the square a little warmer for the same reason, so a printed lockup on white does not glare.
The coral also has exactly one job. It marks a human decision: the main action on a page, an Approve button, the approved state, the page you are on in the menu, and the focus ring that shows where you are about to act. It is never a label color, never a hover color and never link text. The business is AI that drafts and a person who decides, so the one color that stands out is kept for the person deciding.
Warm ink, not black
The ground is #0c0a09, a black with a little stone in it, and text is #f3efe8, a warm off-white rather than pure white. Between them sits one ramp of warm greys that replaced the cold neutral greys the site used before. The rule for it is short: the lighter half is for words, and the darker half is only ever for lines and shapes. Muted text measures 6 to 1 against the ground, so it stays readable at small sizes.
Hairlines come in three ranks: a soft one that separates things inside a box, a standard one that draws the box, and a strong one for a focused or approved edge. There is no light theme, and not having one is a decision rather than a backlog item. A palette that has to look right in both directions ends up a compromise in both. This one is tuned for a single condition and is sharper for it.
The type is where a generated brand gives itself away
Everything is set in Mona Sans, one open source variable family, loaded with its width axis so large headings can run slightly condensed while body text stays at its normal width. It replaced a two-family pairing. The display face it retired had slab serifs on its capital I, which read as a fallback glyph in every heading on a site written as "I". The obvious choices, Inter or the framework's own face, announce that nobody chose anything, and for a studio selling design judgment that is the worst first impression available.
The second voice is Newsreader italic, and it is rationed: one phrase per page at most, never smaller than 20px, never on a button or a label. It is the human voice, the part of a sentence that sounds like a person said it. Used everywhere, it would be decoration. Used once, it reads as someone speaking.
Mono is for the machine
Geist Mono does one job: it sets what a machine says. URLs, timestamps, status chips, code and figure captions. Labels written for people, like a section name or a form field, are set in the same sans as everything else. The system this one replaced put a 10px uppercase mono label on every field, eyebrow and metric, and the site read like a terminal. Now mono is rarer and quieter, which is what makes it mean something: when you see it, a machine wrote it. Nothing on the site is smaller than 11px.
Where to check it
Scroll. Coral is kept for where you would act: the main buttons, the marker in the menu that says where you are, and the focus ring if you move through the page with the keyboard. The second half of the closing panel's headline is this page's one serif phrase. Everything else is ink, sans and hairline. That is a stronger check than any mockup of the system would be. If a piece of it were weak, you would be looking straight at it.
No client briefed this one, and I am not going to present it as though one did. It is my own brand, and the useful thing about that is the constraint it creates: I have to live inside these rules every time I ship a page here. That is a harder test than a guidelines PDF that gets opened twice and then ignored.

