API Industries — Design System
Design System

API Industries

Built on Bootstrap 5.3 with custom apids-* components and overrides. Headings use Plus Jakarta Sans, body uses Inter. All values reference CSS tokens — never hardcode hex or pixel values in component CSS.

Colours

All colours defined as CSS custom properties on :root. Always reference a token — never write a raw hex in component CSS.

Brand — Blue (Primary)
Blue
#1A3C8F
--apids-blue
Blue Dark
#122d6e
--apids-blue-dark
Blue Mid
#2d55b8
--apids-blue-mid
Blue Light
#e8eef8
--apids-blue-light
Brand — Red (Secondary / Accent)
Red
#C8102E
--apids-red
Red Dark
#a50d25
hover state only
Red Light
#fde8eb
--apids-red-light
Neutrals
Text
#0f1a2e
--apids-text
Muted
#5a6a85
--apids-muted
Light
#8899b4
--apids-light
Border
#dde3f0
--apids-border
Off White
#f5f7fc
--apids-off
White
#ffffff
--apids-white
Semantic
Success
#22c55e
--apids-success
Warning
#f59e0b
--apids-warning
Error
#ef4444
--apids-error
Typography

Two fonts — Plus Jakarta Sans for headings (500/700/800), Inter for body and UI text (400/500/600). Load both from Google Fonts.

Display H1
Plus Jakarta Sans / 800
clamp(2.6rem, 4.5vw, 3.8rem)
lh 1.08 / ls -0.03em
Revolutionise Your Business
Section Title
Plus Jakarta Sans / 800
clamp(1.8rem, 3vw, 2.5rem)
lh 1.1 / ls -0.025em
Finance, Housing & Field Service
Card Title
Plus Jakarta Sans / 700
1.15rem / lh 1.3
FinServ Platform
Stat Number
Plus Jakarta Sans / 800
2.2rem / color: blue
20+
Body
Inter / 400
1rem / lh 1.6
color: --apids-text
Intelligent automation for finance, housing, field service, and food — built by a UK team with 20+ years of expertise in enterprise-grade platforms.
Body Muted
Inter / 400
0.95rem / lh 1.7
color: --apids-muted
Supporting copy beneath section titles, card descriptions, and feature explanations.
Section Label
Inter / 700
0.72rem / uppercase
ls 0.14em / color: red
Nav / UI
Inter / 500
0.85rem
color: --apids-muted
Products  ·  About  ·  Contact
/* Google Fonts — load in <head> */ <link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@500;700;800&family=Inter:wght@400;500;600&display=swap" rel="stylesheet"> /* Body override */ body { font-family: var(--apids-font-body); color: var(--apids-text); } /* Headings */ h1,h2,h3,h4 { font-family: var(--apids-font-heading); font-weight: 800; }
Spacing

8px base unit. Use tokens for padding and margin — this keeps rhythm consistent when you need to adjust a value globally.

Space 1 — 8px
--apids-space-1  ·  Dense gaps, icon padding
Space 2 — 16px
--apids-space-2  ·  Between list items
Space 3 — 24px
--apids-space-3  ·  Card padding, grid gaps
Space 4 — 32px
--apids-space-4  ·  Between major card elements
Space 5 — 48px
--apids-space-5  ·  Section sub-padding
Space 6 — 64px
--apids-space-6  ·  Standard section padding (6rem)
Space 7 — 96px
--apids-space-7  ·  Hero / large section padding
Border Radius

Radius is contextual — each step maps to a specific component type. Don't mix these up.

6px
--radius-sm
Buttons, inputs,
nav CTA
8px
--radius-md
Icon wells,
feature icons
10px
--radius-lg
Service cards,
why cards
12px
--radius-xl
Sector cards,
main cards
16px
--radius-2xl
AI panel,
large containers
Full
--radius-full
Badges, pills,
stat dots
Shadows

Blue-tinted shadows to match the brand palette. Used on cards and hover states — never on flat layout sections. Borders handle the rest.

Flatborder only
SMdefault card state
MDcard hover
LGmodals / overlays
--apids-shadow-sm: 0 2px 8px rgba(26,60,143,0.06); --apids-shadow-md: 0 4px 24px rgba(26,60,143,0.08); --apids-shadow-lg: 0 8px 32px rgba(26,60,143,0.12);
Buttons

Three variants. All use 6px border radius. Primary (blue) is the main page CTA. Red is used for secondary CTAs alongside primary, or on blue backgrounds. Ghost for low-priority actions.

All Variants Small Modifier States — Primary
Default
Button
Hover
Button
Focus
Button
Disabled
Button
<!-- Primary --> <a href="#" class="apids-btn apids-btn-primary">Book a Meeting</a> <!-- Red --> <a href="#" class="apids-btn apids-btn-red">Get in Touch</a> <!-- Ghost --> <a href="#" class="apids-btn apids-btn-ghost">Learn More</a> <!-- Ghost on dark background --> <a href="#" class="apids-btn apids-btn-ghost-inv">Learn More</a> <!-- Small size --> <a href="#" class="apids-btn apids-btn-primary apids-btn-sm">Small</a>
Forms

6px radius on all inputs. 44px minimum height for touch targets. Label always sits above the input — never inline or inside. Focus ring uses blue glow.

↑ Focus state
Please enter a valid email address.
<!-- Default --> <label class="apids-label">Full Name</label> <input type="text" class="apids-input" placeholder="e.g. John Smith"> <!-- Error --> <input type="email" class="apids-input is-error"> <div class="apids-error-msg">Invalid email.</div>
Cards

Three card types used across the homepage — Sector, Service, and Why. Each has a distinct radius and use case.

Sector Card — 12px radius, white bg, blue hover border
💳
Finance
FinServ

Next-generation agentic AI automating financial business processes for faster decision-making.

🔧
Engineering
FieldServ

API-driven app for field service engineering teams powered by AI.

Service Card — 10px radius, white bg, blue hover border
🤖
AI Development

Developing AI in small language models. Award-winning Innovate UK finalists.

💻
Full Stack Dev

Expert full stack, front-end, and back-end developers with UX and CX capabilities.

Why Card — left border accent, off-white bg

User-Friendly Interface

Intuitive design that lets your team focus on productivity, not technology.

Customisable Solutions

Adaptable to businesses of all sizes, industries, and unique workflows.

<!-- Sector card --> <div class="apids-sector-card"> <div class="apids-sector-icon">💳</div> <span class="apids-sector-tag">Finance</span> <div class="apids-sector-name">FinServ</div> <p class="apids-sector-desc">Description...</p> </div> <!-- Service card --> <div class="apids-service-card"> <div class="apids-service-icon">🤖</div> <div class="apids-service-name">AI Development</div> <p class="apids-service-desc">Description...</p> </div> <!-- Why card --> <div class="apids-why-card"> <h3>Title</h3> <p>Description...</p> </div>
Badges

Used for sector tags on cards and status indicators. Semantic colours are fixed — green = success, red/amber = error/warning. Don't repurpose them.

Finance Healthcare Active Pending Error Inactive
<span class="apids-badge apids-badge-blue">Finance</span> <span class="apids-badge apids-badge-red">Healthcare</span> <span class="apids-badge apids-badge-success">Active</span> <span class="apids-badge apids-badge-warning">Pending</span>
Hero Pattern

White background with a tinted blue circle on the right and a subtle grid overlay. Badge, H1 with coloured words, subtext, and two buttons. Stats strip separated by a border sits beneath.

AI-Powered Business Solutions

Revolutionise Your Business with AI Voice & Mobile Apps

Intelligent automation for finance, housing, field service, and food — built by a UK team.

20+
Years of expertise
6
Sector products
UK
Based engineers
Section Layouts

Sections alternate between white and off-white (--apids-off) backgrounds. The client strip uses the primary blue background. All section padding is 6rem 5% via Bootstrap container or .apids-section.

ClassBackgroundPaddingUsed for
.apids-sectionWhite6rem 5%Hero, AI, Why, CTA sections
.apids-section .apids-section-off#f5f7fc6rem 5%Sectors, What We Do
.apids-section .apids-section-blue#1A3C8F4rem 5%Client logo strip

Within each section, use Bootstrap's .container for max-width and centring, and .row .g-4 for card grids.

Process Steps

5-column horizontal timeline. Numbered circles connected by a horizontal rule. First step is always blue-filled (active). Remaining steps use the border/muted colour.

01
Initial Meeting

We identify your exact needs.

02
Build System

We begin building the platform.

03
Client Demo

Demo on staging, gather feedback.

04
Build Reports

Auto-generated reports identified.

05
Go Live

Launch with full support.

Client Strip

Blue background section. Label in uppercase white/55 opacity. Client names as outline pills — these are text-only placeholders until logo assets are supplied.

Trusted by leading brands
Burger King
Fortnum & Mason
Harrods
Coca-Cola
Selfridges
Itsu
BT
Breakpoints

Use Bootstrap breakpoints as-is — no custom ones needed. Mobile-first: write base styles, then override upward with @media (min-width: ...).

BootstrapWidthKey changes
xs (default)< 576px1-col stacked, 5% side padding, buttons full-width, nav hamburger, process steps 1-col
sm576px+2-col grids start, card layouts appear
md768px+AI split section collapses to 1-col below this, footer 2-col
lg992px+Nav links visible, AI section 2-col, process 5-col
xl1200px+Full layout, max-width container centred
Token Reference

Full :root block. Drop this at the top of your custom CSS file, after the Bootstrap import.

:root { /* Blue */ --apids-blue: #1A3C8F; --apids-blue-dark: #122d6e; --apids-blue-mid: #2d55b8; --apids-blue-light: #e8eef8; /* Red */ --apids-red: #C8102E; --apids-red-light: #fde8eb; /* Neutrals */ --apids-white: #ffffff; --apids-off: #f5f7fc; --apids-border: #dde3f0; --apids-text: #0f1a2e; --apids-muted: #5a6a85; --apids-light: #8899b4; /* Semantic */ --apids-success: #22c55e; --apids-warning: #f59e0b; --apids-error: #ef4444; /* Fonts */ --apids-font-heading: 'Plus Jakarta Sans', sans-serif; --apids-font-body: 'Inter', sans-serif; /* Spacing */ --apids-space-1: 8px; --apids-space-2: 16px; --apids-space-3: 24px; --apids-space-4: 32px; --apids-space-5: 48px; --apids-space-6: 64px; --apids-space-7: 96px; /* Radius */ --apids-radius-sm: 6px; /* buttons, inputs */ --apids-radius-md: 8px; /* icon wells */ --apids-radius-lg: 10px; /* service cards */ --apids-radius-xl: 12px; /* sector cards */ --apids-radius-2xl: 16px; /* large panels */ --apids-radius-full: 9999px; /* badges, pills */ /* Shadows */ --apids-shadow-sm: 0 2px 8px rgba(26,60,143,0.06); --apids-shadow-md: 0 4px 24px rgba(26,60,143,0.08); --apids-shadow-lg: 0 8px 32px rgba(26,60,143,0.12); /* Transition */ --apids-transition: 0.2s ease; }
Do's & Don'ts

Core rules for keeping the design consistent across all pages and components.

✓ Do
  • Reference --apids-* tokens for every colour and spacing value
  • Use Plus Jakarta Sans 800 for all page and section headings
  • Use Inter for all body text, nav links, labels, and buttons
  • Keep blue as the dominant brand colour — primary buttons, headings, footer background
  • Use red for section labels, secondary CTAs, and accent tags only
  • Keep button radius at 6px across all button variants
  • Alternate section backgrounds between white and --apids-off
  • Use blue-tinted shadows (--apids-shadow-*) on all card hover states
  • Keep 44px minimum height on all interactive elements for touch
  • Use semantic colours correctly — green=success, amber=warning, red=error
✗ Don't
  • Hardcode hex values in component CSS — always use a token
  • Use red as a primary CTA — it's secondary to blue on this brand
  • Mix button radius values — 6px everywhere, no exceptions
  • Use more than two accent colours in a single section
  • Apply shadows to flat layout backgrounds — borders and spacing only
  • Set body text below 14px — accessibility minimum
  • Skip hover, focus, and disabled states on interactive elements
  • Use --apids-off (#f5f7fc) as text colour — it's backgrounds only
  • Use red casually — it signals urgency and should feel deliberate
  • Use Plus Jakarta Sans for body copy — that's Inter's job
API Industries Design System v1.0  ·  Bootstrap 5.3.3 + Custom CSS  ·  Prefix: apids-