{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://askcalculators.com/calculator/area-calculator/schema.json",
  "title": "Area Calculator inputs",
  "description": "Calculate area for rectangles, triangles, trapezoids, circles, sectors, ellipses, and parallelograms.",
  "type": "object",
  "properties": {
    "shape": {
      "title": "Shape",
      "type": "string",
      "default": "rectangle",
      "enum": [
        "rectangle",
        "triangle",
        "triangle-sides",
        "trapezoid",
        "circle",
        "sector",
        "ellipse",
        "parallelogram"
      ],
      "x-optionLabels": {
        "rectangle": "Rectangle",
        "triangle": "Triangle (base and height)",
        "triangle-sides": "Triangle (three sides)",
        "trapezoid": "Trapezoid",
        "circle": "Circle",
        "sector": "Circle sector",
        "ellipse": "Ellipse",
        "parallelogram": "Parallelogram"
      }
    },
    "length": {
      "title": "Rectangle length",
      "type": "number",
      "default": 12,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "rectangle"
      }
    },
    "width": {
      "title": "Rectangle width",
      "type": "number",
      "default": 8,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "rectangle"
      }
    },
    "base": {
      "title": "Triangle base",
      "type": "number",
      "default": 10,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "triangle"
      }
    },
    "height": {
      "title": "Triangle height",
      "type": "number",
      "default": 6,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "triangle"
      }
    },
    "triangleSideA": {
      "title": "Triangle side a",
      "type": "number",
      "default": 3,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "triangle-sides"
      }
    },
    "triangleSideB": {
      "title": "Triangle side b",
      "type": "number",
      "default": 4,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "triangle-sides"
      }
    },
    "triangleSideC": {
      "title": "Triangle side c",
      "type": "number",
      "default": 5,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "triangle-sides"
      }
    },
    "baseA": {
      "title": "Trapezoid base 1",
      "type": "number",
      "default": 8,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "trapezoid"
      }
    },
    "baseB": {
      "title": "Trapezoid base 2",
      "type": "number",
      "default": 12,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "trapezoid"
      }
    },
    "trapHeight": {
      "title": "Trapezoid height",
      "type": "number",
      "default": 5,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "trapezoid"
      }
    },
    "radius": {
      "title": "Circle radius",
      "type": "number",
      "default": 5,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "circle"
      }
    },
    "sectorRadius": {
      "title": "Sector radius",
      "type": "number",
      "default": 5,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "sector"
      }
    },
    "sectorAngle": {
      "title": "Sector angle (degrees)",
      "type": "number",
      "default": 90,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "sector"
      }
    },
    "ellipseA": {
      "title": "Ellipse semi-major axis",
      "type": "number",
      "default": 6,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "ellipse"
      }
    },
    "ellipseB": {
      "title": "Ellipse semi-minor axis",
      "type": "number",
      "default": 4,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "ellipse"
      }
    },
    "parallelogramBase": {
      "title": "Parallelogram base",
      "type": "number",
      "default": 10,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "parallelogram"
      }
    },
    "parallelogramHeight": {
      "title": "Parallelogram height",
      "type": "number",
      "default": 6,
      "minimum": 0.000001,
      "x-step": 0.01,
      "x-showWhen": {
        "field": "shape",
        "equals": "parallelogram"
      }
    }
  },
  "required": [
    "shape"
  ],
  "allOf": [
    {
      "if": {
        "properties": {
          "shape": {
            "const": "rectangle"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "length"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "rectangle"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "width"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "triangle"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "base"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "triangle"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "height"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "triangle-sides"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "triangleSideA"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "triangle-sides"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "triangleSideB"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "triangle-sides"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "triangleSideC"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "trapezoid"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "baseA"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "trapezoid"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "baseB"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "trapezoid"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "trapHeight"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "circle"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "radius"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "sector"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "sectorRadius"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "sector"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "sectorAngle"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "ellipse"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "ellipseA"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "ellipse"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "ellipseB"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "parallelogram"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "parallelogramBase"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "shape": {
            "const": "parallelogram"
          }
        },
        "required": [
          "shape"
        ]
      },
      "then": {
        "required": [
          "parallelogramHeight"
        ]
      }
    }
  ],
  "additionalProperties": false,
  "x-askcalculators": {
    "version": "2.0.0",
    "calculatorUrl": "https://askcalculators.com/calculator/area-calculator/",
    "queryExample": "https://askcalculators.com/calculator/area-calculator/?shape=rectangle&length=12&width=8",
    "migrationStatus": "new",
    "reviewStatus": "pending",
    "pageStatus": "live",
    "workStatus": "pending",
    "formula": {
      "expression": "Rectangle lw; triangle bh/2 or Heron; trapezoid (b₁+b₂)h/2; circle πr²; sector θπr²/360; ellipse πab; parallelogram bh."
    },
    "quality": {
      "availability": "live",
      "technicalReviewRecord": "/reviews/area-calculator.json",
      "qualifiedReview": "pending",
      "qualifiedReviewer": null,
      "qualifiedReviewDate": null,
      "formulaVersion": "2.0.0",
      "referenceCoverage": "references-listed",
      "releaseTestScope": "Flagship reference cases are specified in scripts/test-v20-1.mjs; consult release evidence for executed results.",
      "historicalMetadataDate": "2026-08-25",
      "historicalMetadataNotice": "The imported date is not evidence of a completed human review."
    },
    "outputs": {
      "area": {
        "title": "Area",
        "type": "number",
        "x-format": "number",
        "x-digits": 6,
        "x-primary": true
      },
      "perimeter": {
        "title": "Perimeter or circumference",
        "type": "number",
        "x-format": "number",
        "x-digits": 6
      },
      "shapeName": {
        "title": "Shape",
        "type": "string",
        "x-format": "text"
      }
    }
  }
}
