DESIGN.md · Analysis

RSMS

rsms.me · 9 Jun 2026 · 47 colors · InterDisplay, Inter

RSMS

Personal portfolio and design system for Rasmus Andersson, a Swedish software designer and creator of the Inter typeface. The brand embodies minimalist clarity with surgical precision, using a monochromatic canvas punctuated by a vivid red accent.

Colors

surface#ffffff
surface-dim#f5f5f5
surface-bright#ffffff
surface-container-lowest#fafafa
surface-container-low#f0f0f0
surface-container#eeeeee
surface-container-high#e9ecef
surface-container-highest#e0e0e0
on-surface#000000
on-surface-variant#666666
inverse-surface#1a1a1a
inverse-on-surface#ffffff
outline#d0d0d0
outline-variant#cccccc
surface-tint#ff5c00
primary#ff5c00
on-primary#ffffff
primary-container#ffe5d0
on-primary-container#663300
inverse-primary#ffb366
secondary#12c05b
on-secondary#ffffff
secondary-container#d4f5e3
on-secondary-container#004d2e
tertiary#0366d6
on-tertiary#ffffff
tertiary-container#d4e8ff
on-tertiary-container#001a4d
error#f03009
on-error#ffffff
error-container#ffd4cc
on-error-container#660a00
primary-fixed#ffe5d0
primary-fixed-dim#ffb366
on-primary-fixed#330000
on-primary-fixed-variant#663300
secondary-fixed#d4f5e3
secondary-fixed-dim#99e6c3
on-secondary-fixed#001a0d
on-secondary-fixed-variant#004d2e
tertiary-fixed#d4e8ff
tertiary-fixed-dim#99c9ff
on-tertiary-fixed#000d33
on-tertiary-fixed-variant#001a4d
background#ffffff
on-background#000000
surface-variant#f0f0f0

Typography

display
fontFamily: InterDisplay · fontSize: 56px · fontWeight: 600 · lineHeight: 64px · letterSpacing: -0.02em
headline-lg
fontFamily: InterDisplay · fontSize: 32px · fontWeight: 600 · lineHeight: 40px · letterSpacing: -0.01em
headline-md
fontFamily: Inter · fontSize: 24px · fontWeight: 600 · lineHeight: 32px
title-lg
fontFamily: Inter · fontSize: 20px · fontWeight: 600 · lineHeight: 28px
body-lg
fontFamily: Inter · fontSize: 18px · fontWeight: 400 · lineHeight: 28px
body-md
fontFamily: Inter · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
label-md
fontFamily: Inter · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Inter · fontSize: 12px · fontWeight: 500 · lineHeight: 16px

Design guidance

Overview

RSMS is the personal portfolio and design platform of Rasmus Andersson, a Swedish software designer and creator of the Inter typeface family. The brand embodies 'Architectural Minimalism'—a design philosophy that treats digital interfaces as precisely engineered structures, where every pixel serves a function and no element exists without purpose. The aesthetic is deliberately austere: a pure white canvas (rgb(255, 255, 255)) with black typography (rgb(0, 0, 0)) creates a print-like clarity, while a single vivid red accent (#ff5c00, a warm hot-orange) punctuates interactive moments and draws focus to calls-to-action. This restraint evokes intellectual rigor, craftsmanship, and the confidence of a designer who has mastered reduction. The emotional response is one of calm authority—the user feels they are in the hands of someone who understands systems deeply.

The brand voice is direct, precise, and conversational without being casual. Rasmus writes in short, declarative sentences that prioritize clarity over flourish: 'Software is the medium through which I express myself.' The vocabulary is technical yet accessible, avoiding jargon unless it serves the reader. Tone is confident but never arrogant; there is an underlying humility in how the work is presented. The brand personality is that of a craftsperson—someone equally comfortable discussing typeface metrics, compiler design, or the philosophy of simplicity. Example sentence in brand voice: 'Inter is a typeface family carefully engineered for screen legibility at small sizes, with meticulous spacing and optical adjustmen

Colors

The color system operates on a principle of 'monochromatic clarity with strategic accent.' The primary surface is pure white (#ffffff, rgb(255, 255, 255)), providing an uncluttered canvas that emphasizes content. All body text and interactive elements default to black (#000000, rgb(0, 0, 0)) for maximum contrast and legibility at 16px body size. The surface stack uses subtle grays for depth without visual noise: surface-container-low (#f0f0f0) for secondary backgrounds, surface-container-high (#e9ecef) for hover states and elevated surfaces, and outline (#d0d0d0) for borders and dividers. These grays maintain a luminosity ratio that ensures text remains readable (WCAG AA compliant at minimum). The primary accent color is #ff5c00 (hot-orange, a warm red-orange), used exclusively on call-to-

Typography

The type system pairs two optical sizes of Inter: InterDisplay for headlines (32px–56px) and Inter for body and UI text (12px–18px). This distinction mirrors the typeface's own design philosophy—Inter Display is optimized for larger sizes with slightly tighter spacing (letterSpacing: -0.01em to -0.02em), while Inter at body sizes uses neutral spacing (0.01em) to maximize legibility. Headlines use fontWeight 600 (semibold) to establish hierarchy without heaviness; body text is consistently 400 (regular) for neutral readability. The line-height scale is generous: display text uses 64px line-height at 56px font size (1.14x), headlines use 40px at 32px (1.25x), and body uses 28px at 18px (1.56x), creating ample breathing room that reinforces the minimalist aesthetic. Labels and UI text (12px–1

Layout

The layout system uses a 6-column responsive grid (defined via r-grid columns='6') with a fixed container max-width of 1024px. This grid is fluid on smaller screens (columns-s='4', columns-xs='2') to accommodate mobile and tablet viewports. The page rhythm relies on generous whitespace: body padding is 64px on desktop, creating a letterbox effect that centers content and prevents eye strain. Section separation uses lg spacing (40px) between major content blocks (Projects, Thoughts & ideas, Bio), while internal list items use sm spacing (12px) for compact grouping. The gutter between grid columns is 24px (md spacing), providing clear visual separation without feeling cramped. Container max-width of 1024px ensures that line lengths remain optimal for reading (approximately 60–80 characters a

Elevation & Depth

Depth in this system is achieved through subtle layering rather than dramatic shadows. The base layer is the white surface (#ffffff) with no shadow. Level 1 (cards, dropdowns, input fields) uses elevation-md: 0 3px 8px rgba(0, 0, 0, 0.15), a soft shadow with 3px vertical offset and 8px blur radius, creating a gentle lift that suggests the element is slightly above the surface. Level 2 (modals, popovers, hover states on cards) uses elevation-lg: 0 8px 24px rgba(0, 0, 0, 0.12), a larger shadow with 8px offset and 24px blur, indicating greater separation from the base. Borders are used sparingly:

Shapes

The shape philosophy is 'Technical Precision'—border-radius values are small and intentional, reflecting the engineering mindset of the brand. The rounded scale uses 2px (sm) for minimal rounding on small UI elements like select dropdowns and option panels, 4px (DEFAULT) for buttons and input fields, 6px (md) for list items and menu containers, and 8px (lg) for cards and larger surfaces. No element uses aggressive rounding (>12px) except for badges and pills, which use full (9999px) to indicate their distinct, self-contained nature. The reasoning is functional: 2px–4px rounding softens hard ed

Components

Action Elements Buttons are the primary interactive element and come in two variants: primary (filled) and secondary (outlined). Primary buttons use backgroundColor: {colors.primary} (#ff5c00) with white text, 16px 24px padding, 44px height, and 4px border-radius. On hover, the background transitions to #e64a00 (a darker orange) over 150ms ease-out, providing tactile feedback. On active/pressed, the background darkens further to #cc4200. Secondary buttons use a transparent background with a 1px solid border (#d0d0d0) and black text; on hover, they gain a light gray background (#e9ecef) and the border remains visible. Both button variants use label-md typography (14px, fontWeight 600) and cursor: pointer. Links are styled as text with no underline by default; on hover, they gain a 1px b

Do's and Don'ts

**Do**

  • Do use the primary accent (#ff5c00) sparingly and only on interactive elements (buttons, active states, focus indicators) to maintain visual hierarchy and prevent color fatigue.
  • Do maintain generous whitespace (40px+ between sections, 64px body padding) to reinforce the minimalist aesthetic and improve readability.
  • Do use Inter Display for headlines (32px+) and Inter for body text (12px–18px) to leverage the typeface's optical size optimization and maintain legibility across scales.
  • Do apply smooth transitions (150ms ease-out) to all interactive state changes (hover, focus, active) to provide tactile feedback without animation excess.
  • Do use the surface-container stack (#f0f0f0, #e9ecef, #e0e0e0) for depth and hover states rather than introducing new colors, keeping the palette cohesive.
  • Do ensure all text meets WCAG AA contrast ratios: black on white (21:1), primary accent on white (5.5:1), and on-surface-variant on white (7:1).

**Don't**

  • Don't use rounded corners larger than 8px on standard UI elements (buttons, inputs, cards); this softens the architectural precision that defines the brand.
  • Don't introduce new accent colors beyond primary (#ff5c00), secondary (#12c05b), and tertiary (#0366d6); the monochromatic foundation is the brand's strength.
  • Don't apply shadows larger than elevation-lg (0 8px 24px rgba(0, 0, 0, 0.12)) or use drop-shadow filters; this contradicts the flat, print-like aesthetic.
  • Don't center-align body text or use justified alignment; left-aligned text maintains the grid-based, architectural feel.
  • Don't use animations longer than 300ms or easing functions other than ease-out; this keeps interactions snappy and precise rather than playful.
  • Don't exceed the container max-width of 1024px or reduce padding below 24px on desktop; this preserves the letterbox composition and reading comfort.