Design system

Paper, ink and signal

The design system of Neoservice AI and Neoffice: colour, typography, logos and motion for our interfaces, our websites and our documents.

The Neoservice AI logo: the v and the bar of the i slide together behind the word, then the v does a backflip and becomes Λ.
Paper#FAF3EACarries the page: a warm cream, never pure white.
Ink#141414Carries the weight: the text, the logos and all actions.
The signal#F55D1AThe only accent: a field and a gesture, never a button.
The brand

One house, one product

Neoservice AI is the house, Neoffice its product: the all-in-one Swiss ERP. The trade editions follow as “neo” plus the trade.

The brand is Swiss, precise and reassuring, with the warmth and calm of a well-made product, never the cold blue of enterprise software.

The tone

The language

Swiss French first. Amounts in Swiss francs: CHF 149.–, CHF 48 250.

The form of address

Always the polite form. We speak to clients about their own company: “Run your business.”

The tone

Confident, pragmatic, calm: no surprises, no commitment, 100% Swiss, all-in-one.

Case

Sentences in lower case, eyebrows in spaced capitals, no emoji in the interface.

Logos

Three logos, one ink

The logos are vectorised and always in ink. Their outlines are never retouched, and they are drawn with all their shapes.

neofficeOn light
On dark

neoffice

“neo” solid, “ffice” outlined. The product: the all-in-one Swiss ERP.

neoserviceOn light
On dark

neoservice

“neo” solid, set apart by a light halo; “service”, a light interior inside an ink outline. The house.

Neoservice AIOn light
On dark

Neoservice AI

The AI comes out of the word: the upside-down v becomes the Λ, the bar of the i becomes the I. It sits on the right, at the size of the word.

The rules

  • Always in ink, the AI included. Colour only appears in motion.
  • The AI on the right, at the size of the word: never smaller, never set lower.
  • All the shapes of the file: without its halo, “neo” becomes a block.
  • On dark, the ink becomes paper and the light parts take the colour of the background.
Motion

Calm and Swiss: no bounce

Short transitions, 120 to 320 ms, on soft curves. Entrances fade in, with a short slide. Every movement respects the “reduce motion” setting: the final state is shown instead.

The Neoservice AI logo: the v and the bar of the i slide together behind the word, then the v does a backflip and becomes Λ.

Motion 9 · restrained

Together, then the backflip

  1. The v and the bar of the i fill with ink within their outline.
  2. They slide together behind the end of the word, which stays whole.
  3. Only the v does a backflip and becomes the Λ.
  4. The bar moves closer and settles against it.

Played once on loading, it stops on the complete logo.

Motion 4

The header that folds away

On scroll, the logo folds away letter by letter from the end of the word, until only “AI” remains. It follows the reading and never plays on its own.

The word “neo”, followed in turn by service, ffice and the other trades.

Motion 3

The family

“neo” stays, the trade changes every two seconds.

The curves

  • --ease-standardMost transitions. cubic-bezier(0.2, 0, 0, 1)
  • --ease-emphasizedA gesture that sets off. cubic-bezier(0.3, 0, 0, 1)
120ms200ms320ms480ms

Hover and press

On hover, a slight change of background or border. On press, a little darker, and buttons shrink to 98%.

Colour

The signal lives on the background

Paper carries the page, ink carries the weight, and the signal is the only accent: a field, a tint, an active state, the gesture of a movement.

Page#FAF3EA
Card#FFFFFF

Paper

A warm cream for the page, white for cards. Never a pure white page, never pure black as a background.

sand-950#141414

Ink

The text, the logos and all actions: the solid button is black. On dark, it becomes paper.

signal-400#F55D1A

The signal

A field, a tint, a dot, an active state, a progress bar. What sits on it is in ink.

The signal scale

  1. 50#FFEAE2tint
  2. 100#FFD1C1dot
  3. 200#FFB599
  4. 300#FF8D64
  5. 400#F55D1Athe signal
  6. 500#D54600carries nothing
  7. 600#AA3700text on paper
  8. 700#81300F
New
Yes

Ink on the signal

Ink reads at 5.7:1 on it.

New
No

No light text on the signal

White reads at only 3.3:1 on it: not allowed.

CHF 149.–
Yes

The signal as text, at its deep step

On paper, for a price, a link, the first name in the greeting: 5.9:1.

Get started
Yes

Actions are in ink

Never a button in the signal, the site’s call button included.

clay-500 · #C2723F

Clay, the material

It remains the second tone of the icons and the material of the illustrations, Nora’s mascot included.

PaidPendingOverdueInformationDraft

Statuses

Earthy tones, always with a word or a dot, never colour alone. Blue is not a brand colour: a discreet slate, for information only.

No colour per product

The trades are told apart by their name. Colours that differ only in hue merge for a colour-blind reader.

Typography

Forum for the voice, Karla for the rest

Two families. The hierarchy comes from size, not weight.

Forum

--font-display

Run your business

CHF 48 250

A flared serif, in a single weight. Headings, the greeting, panel headers and large figures.

Karla

--font-sans

All your Swiss invoicing in one tool.

  • Aa 1'027400
  • Aa 1'027500
  • Aa 1'027600
  • Aa 1'027700

Eyebrow

A humanist grotesque, with tabular figures. The interface, body text, labels and data. Eyebrows: Karla, in spaced capitals.

The scale

  • text-6xl · 84pxYour Swiss cloud ERP
  • text-5xl · 64pxYour Swiss cloud ERP
  • text-4xl · 48pxYour Swiss cloud ERP
  • text-3xl · 36pxYour Swiss cloud ERP
  • text-2xl · 28pxYour Swiss cloud ERP
  • text-xl · 22pxYour Swiss cloud ERP
  • text-lg · 18pxYour Swiss cloud ERP
  • text-md · 16pxYour Swiss cloud ERP
  • text-base · 15pxYour Swiss cloud ERP
  • text-sm · 14pxYour Swiss cloud ERP
  • text-xs · 12pxYour Swiss cloud ERP
  • text-2xs · 11pxYour Swiss cloud ERP

Cal Sans is used only for the logos, which are vectorised. The system mono is used for identifiers, IBANs and QR strings.

Space and shapes

A 4 px grid

Containers up to 1280 px. Fine, warm borders before shadows, and restrained shadows tinted brown.

Spacing

  • space-14px
  • space-28px
  • space-312px
  • space-416px
  • space-520px
  • space-624px
  • space-728px
  • space-832px
  • space-1040px
  • space-1248px
  • space-1664px
  • space-2080px
  • space-2496px
  • space-32128px

Radii

  • Controls10px
  • Cards14px
  • Panels20px
  • Header surfaces28px
  • Pills and avatars999px

Shadows

  • shadow-xs
  • shadow-sm
  • shadow-md
  • shadow-lg
  • shadow-xl

Focus

A signal ring around the active field.

Motifs

The warmth comes from the paper

No blue-violet gradients, no stock photos.

The gradient paper

Cream, with a glow of the signal at the top right: the default background.

The column rules

Paper ruled with fine vertical lines, behind the content.

The grid

8.5 rem squares that fade out under the headers.

The auroras

Two soft glows: the signal on the left, sage on the right.

The title gradient

From ink to the signal, then back to ink.

Espresso

The warm dark, for Nora and night views.

Icons

Hand-drawn icons

Streamline Freehand Duotone: the main stroke follows the text colour, the second tone is clay, fixed in the file. They are never recoloured.

  • archive-box
  • arrow-left
  • arrow-right
  • arrow-up-right
  • bell
  • book
  • box
  • brain
  • briefcase
  • building
  • calendar
  • chart-up
  • chat-bubble
  • check-circle
  • check
  • chevron-down
  • chevron-left
  • chevron-right
  • clipboard
  • clock
  • close
  • code
  • coins
  • credit-card
  • document
  • envelope
  • facebook
  • fire
  • gear
  • globe
  • graduation
  • handshake
  • lightbulb
  • linkedin
  • location
  • lock
  • map-pin
  • medal
  • menu
  • microphone
  • minus
  • monitor
  • moon
  • pause
  • phone
  • play
  • plus
  • question
  • rocket
  • scan-document
  • search
  • send
  • shield
  • smartphone
  • smile
  • sun
  • target
  • twitter
  • user
  • users
  • wave
  • website
  • wifi
  • wrench

They sign the site. The ERP and the till use Lucide; the mobile app has its own set.

Nora, the assistant’s mascot

Nora

The assistant’s mascot is an illustration, not an icon: never recoloured, never below 40 px, never in a row of icons.

Illustrations

Four isometric scenes

One scene per sector, for the website.

The workshop
The workshop
The café
The café
The office
The office
The store
The store
Tokens

Tokens, light and dark

Every value comes from the design system, in two layers: the scales, then the roles that refer to them.

The scales

Signal

  • signal-50#FFEAE2
  • signal-100#FFD1C1
  • signal-200#FFB599
  • signal-300#FF8D64
  • signal-400#F55D1A
  • signal-500#D54600
  • signal-600#AA3700
  • signal-700#81300F

Ink and sand

  • white#FFFFFF
  • sand-25#FBFAF7
  • sand-50#F6F3ED
  • sand-100#ECE7DE
  • sand-200#DCD4C7
  • sand-300#BFB5A4
  • sand-400#968C7C
  • sand-500#6F665A
  • sand-600#524B41
  • sand-700#3A342C
  • sand-800#232020
  • sand-900#1A1817
  • sand-950#141414
  • black#000000

Paper

  • paper-bright#FFFDF8
  • paper-cream#FAF3EA

Clay

  • clay-50#FAEFE6
  • clay-100#F3DECC
  • clay-200#E9C5A4
  • clay-300#DDA479
  • clay-400#D68A59
  • clay-500#C2723F
  • clay-600#A15A2E
  • clay-700#7E4523

Success

  • green-50#E9F7EE
  • green-100#CBEDD7
  • green-500#1F9D57
  • green-600#178347
  • green-700#11663A

Warning

  • amber-50#FCF2DD
  • amber-100#F8E2B4
  • amber-500#E0980F
  • amber-600#BC7D0B
  • amber-700#92610C

Danger

  • red-50#FBEBE7
  • red-100#F6D2C9
  • red-500#DC4A3D
  • red-600#C1372C
  • red-700#9C2920

Information

  • blue-50#EEF2F6
  • blue-100#DCE4EC
  • blue-500#4A6B8F
  • blue-600#3A5572
  • blue-700#2C4156

The roles

For each text, its contrast on the page.

RoleLightDark
--color-bg#FAF3EA#141414
--surface-card#FFFFFF#1B1611
--surface-raised#FFFFFF#221C16
--surface-sunken#F6F3ED#100E0D
--surface-subtle#FBFAF7#161413
--surface-inverse#141414#FFFDF8
--surface-overlayrgba(24, 20, 16, 0.55)rgba(0, 0, 0, 0.66)
--text-primary#14141416.7:1#FFFDF818.1:1
--text-secondary#524B417.8:1#BFB5A49.1:1
--text-tertiary#968C7C3:1#968C7C5.6:1
--text-disabled#BFB5A41.8:1#524B412.1:1
--text-inverse#FFFDF8#141414
--text-brand#AA37005.9:1#FF8D648.1:1
--text-link#81300F8.1:1#FF8D648.1:1
--border-subtle#ECE7DErgba(255, 251, 245, 0.08)
--border-default#DCD4C7rgba(255, 251, 245, 0.14)
--border-strong#BFB5A4rgba(255, 251, 245, 0.24)
--border-focus#F55D1A#F55D1A
--color-primary#141414#FFFDF8
--color-primary-hover#232020#ECE7DE
--color-primary-active#000000#DCD4C7
--color-primary-fg#FFFDF8#141414
--color-primary-soft#ECE7DErgba(255, 251, 245, 0.10)
--color-primary-soft-fg#1A1817#FFFDF8
--color-accent#F55D1A#F55D1A
--color-accent-hover#D54600#D54600
--color-accent-active#AA3700#AA3700
--color-accent-strong#AA3700#AA3700
--color-accent-fg#141414#141414
--color-accent-soft#FFEAE2rgba(245, 93, 26, 0.16)
--color-accent-soft-fg#81300F#FFB599
--color-info#4A6B8F#4A6B8F
--color-info-soft#EEF2F6#EEF2F6
--color-info-fg#2C4156#2C4156
--color-success#1F9D57#1F9D57
--color-success-soft#E9F7EE#E9F7EE
--color-success-fg#11663A#11663A
--color-warning#E0980F#E0980F
--color-warning-soft#FCF2DD#FCF2DD
--color-warning-fg#92610C#92610C
--color-danger#DC4A3D#DC4A3D
--color-danger-soft#FBEBE7#FBEBE7
--color-danger-fg#9C2920#9C2920

Typography

Families
  • --font-display'Forum', 'Times New Roman', serif
  • --font-sans'Karla', system-ui, -apple-system, 'Segoe UI', sans-serif
  • --font-monoui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace
Scale
  • --text-2xs0.6875rem
  • --text-xs0.75rem
  • --text-sm0.875rem
  • --text-base0.9375rem
  • --text-md1rem
  • --text-lg1.125rem
  • --text-xl1.375rem
  • --text-2xl1.75rem
  • --text-3xl2.25rem
  • --text-4xl3rem
  • --text-5xl4rem
  • --text-6xl5.25rem
Weights
  • --fw-light300
  • --fw-regular400
  • --fw-medium500
  • --fw-semibold600
  • --fw-bold700
  • --fw-extrabold800
Line heights
  • --leading-none1
  • --leading-tight1.15
  • --leading-snug1.3
  • --leading-normal1.5
  • --leading-relaxed1.65
Tracking
  • --tracking-tighter-0.03em
  • --tracking-tight-0.015em
  • --tracking-normal0
  • --tracking-wide0.02em
  • --tracking-wider0.08em
  • --tracking-caps0.14em

Space, radii, shadows and motion

Spacing
  • --space-10.25rem
  • --space-1-50.375rem
  • --space-20.5rem
  • --space-2-50.625rem
  • --space-30.75rem
  • --space-41rem
  • --space-51.25rem
  • --space-61.5rem
  • --space-71.75rem
  • --space-82rem
  • --space-102.5rem
  • --space-123rem
  • --space-164rem
  • --space-205rem
  • --space-246rem
  • --space-328rem
Radii
  • --radius-xs4px
  • --radius-sm6px
  • --radius-md10px
  • --radius-lg14px
  • --radius-xl20px
  • --radius-2xl28px
  • --radius-pill999px
Shadows
  • --shadow-xs0 1px 2px rgba(40, 28, 18, 0.05)
  • --shadow-sm0 1px 2px rgba(40, 28, 18, 0.05), 0 1px 3px rgba(40, 28, 18, 0.07)
  • --shadow-md0 2px 4px rgba(40, 28, 18, 0.04), 0 6px 16px rgba(40, 28, 18, 0.08)
  • --shadow-lg0 6px 12px rgba(40, 28, 18, 0.06), 0 16px 36px rgba(40, 28, 18, 0.10)
  • --shadow-xl0 12px 24px rgba(40, 28, 18, 0.08), 0 32px 64px rgba(40, 28, 18, 0.16)
Curves
  • --ease-standardcubic-bezier(0.2, 0, 0, 1)
  • --ease-emphasizedcubic-bezier(0.3, 0, 0, 1)
  • --ease-outcubic-bezier(0, 0, 0.2, 1)
  • --ease-incubic-bezier(0.4, 0, 1, 1)
Durations
  • --duration-fast120ms
  • --duration-base200ms
  • --duration-slow320ms
  • --duration-slower480ms

A question about the brand?

To use our logos, or to work with us, write to us.

Write to us