{"openapi":"3.1.0","info":{"title":"CSS Design Calc","version":"1.0.0","description":"CSS and layout maths for agents: unit conversion, fluid clamp(), type scales, aspect ratios, grids, specificity and readability. One call, one computed answer, no accounts or API keys. Machine-payable over x402.","x-guidance":"CSS Design Calc: CSS and layout maths for agents: unit conversion, fluid clamp(), type scales, aspect ratios, grids, specificity and readability. Use /css-unit-convert for px, rem, em, pt and viewport units, /clamp-fluid for fluid sizes, /type-scale for modular scales, /aspect-ratio and /golden-ratio for proportions, /grid-columns and /box-size for layout maths, /line-length and /vertical-rhythm for readability, /css-specificity to rank selectors, /pixel-density for screens, and /target-size for WCAG touch targets. Each paid GET returns a computed verdict with the reasons, the source and what was NOT checked. A verdict of UNVERIFIED means a lookup failed: treat it as unknown. No account or key: pay per call in USDC over x402."},"servers":[{"url":"https://css-design-calc.x402tookit.com"}],"paths":{"/aspect-ratio":{"get":{"operationId":"aspect_ratio","summary":"Aspect ratio of a width and height (simplified, nearest common ratio) or the missing side for a ratio, with CSS values.","description":"Aspect ratio of a width and height (simplified, nearest common ratio) or the missing side for a ratio, with CSS values.","tags":["css","aspect-ratio","images","video"],"parameters":[{"name":"width","in":"query","required":false,"description":"Width in any unit","schema":{"type":"number"}},{"name":"height","in":"query","required":false,"description":"Height in any unit","schema":{"type":"number"}},{"name":"ratio","in":"query","required":false,"description":"Ratio such as 16:9, 4/3 or 1.778 (with width or height to find the other side)","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"width":{"type":["null","number"]},"height":{"type":["null","number"]},"ratioDecimal":{"type":["null","number"]},"simplified":{"type":["null","string"]},"cssAspectRatio":{"type":["null","string"]},"paddingTopPercent":{"type":["null","number"]},"nearestCommonRatio":{"type":["null","string"]},"nearestCommonDifferencePercent":{"type":["null","number"]},"orientation":{"type":["null","string"]},"derivedSide":{},"commonRatios":{"type":["array","null"],"items":{"type":"string"}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMMON_RATIO","summary":"1920 x 1080 is 16:9 (1.77778), the common ratio 16:9.","reasons":["Padding-top trick: 56.25% gives a box of this ratio; modern CSS: aspect-ratio: 16 / 9."],"width":1920,"height":1080,"ratioDecimal":1.77777778,"simplified":"16:9","cssAspectRatio":"16 / 9","paddingTopPercent":56.25,"nearestCommonRatio":"16:9","nearestCommonDifferencePercent":0,"orientation":"landscape","derivedSide":null,"commonRatios":["1:1","5:4","…12 more"],"degraded":false,"notChecked":["pixel aspect ratio (non-square pixels), anamorphic formats and rotation metadata","crop or letterbox decisions","…1 more"],"source":"Euclid's algorithm and common display and film ratios, computed locally","asOf":"2026-10-11T14:32:42.615Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/aspect-ratio"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/aspect-ratio"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/aspect-ratio"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/aspect-ratio"}}]}}},"/box-size":{"get":{"operationId":"box_size","summary":"CSS box model sizes: content, padding, border and margin boxes from a width and height under content-box or border-box.","description":"CSS box model sizes: content, padding, border and margin boxes from a width and height under content-box or border-box.","tags":["css","box-model","layout","box-sizing"],"parameters":[{"name":"width","in":"query","required":true,"description":"The CSS width value, px","schema":{"type":"number"}},{"name":"height","in":"query","required":false,"description":"The CSS height value, px (default = width)","schema":{"type":"number"}},{"name":"padding","in":"query","required":false,"description":"Padding on each side, px (default 0)","schema":{"type":"number"}},{"name":"border","in":"query","required":false,"description":"Border on each side, px (default 0)","schema":{"type":"number"}},{"name":"margin","in":"query","required":false,"description":"Margin on each side, px (default 0)","schema":{"type":"number"}},{"name":"boxSizing","in":"query","required":false,"description":"content-box (default) or border-box","schema":{"type":"string","enum":["content-box","border-box"]}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"boxSizing":{"type":["null","string"]},"contentWidth":{"type":["null","number"]},"contentHeight":{"type":["null","number"]},"paddingBoxWidth":{"type":["null","number"]},"paddingBoxHeight":{"type":["null","number"]},"borderBoxWidth":{"type":["null","number"]},"borderBoxHeight":{"type":["null","number"]},"marginBoxWidth":{"type":["null","number"]},"marginBoxHeight":{"type":["null","number"]},"widthToSetForContentBox":{"type":["null","number"]},"widthToSetForBorderBox":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"Under content-box, a 300 x 200 box has content 300 x 200, border box 344 x 244, margin box 364 x 264.","reasons":["width and height set the CONTENT box; padding and border are added outside it."],"boxSizing":"content-box","contentWidth":300,"contentHeight":200,"paddingBoxWidth":340,"paddingBoxHeight":240,"borderBoxWidth":344,"borderBoxHeight":244,"marginBoxWidth":364,"marginBoxHeight":264,"widthToSetForContentBox":300,"widthToSetForBorderBox":344,"degraded":false,"notChecked":["margin collapsing between siblings and parents","min-width, max-width and flex or grid sizing","…1 more"],"source":"CSS Box Model Level 3 (width applies to the content box or the border box depending on box-sizing), computed locally","asOf":"2026-10-11T14:32:42.869Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/box-size"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/box-size"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/box-size"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/box-size"}}]}}},"/clamp-fluid":{"get":{"operationId":"clamp_fluid","summary":"Generate a CSS clamp() that scales a size linearly between a min and max viewport width, in rem, with the exact slope.","description":"Generate a CSS clamp() that scales a size linearly between a min and max viewport width, in rem, with the exact slope.","tags":["css","clamp","fluid-typography","responsive"],"parameters":[{"name":"minSize","in":"query","required":true,"description":"Size at the minimum viewport, in px","schema":{"type":"number"}},{"name":"maxSize","in":"query","required":true,"description":"Size at the maximum viewport, in px","schema":{"type":"number"}},{"name":"minViewport","in":"query","required":false,"description":"Viewport width where scaling starts, px (default 320)","schema":{"type":"number"}},{"name":"maxViewport","in":"query","required":false,"description":"Viewport width where scaling ends, px (default 1200)","schema":{"type":"number"}},{"name":"rootPx","in":"query","required":false,"description":"Root font size in px for the rem output (default 16)","schema":{"type":"number"}},{"name":"at","in":"query","required":false,"description":"Optional viewport width in px to evaluate the result at","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"css":{"type":["null","string"]},"cssInPx":{"type":["null","string"]},"slopeVw":{"type":["null","number"]},"interceptPx":{"type":["null","number"]},"interceptRem":{"type":["null","number"]},"minRem":{"type":["null","number"]},"maxRem":{"type":["null","number"]},"evaluatedAtViewport":{},"sizeAtViewportPx":{},"sizeAtMidpointPx":{"type":["null","number"]},"rootPx":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"clamp(1rem, 0.8182rem + 0.9091vw, 1.5rem): 16px at 320px wide to 24px at 1200px.","reasons":["Slope 0.909091vw; intercept 13.090909px (0.818182rem).","Below the minimum viewport the size stays at the minimum, above the maximum viewport it stays at the maximum."],"css":"clamp(1rem, 0.8182rem + 0.9091vw, 1.5rem)","cssInPx":"clamp(16px, 13.0909px + 0.9091vw, 24px)","slopeVw":0.90909091,"interceptPx":13.09090909,"interceptRem":0.81818182,"minRem":1,"maxRem":1.5,"evaluatedAtViewport":null,"sizeAtViewportPx":null,"sizeAtMidpointPx":20,"rootPx":16,"degraded":false,"notChecked":["user zoom and text-only zoom: using rem plus vw keeps text resizable, but a viewport-only value would not (WCAG 1.4.4 needs zoom to still scale text)","container width: the slope is in vw, so it follows the viewport, not the component","…1 more"],"source":"Linear interpolation; the clamp() form follows CSS Values and Units Level 4, computed locally","asOf":"2026-10-11T14:32:43.131Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/clamp-fluid"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/clamp-fluid"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/clamp-fluid"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/clamp-fluid"}}]}}},"/css-specificity":{"get":{"operationId":"css_specificity","summary":"CSS selector specificity (ids, classes, types) per Selectors Level 4, including :is(), :not(), :where() and :has(); compare two.","description":"CSS selector specificity (ids, classes, types) per Selectors Level 4, including :is(), :not(), :where() and :has(); compare two.","tags":["css","specificity","selectors","debugging"],"parameters":[{"name":"selector","in":"query","required":true,"description":"A selector or comma separated list, e.g. nav ul > li.active a:hover","schema":{"type":"string"}},{"name":"compareTo","in":"query","required":false,"description":"A second selector; says which wins in the cascade (same origin, no !important)","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"valid":{"type":["boolean","null"]},"selectors":{"type":["array","null"],"items":{"type":"object","properties":{"selector":{"type":["null","string"]},"a":{"type":["null","number"]},"b":{"type":["null","number"]},"c":{"type":["null","number"]},"specificity":{"type":["null","string"]},"idCount":{"type":["null","number"]},"classCount":{"type":["null","number"]},"typeCount":{"type":["null","number"]}}}},"highest":{"type":["null","string"]},"highestSelector":{"type":["null","string"]},"comparison":{"type":["null","object"],"properties":{"first":{"type":["null","string"]},"second":{"type":["null","string"]},"winner":{"type":["null","string"]},"detail":{"type":["null","string"]}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"Specificity 1,2,2 (ids, classes/attributes/pseudo-classes, types/pseudo-elements). Versus 0,2,0: first wins.","reasons":["Compare left to right: any id beats any number of classes; any class beats any number of types."],"valid":true,"selectors":[{"selector":"#main nav a.active:not(.disabled)","a":1,"b":2,"c":2,"specificity":"1,2,2","idCount":1,"classCount":2,"typeCount":2}],"highest":"1,2,2","highestSelector":"#main nav a.active:not(.disabled)","comparison":{"first":"1,2,2","second":"0,2,0","winner":"first","detail":"The first selector is more specific."},"degraded":false,"notChecked":["inline styles (1,0,0,0 above any selector), !important, cascade layers (@layer), scope and origin, which all outrank specificity","source order (the later rule wins on a tie)","…3 more"],"source":"CSS Selectors Level 4 section 17 (specificity) rules, computed locally","asOf":"2026-10-11T14:32:43.396Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/css-specificity"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/css-specificity"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/css-specificity"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/css-specificity"}}]}}},"/css-unit-convert":{"get":{"operationId":"css_unit_convert","summary":"Convert a CSS length between px, rem, em, pt, pc, in, cm, mm, Q, vw, vh, vmin, vmax and % with your root and viewport sizes.","description":"Convert a CSS length between px, rem, em, pt, pc, in, cm, mm, Q, vw, vh, vmin, vmax and % with your root and viewport sizes.","tags":["css","units","rem","px","converter"],"parameters":[{"name":"value","in":"query","required":true,"description":"The number to convert","schema":{"type":"number"}},{"name":"from","in":"query","required":true,"description":"Source unit: px, rem, em, pt, pc, in, cm, mm, q, vw, vh, vmin, vmax or %","schema":{"type":"string","enum":["px","rem","em","pt","pc","in","cm","mm","q","vw","vh","vmin","vmax","%"]}},{"name":"to","in":"query","required":true,"description":"Target unit (same choices)","schema":{"type":"string","enum":["px","rem","em","pt","pc","in","cm","mm","q","vw","vh","vmin","vmax","%"]}},{"name":"rootPx","in":"query","required":false,"description":"Root font size in px for rem (default 16)","schema":{"type":"number"}},{"name":"parentPx","in":"query","required":false,"description":"Parent font size in px for em and % (default = rootPx)","schema":{"type":"number"}},{"name":"viewportW","in":"query","required":false,"description":"Viewport width in px for vw, vmin, vmax (default 1440)","schema":{"type":"number"}},{"name":"viewportH","in":"query","required":false,"description":"Viewport height in px for vh, vmin, vmax (default 900)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"input":{"type":["null","object"],"properties":{"value":{"type":["null","number"]},"unit":{"type":["null","string"]}}},"result":{"type":["null","number"]},"resultUnit":{"type":["null","string"]},"pixels":{"type":["null","number"]},"rootPx":{"type":["null","number"]},"parentPx":{"type":["null","number"]},"viewportW":{"type":["null","number"]},"viewportH":{"type":["null","number"]},"allUnits":{"type":["null","object"],"properties":{"px":{"type":["null","number"]},"rem":{"type":["null","number"]},"em":{"type":["null","number"]},"pt":{"type":["null","number"]},"pc":{"type":["null","number"]},"in":{"type":["null","number"]},"cm":{"type":["null","number"]},"mm":{"type":["null","number"]},"q":{"type":["null","number"]},"vw":{"type":["null","number"]},"vh":{"type":["null","number"]},"vmin":{"type":["null","number"]},"vmax":{"type":["null","number"]},"%":{"type":["null","number"]}}},"css":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"CONVERTED","summary":"18px = 1.125rem (18px).","reasons":["Absolute units use the CSS reference pixel: 1in = 96px, 1pt = 1/72in, 1pc = 12pt, 1cm = 96/2.54px.","rem used a root of 16px; em and % used a parent of 16px; vw/vh used a 1440 x 900 viewport."],"input":{"value":18,"unit":"px"},"result":1.125,"resultUnit":"rem","pixels":18,"rootPx":16,"parentPx":16,"viewportW":1440,"viewportH":900,"allUnits":{"px":18,"rem":1.125,"em":1.125,"pt":13.5,"pc":1.125,"in":0.1875,"cm":0.47625,"mm":4.7625,"q":19.05,"vw":1.25,"vh":2,"vmin":2,"vmax":1.25,"%":112.5},"css":"1.125rem","degraded":false,"notChecked":["font-relative units that depend on the actual font: ch, ex, cap, lh, rlh, ic","container query units (cqw, cqh) and dynamic viewport units (dvh, svh, lvh), which depend on browser chrome","…2 more"],"source":"CSS Values and Units Level 4 absolute-unit definitions (1in = 96px = 72pt = 6pc = 2.54cm), computed locally","asOf":"2026-10-11T14:32:43.659Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/css-unit-convert"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/css-unit-convert"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/css-unit-convert"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/css-unit-convert"}}]}}},"/golden-ratio":{"get":{"operationId":"golden_ratio","summary":"Split a length into major and minor parts by the golden ratio (or silver, root-2, custom) with matching rectangle sizes.","description":"Split a length into major and minor parts by the golden ratio (or silver, root-2, custom) with matching rectangle sizes.","tags":["css","golden-ratio","layout","proportion"],"parameters":[{"name":"total","in":"query","required":true,"description":"The length to split, in any unit","schema":{"type":"number"}},{"name":"ratio","in":"query","required":false,"description":"golden (default 1.618), silver (2.414), root-2, root-3, root-5, thirds, or a number above 1","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"total":{"type":["null","number"]},"ratio":{"type":["null","number"]},"ratioName":{"type":["null","string"]},"major":{"type":["null","number"]},"minor":{"type":["null","number"]},"majorPercent":{"type":["null","number"]},"minorPercent":{"type":["null","number"]},"rectangleHeight":{"type":["null","number"]},"rectangleWidthForHeight":{"type":["null","number"]},"nextLarger":{"type":["null","number"]},"nextSmaller":{"type":["null","number"]},"cssGridColumns":{"type":["null","string"]},"wholeToMajorRatio":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"1200 splits into 741.640786 (61.8034%) and 458.359214 (38.1966%) at ratio 1.618034 (golden).","reasons":["The larger part divided by the smaller part equals the ratio; the whole divided by the larger part equals the ratio too only for the golden ratio.","As a rectangle: width 1200 needs height 741.640786."],"total":1200,"ratio":1.6180339887,"ratioName":"golden","major":741.6407865,"minor":458.3592135,"majorPercent":61.8034,"minorPercent":38.1966,"rectangleHeight":741.6407865,"rectangleWidthForHeight":1941.6407865,"nextLarger":1941.6407865,"nextSmaller":741.6407865,"cssGridColumns":"1.618fr 1fr","wholeToMajorRatio":1.61803399,"degraded":false,"notChecked":["whether a golden split looks better than another (a design convention, not a rule)","gutters and padding, which change the effective proportions","…1 more"],"source":"Golden ratio phi = (1 + sqrt 5)/2 and the related metallic means, computed locally","asOf":"2026-10-11T14:32:43.923Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/golden-ratio"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/golden-ratio"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/golden-ratio"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/golden-ratio"}}]}}},"/grid-columns":{"get":{"operationId":"grid_columns","summary":"Column and span widths for an N-column grid from container width, columns and gutter, or the container for a column width.","description":"Column and span widths for an N-column grid from container width, columns and gutter, or the container for a column width.","tags":["css","grid","layout","columns"],"parameters":[{"name":"columns","in":"query","required":true,"description":"Number of columns, 1 to 48","schema":{"type":"integer"}},{"name":"gutter","in":"query","required":true,"description":"Gap between columns, in px (or any unit)","schema":{"type":"number"}},{"name":"containerWidth","in":"query","required":false,"description":"Total width available to the columns (use this, or columnWidth)","schema":{"type":"number"}},{"name":"columnWidth","in":"query","required":false,"description":"Width of one column; returns the container width","schema":{"type":"number"}},{"name":"margin","in":"query","required":false,"description":"Outer margin on each side, added to the page width (default 0)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"columns":{"type":["null","number"]},"gutter":{"type":["null","number"]},"containerWidth":{"type":["null","number"]},"columnWidth":{"type":["null","number"]},"gutterTotal":{"type":["null","number"]},"pageWidth":{"type":["null","number"]},"spans":{"type":["array","null"],"items":{"type":"object","properties":{"span":{"type":["null","number"]},"width":{"type":["null","number"]},"percentOfContainer":{"type":["null","number"]},"percentWithGutterAfter":{"type":["null","number"]}}}},"css":{"type":["null","string"]},"columnPercent":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"12 columns of 67.5 with 30 gutters make a 1140 container; a 1-column span is 67.5, a 6-column span is 555.","reasons":["Gutters take 330 (28.947% of the container).","CSS: display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 30px; with max-width 1140px."],"columns":12,"gutter":30,"containerWidth":1140,"columnWidth":67.5,"gutterTotal":330,"pageWidth":1140,"spans":[{"span":1,"width":67.5,"percentOfContainer":5.921053,"percentWithGutterAfter":8.333333},{"span":2,"width":165,"percentOfContainer":14.473684,"percentWithGutterAfter":16.666667}],"css":"grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 30px;","columnPercent":5.92105263,"degraded":false,"notChecked":["subpixel rounding by browsers (column widths are exact fractions)","responsive breakpoints and how many columns each uses","…1 more"],"source":"Grid arithmetic: container = n x column + (n - 1) x gutter, computed locally","asOf":"2026-10-11T14:32:44.186Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/grid-columns"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/grid-columns"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/grid-columns"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/grid-columns"}}]}}},"/line-length":{"get":{"operationId":"line_length","summary":"Estimate characters per line from column width and font size and rate it for readability (45-75 ideal, WCAG max 80).","description":"Estimate characters per line from column width and font size and rate it for readability (45-75 ideal, WCAG max 80).","tags":["css","typography","readability","accessibility"],"parameters":[{"name":"widthPx","in":"query","required":true,"description":"Text column width in px","schema":{"type":"number"}},{"name":"fontSizePx","in":"query","required":true,"description":"Font size in px","schema":{"type":"number"}},{"name":"avgCharWidthEm","in":"query","required":false,"description":"Average character width in em; 0.5 is typical for Latin text (default 0.5; 0.45 condensed, 0.55 wide)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"charactersPerLine":{"type":["null","number"]},"widthPx":{"type":["null","number"]},"fontSizePx":{"type":["null","number"]},"avgCharWidthEm":{"type":["null","number"]},"widthFor45Px":{"type":["null","number"]},"widthFor66Px":{"type":["null","number"]},"widthFor75Px":{"type":["null","number"]},"widthFor80Px":{"type":["null","number"]},"widthFor66Em":{"type":["null","number"]},"suggestedCss":{"type":["null","string"]},"wcagAaaLineLimit":{"type":["null","number"]},"withinWcagAaa":{"type":["boolean","null"]},"minimumLineHeight":{"type":["null","number"]},"minimumParagraphSpacingMultipleOfLineSpacing":{"type":["null","number"]},"wcagTextSpacingOverridePx":{"type":["null","object"],"properties":{"lineHeight":{"type":["null","number"]},"paragraphSpacing":{"type":["null","number"]},"letterSpacing":{"type":["null","number"]},"wordSpacing":{"type":["null","number"]}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"LONG","summary":"About 80 characters per line (720px column, 18px type, 0.5em average glyph): long.","reasons":["Within the usual 45 to 75 range (66 is the classic ideal).","An estimate: set max-width in ch units so the browser measures the real font."],"charactersPerLine":80,"widthPx":720,"fontSizePx":18,"avgCharWidthEm":0.5,"widthFor45Px":405,"widthFor66Px":594,"widthFor75Px":675,"widthFor80Px":720,"widthFor66Em":33,"suggestedCss":"max-width: 66ch;","wcagAaaLineLimit":80,"withinWcagAaa":true,"minimumLineHeight":1.5,"minimumParagraphSpacingMultipleOfLineSpacing":1.5,"wcagTextSpacingOverridePx":{"lineHeight":27,"paragraphSpacing":36,"letterSpacing":2.16,"wordSpacing":2.88},"degraded":false,"notChecked":["the real font: characters per line varies with the typeface, language and text (CJK counts characters, not words)","multi-column text, where 40 to 50 characters is acceptable","…2 more"],"source":"Bringhurst's 45 to 75 character guideline (66 ideal) and WCAG 2.2 criterion 1.4.8 (80 characters), with the estimate computed locally","asOf":"2026-10-11T14:32:44.449Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/line-length"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/line-length"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/line-length"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/line-length"}}]}}},"/pixel-density":{"get":{"operationId":"pixel_density","summary":"Screen pixel density (PPI) from resolution and diagonal, physical size, CSS viewport at a device pixel ratio, and image widths.","description":"Screen pixel density (PPI) from resolution and diagonal, physical size, CSS viewport at a device pixel ratio, and image widths.","tags":["css","ppi","dpr","responsive-images"],"parameters":[{"name":"widthPx","in":"query","required":true,"description":"Horizontal resolution in physical pixels","schema":{"type":"number"}},{"name":"heightPx","in":"query","required":true,"description":"Vertical resolution in physical pixels","schema":{"type":"number"}},{"name":"diagonalIn","in":"query","required":true,"description":"Screen diagonal in inches","schema":{"type":"number"}},{"name":"dpr","in":"query","required":false,"description":"Device pixel ratio the browser reports (default 1)","schema":{"type":"number"}},{"name":"cssWidth","in":"query","required":false,"description":"A CSS width in px to compute image pixel widths for (default 100)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"ppi":{"type":["null","number"]},"ppiClass":{"type":["null","string"]},"widthInches":{"type":["null","number"]},"heightInches":{"type":["null","number"]},"widthMm":{"type":["null","number"]},"heightMm":{"type":["null","number"]},"dotPitchMm":{"type":["null","number"]},"dpr":{"type":["null","number"]},"cssViewportWidth":{"type":["null","number"]},"cssViewportHeight":{"type":["null","number"]},"cssPixelPhysicalMm":{"type":["null","number"]},"idealDprForReferencePixel":{"type":["null","number"]},"imageWidthsForCssWidth":{"type":["null","object"],"properties":{"cssWidth":{"type":["null","number"]},"1x":{"type":["null","number"]},"1.5x":{"type":["null","number"]},"2x":{"type":["null","number"]},"3x":{"type":["null","number"]},"atThisDpr":{"type":["null","number"]}}},"megapixels":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"STANDARD","summary":"2560 x 1440 on a 27 inch screen is 108.79 PPI (23.53 x 13.24 in); 2560 x 1440 CSS px at DPR 1.","reasons":["One CSS pixel spans 0.00919 in (0.2335 mm) on this screen at DPR 1; the CSS reference pixel is 1/96 in.","Bands: under 120 PPI standard, 120 to 220 high, above 220 very high."],"ppi":108.7855,"ppiClass":"STANDARD","widthInches":23.5325,"heightInches":13.2371,"widthMm":597.727,"heightMm":336.221,"dotPitchMm":0.23349,"dpr":1,"cssViewportWidth":2560,"cssViewportHeight":1440,"cssPixelPhysicalMm":0.233487,"idealDprForReferencePixel":1.1332,"imageWidthsForCssWidth":{"cssWidth":400,"1x":400,"1.5x":600,"2x":800,"3x":1200,"atThisDpr":400},"megapixels":3.6864,"degraded":false,"notChecked":["the real device pixel ratio (browsers and OS scaling set it, not the panel)","non-square pixels and pentile subpixel layouts","…2 more"],"source":"PPI = sqrt(w^2 + h^2) / diagonal; CSS reference pixel = 1/96 in; computed locally","asOf":"2026-10-11T14:32:44.713Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/pixel-density"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/pixel-density"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/pixel-density"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/pixel-density"}}]}}},"/target-size":{"get":{"operationId":"target_size","summary":"Check a click or touch target against WCAG 2.2 target size (24 px AA, 44 px AAA) including the spacing exception.","description":"Check a click or touch target against WCAG 2.2 target size (24 px AA, 44 px AAA) including the spacing exception.","tags":["accessibility","wcag","touch-target","css"],"parameters":[{"name":"widthPx","in":"query","required":true,"description":"Target width in CSS px (the clickable box)","schema":{"type":"number"}},{"name":"heightPx","in":"query","required":true,"description":"Target height in CSS px","schema":{"type":"number"}},{"name":"neighbourCenterDistancePx","in":"query","required":false,"description":"Centre-to-centre distance to the nearest OTHER undersized target, px (for the spacing exception)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"widthPx":{"type":["null","number"]},"heightPx":{"type":["null","number"]},"smallerSidePx":{"type":["null","number"]},"meetsWcag258Aa":{"type":["boolean","null"]},"meetsBySize":{"type":["boolean","null"]},"meetsBySpacing":{"type":["boolean","null"]},"meetsWcag255Aaa":{"type":["boolean","null"]},"shortfallTo24Px":{"type":["null","number"]},"shortfallTo44Px":{"type":["null","number"]},"neighbourCenterDistancePx":{"type":["null","number"]},"appleGuidelinePt":{"type":["null","number"]},"appleGuidelineMet":{"type":["boolean","null"]},"materialGuidelineDp":{"type":["null","number"]},"materialGuidelineMet":{"type":["boolean","null"]},"paddingNeededFor24":{"type":["null","object"],"properties":{"horizontal":{"type":["null","number"]},"vertical":{"type":["null","number"]}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"MEETS_AA_VIA_SPACING","summary":"20 x 20 CSS px: is under 24 x 24 but passes through the spacing exception.","reasons":["WCAG 2.5.8 (AA): targets must be at least 24 by 24 CSS pixels unless a 24 px circle centred on the target touches no other target's circle.","Two undersized targets pass when their centres are at least 24 px apart (the two 12 px radius circles then do not intersect)."],"widthPx":20,"heightPx":20,"smallerSidePx":20,"meetsWcag258Aa":true,"meetsBySize":false,"meetsBySpacing":true,"meetsWcag255Aaa":false,"shortfallTo24Px":4,"shortfallTo44Px":24,"neighbourCenterDistancePx":26,"appleGuidelinePt":44,"appleGuidelineMet":false,"materialGuidelineDp":48,"materialGuidelineMet":false,"paddingNeededFor24":{"horizontal":2,"vertical":2},"degraded":false,"notChecked":["the other 2.5.8 exceptions: inline targets in a sentence, targets whose size is set by the browser, equivalent controls elsewhere on the page, and essential presentations","the spacing exception when the neighbour is a full-size (24 px or larger) target: its box must stay clear of the 24 px circle instead","…2 more"],"source":"WCAG 2.2 success criteria 2.5.8 Target Size (Minimum, AA) and 2.5.5 Target Size (Enhanced, AAA); platform guidance as published by Apple and Google","asOf":"2026-10-11T14:32:44.976Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/target-size"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/target-size"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/target-size"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/target-size"}}]}}},"/type-scale":{"get":{"operationId":"type_scale","summary":"Modular type scale: sizes in px and rem for steps below and above a base size, by named ratio (major third, golden) or number.","description":"Modular type scale: sizes in px and rem for steps below and above a base size, by named ratio (major third, golden) or number.","tags":["css","typography","type-scale","design"],"parameters":[{"name":"base","in":"query","required":true,"description":"Base font size in px (step 0), for example 16","schema":{"type":"number"}},{"name":"ratio","in":"query","required":false,"description":"Ratio name (minor-second, major-second, minor-third, major-third, perfect-fourth, augmented-fourth, perfect-fifth, minor-sixth, golden, major-sixth, minor-seventh, major-seventh, octave) or a number above 1 (default major-third = 1.25)","schema":{"type":"string"}},{"name":"up","in":"query","required":false,"description":"Steps above the base, 0 to 12 (default 6)","schema":{"type":"integer"}},{"name":"down","in":"query","required":false,"description":"Steps below the base, 0 to 6 (default 2)","schema":{"type":"integer"}},{"name":"rootPx","in":"query","required":false,"description":"Root font size in px for rem output (default 16)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"base":{"type":["null","number"]},"ratio":{"type":["null","number"]},"ratioName":{"type":["null","string"]},"stepsAbove":{"type":["null","number"]},"stepsBelow":{"type":["null","number"]},"steps":{"type":["array","null"],"items":{"type":"object","properties":{"step":{"type":["null","number"]},"px":{"type":["null","number"]},"rem":{"type":["null","number"]},"css":{"type":["null","string"]}}}},"customProperties":{"type":["null","string"]},"rootPx":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"8 steps from 10.24px to 48.8281px at ratio 1.25 (major-third) from a 16px base.","reasons":["Each step multiplies by 1.25; step 0 is the base 16px.","Steps are exact; round for production if needed."],"base":16,"ratio":1.25,"ratioName":"major-third","stepsAbove":5,"stepsBelow":2,"steps":[{"step":5,"px":48.8281,"rem":3.05176,"css":"3.0518rem"},{"step":4,"px":39.0625,"rem":2.44141,"css":"2.4414rem"}],"customProperties":"--step-5: 3.0518rem; --step-4: 2.4414rem; --step-3: 1.9531rem; --step-2: 1.5625rem; --step-1: 1.25rem; --step-0: 1rem; --step-n1: 0.8rem; --step-n2: 0.64rem;","rootPx":16,"degraded":false,"notChecked":["rounding to whole pixels (sizes are exact; browsers may round text rendering)","whether a step is legible on screens or readable at your line length","…1 more"],"source":"Modular scale: size(n) = base x ratio^n (Tim Brown); ratios are the musical-interval values used by common scale tools, computed locally","asOf":"2026-10-11T14:32:45.228Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/type-scale"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/type-scale"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/type-scale"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/type-scale"}}]}}},"/vertical-rhythm":{"get":{"operationId":"vertical_rhythm","summary":"Snap line-heights for font sizes to a baseline grid: baseline unit, lines per element, unitless line-height and margins.","description":"Snap line-heights for font sizes to a baseline grid: baseline unit, lines per element, unitless line-height and margins.","tags":["css","typography","vertical-rhythm","baseline-grid"],"parameters":[{"name":"baseFontPx","in":"query","required":true,"description":"Body font size in px","schema":{"type":"number"}},{"name":"baseLineHeight","in":"query","required":false,"description":"Body line-height as a multiple (default 1.5); baseline = fontsize x this","schema":{"type":"number"}},{"name":"sizes","in":"query","required":false,"description":"Comma separated font sizes in px to snap (default 12,14,16,20,24,32,40,48,64)","schema":{"type":"string"}},{"name":"minLineHeight","in":"query","required":false,"description":"Smallest allowed line-height multiple for any size (default 1.2)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"baselinePx":{"type":["null","number"]},"baseFontPx":{"type":["null","number"]},"baseLineHeight":{"type":["null","number"]},"minLineHeight":{"type":["null","number"]},"rows":{"type":["array","null"],"items":{"type":"object","properties":{"fontSizePx":{"type":["null","number"]},"baselineLines":{"type":["null","number"]},"lineHeightPx":{"type":["null","number"]},"lineHeightUnitless":{"type":["null","number"]},"marginBottomPx":{"type":["null","number"]},"rem":{"type":["null","number"]}}}},"css":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"Baseline unit 24px (16px x 1.5); 6 sizes snapped to whole multiples.","reasons":["Each size gets the fewest baseline units that keep its line-height at least 1.2 times the font size.","Use margins in whole baseline units to keep text on the grid."],"baselinePx":24,"baseFontPx":16,"baseLineHeight":1.5,"minLineHeight":1.2,"rows":[{"fontSizePx":12,"baselineLines":1,"lineHeightPx":24,"lineHeightUnitless":2,"marginBottomPx":24,"rem":0.75},{"fontSizePx":16,"baselineLines":1,"lineHeightPx":24,"lineHeightUnitless":1.5,"marginBottomPx":24,"rem":1}],"css":":root { --baseline: 24px; } p { margin-block: 0 var(--baseline); }","degraded":false,"notChecked":["font metrics: the visual baseline can sit off the grid for fonts with unusual ascent or descent","WCAG 1.4.12 text-spacing overrides, which users can apply on top of your values","…1 more"],"source":"Baseline-grid arithmetic (line-height = a whole number of baseline units), computed locally","asOf":"2026-10-11T14:32:45.478Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/vertical-rhythm"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/vertical-rhythm"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/vertical-rhythm"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://css-design-calc.x402tookit.com/vertical-rhythm"}}]}}}}}