- fg
#000000- bg
#FFFFFF- APCA Lc
- +106
- Use
- foreground on background
Antimetal
Dark-marketing AWS cost optimization — single gradient hero, big metric-as-typography for savings figures, near-monochrome feature scroll, product screenshot proof over testimonial quotes. Antimetal breaks the beige B2B convention of its category and lets calm clarity carry the page.

Editorial disclaimer
This entry documents observable design-language patterns for educational transfer and AI-agent briefing. Screenshots and trademarks are property of their respective owners. AI2 Design is not affiliated with or endorsed by the featured brand. Inspiration here is about language and rhythm - do not reproduce brand identity, logo, product copy, or proprietary features.
Fair Use & Gallery PolicyCopy the full design language into your agent
A typed, paste-ready design system brief - philosophy, tokens, rules, techniques, and fitness checks. Drop it into Claude, Cursor, v0 or any coding agent and it builds in Antimetal’s language, not just a screenshot.
Dark-marketing cost-optimization system — single gradient hero, big metric typography for savings figures, restrained downstream feature sections, product screenshots as proof. Motion is for state and reveal only. The brand promise is calm clarity in a noisy category.
Use this capture as a design-language brief for B2B cost-optimization or developer-finance marketing. Adopt the dark canvas, single gradient hero, big metric-as-typography for outcome figures, near-monochrome feature scroll, and product-screenshot proof. Avoid pie charts in marketing surfaces — display-scale numerics carry savings better.
- Layout
- Stacked
- Content width
- Bounded
- Framing
- Layered
- Grid strength
- Strong
Dark-first canvas — primary surface #1b2540 paired with foreground #fafeff doing the bulk of reading-layer work. Accent moments use #000000 + #0c264d sparingly. Near-black backdrop with restrained warm or cool accents.
- #1b2540 — primary surface / dominant background
- #fafeff — primary foreground / reading layer
- #000000 — first accent — used for CTAs and highlights
- #0c264d — secondary accent / hover states
- #ffffff — tertiary surface / panels
Gradients (paste-ready)
// No gradient extracted — use solid surfaces
- Primary family: abcdFont. Mono fallback: JetBrains Mono for code and tabular numerics.
- Weight ladder: 400 / 450 / 480. Keep substitutions tight — the captured ladder is the typographic signature.
- Display tracking uses negative px (not em) for optical correction at large sizes — typically -0.5 to -1.5px at 48-64px hero scale.
- Heading line-height tightens at display sizes (1.0-1.2); body sits at 1.4-1.6. Captions and small UI labels at 1.3.
- Tabular numerals mandatory on aligned columns: font-variant-numeric: tabular-nums.
- Italic reserved for editorial quotes and emphasis where weight cannot carry — never for product UI labels.
- Paragraph max 45-55ch at body size; dense data tables may extend to 65ch with line-height 1.5.
- Scale (observed): 2 / 4 / 6 / 8 / 10 / 12 / 14 / 16 px. Stay on the scale — no magic numbers.
- Container max-width: 976px. Secondary bounded rails for narrow content clusters at ~480-640px.
- Section vertical rhythm: 64-128px on desktop, 40-80px on mobile, scaled by page depth.
- Card padding: 16-24px on desktop, 12-16px on mobile.
- Gutter values draw from the smaller half of the scale (4 / 8 / 12 / 16 / 24).
- Primary elevation is inset 1px border shadow — `box-shadow: <border-color> 0 0 0 1px inset`. Use this before reaching for drop shadow.
- Drop shadows stay subtle (opacity 0.05-0.4, blur 1-12px, zero spread). No bloom, no halo.
- Layering depth comes from border weight + background tone shift, not stacked shadow.
- Focus state uses inset ring at accent color — never an outer glow on form fields.
Techniques
Inset-1px border as surface delimiter
Cards default to a 1px inset border shadow at the surface-divider color. Hover adds a second inset in the accent color. Never switch to outer drop-shadow for hover.
- Radius scale: 4 / 8 / 12 / 16 / 24. Buttons default to 12px, cards to 16px, modals to 24px.
- Icon style is linear — stroke-based at 1.5-2px weight; no filled or duotone variants.
- Tap targets minimum 44×44 on touch, 40×40 on pointer devices.
button-primary- backgroundColor
- #000000
- textColor
- #1b2540
- radius
- 12px
- padding
- 10px 16px
- border
- 1px solid transparent
- boxShadow
- none
- fontWeight
- 480
- fontSize
- 14px
- lineHeight
- 20px
Tailwind
inline-flex items-center gap-1.5 rounded-[12px] bg-[#000000] px-4 py-2.5 text-[14px] font-medium text-[#1b2540] transition-colors duration-200 ease-out hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#000000]
button-secondary- backgroundColor
- transparent
- textColor
- #fafeff
- radius
- 12px
- padding
- 10px 16px
- border
- 1px solid #0c264d
- boxShadow
- none
- fontWeight
- 480
- fontSize
- 14px
Tailwind
inline-flex items-center gap-1.5 rounded-[12px] border border-[#0c264d] bg-transparent px-4 py-2.5 text-[14px] font-medium text-[#fafeff] transition-colors duration-200 ease-out hover:bg-[#ffffff] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#000000]
card-surface- backgroundColor
- #fafeff
- textColor
- #fafeff
- radius
- 16px
- padding
- 24px
- border
- none
- boxShadow
- #0c264d 0 0 0 1px inset
Tailwind
rounded-[16px] bg-[#fafeff] p-6 text-[#fafeff] shadow-[#0c264d_0_0_0_1px_inset]
input-field- backgroundColor
- #fafeff
- textColor
- #fafeff
- radius
- 8px
- padding
- 8px 12px
- border
- 1px solid #0c264d
- boxShadow
- none
- fontSize
- 14px
- lineHeight
- 20px
Tailwind
w-full rounded-[8px] border border-[#0c264d] bg-[#fafeff] px-3 py-2 text-[14px] leading-5 text-[#fafeff] placeholder:text-[#ffffff] focus-visible:outline-none focus-visible:border-[#000000] focus-visible:ring-2 focus-visible:ring-[#000000]/30
Easings
cubic-bezier(0.4, 0, 0.2, 1)ease-outeaseScroll patterns
- Intersection-triggered opacity + translateY reveals (12-24px) on 0.3-0.5s ease-out
- Stagger 40-80ms between grouped cards or list items
- No parallax beyond 2-4% translateY — subtle depth, never theatrical
- Captured motion level: expressive. Libraries detected: Framer Motion.
- useReducedMotion mandatory — all animations collapse to opacity-only or disable entirely.
- Deterministic cubic-bezier or ease-out only; spring animations only where genuinely needed.
- Loop animations forbidden except explicit loaders.
- Hover and reveal motion use the same primary easing curve to feel consistent across the page.
- Segmented controls for binary/ternary choices (pricing toggle, doc version switcher) over toggle switches.
- Accordion: single-open for FAQ; multi-open only for deeply nested documentation.
- Tooltips: hover + focus with 300-400ms delay, dismiss instantly on blur.
- Modals for destructive confirmations; drawers for mobile-only expansions; never nested modals.
- Form validation: inline below field on blur; submit disabled until pristine.
- Empty states: small icon + one-line copy + primary action link, no illustrations beyond brand pattern.
- Loading states: skeleton shimmer for content blocks; inline spinner for button confirm states.
Desktop-first because the audience is technical teams on wide displays. Mobile adapts the same language without reinventing it — no hamburger-revealed alternate architecture.
- Breakpoints: sm 640 / md 768 / lg 1024 / xl 1280 / 2xl 1536 — standard Tailwind ladder.
- Container max-width: 976px. Below 1280, padding compresses but composition holds.
- Hide-on-mobile is banned — if a control exists on desktop, it must reach mobile via reflow.
- Tap target minimum 44×44 on touch; 40×40 on pointer devices.
- Typography scales proportionally: hero 48-64 → 32-40 on tablet → 28-32 on mobile.
- Color contrast: foreground #fafeff on background #1b2540 should meet WCAG AA at minimum (4.5:1 for body, 3:1 for display). Verify with axe-core or Lighthouse.
- focus-visible: 2px ring at accent color, never display:none on focus outline. Mandatory on every interactive element.
- All interactive elements reachable via Tab in logical reading order; never rely on hover to expose actions.
- ARIA labels on icon-only buttons; aria-expanded on collapsibles; aria-live='polite' on toasts.
- Motion respects prefers-reduced-motion — animations reduce to opacity-only or disable entirely.
- Form errors announced via aria-describedby on the associated input; never color-only signaling.
- Screen reader-only content uses sr-only; never display:none for meaningful context.
Motion library detected: Framer Motion. Image handling uses Next/Image (or equivalent) with lazy-loading default. Icons: Lucide.
- Motion: motion.div with whileInView and viewport={{ once: true, margin: '-10%' }} for scroll reveals.
- Transitions use constants only — define ease and duration as named tokens (e.g. ease.standard, duration.fast).
- useReducedMotion guard wraps every animation primitive — no exceptions.
- Next/Image with sizes attribute always set; priority only on LCP candidate (hero image).
- No canvas, no WebGL, no Lottie unless required by product (e.g. waveform demos).
- Apply focus-visible ring at accent color #000000 on every interactive element.
- Use tabular-nums on aligned numerics; reach for monospace fallback for code and kbd inline.
- Stay within the captured spacing scale (2, 4, 6, 8, 10, 12 px) — no magic numbers.
- Break body text at 45-55ch; dense tables may extend to 65ch at 13-14px.
- Reach for inset 1px border shadows before any drop shadow.
- Pass every page through useReducedMotion before shipping.
- Default to the primary easing curve for interactive transitions; reserve longer durations for atmospheric beats.
- Never introduce a font weight outside the captured ladder — the discipline is the signature.
- Never invent durations or easings outside the captured set — pick from the existing scale.
- Never use drop shadows above 0.4 opacity or 16px blur — heavy elevation breaks the surface language.
- Never introduce a secondary display font without explicit reason — one family + one mono is the boundary.
- Never animate height: auto — use measured transforms or scaleY.
- Never use em for tracking on display sizes — the px-based scale is an optical constant.
- Never apply hover-only affordances — every interaction must be keyboard + screen reader reachable.
- Tailwind v4 @theme inline only — no runtime style concatenation, no CSS-in-JS beyond the design system.
- Spacing scale: 2 / 4 / 6 / 8 / 10 / 12 / 14 / 16 px.
- Container max-width: 976px — do not exceed.
- Single font family: abcdFont, plus JetBrains Mono mono fallback.
- Weight ladder: 400 / 450 / 480 — no substitutions.
- Motion: durations 0.6s, 0.3s, 1s; easings ease-out + cubic-bezier(0.4, 0, 0.2, 1). No springs unless explicitly motivated.
- Radius scale: 4 / 8 / 12 / 16 / 24 px.
- Container width: no page section exceeds 976px wide.
- Spacing grep: no values outside the 2 / 4 / 6 / 8 / 10 / 12 ladder (+ scale extensions).
- Font weight grep: only 400, 450, 480 appear in computed styles.
- Transition timing-function values draw from the captured easing set (ease-out + cubic-bezier(0.4, 0, 0.2, 1)).
- Transition duration values draw from {0.6s, 0.3s, 1s}s.
- Shadow audit: every elevation uses an inset 1px shadow first; drop shadows ≤ 0.4 opacity.
- Image audit: loading='lazy' on every non-LCP image; priority only on hero.
- Contrast audit: body text on dominant background ≥ 4.5:1 (WCAG AA).
- Tap target audit: minimum 44×44 on touch surfaces; 40×40 on pointer.
Design tokens
Observed token system
Color, type, spacing, gradients, and stacking order captured from the live page and rendered here as living, paste-ready previews.
Inspector
Observable layers
Structure, breakpoints, motion, fonts, and images captured from the live page and kept paste-ready alongside the tokens.
Depth-first walk of the meaningful sections. 3 nodes across 3 levels, shallow to deep by color.
- body1
- Main1
- Footer
Accessibility
Contrast matrix
122 combinations - 70 pass AA - 58 pass AAA. Each pair is previewed with its real foreground on background; APCA Lc sits alongside the WCAG 2.1 ratio for draft WCAG 3 awareness.
- fg
#FFFFFF- bg
#000000- APCA Lc
- -108
- Use
- background on foreground
- fg
#FAFEFF- bg
#000000- APCA Lc
- -107
- Use
- background on foreground
- fg
#000000- bg
#FAFEFF- APCA Lc
- +105
- Use
- foreground on background
- fg
#FFFFFF- bg
#090703- APCA Lc
- -108
- Use
- background on accent
- fg
#090703- bg
#FFFFFF- APCA Lc
- +106
- Use
- accent on background
- fg
#000000- bg
#F8F9FC- APCA Lc
- +102
- Use
- foreground on background
- fg
#F8F9FC- bg
#000000- APCA Lc
- -104
- Use
- background on foreground
- fg
#FAFEFF- bg
#090703- APCA Lc
- -107
- Use
- background on accent
Images
Image strategy
Observable image posture - total count, lazy-loading ratio, and format mix. The hero image is measured above the fold.
- avif68 · 100%
Hero image
https://antimetal.com/assets/footer/background-transition.avif- Format
- AVIF
- Dimensions
- 1884x1124
- Loading
- lazy
- srcset
- no
- Industry
- developer-tools
- Industry
- saas
- Industry
- fintech
- Theme
- Light
- Added
- 2026-05-11
FAQ
Questions people ask about Antimetal
3questionsAnswers are pulled from the curator verdict and design brief - the same text your AI agent sees when it paste-reads this page.
Compare this with



