Infographic Creator
Run ID: 69caf462f50cce7a046a51d92026-03-30Design
PantheraHive BOS
BOS Dashboard

Infographic Creator: Design Requirements Research & Specification

This document outlines the comprehensive design requirements, wireframe descriptions, color palette options, and user experience (UX) recommendations for the "Infographic Creator" workflow. The goal is to establish a robust foundation for generating visually compelling, informative, and highly effective infographics tailored to diverse user needs.


1. Infographic Purpose and Target Audience Analysis

Before embarking on design, understanding the core purpose and intended audience is paramount. The Infographic Creator will be designed to accommodate a range of goals and target demographics.

  • Core Purposes (User Selectable):

* Informative/Educational: Simplify complex data, explain processes, present facts.

* Persuasive/Marketing: Promote a product/service, highlight benefits, build brand awareness.

* Comparative: Showcase differences/similarities between options.

* Process/Timeline: Illustrate steps in a process or historical events.

* Statistical/Data-Driven: Present quantitative data in an engaging manner.

* Summarizing: Condense lengthy reports or articles into key takeaways.

  • Target Audience Considerations (User Input Dependent):

* General Public: Requires simple language, clear visuals, minimal jargon.

* Industry Professionals: Can handle more technical details, specific terminology, detailed data.

* Students/Academics: Focus on clarity, accuracy, and educational value.

* Decision-Makers: Emphasize key insights, actionable data, and concise summaries.


2. Content Strategy & Information Hierarchy

A well-structured infographic guides the viewer through the information logically and effectively.

  • Key Message Identification: Each infographic must have a clear, singular message or objective. All design elements will support this.
  • Information Flow & Narrative:

* Top-Down: Most common, starting with a title and introduction, progressing through sections, and concluding with a summary or call to action.

* Sequential: For processes or timelines, a clear path from start to finish.

* Comparative: Side-by-side or alternating section layouts.

  • Content Elements:

* Headline/Title: Catchy, informative, summarizes the infographic's topic.

* Introduction: Briefly sets the context and purpose.

* Main Body Sections: Divided into digestible chunks, each with a clear heading and supporting visuals/data.

* Key Statistics/Facts: Highlighted for immediate impact.

* Quotes/Testimonials: If applicable, to add credibility or human interest.

* Conclusion/Summary: Reinforces the key message.

* Call to Action (CTA): (Optional but recommended) Guides the viewer on what to do next (e.g., "Learn More," "Visit Website").

* Source/Credit: Crucial for credibility and transparency.


3. Data Visualization Specifications

The choice of visualization is critical for clarity and impact. The Infographic Creator will support a range of visualization types.

  • Common Data Types & Recommended Visualizations:

* Numerical Data (Single Value): Large numbers, call-out boxes, gauges.

* Numerical Data (Comparison): Bar charts (vertical/horizontal), column charts, bubble charts (for 3 variables).

* Proportional Data (Parts of a Whole): Pie charts (for few categories), donut charts, treemaps, stacked bar/column charts.

* Trend Over Time: Line charts, area charts, timelines.

* Relationship/Correlation: Scatter plots, bubble charts.

* Geographical Data: Choropleth maps, symbol maps.

* Process/Flow: Flowcharts, step-by-step diagrams.

* Hierarchy: Tree diagrams, organization charts.

* Word Frequency: Word clouds.

  • Iconography:

* Style: Flat, line-art, or minimalist solid icons. Consistency is key.

* Purpose: To visually represent concepts, break up text, and enhance comprehension.

  • Illustrations: Simple, clean, and thematic illustrations to add visual interest and reinforce concepts without distracting from data.

4. Wireframe Descriptions (Template Examples)

The Infographic Creator will provide flexible templates based on common infographic structures.

4.1. Standard Vertical Flow Infographic (Informative/Educational)

  • Layout: Single, long vertical canvas.
  • Sections:

1. Header (Top 10-15%):

* Zone A1: Prominent Title (Large font, bold).

* Zone A2: Subtitle/Brief Introduction.

* Zone A3: Branding/Logo (Top right/left).

2. Introduction/Context (Next 10%):

* Zone B1: Key introductory statement, perhaps a striking statistic.

* Zone B2: Supporting text with an icon or small illustration.

3. Main Content Sections (60-70%):

* Zone C1: Section Header (Medium font, distinct color).

* Zone C2: Data Visualization (e.g., bar chart, line graph, pie chart) with clear labels and data points.

* Zone C3: Explanatory text accompanying the visualization.

* Zone C4: Supporting Icons/Illustrations.

Repeat C1-C4 for 3-5 distinct sections, ensuring visual separation.*

4. Conclusion/Key Takeaways (Next 10%):

* Zone D1: Summary of main points or impactful closing statement.

* Zone D2: Small supporting graphic or icon.

5. Footer (Bottom 5-10%):

* Zone E1: Call to Action (Prominent button/text).

* Zone E2: Sources, Credits, Website URL, Social Media handles.

4.2. Comparison Infographic (Side-by-Side)

  • Layout: Divided vertically into two main columns or horizontally into two main rows.
  • Sections:

1. Header (Top 10%):

* Zone A1: Main Title ("X vs. Y").

* Zone A2: Introduction.

* Zone A3: Branding/Logo.

2. Comparison Sections (80%):

* Zone B1 (Left Column/Top Row): Title for Item 1.

* Zone B2 (Right Column/Bottom Row): Title for Item 2.

* Zone C1-C3 (Repeated): Feature/Category Header (e.g., "Price," "Features," "Performance").

* Zone C4 (Left): Data/Description for Item 1 (e.g., specific price, feature list, chart).

* Zone C5 (Right): Data/Description for Item 2 (e.g., specific price, feature list, chart).

Visual cues (e.g., checkmarks, crosses, contrasting colors) for easy comparison.*

3. Footer (Bottom 10%): CTA, Sources.

4.3. Process/Timeline Infographic

  • Layout: Linear flow, often horizontal or snaking vertical.
  • Sections:

1. Header (Top 10%): Title, Introduction.

2. Timeline/Process Flow (80%):

* Zone B1: Central line or path representing the flow.

* Zone B2: Markers/Nodes along the path (e.g., circles, squares) representing steps or dates.

* Zone B3: Step/Date Title (Bold).

* Zone B4: Brief Description for each step/date.

* Zone B5: Supporting Icon or Small Illustration for each step.

Arrows or visual connectors clearly indicate direction.*

3. Footer (Bottom 10%): Conclusion, CTA, Sources.


5. Color Palettes

Color choices significantly impact mood, readability, and brand perception. The Infographic Creator will offer curated, professional palettes.

5.1. Palette 1: Professional & Trustworthy (Corporate Focus)

  • Primary Colors:

* Deep Blue: #003366 (Authority, Trust, Stability)

* Cool Gray: #607D8B (Neutrality, Sophistication)

  • Secondary/Accent Colors:

* Sky Blue: #3498DB (Clarity, Openness)

* Forest Green: #27AE60 (Growth, Balance)

* Soft Yellow: #F39C12 (Highlight, Optimism)

  • Background/Text:

* Background: #FFFFFF (Clean White) or #F8F8F8 (Off-white)

* Text: #333333 (Dark Gray for readability)

5.2. Palette 2: Vibrant & Engaging (Marketing/Modern Focus)

  • Primary Colors:

* Teal: #008080 (Innovation, Freshness)

* Coral: #FF6B6B (Energy, Warmth)

  • Secondary/Accent Colors:

* Light Green: #90EE90 (Growth, Nature)

* Golden Yellow: #FFD700 (Optimism, Attention)

* Soft Purple: #8A2BE2 (Creativity, Uniqueness)

  • Background/Text:

* Background: #FFFFFF (Clean White) or #F2F2F2 (Light Gray)

* Text: #2C3E50 (Dark Navy for contrast)

5.3. Palette 3: Minimalist & Clean (Data-Heavy/Academic Focus)

  • Primary Colors:

* Charcoal Gray: #34495E (Sophistication, Seriousness)

* Slate Blue: #778899 (Calm, Professionalism)

  • Secondary/Accent Colors:

* Terracotta: #E74C3C (Subtle emphasis, Earthy)

* Sage Green: #A2B9BC (Natural, Soothing)

* Soft Peach: #FADBD8 (Light highlight)

  • Background/Text:

* Background: #FFFFFF (Pure White)

* Text: #222222 (Very Dark Gray for maximum readability)

  • Accessibility Note: All palettes will ensure sufficient contrast ratios (WCAG 2.1 AA standard) for text and interactive elements.

6. Typography Guidelines

Clear and consistent typography is essential for readability and visual appeal.

  • Font Pairing:

* Headings (Display Font): A strong, modern sans-serif (e.g., Montserrat, Lato, Open Sans Bold) for impact and hierarchy.

* Body Text (Readable Font): A clean, highly readable sans-serif (e.g., Open Sans, Lato, Roboto) or a clear serif (e.g., Merriweather) for longer text blocks.

  • Font Sizes & Hierarchy:

* Main Title: 36-48pt (or larger depending on infographic size).

* Section Headers: 24-32pt.

* Sub-headers: 18-22pt.

* Body Text: 12-16pt (minimum 12pt for digital readability).

* Captions/Sources: 10-12pt.

  • Readability Enhancements:

* Line Height: 1.4-1.6 times the font size for optimal spacing.

* Letter Spacing: Tightly controlled for headings, normal for body text.

* Paragraph Spacing: Clear separation between paragraphs.

* Text Alignment: Left-aligned for body text, centered for titles.


7. User Experience (UX) Recommendations

The infographic should be intuitive, engaging, and easy to digest for the viewer.

  • Clarity & Simplicity:

* Minimalism: Avoid visual clutter. Every element should serve a purpose.

* Concise Language: Use short sentences and bullet points where possible.

* Direct Messaging: Get straight to the point.

  • Visual Hierarchy:

* Guiding the Eye: Use size, color, contrast, and positioning to direct the viewer's attention to the most important information first.

* Clear Sectioning: Use distinct backgrounds, borders, or spacing to separate different content sections.

  • Readability:

* High Contrast: Ensure text is easily readable against its background.

* Appropriate Font Sizes: Adhere to typography guidelines for all text elements.

  • Flow & Navigation:

* Logical Progression: Information should unfold in a natural, easy-to-follow sequence.

* Visual Cues: Use arrows, lines, and sequential numbering to indicate direction and order.

  • Consistency:

* Design Elements: Maintain consistent use of icons, illustrations, data visualization styles, and graphic elements throughout the infographic.

* Color & Typography: Adhere strictly to the chosen palette and typography guidelines.

gemini Output

Infographic Creator: Design Specifications & UX Recommendations

This document outlines the detailed design specifications, wireframe descriptions, color palette, typography, and user experience (UX) recommendations for the "Infographic Creator" application. The goal is to create a professional, intuitive, and highly functional tool that empowers users to design compelling infographics with ease.


1. Overall Design Philosophy

The Infographic Creator will adopt a design philosophy centered on Clarity, Efficiency, and Creativity.

  • Clarity: User interface elements will be clean, well-organized, and easily understandable, minimizing cognitive load.
  • Efficiency: Workflows will be streamlined, allowing users to quickly find tools, apply changes, and achieve their design goals without unnecessary steps.
  • Creativity: While providing powerful tools, the interface will inspire creativity, offering a rich library of assets and flexible customization options without overwhelming the user.

The aesthetic will be modern, professional, and visually appealing, consistent with contemporary design tools.


2. Target Audience

  • Marketing Professionals: Seeking to create engaging visual content for campaigns, social media, and presentations.
  • Educators & Students: Needing to visualize complex information for lessons, reports, and projects.
  • Business Analysts: Presenting data and insights in an accessible and compelling format.
  • Small Business Owners: Creating their own marketing materials and informational content.
  • Content Creators & Bloggers: Enhancing articles and posts with informative visuals.

3. Key Functionality Overview (Brief)

The Infographic Creator will provide core functionalities including:

  • Template Library: Pre-designed, customizable infographic templates.
  • Drag-and-Drop Editor: Intuitive canvas for arranging elements.
  • Asset Library: Extensive collection of icons, illustrations, shapes, and photos.
  • Data Visualization Tools: Charts, graphs, and data import capabilities.
  • Text & Typography Tools: Rich text editing with font selection, sizing, and styling.
  • Branding & Customization: Color palettes, custom fonts, and logo integration.
  • Export & Sharing: Various formats (PNG, JPG, PDF) and direct sharing options.

4. Wireframe Descriptions

Below are detailed descriptions for key screens, outlining their layout and primary interactive elements.

4.1. Dashboard / Project List Screen

Purpose: To provide an overview of existing projects, quick access to templates, and options to start new designs.

Layout:

  • Header (Top Bar):

* Logo (Left)

* "New Infographic" Button (Primary CTA - Right)

* User Profile/Settings (Right)

  • Sidebar (Left):

* Navigation: "My Projects", "Templates", "Brand Kit", "Help"

* Search Bar (for projects)

  • Main Content Area (Center/Right):

* "Start New" Section: Prominent area with options to:

* "Create from Scratch" (Large button)

* "Browse Templates" (Secondary button)

* "My Projects" Section:

* Tabs/Filters: "All", "Drafts", "Published"

* Search bar for projects within this section.

* Grid/List view of project thumbnails. Each thumbnail includes:

* Infographic preview image.

* Project Title.

* Last Modified Date.

* Ellipsis menu for "Edit", "Duplicate", "Delete", "Export".

Interactions:

  • Clicking "New Infographic" or "Create from Scratch" navigates to a blank editor.
  • Clicking "Browse Templates" navigates to the Template Gallery.
  • Clicking a project thumbnail or "Edit" opens the Infographic Editor for that project.
  • Search functionality filters projects in real-time.

4.2. Template Gallery Screen

Purpose: To allow users to browse, search, and select from a library of pre-designed infographic templates.

Layout:

  • Header (Top Bar):

* Logo (Left)

* "Back to Dashboard" / Breadcrumbs (Left)

* Search Bar (Right)

* User Profile/Settings (Right)

  • Sidebar (Left):

* Categories: "All", "Business", "Education", "Marketing", "Healthcare", "Process", "Timeline", "Data Visualization", etc. (Collapsible/Expandable)

* Filters: "Orientation (Portrait/Landscape)", "Color Scheme", "Style (Modern/Minimal/Playful)".

  • Main Content Area (Center/Right):

* "Featured Templates" Section: A carousel or prominent grid of popular/new templates.

* Template Grid: Display of template thumbnails. Each thumbnail includes:

* Large preview image.

* Template Title.

* "Use This Template" Button (Primary CTA).

* "Preview" Button (Opens a larger modal preview).

* Pagination if many templates.

Interactions:

  • Selecting categories or filters updates the displayed templates instantly.
  • "Use This Template" button opens the selected template in the Infographic Editor.
  • "Preview" button displays a full-size, non-editable version of the template in a modal.

4.3. Infographic Editor Screen

Purpose: The core workspace for designing and customizing infographics.

Layout:

  • Header (Top Bar):

* Logo (Left)

* Project Title (Editable text field, Center)

* "Save" Button (Auto-save indicator next to it)

* "Undo/Redo" Buttons

* "Preview" Button

* "Export" Button (Primary CTA - Right)

* User Profile (Right)

  • Left Sidebar (Tools Panel):

* Sections/Tabs:

* Templates: Access to the template gallery.

* Elements: Shapes, lines, icons, illustrations (searchable, categorized).

* Text: Add heading, subheading, body text, pre-formatted text blocks.

* Data: Chart types (bar, line, pie), table import, manual data entry.

* Uploads: User's uploaded images, logos, fonts.

* Photos: Stock photo library integration.

* Background: Solid colors, gradients, patterns, images.

* Brand Kit: Apply saved brand colors, fonts, logos.

  • Main Canvas Area (Center):

* The infographic itself, with drag-and-drop elements.

* Rulers and grid lines (toggleable).

* Zoom controls (bottom right of canvas).

* Page navigation/add page options (for multi-page infographics).

* Contextual bounding boxes and handles for selected elements (resize, rotate, move).

  • Right Sidebar (Properties Panel):

* Contextual: Changes based on selected element.

* If no element selected (Canvas properties):

* Canvas size/dimensions.

* Background color/image.

* Grid/Ruler settings.

* If text element selected:

* Font family, size, color, weight, alignment, line height, letter spacing.

* Bold, Italic, Underline, Strikethrough.

* List options (bullet, numbered).

* If shape/icon selected:

* Fill color, stroke color, stroke width.

* Opacity.

* Corner radius.

* Flip (horizontal/vertical).

* If image selected:

* Crop, filter, adjust brightness/contrast.

* Opacity.

* Replace image.

* Common across elements:

* Layering (Bring Forward, Send Backward, Bring to Front, Send to Back).

* Group/Ungroup.

* Lock/Unlock.

* Duplicate.

* Position (X, Y coordinates).

* Alignment tools (align left, center, right, top, middle, bottom).

Interactions:

  • Drag elements from left sidebar onto the canvas.
  • Select elements on canvas to activate bounding box and populate right sidebar properties.
  • Drag and drop to reorder elements on canvas.
  • Click and drag handles to resize/rotate.
  • Double-click text to enter edit mode.
  • Real-time updates as properties are changed in the right sidebar.

4.4. Export / Share Options Modal

Purpose: To allow users to download their infographic in various formats or share it directly.

Layout:

  • Modal Window (Overlay):

* Header: "Export & Share Infographic"

* Preview Thumbnail: Small preview of the infographic.

* Download Options:

* Dropdown for File Type: PNG, JPG, PDF (Standard, Print Quality), SVG (for vector elements).

* Quality/Resolution Slider (for raster formats).

* "Download" Button (Primary CTA).

* Share Options:

* "Shareable Link": Toggle to enable/disable. Copy button for link.

* Social Media Share Buttons: Facebook, X (Twitter), LinkedIn, Pinterest.

* Email Share: Input field for email addresses, subject, message.

* Embed Code: Text area with HTML/iframe code, Copy button.

* Footer: "Cancel" button.

Interactions:

  • Selecting file type and quality updates download options.
  • Clicking "Download" initiates file download.
  • Clicking social media buttons opens sharing dialogs for respective platforms.
  • "Copy" buttons copy links or embed codes to clipboard.

5. Color Palette

The chosen color palette is modern, professional, and versatile, offering a balanced mix for various infographic topics while maintaining brand consistency.

  • Primary Brand Colors:

* Deep Teal: #007B8A (Main brand color, strong, trustworthy)

* Sky Blue: #3D99C2 (Secondary brand color, approachable, clear)

  • Secondary Accent Colors:

* Lime Green: #85CC4A (Positive, growth, call-to-action)

* Warm Orange: #FF9F1C (Energetic, attention-grabbing, highlights)

* Soft Purple: #9B59B6 (Creative, thoughtful, complementary)

  • Neutral Palette:

* Dark Grey: #333333 (Headings, primary text, strong contrast)

* Medium Grey: #666666 (Body text, secondary information)

* Light Grey: #CCCCCC (Borders, subtle backgrounds, inactive states)

* Off-White: #F8F8F8 (Main background, clean base)

* Pure White: #FFFFFF (Canvas background, modals, clean elements)

  • Alert/Status Colors:

* Success Green: #28A745

* Warning Yellow: #FFC107

* Error Red: #DC3545

Usage Guidelines:

  • Deep Teal and Sky Blue for primary UI elements, interactive components, and branding.
  • Lime Green and Warm Orange for call-to-actions, key data points, or elements requiring emphasis.
  • Neutrals for text, backgrounds, and structural elements to ensure readability and focus on content.
  • Infographic templates will leverage a diverse range of these colors, providing options for different moods and topics, while maintaining a cohesive look.

6. Typography

Clear and legible typography is crucial for infographics. A combination of a modern sans-serif for headings and a highly readable sans-serif for body text will be used.

  • Primary Font Family (Headings & UI):

* "Montserrat" (or similar modern geometric sans-serif like "Poppins", "Lato")

* Usage: UI elements (buttons, labels), page titles, infographic headings (H1, H2).

* Weights: Bold (700), Semi-Bold (600), Regular (400).

  • Secondary Font Family (Body Text & Data Labels):

* "Open Sans" (or similar highly readable humanist sans-serif like "Roboto", "Inter")

* Usage: Body text within infographics, data labels, descriptive text, small UI text.

* Weights: Regular (400), Semi-Bold (600).

  • Call-to-Action (CTA) Text:

* Montserrat Semi-Bold or Bold, often in a contrasting color (e.g., Lime Green or Deep Teal).

Font Sizing (Example Scale):

  • H1 (Infographic Title): 48px - 64px (depending on template/design)
  • H2 (Major Section Title): 32px - 40px
  • H3 (Subsection Title): 24px - 28px
  • Body Text: 16px - 18px (for readability)
  • Captions/Labels: 12px - 14px
  • UI Elements (Buttons): 16px - 18px

Line Height: Generally 1.4 - 1.6 for body text to improve readability.


7. Iconography Style

  • Style: Modern, flat, or subtly outlined/filled. Consistent stroke weight and corner radius.
  • Aesthetic: Clean, simple, easily recognizable.
  • Color: Adaptable to the chosen infographic palette, often using secondary or accent colors, or dark grey for neutrality.
  • Library: A comprehensive library covering common concepts (arrows, charts, social media, business, education, etc.) will be integrated.

8. Imagery & Graphics Style

  • Photos: High-quality, diverse, and professional stock photos will be available. Emphasis on bright, relevant, and non-distracting imagery. Filters and basic editing tools will be provided.
  • Illustrations: A library of vector illustrations in a contemporary, friendly, and consistent style (e.g., flat, isometric, or line-art) will be included to enhance visual appeal and convey concepts.
  • Shapes: Basic geometric shapes (circles, squares, triangles) and more complex decorative shapes will be available, fully customizable in color and size.

9. User Experience (UX) Recommendations

9.1. Ease of Use & Intuitive Workflow

  • Onboarding: A brief, interactive tutorial for first-time users guiding them through the editor's main functionalities.
  • Drag-and-Drop: Core interaction for all elements on the canvas.
  • Contextual Menus: Right-click menus on elements for quick access to common actions (duplicate, delete, layer order).
  • Smart Guides & Alignment: Automatic snapping to grid, other elements, and canvas centerlines for precise placement.
  • Undo/Redo History: Robust history tracking with clear visual indicators.
  • Keyboard Shortcuts: Implement common shortcuts (Ctrl/Cmd+C, V, Z, Y, G, Shift+select for multiple).

9.2. Feedback Mechanisms

  • Visual Cues: Highlight selected elements, show bounding boxes, indicate active tools.
  • Loading States: Clear loading indicators for asset libraries, template previews, and export processes.
  • Error Messages: Specific, user-friendly error messages with actionable advice.
  • Success Notifications: Brief, non-intrusive notifications for successful saves, exports, or shares.

9.3. Responsiveness & Adaptability

  • Editor Scalability: The editor interface should be responsive to different screen sizes, though the primary design focus is for desktop/laptop use. The canvas itself will be fixed, but UI panels should adapt.
  • Export Options: Provide various export sizes and resolutions for different use cases (web, print, social media).

9.4. Accessibility (A11Y)

  • Color Contrast: Ensure sufficient color contrast for all text and UI elements against their backgrounds (WCAG 2.1 AA standards).
  • Keyboard Navigation: All interactive elements should be navigable and operable via keyboard.
  • Alt Text: Encourage users to add descriptive alt text for images when exporting, especially for web use.
  • Scalable Text: Allow for browser-level text scaling without breaking layouts.

9.5. Performance

  • Optimized Asset Loading: Lazy loading for assets in libraries
gemini Output

Finalized Infographic Design Assets & Specifications

This document outlines the comprehensive design specifications, wireframe descriptions, color palettes, and user experience (UX) recommendations for creating professional, engaging, and effective infographics. This deliverable ensures consistency, clarity, and visual appeal across all infographic outputs generated by the "Infographic Creator" workflow.


1. Overall Infographic Design Concept

The core concept for the infographics generated is to transform complex information into easily digestible, visually appealing, and shareable content. The design prioritizes:

  • Clarity & Scannability: Information should be quick to grasp.
  • Engagement: Visuals, colors, and layout should captivate the audience.
  • Credibility: A professional aesthetic reinforces trustworthiness.
  • Versatility: Designs should be adaptable across various topics and data types.

Target Audience: Professionals, decision-makers, general public seeking quick insights.

Primary Goal: Educate, inform, persuade, or summarize key data points effectively.


2. Detailed Design Specifications

These specifications provide the fundamental building blocks for all infographic designs.

2.1. Dimensions & Format

  • Standard Vertical (Digital/Print):

* Aspect Ratio: Typically 1:2 to 1:3 (e.g., 800px width x 1600px-2400px height).

* Resolution: 300 DPI for print readiness; 72-96 DPI for web optimization.

* File Formats: High-resolution PNG/JPEG for web, PDF for print/sharing, SVG for vector scalability.

  • Square (Social Media Snippet):

* Aspect Ratio: 1:1 (e.g., 1080px x 1080px).

* Purpose: Ideal for promoting key stats or sections of a larger infographic on platforms like Instagram, LinkedIn.

  • Horizontal (Presentation Slide/Blog Banner):

* Aspect Ratio: 16:9 or 4:3.

* Purpose: For integrating into presentations or as hero images for blog posts.

2.2. Typography

A carefully selected font pairing ensures readability and establishes a professional tone.

  • Primary Headline Font (Display):

* Purpose: For main titles, section headers, and key statistics.

* Characteristics: Strong, legible, impactful, sans-serif (e.g., Montserrat Bold, Lato Black, Open Sans ExtraBold).

* Usage: Uppercase for main titles, Sentence case for section headers.

  • Secondary Body Font (Text):

* Purpose: For all body text, descriptions, labels, and smaller details.

* Characteristics: Highly readable at small sizes, clean, sans-serif (e.g., Lato Regular/Semibold, Open Sans Regular, Roboto Regular).

* Usage: Sentence case.

  • Font Sizing Hierarchy (Relative to 800px width):

* Main Title: 48-60px

* Section Headers: 30-40px

* Key Statistics: 60-80px (or larger, depending on impact)

* Body Text: 16-20px

* Labels/Captions/Sources: 12-14px

  • Line Spacing (Leading): 1.2 to 1.5 times the font size for optimal readability.
  • Tracking (Letter Spacing): Slightly reduced for headlines for a tighter look; default for body text.

2.3. Imagery & Iconography Style

  • Style: Flat, line-art, or subtly shaded vector icons. Avoid overly complex or realistic imagery unless it's a specific data photo.
  • Consistency: All icons within a single infographic must adhere to the same style (e.g., all outline icons, or all filled icons).
  • Color: Icons should primarily use accent colors from the chosen palette, or grayscale for less emphasis.
  • Purpose: To break up text, illustrate concepts, highlight key points, and add visual interest.
  • Imagery: High-quality, relevant stock photography or custom illustrations only when necessary and well-integrated. Avoid generic or low-resolution images.

2.4. Data Visualization Style

  • Clarity First: Charts and graphs must be easy to understand at a glance.
  • Minimalism: Remove unnecessary chart junk (e.g., excessive grid lines, 3D effects, heavy borders).
  • Chart Types:

* Bar Charts: For comparing discrete categories.

* Line Charts: For showing trends over time.

* Pie/Donut Charts: For illustrating parts of a whole (use sparingly, max 3-5 segments).

* Area Charts: For cumulative totals over time.

* Infographics-specific Visuals: Progress bars, bubble charts, tree maps, heat maps, icon arrays for more engaging data representation.

  • Color Coding: Use distinct colors from the palette to differentiate data series, ensuring good contrast.
  • Labels: Direct labeling preferred over legends when possible. Data labels should be clear and concise.
  • Scales: Clearly labeled axes with appropriate units.

2.5. Layout Principles

  • Grid System: Utilize an invisible grid (e.g., 12-column) to ensure consistent spacing, alignment, and visual hierarchy.
  • Whitespace: Ample whitespace around elements is crucial for readability and preventing visual clutter.
  • Flow: Design should guide the reader's eye naturally from top to bottom, left to right, following a clear narrative.
  • Modularity: Break the infographic into distinct, self-contained sections, each with a clear header and purpose.
  • Visual Hierarchy: Use size, color, contrast, and placement to indicate the relative importance of information.

2.6. Branding Elements

  • Logo Placement: Subtle, typically in the footer or top-right/left corner, ensuring it doesn't overpower the content.
  • Brand Colors: Incorporate primary brand colors (if provided) into the selected palette.
  • Font Integration: If a specific brand font is required, integrate it into the typography hierarchy.

3. Wireframe Descriptions (Modular Sections)

Infographics are typically composed of several modular sections. These descriptions outline common components and their purpose.

3.1. Header / Title Section

  • Purpose: To immediately grab attention and clearly state the infographic's topic.
  • Elements:

* Main Title: Large, bold, compelling headline.

* Subtitle/Brief Introduction: A concise sentence explaining the infographic's scope or key takeaway.

* Brand Logo: Optional, typically in a corner.

* Hero Image/Icon: A dominant, relevant visual to set the tone.

3.2. Introduction / Problem Statement

  • Purpose: To provide context, state the problem being addressed, or introduce the core concept.
  • Elements:

* Section Header: "The Challenge," "Understanding X," "Why This Matters."

* Short Paragraph: 3-5 sentences summarizing the background.

* Supporting Icon/Small Visual: Reinforces the text.

3.3. Key Statistic / Hero Data Section

  • Purpose: To highlight the most impactful piece of data or the primary conclusion upfront.
  • Elements:

* Large Numeric Value: Dominant size and bold styling.

* Concise Descriptor: Explains what the number represents.

* Small Icon/Visual: Related to the statistic.

* Source Citation: Small text below the statistic.

3.4. Body Sections (Data Points, Steps, Benefits, How-To)

  • Purpose: To present detailed information, data, or processes in an organized manner.
  • Common Modules:

* "X Steps To Y": Numbered or icon-driven steps with brief descriptions.

* "Benefits of Z": Bullet points or short paragraphs with accompanying icons.

* "Data Breakdown": Visualizations (charts, graphs) with key takeaways.

* "Comparison": Side-by-side visuals or lists highlighting differences/similarities.

* "Timeline": Chronological events with dates and descriptions.

  • Elements (per module):

* Module Header: Clear, concise title.

* Visual/Icon: Central to the module's content.

* Short Text Block: Explanatory text, bullet points, or data labels.

* Data Visualization: If applicable (e.g., bar chart for a data point).

3.5. Call-to-Action (CTA) / Conclusion

  • Purpose: To summarize the main message and prompt the reader to take the next step.
  • Elements:

* Concluding Summary: A powerful statement or question.

* Clear Call-to-Action: "Learn More," "Download the Report," "Visit Our Website," "Share This Infographic."

* Button/Link Visual: Visually prominent.

3.6. Footer

  • Purpose: To provide necessary credits and contact information.
  • Elements:

* Data Sources: List all sources in small, legible text.

* Author/Organization Credit: "Created by [Your Organization]."

* Website/Social Media Handles: Contact information.

* Brand Logo: Final placement.


4. Color Palettes

Three distinct professional color palettes are provided, each evoking a different mood and suitable for various contexts. Each palette includes a Primary, Secondary, Accent, Neutral, and Background color.

4.1. Palette 1: "Corporate Professional"

  • Mood: Trustworthy, reliable, sophisticated, authoritative.
  • Ideal for: Business reports, financial data, serious topics, corporate communications.
  • Colors:

Primary: #0056B3 (Deep Blue) - For main headers, key elements.*

Secondary: #17A2B8 (Teal) - For sub-headers, secondary data points.*

Accent: #28A745 (Forest Green) - For positive highlights, CTAs.*

Neutral: #495057 (Dark Gray) - For body text, subtle borders.*

Background: #F8F9FA (Light Gray) - Clean, unobtrusive background.*

4.2. Palette 2: "Modern & Dynamic"

  • Mood: Energetic, innovative, engaging, contemporary.
  • Ideal for: Tech, marketing, startups, creative industries, forward-thinking content.
  • Colors:

Primary: #6F42C1 (Deep Violet) - For main headers, impactful visuals.*

Secondary: #FD7E14 (Vibrant Orange) - For accenting key data, calls to action.*

Accent: #20C997 (Mint Green) - For positive indicators, secondary highlights.*

Neutral: #343A40 (Charcoal) - For body text, strong contrast.*

Background: #FFFFFF (Pure White) - Clean, crisp, maximizes vibrancy.*

4.3. Palette 3: "Calm & Trustworthy"

  • Mood: Approachable, serene, informative, natural.
  • Ideal for: Healthcare, education, environmental topics, lifestyle, long-form content.
  • Colors:

Primary: #28A745 (Emerald Green) - For main headers, growth, stability.*

Secondary: #007BFF (Sky Blue) - For sub-headers, complementary data.*

Accent: #FFC107 (Warm Yellow) - For emphasis, warnings, or highlights.*

Neutral: #6C757D (Medium Gray) - For body text, softer contrast.*

Background: #E9ECEF (Soft Off-White) - Gentle, easy on the eyes.*

Note: Always ensure sufficient contrast between text and background colors for accessibility.


5. User Experience (UX) Recommendations

These recommendations focus on optimizing the infographic for the end-user's consumption and understanding.

5.1. Readability & Scannability

  • Chunking: Break down information into small, digestible chunks. Each section should convey one main idea.
  • Clear Headings: Use descriptive headings and subheadings to guide the reader through the content.
  • Bullet Points & Lists: Employ these for easy scanning of key facts and features.
  • Visual Cues: Use arrows, lines, and subtle gradients to direct the eye through the narrative flow.

5.2. Information Hierarchy

  • Most Important First: Place critical information and key takeaways at the top of the infographic.
  • Size & Weight: Use larger font sizes, bolding, and contrasting colors for the most important data points and headings.
  • Visual Dominance: Key visuals or hero statistics should immediately draw attention.

5.3. Engagement & Storytelling

  • Narrative Arc: Structure the infographic like a story: Introduction (problem), Rising Action (data/solutions), Climax (key takeaway/solution), Resolution (CTA).
  • Relatable Visuals: Use icons and illustrations that resonate with the audience and make abstract concepts tangible.
  • Emotional Connection: Where appropriate, use visuals or language that evokes emotion to make the data more impactful.

5.4. Accessibility

  • Color Contrast: Ensure high contrast between text and background colors for users with visual impairments (e.g., WCAG 2.1 AA standards).
  • Font Choice: Use legible fonts that are easy to read at various sizes. Avoid overly decorative or thin fonts for body text.
  • Alternative Text (for Digital): Provide descriptive alt text for images and data visualizations when embedded online.

5.5. Responsiveness (for Digital Infographics)

  • Mobile-First Consideration: While traditional infographics are often long, consider how key sections or data points could be extracted or re-arranged for smaller screens.
  • Scalable Vector Graphics (SVG): Use SVGs for icons and illustrations to ensure crispness across different resolutions.
  • Interactive Elements (Optional): For advanced digital infographics, consider hover states for data points, clickable sections, or embedded videos to enhance engagement.

5.6. Call to Action Clarity

  • Single, Clear CTA: Ensure there is one primary action you want the user to take.
  • Prominent Placement: The CTA should be visually distinct and strategically placed (typically at the end).
  • Action-Oriented Language: Use strong verbs in the CTA (e.g., "Download Now," "Learn More," "Get Started").

By adhering to these detailed specifications and recommendations, the "Infographic Creator" workflow will consistently produce high-quality, professional, and impactful infographics that effectively communicate complex information to diverse audiences.

infographic_creator.md
Download as Markdown
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
\n\n\n"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547}\n"); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/\.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/\*\*(.+?)\*\*/g,"$1"); hc=hc.replace(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); } function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}