place.mode.standard.defs

mode.place

Documentation

actionPriorities object

The three Mise en Mode priorities for `action`, counting down from the thing a screen most wants you to do to the thing it least insists on.

Properties

View raw schema
{
  "type": "object",
  "required": [
    "primary",
    "secondary",
    "auxiliary"
  ],
  "properties": {
    "primary": {
      "ref": "lex:place.mode.standard.defs#colorIntent",
      "type": "ref",
      "description": "The one thing the screen most wants you to do."
    },
    "auxiliary": {
      "ref": "lex:place.mode.standard.defs#colorIntent",
      "type": "ref",
      "description": "The quietest choice."
    },
    "secondary": {
      "ref": "lex:place.mode.standard.defs#colorIntent",
      "type": "ref",
      "description": "A supporting choice."
    }
  },
  "description": "The three Mise en Mode priorities for `action`, counting down from the thing a screen most wants you to do to the thing it least insists on."
}
aspects object

A theme's renderable style, grouped by aspect. Each aspect is optional but complete when present; a theme SHOULD carry at least one.

Properties

View raw schema
{
  "type": "object",
  "properties": {
    "color": {
      "ref": "lex:place.mode.standard.defs#colorAspect",
      "type": "ref",
      "description": "The color aspect (21 intents). Optional, but complete when present."
    },
    "typography": {
      "ref": "lex:place.mode.standard.defs#typographyAspect",
      "type": "ref",
      "description": "The typography aspect (12 text intents). Optional, but complete when present."
    }
  },
  "description": "A theme's renderable style, grouped by aspect. Each aspect is optional but complete when present; a theme SHOULD carry at least one."
}
colorAspect object

The complete color aspect of a theme: control + action + surface (21 intents).

Properties

View raw schema
{
  "type": "object",
  "required": [
    "control",
    "action",
    "surface"
  ],
  "properties": {
    "action": {
      "ref": "lex:place.mode.standard.defs#actionPriorities",
      "type": "ref",
      "description": "Interactive element (button/link) color, by priority."
    },
    "control": {
      "ref": "lex:place.mode.standard.defs#colorIntent",
      "type": "ref",
      "description": "Form fields. No priority — all controls are peers."
    },
    "surface": {
      "ref": "lex:place.mode.standard.defs#surfacePriorities",
      "type": "ref",
      "description": "Non-interactive container (surface) color, by how far above the page the surface sits."
    }
  },
  "description": "The complete color aspect of a theme: control + action + surface (21 intents)."
}
colorIntent object

The three color values for a single intent (a purpose, or a purpose+priority).

Properties

background string Required

Any valid CSS <color> for the element's background.

maxLength: 128 bytes
border string Required

Any valid CSS <color> for the element's border.

maxLength: 128 bytes
foreground string Required

Any valid CSS <color> for the element's foreground (text/icon).

maxLength: 128 bytes
View raw schema
{
  "type": "object",
  "required": [
    "background",
    "foreground",
    "border"
  ],
  "properties": {
    "border": {
      "type": "string",
      "maxLength": 128,
      "description": "Any valid CSS <color> for the element's border."
    },
    "background": {
      "type": "string",
      "maxLength": 128,
      "description": "Any valid CSS <color> for the element's background."
    },
    "foreground": {
      "type": "string",
      "maxLength": 128,
      "description": "Any valid CSS <color> for the element's foreground (text/icon)."
    }
  },
  "description": "The three color values for a single intent (a purpose, or a purpose+priority)."
}
fontDescriptor object

One @font-face declaration. Only `family` is schema-required; a source (`src` or `file`) is required by the standard.

Properties

display string Optional

CSS font-display descriptor (e.g. 'swap', 'fallback').

maxLength: 32 bytes
family string Required

The font-family name as it should appear in CSS (e.g. 'Inter').

maxLength: 256 bytes
file blob Optional

A font file stored as a blob on the author's PDS. Takes precedence over `src` when both are present.

maxSize: 5.0 MB
src string Optional

A URL to the font file, or a CSS `src` value (e.g. 'url(https://...) format(woff2)'). Alternative to `file`.

maxLength: 1024 bytes
stretch string Optional

CSS font-stretch/font-width descriptor or range (e.g. 'normal', '75% 125%').

maxLength: 64 bytes
style string Optional

CSS font-style descriptor (e.g. 'normal', 'italic', 'oblique 0deg 20deg').

maxLength: 32 bytes
unicodeRange string Optional

CSS unicode-range descriptor (e.g. 'U+0000-00FF, U+0131'). Lets several entries share one `family` for subsetting.

maxLength: 2048 bytes
weight string Optional

CSS font-weight descriptor or range (e.g. '400', '100 900').

maxLength: 32 bytes
View raw schema
{
  "type": "object",
  "required": [
    "family"
  ],
  "properties": {
    "src": {
      "type": "string",
      "maxLength": 1024,
      "description": "A URL to the font file, or a CSS `src` value (e.g. 'url(https://...) format(woff2)'). Alternative to `file`."
    },
    "file": {
      "type": "blob",
      "accept": [
        "font/woff2",
        "font/woff",
        "font/ttf",
        "font/otf",
        "application/octet-stream"
      ],
      "maxSize": 5000000,
      "description": "A font file stored as a blob on the author's PDS. Takes precedence over `src` when both are present."
    },
    "style": {
      "type": "string",
      "maxLength": 32,
      "description": "CSS font-style descriptor (e.g. 'normal', 'italic', 'oblique 0deg 20deg')."
    },
    "family": {
      "type": "string",
      "maxLength": 256,
      "description": "The font-family name as it should appear in CSS (e.g. 'Inter')."
    },
    "weight": {
      "type": "string",
      "maxLength": 32,
      "description": "CSS font-weight descriptor or range (e.g. '400', '100 900')."
    },
    "display": {
      "type": "string",
      "maxLength": 32,
      "description": "CSS font-display descriptor (e.g. 'swap', 'fallback')."
    },
    "stretch": {
      "type": "string",
      "maxLength": 64,
      "description": "CSS font-stretch/font-width descriptor or range (e.g. 'normal', '75% 125%')."
    },
    "unicodeRange": {
      "type": "string",
      "maxLength": 2048,
      "description": "CSS unicode-range descriptor (e.g. 'U+0000-00FF, U+0131'). Lets several entries share one `family` for subsetting."
    }
  },
  "description": "One @font-face declaration. Only `family` is schema-required; a source (`src` or `file`) is required by the standard."
}
surfacePriorities object

The three Mise en Mode priorities for `surface`, counting down from the layer that claims most of a reader's attention to the one that claims least. Because priority counts down, the page is `auxiliary` and not `primary`: a page is what a modal interrupts.

Properties

View raw schema
{
  "type": "object",
  "required": [
    "primary",
    "secondary",
    "auxiliary"
  ],
  "properties": {
    "primary": {
      "ref": "lex:place.mode.standard.defs#colorIntent",
      "type": "ref",
      "description": "A surface that interrupts the page: modal, dialog, alert, sheet."
    },
    "auxiliary": {
      "ref": "lex:place.mode.standard.defs#colorIntent",
      "type": "ref",
      "description": "The page itself, and everything sitting on it rather than above it — cards, bars, panels. The layer a theme is mostly made of."
    },
    "secondary": {
      "ref": "lex:place.mode.standard.defs#colorIntent",
      "type": "ref",
      "description": "A surface over the page, not instead of it: flyout, menu, popover."
    }
  },
  "description": "The three Mise en Mode priorities for `surface`, counting down from the layer that claims most of a reader's attention to the one that claims least. Because priority counts down, the page is `auxiliary` and not `primary`: a page is what a modal interrupts."
}
textIntent object

Typography metrics for a single text priority. Color is intentionally excluded (it belongs to the containing surface).

Properties

family string Required

A CSS font-family value; should match a `family` in the theme's `fonts` array.

maxLength: 256 bytes
lineHeight string Required

A valid CSS line-height value (e.g. '1.4').

maxLength: 128 bytes
size string Required

A valid CSS <length-percentage> font size (e.g. '1.25rem').

maxLength: 128 bytes
weight string Required

A valid CSS <font-weight> (e.g. '400', '600').

maxLength: 128 bytes
View raw schema
{
  "type": "object",
  "required": [
    "size",
    "weight",
    "family",
    "lineHeight"
  ],
  "properties": {
    "size": {
      "type": "string",
      "maxLength": 128,
      "description": "A valid CSS <length-percentage> font size (e.g. '1.25rem')."
    },
    "family": {
      "type": "string",
      "maxLength": 256,
      "description": "A CSS font-family value; should match a `family` in the theme's `fonts` array."
    },
    "weight": {
      "type": "string",
      "maxLength": 128,
      "description": "A valid CSS <font-weight> (e.g. '400', '600')."
    },
    "lineHeight": {
      "type": "string",
      "maxLength": 128,
      "description": "A valid CSS line-height value (e.g. '1.4')."
    }
  },
  "description": "Typography metrics for a single text priority. Color is intentionally excluded (it belongs to the containing surface)."
}
textPriorities object

The three Mise en Mode priorities for `text`, counting down from the text that claims most of a reader's attention to the text that claims least.

Properties

View raw schema
{
  "type": "object",
  "required": [
    "primary",
    "secondary",
    "auxiliary"
  ],
  "properties": {
    "primary": {
      "ref": "lex:place.mode.standard.defs#textIntent",
      "type": "ref",
      "description": "Headlines and titles."
    },
    "auxiliary": {
      "ref": "lex:place.mode.standard.defs#textIntent",
      "type": "ref",
      "description": "Detail and help: captions, hints, legal."
    },
    "secondary": {
      "ref": "lex:place.mode.standard.defs#textIntent",
      "type": "ref",
      "description": "Body copy — the text a page is mostly made of."
    }
  },
  "description": "The three Mise en Mode priorities for `text`, counting down from the text that claims most of a reader's attention to the text that claims least."
}
typographyAspect object

The typography aspect of a theme: text (12 intents), complete when present.

Properties

View raw schema
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "ref": "lex:place.mode.standard.defs#textPriorities",
      "type": "ref",
      "description": "Typography by priority."
    }
  },
  "description": "The typography aspect of a theme: text (12 intents), complete when present."
}

Lexicon Garden

@