place.mode.standard.defs

mode.place

{
  "id": "place.mode.standard.defs",
  "defs": {
    "aspects": {
      "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."
    },
    "textIntent": {
      "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)."
    },
    "colorAspect": {
      "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": {
      "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": {
      "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."
    },
    "textPriorities": {
      "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."
    },
    "actionPriorities": {
      "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."
    },
    "typographyAspect": {
      "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."
    },
    "surfacePriorities": {
      "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 — the layer everything else sits on."
        },
        "secondary": {
          "ref": "lex:place.mode.standard.defs#colorIntent",
          "type": "ref",
          "description": "A surface over the page, not instead of it: flyout, menu, card."
        }
      },
      "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."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against place.mode.standard.defs

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:rvraq37xlwydvov7laldai6a
CID
bafyreifza7diu5q65tswpc456glqk577gg5dpfr6xet46l2yuflben54ui
Indexed At
2026-07-31 19:24 UTC
AT-URI
at://did:plc:rvraq37xlwydvov7laldai6a/com.atproto.lexicon.schema/place.mode.standard.defs

Version History (3 versions)

Referenced Schemas (7)

  • lex:place.mode.standard.defs#actionPriorities
  • lex:place.mode.standard.defs#colorAspect
  • lex:place.mode.standard.defs#colorIntent
  • lex:place.mode.standard.defs#surfacePriorities
  • lex:place.mode.standard.defs#textIntent
  • lex:place.mode.standard.defs#textPriorities
  • lex:place.mode.standard.defs#typographyAspect

Lexicon Garden

@