Brand guidelines
Confero
One platform for the whole event: call for speakers, evaluation, schedule, attendee app, tickets and payments. This page is the source of truth for the name, the mark, color, type and the UI rules the product follows. It is rendered from the same design tokens the app uses, so the values here are always the live ones.
1. Name
Confero is Latin: conferō, “I bring together”, the root of conference. It describes the product rather than one feature: speakers, organizers, attendees, sessions and payments brought to one place.
- Write it Confero in prose: capital C, one r, never all caps and never “ConFero”.
- Pronounced “con-FEH-ro”. The same in English and Portuguese.
- Products and areas take the name as a prefix: Confero Tickets, Confero Pay, Confero App.
- Emails go out as “{Event name} (via Confero)” so the organizer’s brand comes first.
Taglines in use
- Bring your event together.
- From call for speakers to the last ticket.
- Speakers, schedule, tickets. One place.
2. The mark
Four chevrons point to one centre. Each stands for one of the streams the platform gathers: submissions, the team, the schedule and the tickets. The dot is the event itself. Read quickly, it is also a compass, which fits “Discover” and the attendee app.
The mark is drawn on a 64-unit grid with a 5-unit stroke and round caps. Chevrons are 20 units wide and 10 deep, inset 12 units from the edge; the centre dot has a 4-unit radius. The same geometry is used for the UI icons (Lucide, 1.75 px stroke), so the mark and the icons share one weight on screen.
- Clear space: at least one chevron depth (10 units, or ¼ of the mark’s height) on every side.
- Minimum size: 16 px as a favicon, 20 px inside the UI, 8 mm in print.
- The mark always uses a single color: brand teal, black or white. Never a gradient or two tones.
3. Lockups
The horizontal lockup pairs the mark with the wordmark set in the UI typeface at semibold, tight tracking, the cap height matching the mark’s inner square. Use it in the top bar, on sign-in, in email footers and on documents. The mark alone is the app icon, the favicon and the sidebar brand on a dark surface.
- Mark in brand teal, wordmark in the strongest text color of the surface.
- On the dark sidebar both are white; the teal is reserved for the active-item accent there.
- No stacked lockup yet. If one is needed, the mark sits above the wordmark, centred, with one chevron depth between them.
4. Color
Colors are semantic tokens with a light and a dark value. Components only ever reference the token, never a hex value, so a theme or a brand override (08 §3) is a token change. Values below are read from @em/design-tokens.
| Token | Light | Dark | Use |
|---|---|---|---|
accent-primary | #15846E | #3FC1A2 | Brand teal. Primary buttons, the mark, active states. |
accent-primary-hover | #106A59 | #6FD0B8 | Hover and pressed state of the brand teal. |
accent-text | #106A59 | #6FD0B8 | Teal text, outline buttons and accent chips: the brand teal darkened to stay AA on every background. |
accent-subtle | #E8F7F3 | #0B4F42 | Tinted backgrounds behind brand content (page icons, KPI chips). |
bg-sidebar | #10211F | #0B1514 | Sidebar and brand-dark surfaces. The white mark sits on this. |
bg-canvas | #F7F8F8 | #121817 | Page background. |
bg-surface | #FFFFFF | #232B2A | Cards, tables, the top bar. |
bg-surface-muted | #EEF1F0 | #1B2322 | Table headers, zebra rows, muted cards. |
fg-strong | #121817 | #FFFFFF | Headings and emphasised text. |
fg-default | #3A4543 | #EEF1F0 | Body text. |
fg-muted | #5B6664 | #9AA4A2 | Secondary text, labels, icons at rest. |
border-default | #DCE1E0 | #4F5B59 | Dividers and card borders. |
link-default | #1767B0 | #8DBDF0 | Inline links. Blue, so links never compete with the brand teal. |
Feedback colors
Semantic color is separate from the brand teal: success is a distinct green, info is blue, warning amber, danger red. Each has a subtle background for banners and tiles.
| Token | Light | Dark | Use |
|---|---|---|---|
feedback-success | #0B7A61 | #8ED9B5 | Done, activated, accepted. |
feedback-info | #1767B0 | #8DBDF0 | Neutral notices and the confirm-email banner. |
feedback-warning | #7A4E05 | #F6CD82 | Waiting or pending, needs attention, deadlines. |
feedback-danger | #B4243A | #F2A0AB | Errors, problems that need attention, destructive actions; the test-mode pill (never a plain end state). |
Session statuses
Each status has one chip. The icon is always paired with the label; color alone never carries the state.
Other statuses
Orders, invites, deliverables, booths, leads and documents share one palette: waiting is amber, done is green, ended, canceled and draft states are grey, steps in between are blue, and red only marks a problem that needs attention (overdue, spam) or an error. The words come from one map per object, so the organizer, the buyer and the mail say the same thing.
5. Typography
One family everywhere: Inter (system-ui fallback). Hierarchy comes from size and weight, not from a second face. Headings are semibold, card titles bold, labels uppercase with a little letter-spacing. Running text stays at 65 characters or less.
Numbers that line up in columns use tabular figures. Dates are written “Wed, 10 Mar 2027”, times in 24 h with the event time zone (“Wed, 10 Mar 2027, 09:30”), money with two decimals and the currency (“1200,00 €”), the same on pages, mails and PDFs.
| 3xl | Bring your event together | Page titles (one per page) |
| 2xl | Bring your event together | KPI values |
| xl | Bring your event together | Card titles (dialog titles semibold) |
| lg | Bring your event together | Empty-state titles |
| md | Bring your event together | Body text (14 px on body), table cells, menu items |
| sm | Bring your event together | Secondary text, table headers, hints |
| xs | Bring your event together | Section labels, badges, chips |
6. Icons and components
Icons are Lucide at 1.75 px stroke, 16 px in navigation and buttons, 18 px in card titles, 20 px in page headers. An icon never appears alone where it carries meaning: status chips, alerts and navigation always show a label; icon-only buttons carry a tooltip and an accessible name.
- Primary buttons get a leading icon when the verb is concrete (Add, Import, Duplicate). “Save” and “Cancel” stay plain.
- Page actions sit in the page header on the right. Form actions sit at the bottom right of the form, the primary last and “Cancel” to its left. Confirmations use the shared dialog, never the browser’s.
- Controls are 36 px tall on desktop and 44 px on phones.
- Page headers: one icon in a tinted square, a breadcrumb when the page lives under an event, actions on the right.
- Sidebar: grouped items with icons, a count badge for work waiting, a teal accent bar on the active item.
- Empty states: icon chip, one-line title, one sentence, the one action that fills the list.
- Tables: muted header row, zebra rows, hover highlight, no outer border inside a card.
- Checkboxes and radios: always
Checkbox,Radio,RadioGrouporChoiceCardfrom@em/ui. The box sits in a one-line-tall slot, so it is centred on the first line of its label however long the label is. BareCheckboxInputis only for table selection with an accessible name. Lint rejects raw inputs.
Sessions
128
Speakers
74
12 new this week
Call for speakers
7. What not to do
- Don’t rotate, skew or outline the mark, or add a drop shadow.
- Don’t recolor the mark in a feedback color (green, amber, red) or in two tones.
- Don’t set the wordmark in another typeface or in all caps.
- Don’t place the teal mark on the dark sidebar; use the white mark there.
- Don’t use the brand teal for success states; success has its own green.
- Don’t use a raw hex value in a component; use the token.
- Don’t use an icon without a label where it carries meaning.
- Don’t stretch the lockup; scale it proportionally and keep the clear space.
8. Downloads
confero-mark.svgMark, blackconfero-mark-black.svgMark, whiteconfero-mark-white.svgLockup (mark + wordmark)confero-lockup.svgApp icon, 512confero-app-icon.svgThe React component is Logo / LogoMark in @em/ui; the tokens are in @em/design-tokens(primitives.json, semantic.light.json, semantic.dark.json).