A composite border value combining width, line style, and color.
Properties
Border line style.
maxLength: 8 bytes
Known values: solid, dashed, dotted, double, groove, ridge, inset, outset, none
View raw schema
{
"type": "object",
"properties": {
"color": {
"ref": "#colorValue",
"type": "ref",
"description": "Border color."
},
"style": {
"type": "string",
"maxLength": 8,
"description": "Border line style.",
"knownValues": [
"solid",
"dashed",
"dotted",
"double",
"groove",
"ridge",
"inset",
"outset",
"none"
]
},
"width": {
"ref": "#dimensionValue",
"type": "ref",
"description": "Border width."
}
},
"description": "A composite border value combining width, line style, and color."
}
A single gradient color stop. Position is a string-encoded float.
Properties
Stop position as a string-encoded float (0-1 for proportional, or unitless percentage like '50').
maxLength: 64 bytes
View raw schema
{
"type": "object",
"properties": {
"color": {
"ref": "#colorValue",
"type": "ref",
"description": "Color at this stop."
},
"position": {
"type": "string",
"maxLength": 64,
"description": "Stop position as a string-encoded float (0-1 for proportional, or unitless percentage like '50')."
}
},
"description": "A single gradient color stop. Position is a string-encoded float."
}
A color value expressed in a specific color space with optional alpha and hex fallback. Float components are stored as strings because the atproto data model does not support floating-point numbers.
Properties
Opacity as a string-encoded float between '0' and '1'. Assumed '1' if omitted.
maxLength: 64 bytes
The color space identifier.
maxLength: 16 bytes
Known values: srgb, srgb-linear, hsl, hwb, lab, lch, oklab, oklch, display-p3, a98-rgb, prophoto-rgb, rec2020, xyz-d65, xyz-d50
Color component values (positional, depending on colorSpace). Each element is a string-encoded float (e.g. '0.4', '1.0') or the string 'none'.
6-digit CSS hex fallback (e.g. #ff00ff).
maxLength: 7 bytesmaxGraphemes: 7 graphemes
View raw schema
{
"type": "object",
"required": [
"colorSpace",
"components"
],
"properties": {
"hex": {
"type": "string",
"maxLength": 7,
"description": "6-digit CSS hex fallback (e.g. #ff00ff).",
"maxGraphemes": 7
},
"alpha": {
"type": "string",
"maxLength": 64,
"description": "Opacity as a string-encoded float between '0' and '1'. Assumed '1' if omitted."
},
"colorSpace": {
"type": "string",
"maxLength": 16,
"description": "The color space identifier.",
"knownValues": [
"srgb",
"srgb-linear",
"hsl",
"hwb",
"lab",
"lch",
"oklab",
"oklch",
"display-p3",
"a98-rgb",
"prophoto-rgb",
"rec2020",
"xyz-d65",
"xyz-d50"
]
},
"components": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"description": "Color component values (positional, depending on colorSpace). Each element is a string-encoded float (e.g. '0.4', '1.0') or the string 'none'."
}
},
"description": "A color value expressed in a specific color space with optional alpha and hex fallback. Float components are stored as strings because the atproto data model does not support floating-point numbers."
}
A cubic Bezier curve defined by exactly 4 control-point string-encoded floats (x1, y1, x2, y2).
View raw schema
{
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 4,
"minItems": 4,
"description": "A cubic Bezier curve defined by exactly 4 control-point string-encoded floats (x1, y1, x2, y2)."
}
A dimension with a numeric value and CSS-compatible unit. The value is a string-encoded float because atproto does not support floating-point numbers.
Properties
The unit of measurement.
maxLength: 8 bytes
Known values: px, rem, em, pt, pc, in, cm, mm, %, vw, vh, vmin, vmax, ch, ex
The numeric magnitude as a string-encoded float (e.g. '16.5', '100', '0.25').
maxLength: 64 bytes
View raw schema
{
"type": "object",
"required": [
"value",
"unit"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 8,
"description": "The unit of measurement.",
"knownValues": [
"px",
"rem",
"em",
"pt",
"pc",
"in",
"cm",
"mm",
"%",
"vw",
"vh",
"vmin",
"vmax",
"ch",
"ex"
]
},
"value": {
"type": "string",
"maxLength": 64,
"description": "The numeric magnitude as a string-encoded float (e.g. '16.5', '100', '0.25')."
}
},
"description": "A dimension with a numeric value and CSS-compatible unit. The value is a string-encoded float because atproto does not support floating-point numbers."
}
A duration with a numeric value and time unit. The value is a string-encoded float because atproto does not support floating-point numbers.
Properties
The time unit.
maxLength: 4 bytes
Known values: ms, s
The numeric magnitude as a string-encoded float (e.g. '150', '300.5').
maxLength: 64 bytes
View raw schema
{
"type": "object",
"required": [
"value",
"unit"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 4,
"description": "The time unit.",
"knownValues": [
"ms",
"s"
]
},
"value": {
"type": "string",
"maxLength": 64,
"description": "The numeric magnitude as a string-encoded float (e.g. '150', '300.5')."
}
},
"description": "A duration with a numeric value and time unit. The value is a string-encoded float because atproto does not support floating-point numbers."
}
A font family name or comma-separated fallback string.
ConstraintsmaxLength: 512 bytes
View raw schema
{
"type": "string",
"maxLength": 512,
"description": "A font family name or comma-separated fallback string."
}
No description available.
ConstraintsmaxLength: 16 bytes
thin hairline extraLight ultraLight light normal regular book medium semiBold demiBold bold extraBold ultraBold black heavy extraBlack ultraBlack
View raw schema
{
"type": "string",
"maxLength": 16,
"knownValues": [
"thin",
"hairline",
"extraLight",
"ultraLight",
"light",
"normal",
"regular",
"book",
"medium",
"semiBold",
"demiBold",
"bold",
"extraBold",
"ultraBold",
"black",
"heavy",
"extraBlack",
"ultraBlack"
]
}
No description available.
Constraintsminimum: 1, maximum: 1000
View raw schema
{
"type": "integer",
"maximum": 1000,
"minimum": 1
}
A composite gradient value with type and color stops.
Properties
Angle values in degrees as string-encoded floats.
Color stops defining the gradient.
Gradient type.
maxLength: 8 bytes
Known values: linear, radial, conic
View raw schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"maxLength": 8,
"description": "Gradient type.",
"knownValues": [
"linear",
"radial",
"conic"
]
},
"angles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"description": "Angle values in degrees as string-encoded floats."
},
"colorStops": {
"type": "array",
"items": {
"ref": "#colorStop",
"type": "ref"
},
"description": "Color stops defining the gradient."
}
},
"description": "A composite gradient value with type and color stops."
}
A numeric value encoded as a string (e.g. '42', '3.14159'). Encoded as string because atproto does not support floating-point numbers and cannot distinguish integer from float at the type level.
ConstraintsmaxLength: 128 bytes
View raw schema
{
"type": "string",
"maxLength": 128,
"description": "A numeric value encoded as a string (e.g. '42', '3.14159'). Encoded as string because atproto does not support floating-point numbers and cannot distinguish integer from float at the type level."
}
A composite shadow value (drop shadow / box-shadow) with color, offsets, blur, spread.
Properties
Whether the shadow is inset (inner shadow).
View raw schema
{
"type": "object",
"properties": {
"blur": {
"ref": "#dimensionValue",
"type": "ref",
"description": "Blur radius."
},
"color": {
"ref": "#colorValue",
"type": "ref",
"description": "Shadow color."
},
"inset": {
"type": "boolean",
"description": "Whether the shadow is inset (inner shadow)."
},
"spread": {
"ref": "#dimensionValue",
"type": "ref",
"description": "Spread radius."
},
"offsetX": {
"ref": "#dimensionValue",
"type": "ref",
"description": "Horizontal offset."
},
"offsetY": {
"ref": "#dimensionValue",
"type": "ref",
"description": "Vertical offset."
}
},
"description": "A composite shadow value (drop shadow / box-shadow) with color, offsets, blur, spread."
}
Stroke style properties (dash array, line cap/join, miter limit). Corresponds to DTCG 'strokeStyle' composite type. Dash lengths and miter limit are string-encoded floats.
Properties
Dash and gap lengths as string-encoded floats.
Shape at the end of open subpaths.
maxLength: 8 bytes
Known values: round, butt, square
Shape at the corners of paths.
maxLength: 8 bytes
Known values: miter, bevel, round
Maximum miter length when lineJoin is 'miter', as a string-encoded float.
maxLength: 64 bytes
View raw schema
{
"type": "object",
"properties": {
"lineCap": {
"type": "string",
"maxLength": 8,
"description": "Shape at the end of open subpaths.",
"knownValues": [
"round",
"butt",
"square"
]
},
"lineJoin": {
"type": "string",
"maxLength": 8,
"description": "Shape at the corners of paths.",
"knownValues": [
"miter",
"bevel",
"round"
]
},
"dashArray": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"description": "Dash and gap lengths as string-encoded floats."
},
"miterLimit": {
"type": "string",
"maxLength": 64,
"description": "Maximum miter length when lineJoin is 'miter', as a string-encoded float."
}
},
"description": "Stroke style properties (dash array, line cap/join, miter limit). Corresponds to DTCG 'strokeStyle' composite type. Dash lengths and miter limit are string-encoded floats."
}
A composite transition value with duration, delay, and timing function.
Properties
Timing function as a cubic Bezier curve.
View raw schema
{
"type": "object",
"properties": {
"delay": {
"ref": "#durationValue",
"type": "ref",
"description": "Transition delay."
},
"duration": {
"ref": "#durationValue",
"type": "ref",
"description": "Transition duration."
},
"timingFunction": {
"ref": "#cubicBezierValue",
"type": "ref",
"description": "Timing function as a cubic Bezier curve."
}
},
"description": "A composite transition value with duration, delay, and timing function."
}
A composite typography value aggregating font family, weight, size, line metrics, and text transforms. Numeric values are string-encoded floats to accommodate the atproto data model.
Properties
Ordered list of font family names (primary and fallbacks).
Line height as a string-encoded unitless multiplier (e.g. '1.5', '1.2').
maxLength: 64 bytes
Text case transformation.
maxLength: 12 bytes
Known values: uppercase, lowercase, capitalize, none
Text decoration.
maxLength: 12 bytes
Known values: underline, overline, line-through, none
View raw schema
{
"type": "object",
"properties": {
"fontSize": {
"ref": "#dimensionValue",
"type": "ref",
"description": "Font size."
},
"textCase": {
"type": "string",
"maxLength": 12,
"description": "Text case transformation.",
"knownValues": [
"uppercase",
"lowercase",
"capitalize",
"none"
]
},
"fontFamily": {
"type": "array",
"items": {
"type": "string",
"maxLength": 256
},
"description": "Ordered list of font family names (primary and fallbacks)."
},
"fontWeight": {
"refs": [
"#fontWeightKeyword",
"#fontWeightNumber"
],
"type": "union",
"description": "Font weight."
},
"lineHeight": {
"type": "string",
"maxLength": 64,
"description": "Line height as a string-encoded unitless multiplier (e.g. '1.5', '1.2')."
},
"letterSpacing": {
"ref": "#dimensionValue",
"type": "ref",
"description": "Letter spacing."
},
"textDecoration": {
"type": "string",
"maxLength": 12,
"description": "Text decoration.",
"knownValues": [
"underline",
"overline",
"line-through",
"none"
]
},
"paragraphIndent": {
"ref": "#dimensionValue",
"type": "ref",
"description": "Paragraph indent."
},
"paragraphSpacing": {
"ref": "#dimensionValue",
"type": "ref",
"description": "Paragraph spacing."
}
},
"description": "A composite typography value aggregating font family, weight, size, line metrics, and text transforms. Numeric values are string-encoded floats to accommodate the atproto data model."
}