Media Proper · Design System

Big Type,
Held Together

The visual system behind the 2026 site. Display type at scale, one disciplined accent, full-bleed bands, and a mono voice for every label and numeral.

Primitives live in theme/src/design-system.css · every class is prefixed mp-

01 — Typography

The Display Scale

Four steps, all fluid. Each hits its 1440 px design value at 1440 and never falls below a legible floor on a phone. Display type is Raleway 700, uppercase, tight leading, negative tracking. The closing phrase turns orange with <em> — that two-tone break is the system’s signature.

.mp-d1 — clamp(2.75rem, 10vw, 9rem) · 144px @1440 · leading .84 · tracking −.045em · hero only, once per page

Top Digital Agency


.mp-d2 — clamp(2.125rem, 6.25vw, 5.625rem) · 90px @1440 · every section heading

See Our Clients’ Wins


.mp-d3 — clamp(1.75rem, 4.44vw, 4rem) · 64px @1440 · pull quotes, sub-headings · sentence case

Easy to work with, and really understood what we wanted.


.mp-d4 — clamp(1.5rem, 2.78vw, 2.5rem) · 40px @1440 · statements inside a band

A full-service digital agency in the heart of Media, PA.

The mono voice

IBM Plex Mono 500 / .16em / uppercase carries every eyebrow, numeral, caption and attribution — the small counterpoint that makes the display read as large. 12px is the floor, everywhere. A 144px display against a 12px label is a 12:1 jump on one screen; that relationship is the effect, not the typeface.

Section eyebrow · ■ reserved for section headers only

Caption label — photo and screenshot captions, 12px mono

Last synced Sep 13, 2026 at 2:30 AM EDT — data stamps

02 — Colour

One Accent,
Used With Discipline

The orange is two colours, and mixing them up is an accessibility bug. #ff4713 is only 3.41:1 on white — it is a display and mark colour. #c93509 is the text-grade orange at 5.25:1, and it is what mediaproper.com already ships on its buttons today.

primary

#ff4713

Display 40px+, rules, ■ marks, and anything on navy. Never a filled-button ground behind white text.

primary-text

#c93509

Filled buttons, links, any orange under 24px on light. White on it is 5.25:1.

secondary

#0a2240

Navy. Headings, bands, photo captions. #fafafa on it is 16:1.

primary-600

#ff8152

Orange on navy only — 6:1 there, 2.6:1 on white. Shown in place.

base / contrast

#fafafa · #292929

The light ground and its body text. 13:1.

neutral · hairline

#f4f2f1 · #cccccc

Panel fill, and the 1px rule that builds every grid in the system.

03 — Actions

One Action Per Screen

Square, uppercase, tracked. Book a Call is the single call to action across the site — nothing competes with it. The ground is the text-grade orange so the label clears AA at any size.

04 — Layout

Full Bleed,
Never a Card in a Box

Sections run edge to edge and split 1:1 between image and type. Alternating .mp-split with .mp-split--flip builds the zig-zag the direction is built on. Grids are drawn with 1px hairlines — no shadows, no rounded cards.

Two Media Proper team members at standing desks against the exposed brick wall of the Media, PA office

.mp-split

Image and type, one to one.

Below 860px it stacks, media first. The flip modifier reverses the columns on desktop and is ignored on mobile so the reading order never inverts.

.mp-hairgrid — equal weight, always

Nine services on hairlines. No service outranks another: there is no featured cell, no shadow, no radius. The numeral differentiates repeated cells, per the brand rule — never the ■ square.

05 — Data · .mp-stats

Dividers get equal air on both sides
25
Years in business
17.6 hours
Median time to client response
210
Organizations served
9
Services · one in-house team

Figures render through mp2026_stat() shortcodes, never baked into a pattern — pattern PHP runs once at registration and would freeze the value.

.mp-live — the one moment of motion

Live · Last synced Sep 15, 2026 at 2:30 AM EDT

Replaces the count-up. The figures are real and refresh nightly; a slow pulse beside the timestamp attests to that, where a number ticking up from zero merely performs. Square, because the system has no circles. Still under prefers-reduced-motion. Static example here — on the homepage the stamp is live via Live · Last synced Sep 26, 2026 at 2:30 AM EDT.

06 — Retained mechanics

Motion & Infographics

The animated SVG module is kept in full and carried forward into this system. Every mark draws on scroll via .mp-motion → .is-inview, and degrades to its final state with no JS or under prefers-reduced-motion — nothing ever rests in its empty pre-animation state. Contract and building blocks are documented in theme/inc/motion.php.

5.0 star

Google review rating

95%

Client retention rate

92

avg Lighthouse score

210

organizations served

Each graphic draws itself in once as it scrolls into view, then idles with a subtle pulse; the review stars twinkle. Hover the logo in the header/footer for the same treatment on the brand mark. All motion is disabled under prefers-reduced-motion.

The Big-Type treatment · .mp-viz

Same marks, this system’s frame.

The default mark sits in a 16px-radius card on a tinted ground with two drop shadows — dropped into a Big-Type band it reads as a foreign object. Wrapping a row in .mp-viz squares the corners, replaces the card with a single hairline, and moves the numeral to mono with the display scale’s tracking. Opt-in by design: these marks already appear across roughly forty service and location pages, and those keep rendering exactly as they do today.

Use sparingly — a supporting accent inside a band, never a wall of marks as the main event.

Last synced Sep 26, 2026 at 2:30 AM EDT

Default treatment — the full gallery, unchanged

07 — Core block styles

Editor Defaults

What an editor gets from the block inserter. These keep the previous system’s behaviour so existing page content renders unchanged.

Preset type scale

3X-Large — H2 · 3rem / 2.25rem min

2X-Large — H3 · 2.5rem / 1.75rem min

Large — Lead · 1.25rem

Base — Default · 1rem. The quick brown fox jumps over the lazy dog.

MONO — Code / Labels · 0.875rem 0123456789

Separators



List markers

  • Circle marker list
  • Second item
  • Square marker list
  • Second item