Edition MMXXVI Volume I Riyadh, KSA

F. BINSABBAR®

- the brand book -

The single source of truth for the brand: identity, foundations, components, patterns, voice. Everything visual, terminological, and operational that powers a F. BINSABBAR experience.

Owner Faisal Binsabbar Design LLC
Surfaces Apps · Web · Showroom
Tokens fb-ui.css
Trademark TM-01-00-44436-25
Integration guide
  1. 01Identity
  2. 02Principles
  3. 03Foundations
  4. 04Components
  5. 05Patterns
  6. 06Voice & Tone
  7. 07Accessibility
  8. 08Appendix
01

Identity

The wordmark, what it stands for, and the four owned surfaces it appears on. Every external touch starts here.

Wordmark

The brand wordmark is F. BINSABBAR. Always uppercase, always with a period after the F, always one space, always rendered with the canonical .brand or .brand-name class so it inherits the right tracking and weight.

Wordmark, applied
F. BINSABBAR®
// HTML - the kit auto-walker wraps this on every page.
<span class="brand-name">F. BINSABBAR</span>

// kit canonical
.brand { font-weight: 500; letter-spacing: 0.10em; text-transform: uppercase; }
  • Always uppercase in HTML source. Not just CSS-uppercased. Source must read F. BINSABBAR for screen readers, copy-paste, and any unstyled context.
  • Never abbreviate to "FB" when you mean the brand. Exception: product names like FB Ambassadors and FB Butler use the FB prefix as a naming convention - that is allowed.
  • The ®. Render as F. BINSABBAR<sup>®</sup> in formal mastheads (cover, footer, identity blocks). Drop the ® in body copy.
  • Three sanctioned alternates exist. The everyday mark is the wordmark above; see Marks gallery for the House Logo, Full Wordmark with tagline, and the Arabic wordmark - each with its own use case.

Brand architecture

The portfolio is organised across three legal entities, each with its own short code used as an asset / folder / file prefix.

FBJ

F. BINSABBAR

The Jewellery House - customer-facing fine-jewellery brand. FB Ambassadors, Studio, the Online Store all operate under FBJ.

FBD

Faisal Binsabbar Design

The Design Firm - separate design practice under the parent.

FBC

Faisal Binsabbar Design LLC

The corporate parent - holds the trademark (TM-01-00-44436-25) and owns the other two.

Surfaces

The four surfaces F. BINSABBAR shows up on. Use these names verbatim - never abbreviate, never substitute.

Apps

  • FB Ambassadors - the team's day-to-day operations app. iOS · Android · Desktop.
  • F. BINSABBAR Studio - 3D bespoke viewer + customization editor. Web.

Web

  • Online Store - fbinsabbar.com
  • System Console - fb-system-console.web.app · Ambassador Plus only

Provenance

Trademark TM-01-00-44436-25, held by Faisal Binsabbar Design LLC, UNN 7025824553. Registered in the Kingdom of Saudi Arabia. The wordmark is a registered mark; its use outside the surfaces above requires written permission.

02

Principles

Six rules that shape every decision in this book. When in doubt, return to these.

Quiet, considered, precise.

Confidence without overstating. Every line is read twice before publishing. We never shout for attention.

Brand-first, not feature-first.

Every screen is recognisably F. BINSABBAR before it is recognisably "the catalog page" or "the editor". Identity precedes utility.

Glass over flat.

Surfaces have warmth and depth. Frosted glass on warm canvas is the default; matte and solid are exceptions, used deliberately.

Tokens over literals.

Colors, spacing, type, radius all read from fb-ui.css tokens. No hex codes in HTML, no magic numbers, no parallel scales.

One source of truth.

If a component appears on two pages, its CSS lives in fb-ui.css - never restated per page. The kit is the law; pages only override what genuinely differs.

Restraint over ornament.

If a flourish doesn't serve clarity, remove it. The wordmark and the warm canvas already do most of the work - let them.

03

Foundations

The atoms of the system: color, typography, spacing, radius, glass, and motion. Every component on every page composes from here.

Color · Brand

Premium Yellow is the primary brand color. It carries the brand on hero surfaces, mastheads, and atmospheric washes. Signature Red is the action / accent (CTAs, focus, error). Vert and Royal Lavender are editorial accents - used sparingly for moments that warrant a different mood.

Premium Yellow
#fee5a5
--premium-yellow
Primary
Signature Red
#f74827
--signature-red
Vert
#b5af8d
--vert
Royal Lavender
#a77fb2
--royal-lavender

Color · Supporting

Neutrals and surface tones. Canvas is the default body background; Champagne anchors warm gradients; Ink is the default text.

Champagne
#b19b7d
--champagne
Canvas
#edebe6
--canvas-bg
Ink
#0e0e0e
--text
Surface dark
#0a0a0a
--bg

Color · Text

TokenHexUse
--text#0e0e0eDefault body, headings.
--text-muted#3a3a3aSecondary copy, descriptions.
--text-faint#5a5a5aCaptions, meta. WCAG AA on canvas.
--text-inverse#f6f4efBody on dark surfaces.

Color · Semantic

TokenHexUse
--success#2d8a4fSaved, complete, paid.
--warning#edb845Pending, attention needed.
--error#f74827Errors, destructive actions. Same value as Signature Red.

Typography

Single family: Futura PT, served via Adobe Typekit (kit ID vvg4egg). Three working weights: 300 Light, 400 Book, 500 Medium. Italic and 200 are reserved for editorial moments only.

Display
300 / 56px
F. BINSABBAR
H1
300 / 40px
A heading like this one
H2
400 / 14px / 0.16em
Section heading
Body
400 / 15px
Body copy stays close to neutral. We avoid italic except for editorial pull-quotes; we avoid weights heavier than 500 because Futura turns dense.
Label
400 / 11px / 0.14em
Eyebrow / meta / caption

Spacing - 8 pt grid

An 8 pt grid. All padding, gaps, and margins read from these tokens. --s-9 is the 44 pt tap-target floor; control heights snap to this.

--s-14px
--s-28px
--s-312px
--s-416px
--s-520px
--s-624px
--s-732px
--s-840px
--s-944px (min tap)
--s-1056px

Radius

Six radius tokens. Pills for controls, glass for surfaces, smaller radii for chips and chrome.

PreviewTokenValueUse
--radius-pill999pxButtons, inputs, badges, tabs.
--radius-glass30pxGlass panels, cards, hero blocks.
--radius-card16pxTight content cards.
--radius-control12pxInputs that aren't pills.
--radius-sm8pxColor chips, small swatches.

Glass

Frosted glass on warm canvas is the brand's surface aesthetic. Three tokens cover the entire system. Use glass when the surface is interactive (cards, sheets, controls); fall back to solid rgba(255,255,255,0.40) for static reference panels (swatches, type specimens).

TokenValueUse
--glass-bgrgba(249,248,246,0.22)Default glass tint.
--glass-bg-strongrgba(249,248,246,0.42)Sheets, modals - glass over busy backgrounds.
--glass-blurblur(18px) saturate(140%)The blur amount everywhere.
--glass-shadow0 2px 8px rgba(0,0,0,0.06), 0 0 0 1px rgba(255,255,255,0.30), inset 0 1px 0 rgba(255,255,255,0.55)Outer shadow + hairline ring + top highlight.
/* The kit utility - drop on any container */
.glass-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  border-radius: var(--radius-card);
  box-shadow: var(--glass-shadow);
  padding: var(--s-5);
}

Motion

Most transitions snap at 0.18s ease. Glass-card hovers are 0.18s on transform and box-shadow. Page-level loaders use a 1.2 s spin and a 1.6 s pulse. The kit honours prefers-reduced-motion globally - animations collapse to 0.01 ms when the user requests less motion.

WhereDurationEasing
Tile / card hover180 msease
Button press / fade80-150 msease
Sheet / drawer open240-280 mscubic-bezier(.4,0,.2,1)
Loader ring1200 mslinear
Loader star pulse1600 msease-in-out
04

Components

Live, kit-canonical components. Every demo on this page reads from the same fb-ui.css that powers every brand-system surface - rendering identically here and everywhere it ships.

Buttons

button.primary for the main action; button.secondary for alternatives; .btn for hyperlink-style CTAs in content.

Form buttons
Link-style pills
<button class="primary">Save</button>
<a class="btn" href="…">Open Brand Book</a>
<a class="btn outline" href="…">Secondary</a>

Text & number inputs

.text-input is the 44 pt pill input; .v-input is the compact 32 pt centered numeric. Both inherit Futura, both grow a 2 px accent ring on hover.

Sliders

.slider-field wraps a label + range input + numeric display. Track is 4 px; thumb is 32 × 24 px pill in Ink.

Selects

.fb-select is the kit's pill-shaped dropdown - 44 pt height, uppercase tracked label, single-line. Native <select> under the hood, so accessibility is free.

<select class="fb-select">
  <option>Yellow gold 18k</option>
</select>

Segmented control

.quality-pick is a radio group rendered as a pill segmented control. Use for 2-4 mutually exclusive choices where the labels are short.

Radios & checkboxes

.radio-row and .check-row render the kit's custom 36×20 px pill control. Radio fills with an inner accent pill when checked; checkbox shows a check glyph. Both inherit the 44 pt tap target via the surrounding label.

Radio (mutually exclusive)
Checkbox (multi-select)

Switch

.switch follows the iOS toggle: 60×31 px track, 32×23 px knob, accent fill when on. Wrap in .switch-row with a .lbl for an inline labelled toggle.

Cards & tiles

Three flavours: .glass-card (utility - bare glass surface), .card (content block with built-in h3/p styles), a.tile (clickable with hover lift + corner link-direction indicator).

.card - content block

Card heading

The .card is the workhorse content block. It holds an h3 at 17 px / 500 weight, body p at 14 px muted, and any list. Use it for "About" panels, brief sections, and feature breakdowns. Combines with any .grid-2 / .grid-3 for layout.

Stat tiles

.stat is a glass tile with a big number on top of a small uppercase label. Use it for at-a-glance counts on hero/about panels.

4
Brand colors
61+
Brand icons
10
Spacing tokens
Glass surfaces

Tabs (pill jump-nav)

Centered glass pill, always a single row. If items exceed available width the row scrolls horizontally inside the pill (scrollbar hidden). Works equally well for 3-item navs and 12-item navs on phone.

To pin under the viewport top, wrap the <nav class="tabs"> in <div class="tabs-bar sticky">. Splitting the sticky position onto a wrapper (instead of putting it directly on .tabs) is required because position: sticky + overflow-x on the same element doesn't trigger on iOS Safari.

// Pinned section nav - wrap the tabs in .tabs-bar.sticky
<div class="tabs-bar sticky">
  <nav class="tabs" aria-label="On this page">
    <a href="#section-1">Section 1</a>
    <a href="#section-2">Section 2</a>
  </nav>
</div>

Badges, tags & role pills

Small pill chips for status, count, and role. Use sparingly - too many in one row reads as noise.

.tag - kit canonical
Default Accent Dark Success Warning Error
.count-pill - small numeric badge
3 7 42 0
Role pills - page-specific (.role-pill / .surface-pill)
AMBASSADOR PLUS AMBASSADOR CONCIERGE

Material pill

.mat is the kit's material chip - pill-shaped, 44 pt tall, with a 22 px round swatch on the left. Used in the Studio Editor as a material picker; reusable anywhere a colour-tagged option needs choosing.

Toasts

Two flavours. .toast-static sits in flow as an inline status block. .toast-live is a fixed-position transient notification, fades in via a .show class. Both come in default / success / warning / error variants.

.toast-static - inline status
Draft saved
Invoice approved
Pending tax clearance
Save failed - retry
.toast-live - transient, top-center

Tooltip

.tip wraps the trigger; the inner .tip-bubble is a real element so the frosted glass renders consistently in Safari (where ::after backdrop-filter is unreliable). Hover or focus to reveal. Keep tooltip text to a short label only - never use it for descriptions.

Info Save Delete

Modal · Drawer · Popover

Three primitives for "things that appear on top of the canvas". Each has an optional .show class for the visible state; pages drive that via JS. Esc and click-outside dismissal are application concerns.

Modal - centered confirm
Drawer - side sheet
Popover - attached menu

Page loader

Full-page glass overlay used during initial load on every studio surface and the login gate. 70 px spinning ring + 40 px pulsing wordmark star. Inset matches the canvas frame (10 px / 30 px radius). Edge-to-edge on phone. Honours prefers-reduced-motion.

Static preview
// Drop at the top of <body>:
<div class="page-loader" aria-hidden="true">
  <div class="ring"></div>
  <div class="star"><svg…></div>
</div>

// When ready to dismiss:
document.body.classList.add('fb-page-ready');

Brand icons

Monoline, 1.4 px stroke, 24×24 grid, rounded caps and joins. The library lives at icons.html with live filtering and sprite/ZIP downloads. Never embed icons from other sets - extend the brand library instead.

Open icon library
05

Patterns

Compositions of the components above. Every brand-system page imports these without restatement; deviating means there's a reason worth writing down.

Page chrome

Every page sets html, body { background: var(--canvas-bg); } and inherits the 3-radial warm wash from the kit's body::before. The .page wrapper sets the page max-width and safe-area padding.

// Page wrapper - pages set their own max-width, everything else from kit.
.page {
  max-width: 1100px;
  margin: 0 auto;
  padding:
    max(var(--s-10), calc(env(safe-area-inset-top) + var(--s-4)))
    max(var(--s-6), env(safe-area-inset-right))
    120px
    max(var(--s-6), env(safe-area-inset-left));
}

Hero pattern

Eyebrow + h1 + p, optionally with a 128 px .app-icon ornament on the right. Mobile collapses to a single column.

<header class="hero">
  <div>
    <p class="eyebrow">App</p>
    <h1>FB Ambassadors</h1>
    <p>The team's day-to-day operations app.</p>
  </div>
  <div class="app-icon"><svg…></div>
</header>
06

Voice & Tone

How we write, in two paragraphs and a list. The voice is constant - the tone shifts by surface.

The voice - quiet, considered, precise

We write the way we present. Calm before loud. Specific before clever. Every sentence is read twice before publishing - once for accuracy, once for rhythm. We avoid superlatives ("amazing", "stunning"), avoid empty hospitality language ("we're so excited"), and avoid CAPS for emphasis. The brand wordmark already carries the formality.

Tone shifts by surface. Concierge: warm, specific, second person. Ambassador app: direct, neutral, present tense. Brand book / system docs: editorial, third person, declarative. Errors: what happened, why, what to do - never "Oops".

Do & Don't

Do

  • "Saved 16 minutes ago." - present tense, specific.
  • "F. BINSABBAR Studio loads in your browser." - surface name in full.
  • "This invoice is missing a VAT number." - what's wrong, what's expected.
  • Sentence case for headings; uppercase for the wordmark and tracked labels.
  • Cite tokens in code, not hex codes.

Don't

  • Don't abbreviate the brand to "FB" in customer copy.
  • Don't use exclamation marks. Ever.
  • Don't say "Oops!" or "Whoops!" - own the failure plainly.
  • Don't stack adjectives: "luxurious, beautiful, exquisite" - pick one.
  • Don't hard-code #f74827 when var(--accent) exists.
07

Accessibility

Five rules. The kit handles most of these globally - pages just need to not undo them.

  • 44 pt min tap target. Every interactive element height-snaps to --s-9 (44 px). Set in --control-h; never override below.
  • Visible focus. 2 px Signature Red ring, 2 px offset, on every :focus-visible element. Already global in the kit; never set outline: none without a :focus-visible replacement.
  • Reduced motion. @media (prefers-reduced-motion: reduce) collapses every animation and transition to 0.01 ms. Already global; don't add un-guarded long animations.
  • Color contrast. --text-faint (#5a5a5a) is the lowest text tone we ship - chosen for WCAG AA on the warm canvas. Do not introduce a fainter text token.
  • Screen-reader-friendly source. The wordmark is uppercase in HTML, not via text-transform alone. Decorative SVGs carry aria-hidden="true". Icon buttons need a visible label or aria-label.
08

Appendix

Reference material. Files, tokens, and where each lives.

Files

  • guidelines/fb-ui.css - design tokens + every kit component class. The law.
  • guidelines/brand-book.html - this document. The single canonical reference for identity, foundations, components, patterns, voice, accessibility.
  • icons.html - live icon library, sprite + ZIP downloads.
  • index.html - the brand-system masthead and directory of surfaces.
  • ambassadors.html · studio.html · login.html - surface-specific reference pages.

Where to start

If you're new to the system, read in this order:

  1. Identity - how to write the wordmark and what the four surfaces are.
  2. Principles - the six rules.
  3. Foundations > Color - the four brand colors, the supporting neutrals.
  4. Components > Buttons / Cards / Inputs - the components you'll touch first.
  5. Voice & Tone - before you write any copy.

Integration README

A live-generated Markdown reference for adopting the brand in another app. Includes the kit's CSS import, every token (color, spacing, radius, glass), typography, the canonical component class names, links to the icon library, and the app-icon / logo set. Generated from the live fb-ui.css on download - the values you get today reflect today's tokens. Re-download any time the system updates.

Maintenance

  • This document is hosted at fb-brand.web.app/guidelines/brand-book.
  • Bump the ?v= query on the fb-ui.css link in every HTML file when tokens change - Safari caches past no-store.
  • When adding a kit component, document it here in Components with a live demo. No exception.
  • When adding a token, document it under the relevant Foundations subsection. No exception.
  • Integration README is regenerated from fb-ui.css on every download - no manual sync needed.
Draft saved