$ file://design-md-library/ _
$ cat ./design-md-library/ media-editorial _
$ cat ./design-md/media-editorial/metadata.yaml

Media & Editorial

A content-first editorial design system for blogs and magazines, focused on long-form readability, restrained accent usage, and distraction-free article layouts.

Tags
editorialpublishingtypographylong-form-readingcontent-firstnews

Live Preview

View Live
Tokens: COLOR
Items: 17

primary

Hex: #1A1A1A

accent

Hex: #D64045

accent hover

Hex: #B83438

bg

Hex: #FFFFFF

bg warm

Hex: #FAF9F7

bg code

Hex: #F5F5F5

surface

Hex: #FFFFFF

border

Hex: #E8E8E8

text primary

Hex: #1A1A1A

text secondary

Hex: #555555

text muted

Hex: #999999

text caption

Hex: #777777

sepia bg

Hex: #F4EDDF

sepia text

Hex: #3D3229

dark bg

Hex: #1A1A1A

dark text

Hex: #D4D4D4

dark accent

Hex: #E8696D
Tokens: SPACING
Items: 12
space-2
16px
space-3
24px
space-4
32px
space-6
48px
space-8
64px
space-10
80px
space-12
96px
body-max-width
680px
image-max-width
960px
page-max-width
1200px
page-margin-desktop
24px
page-margin-mobile
16px
Tokens: ROUNDED
Items: 5
none
0px
sm
3px
md
6px
lg
24px
full
9999px
Tokens: TYPOGRAPHY
Items: 10

display

The quick brown fox jumps over the lazy dog

Family: Lora
Size: 48px
Weight: 700
Letter Spacing: -1px

h1

The quick brown fox jumps over the lazy dog

Family: Lora
Size: 36px
Weight: 700
Letter Spacing: -0.5px

h2

The quick brown fox jumps over the lazy dog

Family: Lora
Size: 28px
Weight: 700
Letter Spacing: -0.3px

h3

The quick brown fox jumps over the lazy dog

Family: Lora
Size: 22px
Weight: 600
Letter Spacing: 0px

h4 kicker

The quick brown fox jumps over the lazy dog

Family: Inter
Size: 16px
Weight: 600
Letter Spacing: 0.5px

body

The quick brown fox jumps over the lazy dog

Family: Source Serif 4
Size: 19px
Weight: 400
Letter Spacing: 0px

body sm

The quick brown fox jumps over the lazy dog

Family: Source Serif 4
Size: 17px
Weight: 400
Letter Spacing: 0px

caption

The quick brown fox jumps over the lazy dog

Family: Inter
Size: 14px
Weight: 400
Letter Spacing: 0px

meta

The quick brown fox jumps over the lazy dog

Family: Inter
Size: 13px
Weight: 500
Letter Spacing: 0.3px

code

The quick brown fox jumps over the lazy dog

Family: JetBrains Mono
Size: 15px
Weight: 400
Letter Spacing: 0px

Tailwind v3 Config

{
  "theme": {
    "extend": {
      "colors": {
        "primary": "#1a1a1a",
        "accent": "#d64045",
        "accent-hover": "#b83438",
        "bg": "#ffffff",
        "bg-warm": "#faf9f7",
        "bg-code": "#f5f5f5",
        "surface": "#ffffff",
        "border": "#e8e8e8",
        "text-primary": "#1a1a1a",
        "text-secondary": "#555555",
        "text-muted": "#999999",
        "text-caption": "#777777",
        "sepia-bg": "#f4eddf",
        "sepia-text": "#3d3229",
        "dark-bg": "#1a1a1a",
        "dark-text": "#d4d4d4",
        "dark-accent": "#e8696d"
      },
      "fontFamily": {
        "display": [
          "Lora"
        ],
        "h1": [
          "Lora"
        ],
        "h2": [
          "Lora"
        ],
        "h3": [
          "Lora"
        ],
        "h4-kicker": [
          "Inter"
        ],
        "body": [
          "Source Serif 4"
        ],
        "body-sm": [
          "Source Serif 4"
        ],
        "caption": [
          "Inter"
        ],
        "meta": [
          "Inter"
        ],
        "code": [
          "JetBrains Mono"
        ]
      },
      "fontSize": {
        "display": [
          "48px",
          {
            "letterSpacing": "-1px",
            "fontWeight": "700"
          }
        ],
        "h1": [
          "36px",
          {
            "letterSpacing": "-0.5px",
            "fontWeight": "700"
          }
        ],
        "h2": [
          "28px",
          {
            "letterSpacing": "-0.3px",
            "fontWeight": "700"
          }
        ],
        "h3": [
          "22px",
          {
            "letterSpacing": "0px",
            "fontWeight": "600"
          }
        ],
        "h4-kicker": [
          "16px",
          {
            "letterSpacing": "0.5px",
            "fontWeight": "600"
          }
        ],
        "body": [
          "19px",
          {
            "letterSpacing": "0px",
            "fontWeight": "400"
          }
        ],
        "body-sm": [
          "17px",
          {
            "letterSpacing": "0px",
            "fontWeight": "400"
          }
        ],
        "caption": [
          "14px",
          {
            "letterSpacing": "0px",
            "fontWeight": "400"
          }
        ],
        "meta": [
          "13px",
          {
            "letterSpacing": "0.3px",
            "fontWeight": "500"
          }
        ],
        "code": [
          "15px",
          {
            "letterSpacing": "0px",
            "fontWeight": "400"
          }
        ]
      },
      "borderRadius": {
        "none": "0px",
        "sm": "3px",
        "md": "6px",
        "lg": "24px",
        "full": "9999px"
      },
      "spacing": {
        "space-2": "16px",
        "space-3": "24px",
        "space-4": "32px",
        "space-6": "48px",
        "space-8": "64px",
        "space-10": "80px",
        "space-12": "96px",
        "body-max-width": "680px",
        "image-max-width": "960px",
        "page-max-width": "1200px",
        "page-margin-desktop": "24px",
        "page-margin-mobile": "16px"
      }
    }
  }
}

Tailwind v4 @theme

// No content available

DESIGN.md

---
version: alpha
name: Media & Editorial
description: Content-first editorial design system optimized for long-form reading and minimal interface distraction.
colors:
  primary: "#1A1A1A"
  accent: "#D64045"
  accent-hover: "#B83438"
  bg: "#FFFFFF"
  bg-warm: "#FAF9F7"
  bg-code: "#F5F5F5"
  surface: "#FFFFFF"
  border: "#E8E8E8"
  text-primary: "#1A1A1A"
  text-secondary: "#555555"
  text-muted: "#999999"
  text-caption: "#777777"
  sepia-bg: "#F4EDDF"
  sepia-text: "#3D3229"
  dark-bg: "#1A1A1A"
  dark-text: "#D4D4D4"
  dark-accent: "#E8696D"
typography:
  display:
    fontFamily: Lora
    fontSize: 48px
    fontWeight: 700
    lineHeight: 1.15
    letterSpacing: -1px
  h1:
    fontFamily: Lora
    fontSize: 36px
    fontWeight: 700
    lineHeight: 1.2
    letterSpacing: -0.5px
  h2:
    fontFamily: Lora
    fontSize: 28px
    fontWeight: 700
    lineHeight: 1.25
    letterSpacing: -0.3px
  h3:
    fontFamily: Lora
    fontSize: 22px
    fontWeight: 600
    lineHeight: 1.3
    letterSpacing: 0px
  h4-kicker:
    fontFamily: Inter
    fontSize: 16px
    fontWeight: 600
    lineHeight: 1.4
    letterSpacing: 0.5px
  body:
    fontFamily: Source Serif 4
    fontSize: 19px
    fontWeight: 400
    lineHeight: 1.8
    letterSpacing: 0px
  body-sm:
    fontFamily: Source Serif 4
    fontSize: 17px
    fontWeight: 400
    lineHeight: 1.75
    letterSpacing: 0px
  caption:
    fontFamily: Inter
    fontSize: 14px
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: 0px
  meta:
    fontFamily: Inter
    fontSize: 13px
    fontWeight: 500
    lineHeight: 1.4
    letterSpacing: 0.3px
  code:
    fontFamily: JetBrains Mono
    fontSize: 15px
    fontWeight: 400
    lineHeight: 1.6
    letterSpacing: 0px
rounded:
  none: 0px
  sm: 3px
  md: 6px
  lg: 24px
  full: 9999px
spacing:
  space-2: 16px
  space-3: 24px
  space-4: 32px
  space-6: 48px
  space-8: 64px
  space-10: 80px
  space-12: 96px
  body-max-width: 680px
  image-max-width: 960px
  page-max-width: 1200px
  page-margin-desktop: 24px
  page-margin-mobile: 16px
components:
  article-body:
    typography: "{typography.body}"
    textColor: "{colors.text-primary}"
    width: "{spacing.body-max-width}"
  article-link:
    textColor: "{colors.text-primary}"
    textColorHover: "{colors.accent}"
  article-card-list:
    backgroundColor: "{colors.surface}"
    dividerColor: "{colors.border}"
    dividerSpacing: "{spacing.space-4}"
  article-card-grid:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text-primary}"
    cardGap: "{spacing.space-2}"
  pull-quote:
    borderColor: "{colors.accent}"
    textColor: "{colors.text-primary}"
    typography: "{typography.h2}"
    padding: "{spacing.space-3}"
  code-block:
    backgroundColor: "{colors.bg-code}"
    typography: "{typography.code}"
    rounded: "{rounded.md}"
    padding: "{spacing.space-3}"
  inline-code:
    backgroundColor: "{colors.bg-code}"
    typography: "{typography.code}"
    rounded: "{rounded.sm}"
  nav-minimal:
    backgroundColor: "{colors.bg}"
    textColor: "{colors.text-primary}"
    height: 56px
  newsletter-inline:
    backgroundColor: "{colors.bg-warm}"
    headlineTypography: "{typography.h3}"
    buttonBackground: "{colors.accent}"
    buttonTextColor: "#FFFFFF"
---

## Brand & Style

Content is sovereign. The interface exists to present words and images at their best and then disappear.

This system is built for blogs, magazines, newsletters, and other content-heavy products where sustained reading is the primary job-to-be-done. The tone is readable, elegant, editorial, and unhurried. Navigation and platform voice stay quiet so the writer's voice leads.

## Colors

The palette is intentionally restrained: near-black text on white reading surfaces with one editorial accent.

- Reading surfaces stay white in default mode to maximize readability.
- The accent red is used sparingly (active nav, pull quotes, hover states, selected highlights).
- Metadata and supporting text move down a neutral scale without reducing contrast below accessible thresholds.
- Reading modes (light, sepia, dark) shift only background/text/accent relationships, not layout or typographic structure.

## Typography

Typography is optimized for long-form reading, not density.

- Serif is mandatory for article content and major headlines.
- Sans-serif is reserved for navigation, controls, labels, and metadata.
- Body copy is set to `19px` with `1.8` line height and a fixed reading measure of `680px`.
- Text is always left-aligned; justified body text is disallowed.

## Layout & Spacing

Layout enforces editorial rhythm through narrow reading measure, image breakout, and generous vertical spacing.

- Article text column max width is `680px`.
- Images can break out to `960px` to create pacing contrast.
- Overall page content caps at `1200px`.
- Base spacing uses the editorial scale (`16px` to `96px`) with larger vertical gaps than typical app UIs.
- No sidebar is shown while reading article content.

Breakpoints:
- Mobile (`<640px`): single column, full-width images, reduced headline sizes.
- Tablet (`640px - 1024px`): body column preserved, two-column grids for listings.
- Desktop (`>1024px`): full editorial layout with breakout images and three-column grids where applicable.

## Elevation & Depth

Reading surfaces stay visually flat. Hierarchy comes from typography, spacing, and dividers rather than layered cards.

- `none`: default article and listing surfaces.
- `sm`: sticky navigation and lightweight floating controls.
- `md`: transient overlays such as share panels and optional newsletter popups.

Shadows remain subtle and rare, so content never feels boxed-in.

## Shapes

Shape language is mostly square and structural, with selective rounding for utility elements.

- Article cards and imagery default to no corner radius.
- Code blocks and inline code use small rounding for scanability (`6px` and `3px`).
- Avatars are circular.
- Pull quotes use a vertical accent rule rather than rounded containers.

## Components

### Article Cards

List view uses media-left layout on desktop and stacked layout on mobile. Dividers separate entries with generous vertical rhythm. Grid cards prioritize headline clarity and metadata legibility, with no ornamental borders.

### Article Page

Article pages center the reading column, allow controlled image breakout, and apply consistent text styles for paragraphs, headings, lists, block quotes, and code. Progress indication is recommended for long reads.

### Pull Quote

Pull quotes are editorial accents: italic serif, accent left rule, and measured spacing. Attribution is muted and secondary.

### Navigation

Navigation is minimal and compact (`56px` height), with very few items. Active state is indicated by an accent underline, and mobile uses a simple left drawer.

### Newsletter Inline Block

Newsletter signup appears between list items or at article end, using warm background contrast, clear heading hierarchy, and concise privacy copy.

## Do's and Don'ts

- Do keep reading comfort as the top priority in every component decision.
- Do maintain the `680px` reading measure and generous body line height.
- Do use serif content typography and preserve clear heading hierarchy.
- Do include read-time metadata and progress indicators for long articles.
- Don't introduce sidebars, modal interruptions, or autoplay media while reading.
- Don't use justified text, undersized body copy, or decorative depth effects in article flow.