{"_id":"pptx-browser","_rev":"6-ed006a5dedcc97884e33cfb98a6d8240","name":"pptx-browser","dist-tags":{"latest":"4.1.5"},"versions":{"4.1.0":{"name":"pptx-browser","version":"4.1.0","keywords":["pptx","powerpoint","canvas","pdf","svg","presentation","renderer","editor","template"],"author":"","license":"MIT","_id":"pptx-browser@4.1.0","maintainers":[{"name":"bowespublishing","email":"bowespublishing@gmail.com"}],"dist":{"shasum":"7c48f412f4b1b40437759ad5f7eaeb8432666ad1","tarball":"https://registry.npmjs.org/pptx-browser/-/pptx-browser-4.1.0.tgz","fileCount":23,"integrity":"sha512-zD0c7qr6h5qq3Vy5SBb7Rn7/jY3fM2hQN5ramW+C9WxHSHsJ/BKlt7J0my+aenbHrjiTX+aKOD0CC67xnS15eQ==","signatures":[{"sig":"MEYCIQDDYlPKYHkVNPsoX82ANE9bXAjsEEgSkPSvpVV+G2DlWQIhAOj0bWQOYipX3cHlwz8GuH5wyfd4rNRTcsPjAoLc4DVV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434750},"main":"./src/index.js","type":"module","module":"./src/index.js","browser":{"./src/index.js":"./src/index.js"},"engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./pdf":"./src/pdf.js","./svg":"./src/svg.js","./writer":"./src/writer.js","./extract":"./src/extract.js","./animation":"./src/animation.js","./clipboard":"./src/clipboard.js","./slideshow":"./src/slideshow.js","./zip-writer":"./src/zip-writer.js"},"scripts":{"build":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js && esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js","build:esm":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js","build:umd":"esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js"},"_npmUser":{"name":"bowespublishing","email":"bowespublishing@gmail.com"},"_npmVersion":"10.5.1","description":"Render, edit, and export PowerPoint (PPTX) slides. Canvas rendering, SVG export, PDF export, PPTX writer/template engine, slide show, text extraction, animations. Zero dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"22.0.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/pptx-browser_4.1.0_1772287699064_0.8667900886391151","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"pptx-browser","version":"4.1.1","keywords":["pptx","powerpoint","canvas","pdf","svg","presentation","renderer","editor","template"],"author":"","license":"MIT","_id":"pptx-browser@4.1.1","maintainers":[{"name":"bowespublishing","email":"bowespublishing@gmail.com"}],"dist":{"shasum":"4c0a148259dca260bb651343caa75f8924b60d0a","tarball":"https://registry.npmjs.org/pptx-browser/-/pptx-browser-4.1.1.tgz","fileCount":23,"integrity":"sha512-3ZUhJpIdWPS5kQlNgaZHSWoZUC3+MpMS09N8iG0OSienqD26CP38rXYzfs/pmZhcZAm9/VYQTrtpRP4BcmKisw==","signatures":[{"sig":"MEUCIAJQnZ5oUdZIal6UvLTXMmkDQmAet86RC+K1kRw+peaLAiEAwM4LXf77uDX3LJgw8PX/2kx6qiWRCa22Pn1lXntSvXM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434721},"main":"./src/index.js","type":"module","module":"./src/index.js","browser":{"./src/index.js":"./src/index.js"},"engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./pdf":"./src/pdf.js","./svg":"./src/svg.js","./writer":"./src/writer.js","./extract":"./src/extract.js","./animation":"./src/animation.js","./clipboard":"./src/clipboard.js","./slideshow":"./src/slideshow.js","./zip-writer":"./src/zip-writer.js"},"scripts":{"build":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js && esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js","build:esm":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js","build:umd":"esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js"},"_npmUser":{"name":"bowespublishing","email":"bowespublishing@gmail.com"},"_npmVersion":"10.5.1","description":"Render, edit, and export PowerPoint (PPTX) slides. Canvas rendering, SVG export, PDF export, PPTX writer/template engine, slide show, text extraction, animations. Zero dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"22.0.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/pptx-browser_4.1.1_1772289125855_0.13652017543042483","host":"s3://npm-registry-packages-npm-production"}},"4.1.2":{"name":"pptx-browser","version":"4.1.2","keywords":["pptx","powerpoint","canvas","pdf","svg","presentation","renderer","editor","template"],"author":"","license":"MIT","_id":"pptx-browser@4.1.2","maintainers":[{"name":"bowespublishing","email":"bowespublishing@gmail.com"}],"dist":{"shasum":"e2cd179e8235218b783b39b7a231bfa1fe9adc54","tarball":"https://registry.npmjs.org/pptx-browser/-/pptx-browser-4.1.2.tgz","fileCount":23,"integrity":"sha512-j5a2XMS3mmjMyLY715jx173Czvh3SI9mMAkiy2vPXnAfgtN7yfvhl69nHm/4ADDux6yrtqTOGSxkfNUxIybwCQ==","signatures":[{"sig":"MEYCIQDPnbQfk8kCiRER67xHeSS8+FloRCgfjHNpE7e1SDDXhQIhAOoMRrRKp7/u6q2fGEY0zyZnb3NPjjVediPEaXe3D9RT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434731},"main":"./src/index.js","type":"module","module":"./src/index.js","browser":{"./src/index.js":"./src/index.js"},"engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./pdf":"./src/pdf.js","./svg":"./src/svg.js","./writer":"./src/writer.js","./extract":"./src/extract.js","./animation":"./src/animation.js","./clipboard":"./src/clipboard.js","./slideshow":"./src/slideshow.js","./zip-writer":"./src/zip-writer.js"},"scripts":{"build":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js && esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js","build:esm":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js","build:umd":"esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js"},"_npmUser":{"name":"bowespublishing","email":"bowespublishing@gmail.com"},"_npmVersion":"10.5.1","description":"Render, edit, and export PowerPoint (PPTX) slides. Canvas rendering, SVG export, PDF export, PPTX writer/template engine, slide show, text extraction, animations. Zero dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"22.0.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/pptx-browser_4.1.2_1772289510528_0.733540450437929","host":"s3://npm-registry-packages-npm-production"}},"4.1.3":{"name":"pptx-browser","version":"4.1.3","keywords":["pptx","powerpoint","canvas","pdf","svg","presentation","renderer","editor","template"],"author":"","license":"MIT","_id":"pptx-browser@4.1.3","maintainers":[{"name":"bowespublishing","email":"bowespublishing@gmail.com"}],"dist":{"shasum":"965b6b051941a9fdee104393df57060b25c21ae3","tarball":"https://registry.npmjs.org/pptx-browser/-/pptx-browser-4.1.3.tgz","fileCount":23,"integrity":"sha512-Zq2z9F0TEA5OJQldCEwuPCYOUOQdtIoolxImzHV+fIzFyFzAeneVMXfO9DJ7yHjkDTI9X11SfL268KMuBKbZQw==","signatures":[{"sig":"MEYCIQCTS/XIF8KHwy5VlZ+KChRsglMPoE2wFf/OYzLfjVO1qgIhAMgnKfS1m4xBckp12v6rl+PFdH/jXwpD8H5VfJZFi3iz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435183},"main":"./src/index.js","type":"module","module":"./src/index.js","browser":{"./src/index.js":"./src/index.js"},"engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./pdf":"./src/pdf.js","./svg":"./src/svg.js","./writer":"./src/writer.js","./extract":"./src/extract.js","./animation":"./src/animation.js","./clipboard":"./src/clipboard.js","./slideshow":"./src/slideshow.js","./zip-writer":"./src/zip-writer.js"},"scripts":{"build":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js && esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js","build:esm":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js","build:umd":"esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js"},"_npmUser":{"name":"bowespublishing","email":"bowespublishing@gmail.com"},"_npmVersion":"10.5.1","description":"Render, edit, and export PowerPoint (PPTX) slides. Canvas rendering, SVG export, PDF export, PPTX writer/template engine, slide show, text extraction, animations. Zero dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"22.0.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/pptx-browser_4.1.3_1772290444845_0.46334233975494565","host":"s3://npm-registry-packages-npm-production"}},"4.1.4":{"name":"pptx-browser","version":"4.1.4","keywords":["pptx","powerpoint","canvas","pdf","svg","presentation","renderer","editor","template"],"author":"","license":"MIT","_id":"pptx-browser@4.1.4","maintainers":[{"name":"bowespublishing","email":"bowespublishing@gmail.com"}],"dist":{"shasum":"b3e9827c0089fbc0901d6123db0b8754d07a4975","tarball":"https://registry.npmjs.org/pptx-browser/-/pptx-browser-4.1.4.tgz","fileCount":23,"integrity":"sha512-dVyfcFYsYrcVo4Ma3buuQi2hoy8IXxiij+x2ahUSc+IzoqDwGIbszBijzjDhHXNaGxkBZ4WdR9erDatOtDaHcQ==","signatures":[{"sig":"MEYCIQD2tfcDM8Gyp5THDXMRavaoNd7xde8dIP0OfczgVEM7SwIhAL8Fjuuf3EAdsJXmZ13Bndhhm02iLDwdqZnlq2FwtKIP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435466},"main":"./src/index.js","type":"module","module":"./src/index.js","browser":{"./src/index.js":"./src/index.js"},"engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./pdf":"./src/pdf.js","./svg":"./src/svg.js","./writer":"./src/writer.js","./extract":"./src/extract.js","./animation":"./src/animation.js","./clipboard":"./src/clipboard.js","./slideshow":"./src/slideshow.js","./zip-writer":"./src/zip-writer.js"},"scripts":{"build":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js && esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js","build:esm":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js","build:umd":"esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js"},"_npmUser":{"name":"bowespublishing","email":"bowespublishing@gmail.com"},"_npmVersion":"10.5.1","description":"Render, edit, and export PowerPoint (PPTX) slides. Canvas rendering, SVG export, PDF export, PPTX writer/template engine, slide show, text extraction, animations. Zero dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"22.0.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/pptx-browser_4.1.4_1772291535069_0.3419539597565011","host":"s3://npm-registry-packages-npm-production"}},"4.1.5":{"name":"pptx-browser","version":"4.1.5","description":"Render, edit, and export PowerPoint (PPTX) slides. Canvas rendering, SVG export, PDF export, PPTX writer/template engine, slide show, text extraction, animations. Zero dependencies.","type":"module","main":"./src/index.js","module":"./src/index.js","exports":{".":"./src/index.js","./writer":"./src/writer.js","./pdf":"./src/pdf.js","./svg":"./src/svg.js","./animation":"./src/animation.js","./slideshow":"./src/slideshow.js","./extract":"./src/extract.js","./clipboard":"./src/clipboard.js","./zip-writer":"./src/zip-writer.js"},"keywords":["pptx","powerpoint","canvas","pdf","svg","presentation","renderer","editor","template"],"author":"","license":"MIT","dependencies":{},"devDependencies":{"esbuild":"^0.20.0"},"scripts":{"build":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js && esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js","build:esm":"esbuild src/index.js --bundle --format=esm --outfile=dist/pptx-canvas-renderer.esm.js","build:umd":"esbuild src/index.js --bundle --format=iife --global-name=PptxCanvasRenderer --outfile=dist/pptx-canvas-renderer.umd.js"},"engines":{"node":">=18.0.0"},"browser":{"./src/index.js":"./src/index.js"},"sideEffects":false,"_id":"pptx-browser@4.1.5","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-ZMWVG5jOBIvoggGR7Fou/g5d3Mc6BO1i2xtfMt8oPosxAms/mHx3MWJftDoc+u9cMttSJezduTJvd8MbqlFTeg==","shasum":"0d1c61b727ff3dac6ff333826314fb0cda3b9f34","tarball":"https://registry.npmjs.org/pptx-browser/-/pptx-browser-4.1.5.tgz","fileCount":23,"unpackedSize":435242,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAb4UlyHXvPGov5e5krsWbrSax6h8ZQsIHDDRMJxKY1vAiA80fdheH51MAaglvWWhcRw+tibjqjBL2ev+BUQhKKtAw=="}]},"_npmUser":{"name":"bowespublishing","email":"bowespublishing@gmail.com"},"directories":{},"maintainers":[{"name":"bowespublishing","email":"bowespublishing@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pptx-browser_4.1.5_1772292905804_0.46742020786970917"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-28T14:08:18.966Z","modified":"2026-02-28T15:35:06.062Z","4.1.0":"2026-02-28T14:08:19.214Z","4.1.1":"2026-02-28T14:32:06.032Z","4.1.2":"2026-02-28T14:38:30.710Z","4.1.3":"2026-02-28T14:54:05.004Z","4.1.4":"2026-02-28T15:12:15.266Z","4.1.5":"2026-02-28T15:35:05.948Z"},"license":"MIT","keywords":["pptx","powerpoint","canvas","pdf","svg","presentation","renderer","editor","template"],"description":"Render, edit, and export PowerPoint (PPTX) slides. Canvas rendering, SVG export, PDF export, PPTX writer/template engine, slide show, text extraction, animations. Zero dependencies.","maintainers":[{"name":"bowespublishing","email":"bowespublishing@gmail.com"}],"readme":"# pptx-browser\n\nRender PowerPoint (`.pptx`) slides directly onto an HTML `<canvas>` element — **zero dependencies**, no server required.\n\nUses only native browser/Node APIs: `DecompressionStream` for ZIP decompression, `DOMParser` for XML, and the Canvas 2D API for rendering.\n\n## Browser support\n\nChrome 80+ · Firefox 113+ · Safari 16.4+ · Node 18+ (with [`node-canvas`](https://github.com/Automattic/node-canvas))\n\n---\n\n## Installation\n\n```bash\nnpm install pptx-browser\n```\n\nNo `JSZip`, no `pptxjs`, no other dependencies.\n\n---\n\n## Quick start\n\n```js\nimport { PptxRenderer } from 'pptx-browser';\n\nconst renderer = new PptxRenderer();\n\n// Load from a <input type=\"file\"> element\nconst [file] = fileInput.files;\nawait renderer.load(file, (progress, msg) => console.log(progress, msg));\n\nconsole.log(renderer.slideCount); // number of slides\n\n// Render slide 0 onto a canvas\nconst canvas = document.getElementById('my-canvas');\nawait renderer.renderSlide(0, canvas, 1280); // 1280px wide\n\n// Clean up blob URLs when done\nrenderer.destroy();\n```\n\n---\n\n## API\n\n### `new PptxRenderer()`\n\nCreates a new renderer instance. Each instance is independent and can load one PPTX at a time.\n\n---\n\n### `renderer.load(source, onProgress?)`\n\nLoad a PPTX file.\n\n| Parameter    | Type                                         | Description                         |\n|--------------|----------------------------------------------|-------------------------------------|\n| `source`     | `File \\| Blob \\| ArrayBuffer \\| Uint8Array`  | The PPTX data                       |\n| `onProgress` | `(progress: number, message: string) => void`| Optional. Called with 0–1 progress  |\n\nReturns: `Promise<void>`\n\n---\n\n### `renderer.renderSlide(index, canvas, width?)`\n\nRender a single slide.\n\n| Parameter | Type                 | Default | Description              |\n|-----------|----------------------|---------|--------------------------|\n| `index`   | `number`             | —       | 0-based slide index      |\n| `canvas`  | `HTMLCanvasElement`  | —       | Target canvas element    |\n| `width`   | `number`             | `1280`  | Output width in pixels   |\n\nCanvas height is set automatically to maintain the correct aspect ratio.\n\nReturns: `Promise<void>`\n\n---\n\n### `renderer.renderAllSlides(width?)`\n\nRender all slides and return an array of canvas elements. Useful for thumbnail strips.\n\n```js\nconst canvases = await renderer.renderAllSlides(320);\ncanvases.forEach((c, i) => document.body.appendChild(c));\n```\n\nReturns: `Promise<HTMLCanvasElement[]>`\n\n---\n\n### `renderer.slideCount`\n\n`number` — total number of slides. Available after `load()` resolves.\n\n---\n\n### `renderer.destroy()`\n\nReleases all `blob:` URLs created during rendering. Call this when you're done with the renderer or loading a new file.\n\n---\n\n## React example\n\n```jsx\nimport { useRef, useState } from 'react';\nimport { PptxRenderer } from 'pptx-browser';\n\nexport function PptxViewer() {\n  const canvasRef = useRef(null);\n  const [renderer] = useState(() => new PptxRenderer());\n  const [slideCount, setSlideCount] = useState(0);\n  const [current, setCurrent] = useState(0);\n\n  async function onFile(e) {\n    const file = e.target.files[0];\n    if (!file) return;\n    renderer.destroy();\n    await renderer.load(file);\n    setSlideCount(renderer.slideCount);\n    await renderer.renderSlide(0, canvasRef.current, 1280);\n    setCurrent(0);\n  }\n\n  async function goTo(i) {\n    await renderer.renderSlide(i, canvasRef.current, 1280);\n    setCurrent(i);\n  }\n\n  return (\n    <div>\n      <input type=\"file\" accept=\".pptx\" onChange={onFile} />\n      <p>Slide {current + 1} / {slideCount}</p>\n      <canvas ref={canvasRef} style={{ maxWidth: '100%' }} />\n      <div>\n        {current > 0 && <button onClick={() => goTo(current - 1)}>←</button>}\n        {current < slideCount - 1 && <button onClick={() => goTo(current + 1)}>→</button>}\n      </div>\n    </div>\n  );\n}\n```\n\n---\n\n## What's rendered\n\n| Feature                    | Status  |\n|----------------------------|---------|\n| Theme colours (all 12)     | ✅      |\n| Colour transforms (lumMod, lumOff, tint, shade, sat, hue, alpha…) | ✅ |\n| Gradient fills (linear + radial) | ✅ |\n| Image fills + cropping     | ✅      |\n| Pattern fills              | ✅ (simplified) |\n| 50+ preset shapes          | ✅      |\n| Custom geometry (custGeom) | ✅      |\n| Drop shadows + glow        | ✅      |\n| Text rendering (wrapping, alignment, superscript/subscript) | ✅ |\n| Font mapping MS→Google Fonts | ✅ (80+ fonts) |\n| normAutoFit text scaling   | ✅      |\n| Tables                     | ✅      |\n| Images in shapes/backgrounds | ✅    |\n| Slide master & layout inheritance | ✅ |\n| Placeholder position inheritance | ✅ |\n| Rotation & flip            | ✅      |\n| Group shapes               | ✅      |\n| Charts/SmartArt            | Placeholder box |\n\n---\n\n## How ZIP decompression works (no JSZip)\n\nPPTX files are ZIP archives. Instead of bundling JSZip (~100KB), this library uses the browser-native `DecompressionStream('deflate-raw')` API, available since:\n\n- Chrome 80 (Apr 2020)\n- Firefox 113 (May 2023)\n- Safari 16.4 (Mar 2023)\n- Node.js 18 (Apr 2022)\n\nThe custom ZIP parser is ~80 lines of code vs JSZip's 3,000+.\n\n---\n\n## Font handling\n\nMicrosoft Office fonts (Calibri, Cambria, Franklin Gothic, etc.) aren't available in browsers. This library automatically maps them to the nearest metric-compatible Google Font and loads it via the Google Fonts API before rendering. Key mappings:\n\n| Office font        | Web substitute          | Notes                              |\n|--------------------|-------------------------|------------------------------------|\n| Calibri            | **Carlito**             | Metric-compatible (identical widths) |\n| Calibri Light      | Carlito Light           | Metric-compatible                  |\n| Cambria            | **Caladea**             | Metric-compatible                  |\n| Aptos (new default)| Inter                   |                                    |\n| Franklin Gothic    | Libre Franklin          |                                    |\n| Gill Sans          | Quattrocento Sans       |                                    |\n| Segoe UI           | Inter                   |                                    |\n\nFonts are loaded once and cached for the session.\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}