{"componentChunkName":"component---src-templates-mini-app-post-js","path":"/mini-apps/carousel-generator/","result":{"data":{"mdx":{"id":"bb392296-6e51-5ca3-89f8-88ec531414b8","excerpt":"What it is Carousel Generator is a single-file design tool for creating polished, on-brand carousel posts. You pick a theme, fill in your content, and export…","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Carousel Generator\",\n  \"description\": \"A browser-based tool for designing and exporting multi-slide carousels for social media, with themed layouts and an edit functionality.\",\n  \"status\": \"Finished\",\n  \"stack\": \"Vanilla HTML / CSS / JS\",\n  \"repoUrl\": \"https://github.com/catwomaniya/carousel-generator\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"590px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/7808b197453c8e2d7f7085e673aa18a1/928ed/preview.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"59.45945945945946%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAACC0lEQVR42nWTy4oTQRSGs0kgGsb0vau6qy/p9N3Y4CBhwFEQIooPEBARwQyDigw4qCtx48onUHwAVy5FXAw+2u+pSnfoDLr4OF1dVX+dU/+pwc3DQxRFCU3X4TgOGGPgnCOOY/i+r/65rvtf5NooirBer7HZbDAoiwyLusL52Ws8evgAk8kEOolPp1OFpmn/pD8nv0ejEYbDIQmmM9y9fYSL3z/x9s0ZxuOxEpQLu9hH7yLNdcixYRgwTRODYhEjz3P8ufiF8/fvcKUVlASBgOdxBScC4cFnDm20VJlBECAMQ9i2vct48OrkKU4er/H9xXOcru7h6sHBNgt5p9yDw3y4fIvDBWzHhWVZSJIE8/kcaZqqe94J/vjyGd8+fcDXaoZngYtJW5ZlaGjmDLcyFzcShoZY5gyxb6sMy6JAWZZKdC9DL6phsAQ+pS+I7SVr8J0pCbh4srTxcaXj5bGJ1cJFLmwYJHi9rtE0DWqKexnmVYMqzxBRi3DP2wlyS1NleiJEPgsQRwFsHoBRq9hUcpplyFr2BJd3jnH/qMKCNrgk2HcxJhNCwvO2cRaQKdxRbkpTJLJf90pO4hl8ESGkibBXsmnoSGOBLPIVuYQyDX1GLWJCCLFDmrQTrKoKc3IsptO8tuQOyzSUsGV2GDDalpIiHf1+HRTklnRKCsueuvwaJNfa2H89l8ed4F8gkUa4LnPvjQAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Carousel Generator preview\",\n    \"title\": \"Carousel Generator preview\",\n    \"src\": \"/static/7808b197453c8e2d7f7085e673aa18a1/fcda8/preview.png\",\n    \"srcSet\": [\"/static/7808b197453c8e2d7f7085e673aa18a1/12f09/preview.png 148w\", \"/static/7808b197453c8e2d7f7085e673aa18a1/e4a3f/preview.png 295w\", \"/static/7808b197453c8e2d7f7085e673aa18a1/fcda8/preview.png 590w\", \"/static/7808b197453c8e2d7f7085e673aa18a1/efc66/preview.png 885w\", \"/static/7808b197453c8e2d7f7085e673aa18a1/c83ae/preview.png 1180w\", \"/static/7808b197453c8e2d7f7085e673aa18a1/928ed/preview.png 2552w\"],\n    \"sizes\": \"(max-width: 590px) 100vw, 590px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"h2\", null, \"What it is\"), mdx(\"p\", null, \"Carousel Generator is a single-file design tool for creating polished, on-brand carousel posts. You pick a theme, fill in your content, and export slide-by-slide PNGs ready to upload \\u2014 no sign-in, no subscription, no cloud dependency.\"), mdx(\"p\", null, \"Link: \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://carousel-generator-blond.vercel.app/\"\n  }), \"https://carousel-generator-blond.vercel.app/\")), mdx(\"h2\", null, \"Features\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Add, duplicate, and delete slides \\u2014 no fixed slide limit\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Adjacent slide peek for visual alignment across slides\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Cross-slide object bleed (creating a natural pull that encourages viewers to swipe)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Brand panel: accent colour, typography, handle, CTA text and logo upload\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Font picker with live preview across sans, serif, display and mono categories\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Export all slides as 1080\\xD71350px PNGs via html2canvas\")), mdx(\"h2\", null, \"Notes\"), mdx(\"p\", null, \"The design intentionally lives in one file so it can be dropped anywhere \\u2014 served locally, hosted on Vercel, or just opened directly in a browser.\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"Carousel Generator","date":null,"description":"A browser-based tool for designing and exporting multi-slide carousels for social media, with themed layouts and an edit functionality.","status":"Finished","stack":"Vanilla HTML / CSS / JS","externalUrl":null,"repoUrl":"https://github.com/catwomaniya/carousel-generator"}}},"pageContext":{"slug":"/mini-apps/carousel-generator/"}}}