{
  "slug": "table-to-image",
  "name": "gizza-ai/table-to-image",
  "version": "0.1.0",
  "title": "Table to SVG Image — render CSV or JSON tables — gizza.ai",
  "description": "Render CSV or JSON tables as a clean standalone SVG with headers, zebra rows, themes, accent colors, titles, and alignment controls.",
  "tags": [
    "table to image",
    "csv to svg",
    "json table",
    "svg table",
    "data table",
    "shareable table"
  ],
  "category": "image",
  "urls": {
    "page": "https://gizza.ai/tools/table-to-image/",
    "markdown": "https://gizza.ai/tools/table-to-image/index.md",
    "descriptor": "https://gizza.ai/tools/table-to-image/tool.json",
    "deep_link_example": "https://gizza.ai/tools/table-to-image/?input=name%2Cscore%0AAda%2C9%0AGrace%2C8&input_format=auto&delimiter=%2C&header=true&zebra=true&theme=light&accent=%232563eb&font_size=14&cell_padding=10&title=Leaderboard&align=left"
  },
  "cli": "gizza tool table-to-image \"name,score\nAda,9\nGrace,8\"",
  "tool": {
    "description": "Render CSV or JSON table data as a standalone SVG suitable for sharing in docs, chats, and issue comments. Supports CSV (custom delimiter), JSON arrays of objects or arrays, optional header styling, zebra rows, themes, accent colour, title, font size, cell padding, and left/center/right alignment. Output is deterministic SVG text — no uploads and no raster encoder required.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "accent": {
          "default": "#2563eb",
          "description": "CSS colour for the header band or minimal-theme underline, e.g. #2563eb, #16a34a, or tomato. Default #2563eb.",
          "type": "string"
        },
        "align": {
          "default": "left",
          "description": "Text alignment for table cells: left, center, or right. Default left.",
          "enum": [
            "left",
            "center",
            "right"
          ],
          "type": "string"
        },
        "cell_padding": {
          "default": 10,
          "description": "Horizontal and vertical padding inside each table cell in pixels (0–60). Default 10.",
          "maximum": 60,
          "minimum": 0,
          "type": "integer"
        },
        "delimiter": {
          "default": ",",
          "description": "CSV delimiter to use when parsing CSV input. Use ',', ';', '|', or '\\t' / 'tab'. Ignored for JSON. Default comma.",
          "type": "string"
        },
        "font_size": {
          "default": 14,
          "description": "Body font size in pixels (8–48). The title is drawn slightly larger. Default 14.",
          "maximum": 48,
          "minimum": 8,
          "type": "integer"
        },
        "header": {
          "default": true,
          "description": "Treat the first CSV row or first JSON array row as a styled header. JSON object keys always become the header. Default true.",
          "type": "boolean"
        },
        "input": {
          "description": "CSV text or JSON table data to render. CSV may include quoted fields; JSON may be an array of flat objects, an array of arrays, or a single object.",
          "type": "string"
        },
        "input_format": {
          "default": "auto",
          "description": "How to parse the table: auto sniffs JSON when the input starts with '[' or '{', otherwise CSV; csv and json force that parser. Default auto.",
          "enum": [
            "auto",
            "csv",
            "json"
          ],
          "type": "string"
        },
        "theme": {
          "default": "light",
          "description": "Visual theme for the SVG: light, dark, slate, blue, green, or minimal (transparent/border-light). Default light.",
          "enum": [
            "light",
            "dark",
            "slate",
            "blue",
            "green",
            "minimal"
          ],
          "type": "string"
        },
        "title": {
          "default": "",
          "description": "Optional title/caption drawn centered above the table.",
          "type": "string"
        },
        "zebra": {
          "default": true,
          "description": "Shade alternating body rows for readability. Default true.",
          "type": "boolean"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}