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
The one thing the screen most wants you to do.
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."
}
A theme's renderable style, grouped by aspect. Each aspect is optional but complete when present; a theme SHOULD carry at least one.
Properties
The color aspect (21 intents). Optional, but complete when present.
The typography aspect (12 text intents). Optional, but complete when present.
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."
}
The complete color aspect of a theme: control + action + surface (21 intents).
Properties
Interactive element (button/link) color, by priority.
Form fields. No priority — all controls are peers.
Non-interactive container (surface) color, by how far above the page the surface sits.
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)."
}
The three color values for a single intent (a purpose, or a purpose+priority).
Properties
Any valid CSS <color> for the element's background.
maxLength: 128 bytes
Any valid CSS <color> for the element's border.
maxLength: 128 bytes
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)."
}
One @font-face declaration. Only `family` is schema-required; a source (`src` or `file`) is required by the standard.
Properties
CSS font-display descriptor (e.g. 'swap', 'fallback').
maxLength: 32 bytes
The font-family name as it should appear in CSS (e.g. 'Inter').
maxLength: 256 bytes
A font file stored as a blob on the author's PDS. Takes precedence over `src` when both are present.
maxSize: 5.0 MB
A URL to the font file, or a CSS `src` value (e.g. 'url(https://...) format(woff2)'). Alternative to `file`.
maxLength: 1024 bytes
CSS font-stretch/font-width descriptor or range (e.g. 'normal', '75% 125%').
maxLength: 64 bytes
CSS font-style descriptor (e.g. 'normal', 'italic', 'oblique 0deg 20deg').
maxLength: 32 bytes
CSS unicode-range descriptor (e.g. 'U+0000-00FF, U+0131'). Lets several entries share one `family` for subsetting.
maxLength: 2048 bytes
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."
}
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
The page itself, and everything sitting on it rather than above it — cards, bars, panels. The layer a theme is mostly made of.
A surface that interrupts the page: modal, dialog, alert, sheet.
A surface over the page, not instead of it: flyout, menu, popover.
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."
}
Typography metrics for a single text priority. Color is intentionally excluded (it belongs to the containing surface).
Properties
A CSS font-family value; should match a `family` in the theme's `fonts` array.
maxLength: 256 bytes
A valid CSS line-height value (e.g. '1.4').
maxLength: 128 bytes
A valid CSS <length-percentage> font size (e.g. '1.25rem').
maxLength: 128 bytes
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)."
}
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
Detail and help: captions, hints, legal.
Body copy — the text a page is mostly made of.
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."
}
The typography aspect of a theme: text (12 intents), complete when present.
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."
}