{"spec_id":"qrcode-basic","library":"makie","language":"julia","code":"# anyplot.ai\n# qrcode-basic: Basic QR Code Generator\n# Library: makie 0.21.9 | Julia 1.11.9\n# Quality: 94/100 | Created: 2026-06-24\n\nusing CairoMakie\nusing Colors\nusing QRCoders\n\nconst THEME       = get(ENV, \"ANYPLOT_THEME\", \"light\")\nconst PAGE_BG     = THEME == \"light\" ? colorant\"#FAF8F1\" : colorant\"#1A1A17\"\nconst INK         = THEME == \"light\" ? colorant\"#1A1A17\" : colorant\"#F0EFE8\"\nconst INK_SOFT    = THEME == \"light\" ? colorant\"#4A4A44\" : colorant\"#B8B7B0\"\n\n# QR code is always dark-on-light for scanner reliability\nconst QR_MODULE = colorant\"#1A1A17\"\nconst QR_BG     = colorant\"#FFFDF6\"\n\n# Data: encode the anyplot.ai URL with Medium error correction (M = 15%)\nurl       = \"https://anyplot.ai\"\nqr_raw    = qrcode(url; eclevel = Medium())\nn         = size(qr_raw, 1)\n\n# Add ISO/IEC 18004 quiet zone: 4 modules on each side\nquiet  = 4\nm      = n + 2 * quiet\npadded = falses(m, m)\npadded[quiet+1:quiet+n, quiet+1:quiet+n] .= qr_raw\n\n# Convert to Float64 for the heatmap colormap (0 = light, 1 = dark)\nz = Float64.(padded')\n\n# Plot\nfig = Figure(\n    size            = (1200, 1200),\n    fontsize        = 14,\n    backgroundcolor = PAGE_BG,\n)\n\nax = Axis(\n    fig[1, 1];\n    aspect             = DataAspect(),\n    backgroundcolor    = QR_BG,\n    title              = \"Encode URL as QR Code · qrcode-basic · julia · makie · anyplot.ai\",\n    titlesize          = 20,\n    titlecolor         = INK,\n    xlabel             = \"Encodes: $url  ·  Error correction: M (15%)\",\n    xlabelsize         = 15,\n    xlabelcolor        = INK_SOFT,\n    topspinevisible    = false,\n    rightspinevisible  = false,\n    leftspinevisible   = false,\n    bottomspinevisible = false,\n    xticksvisible      = false,\n    yticksvisible      = false,\n    xticklabelsvisible = false,\n    yticklabelsvisible = false,\n    xgridvisible       = false,\n    ygridvisible       = false,\n    yreversed          = true,\n)\n\nheatmap!(ax, z;\n    colormap   = [QR_BG, QR_MODULE],\n    colorrange = (0.0, 1.0),\n)\n\nsave(\"plot-$(THEME).png\", fig; px_per_unit = 2)\n"}