matthew holliday / ai engineer

Style guide

Every token and component this site is built from, rendered live. The system is called DEVRY DAY: no webfonts, no frameworks, no trackers. Colors are referenced by role rather than value, so a theme is a variable swap and nothing else.

Source of truth is site/src/styles/global.css. This page reads the same custom properties it documents, so the swatches and specimens below reflect the current theme. Switch themes with the control in the header to see light and dark side by side.

Color

Fifteen roles, defined once per theme. Body text against its background clears 7:1 (WCAG AAA); control borders clear 3:1 (WCAG 1.4.11). Never hard-code a hex value; reach for the role.

State colors in context

Success: build passed. Warning: token deprecated. Error: missing screenshot. Accent: a rust mark.

Typography

A 1.25 ratio scale, clamped so the top three steps grow with the viewport. Body runs at 1.65 line-height; headings tighten to 1.25 with a slight negative tracking.

Type scale
TokenApplied toValueSpecimen
--f-2xl h1 clamp(1.8rem, 1.4rem + 2vw, 2.4rem) Ag
--f-xl h2 clamp(1.45rem, 1.2rem + 1.2vw, 1.75rem) Ag
--f-lg h3, .lede clamp(1.2rem, 1.1rem + 0.5vw, 1.35rem) Ag
--f-base body 1.0625rem Ag
--f-sm nav, tables, captions 0.9375rem Ag
--f-xs tags, hints 0.8125rem Ag

Font stacks

Three system stacks. No file is downloaded; the browser uses what it already has.

Headings and prose

Heading level 1

Heading level 2

Heading level 3

A lede paragraph carries the opening claim at --f-lg in muted ink.

Body copy sits at --f-base and is capped at --measure (68ch) so lines stay readable. This is a link, and this one leaves the site. Inline code and Cmd+K keys render in the mono stack.

Spacing

A 4px base scale, named by use rather than by number. The bars below are drawn to scale.

Buttons

Three variants, all with a 44px minimum height for touch. Primary is filled ink; secondary drops the fill; ghost is the quiet action used for the theme toggle.

Cards and notes

Raised surfaces for grouping. Cards are neutral; notes carry an accent edge for asides.

Card

A raised panel on --bg-raised with a hairline rule. Used in the responsive .grid.

Card

The grid packs cards into minmax(15rem, 1fr) columns and reflows on narrow screens.

Note

A note is a card with an accent left border for callouts and caveats. The label uses the mono stack in small caps.

Definition list

Role
AI Engineer
Stack
Astro, S3, CloudFront, Terraform
Fonts
System stacks only

Prose elements

A blockquote renders in the serif stack with a muted rule on the left. It is for quotation, not for emphasis.
  1. Ordered lists number their items.
  2. Use them only when sequence matters.

An <hr> is a full-measure rule with generous vertical space, shown above.

Code

Inline const x = 1 sits on the sunk background. Blocks add a left rule.

export const SITE = {
  name: 'Matthew Holliday',
  role: 'AI Engineer',
} as const;

Tables

Left-aligned, hairline row rules, a heavier rule under the header, and a hover tint. Wrap wide tables in .scroller so they scroll instead of breaking the layout.

Deploy targets
StageServiceStatus
BuildAstroPassing
StoreS3Passing
ServeCloudFrontCache warming

Tags and inline lists

Tags label tech stacks and categories in the mono stack.