Infographic Creator
Run ID: 69cc1bbe04066a6c4a1696462026-03-31Design
PantheraHive BOS
BOS Dashboard

Infographic Creator: Design Requirements & Specifications

This document outlines the comprehensive design requirements and specifications for the "Infographic Creator" tool. The goal is to develop a user-friendly, powerful, and aesthetically pleasing platform that empowers users to create professional-quality infographics with ease and efficiency.


1. Project Overview & Objectives

Objective: To provide a robust online tool that enables users of varying design skill levels to create engaging, informative, and visually appealing infographics for various purposes (e.g., marketing, education, reports, social media).

Core Principles:

  • Intuitive Design: Easy to learn and use, even for beginners.
  • Flexibility & Customization: Powerful options for advanced users.
  • Template-Driven Efficiency: Quick starts with high-quality, customizable templates.
  • Data Integration: Seamless incorporation of user data into visualizations.
  • Professional Output: High-resolution export options for diverse platforms.

2. Target Audience

The Infographic Creator is designed for a broad audience, including:

  • Marketing Professionals: Creating visual content for campaigns, social media, and presentations.
  • Educators & Students: Visualizing complex information, reports, and study materials.
  • Small Business Owners: Developing engaging content without hiring a professional designer.
  • Content Creators & Bloggers: Enhancing articles and blog posts with data visualizations.
  • Non-Designers: Individuals needing to communicate data effectively without extensive design software knowledge.

3. Design Specifications

3.1. Layout Principles

  • Responsive Grid System: The interface will utilize a flexible grid system to ensure optimal display across various screen sizes (desktop, tablet). The canvas area itself will be fixed-ratio (e.g., 16:9, 4:3, A4, custom).
  • Modular & Component-Based: The UI will be built with reusable components (buttons, panels, modals) for consistency and efficient development.
  • Clear Information Hierarchy: Visual weight and placement will guide users through workflows, prioritizing the design canvas.
  • Whitespace Optimization: Ample whitespace will be used to reduce cognitive load and enhance readability.
  • Sidebar Navigation & Tool Panels: A left-hand panel for library elements and a right-hand panel for selected element properties will frame the central canvas.

3.2. Typography

  • Primary Font (UI & Headings): A clean, modern sans-serif font (e.g., Montserrat, Open Sans, Lato) for UI elements and primary headings, ensuring readability and a contemporary feel.

Weight:* Regular, Semi-Bold, Bold.

Sizes:* H1 (36-48px), H2 (28-32px), H3 (20-24px), Body (14-16px), Caption (12px).

  • Secondary Font (Body Text & Data Labels): A highly readable sans-serif or serif font (e.g., Roboto, Source Sans Pro, Merriweather) for body text and detailed information within the infographic itself. This should offer good legibility at smaller sizes.

Weight:* Regular, Light (optional for emphasis).

Sizes:* Consistent with body and caption sizes above.

  • Infographic Content Fonts: The tool will offer a curated selection of diverse, professional fonts for users to apply to their infographic text, categorized by style (e.g., professional, playful, handwritten).

3.3. Iconography

  • Style: Flat or Line-Art icons for UI elements, ensuring clarity and minimalist aesthetics. Icons should be scalable (SVG) and consistently styled throughout the application.
  • Purpose: To visually represent actions (e.g., "Add Text," "Upload Image," "Undo"), categories (e.g., "Charts," "Shapes," "Icons"), and status.
  • Availability: A rich, searchable library of infographic-specific icons will be provided for users to drag and drop onto their canvas.

3.4. Imagery & Visuals

  • Stock Photo Integration: Access to a curated library of high-quality, royalty-free stock photos relevant to common infographic themes.
  • Custom Illustrations: A library of vector illustrations (flat, isometric, or line-art styles) to add visual interest and thematic consistency.
  • Data Visualization Elements: Pre-designed, customizable charts (bar, line, pie, donut, area, scatter) and graphs, along with editable maps, progress bars, and callout boxes.
  • User Uploads: Clear guidelines and easy functionality for users to upload their own images, logos, and custom assets.

3.5. Branding Elements (Platform)

  • Logo Placement: Subtle, consistent placement of the platform's logo, ideally in the top-left corner of the main dashboard.
  • Color Palette: Adherence to the platform's brand colors in the UI elements (buttons, highlights, active states).

3.6. Data Visualization Principles

  • Clarity & Readability: All charts and graphs must prioritize data clarity. Labels, legends, and axes should be easy to understand.
  • Customization: Users must be able to customize colors, fonts, labels, and data ranges for all chart types.
  • Interactivity (within creator): Hover states to show data points, easy resizing and repositioning.
  • Accessibility: Ensure sufficient color contrast for data elements.

4. Wireframe Descriptions

4.1. Dashboard / Main Creation Area

  • Layout:

* Top Bar (Global Navigation): Logo, Project Title (editable), Save/Auto-save Status, Undo/Redo, Resize Canvas, Share/Export buttons, User Profile/Settings.

* Left Panel (Element Library): Tabbed interface for:

* Templates: Browse and apply infographic templates.

* Text: Heading, Subheading, Body Text, Text Styles.

* Images: Stock, Uploaded, Illustrations.

* Icons: Searchable library.

* Shapes: Basic shapes, lines, arrows.

* Data: Charts, Graphs, Maps, Tables.

* Uploads: User's uploaded assets.

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

* Central Canvas: The primary workspace where the infographic is built. Drag-and-drop functionality, multi-selection, alignment tools, snapping guides.

* Right Panel (Properties Panel): Contextual panel displaying properties of the currently selected element(s).

* Text: Font, Size, Color, Alignment, Line Height, Letter Spacing.

* Shapes: Fill Color, Border Color, Border Thickness, Opacity, Corner Radius.

* Images: Resize, Crop, Filters, Opacity, Arrange (Bring Forward/Backward).

* Charts: Data Input (table/spreadsheet), Chart Type, Colors, Labels, Axis Settings, Legend.

* Canvas: Background Color/Image, Dimensions, Grid/Guides toggles.

* Bottom Bar (Canvas Tools): Zoom In/Out, Fit to Screen, Layers Panel toggle, Grid/Snap toggle.

4.2. Template Selection Screen

  • Layout: Grid view of pre-designed infographic templates.
  • Features:

* Categories: Filters for industry (e.g., Marketing, Education, Business), type (e.g., Timeline, Process, Comparison, Data-driven), or style.

* Search Bar: To find specific templates.

* Preview: Hover or click to see a larger preview of the template.

* "Use Template" Button: Initiates a new project with the selected template.

4.3. Data Input/Management (for Charts & Graphs)

  • Interface: A modal or dedicated section within the Right Panel when a chart is selected.
  • Features:

* Manual Data Entry: A simple spreadsheet-like interface for entering data directly.

* Import Data: Options to upload CSV, Excel, or Google Sheets links.

* Live Data Connection (Advanced): Future consideration for connecting to external data sources.

* Data Preview: Real-time update of the chart on the canvas as data is entered/modified.

4.4. Export/Share Options

  • Interface: A modal accessible from the Top Bar.
  • Features:

* Download Formats: PNG (high-res, transparent options), JPG, PDF (print-ready), SVG (vector).

* Quality/Resolution Settings: Standard, High, Custom DPI.

* Page Selection: For multi-page infographics.

* Sharing Options: Direct links (view-only), embed code, social media sharing.


5. Color Palettes

5.1. Platform UI Palette

  • Primary Accent: #4A90E2 (Vibrant Blue) - For active states, primary buttons, highlights.
  • Secondary Accent: #50E3C2 (Aqua Green) - For success messages, secondary calls to action.
  • Neutral Dark: #2C3E50 (Dark Navy) - For main text, primary headings, top bar.
  • Neutral Medium: #6C7A89 (Slate Gray) - For secondary text, disabled states, borders.
  • Neutral Light: #EBF0F5 (Light Gray) - For panel backgrounds, separators.
  • Background: #FFFFFF (White) - For canvas, primary content areas.

5.2. Default Infographic Palettes (Examples)

The tool will offer a library of pre-defined, professionally curated color palettes for users to apply to their infographics. Here are examples:

Palette 1: Professional & Corporate

  • Primary: #2C3E50 (Dark Navy)
  • Secondary: #3498DB (Bright Blue)
  • Accent 1: #2ECC71 (Emerald Green)
  • Accent 2: #F39C12 (Orange)
  • Neutral: #BDC3C7 (Silver)
  • Text: #34495E (Dark Slate)

Palette 2: Modern & Creative

  • Primary: #6C5CE7 (Violet)
  • Secondary: #00CEC9 (Turquoise)
  • Accent 1: #FFEAA7 (Light Yellow)
  • Accent 2: #FD79A8 (Pink)
  • Neutral: #F8F8F8 (Off-White)
  • Text: #2D3436 (Dark Gray)

Palette 3: Data-Driven & Accessible (High Contrast)

  • Primary: #1F77B4 (Steel Blue)
  • Secondary: #FF7F0E (Orange-Red)
  • Accent 1: #2CA02C (Forest Green)
  • Accent 2: #D62728 (Brick Red)
  • Accent 3: #9467BD (Purple)
  • Neutral: #C4C4C4 (Light Gray)
  • Text: #000000 (Black)

5.3. Accessibility Considerations

  • Contrast Ratio: Ensure all UI text and infographic content text meets WCAG AA standards (minimum 4.5:1 for normal text, 3:1 for large text). The default palettes will be designed with this in mind.
  • Color Blindness: Offer palettes that are distinct for common forms of color blindness (e.g., using different hues and varying lightness/darkness). Data visualization palettes should avoid relying solely on red/green distinctions.

6. UX Recommendations

6.1. Intuitive & Direct Manipulation

  • Drag-and-Drop: Core interaction for adding elements from the library to the canvas.
  • Direct Editing: Double-clicking text to edit, resizing elements by dragging handles, rotating via a dedicated handle.
  • Contextual Controls: Property panel updates dynamically based on the selected element(s).
  • In-Canvas Editing: Where possible, allow editing directly on the canvas without needing to go to a separate modal (e.g., chart data if minimal).

6.2. Real-time Feedback & Preview

  • Instant Updates: Changes made in the property panel (e.g., font size, color) should reflect immediately on the canvas.
  • Hover States: Provide clear visual feedback when hovering over interactive elements (buttons, library items, canvas elements).
  • Snapping & Alignment Guides: Visual cues that appear when elements are aligned or spaced evenly, facilitating precise placement.

6.3. Undo/Redo & Version Control

  • Unlimited Undo/Redo: Essential for any design tool, allowing users to experiment without fear of losing progress.
  • Auto-Save: Projects should automatically save at regular intervals to prevent data loss.
  • Version History (Optional/Advanced): Allow users to revert to previous saved versions of their infographic.

6.4. Template-First Approach

  • Prominent Template Gallery: Encourage users to start with a template to reduce the learning curve and speed up creation.
  • Easy Customization: Templates should be fully editable, allowing users to modify every element, not just text.

6.5. Smart Defaults & Customization Depth

  • Sensible Defaults: Pre-set values for new elements (e.g., default text size, shape color) that are aesthetically pleasing and functional.
  • Progressive Disclosure: Present basic options initially, with advanced settings available upon request (e.g., "More Options" toggle).
  • Save Custom Styles: Allow users to save their own custom color palettes, font pairings, or element styles for reuse.

6.6. Accessibility

  • Keyboard Navigation: Ensure all interactive elements are reachable and operable via keyboard.
  • Screen Reader Compatibility: Proper semantic HTML and ARIA attributes for screen reader users.
  • High Contrast Mode (Optional): Offer a UI theme with enhanced contrast for users with visual impairments.
  • Descriptive Tooltips: Provide clear, concise tooltips for all icons and complex UI elements.

6.7. Performance & Responsiveness

  • Fast Loading: Optimize assets and code for quick initial load times.
  • Smooth Interactions: Ensure canvas operations (dragging, resizing, zooming) are fluid and responsive.
  • Scalability: The platform should handle complex infographics with many elements without significant performance degradation.

6.8. Onboarding & Guidance

  • Interactive Tutorial (First-time users): A brief, guided tour highlighting key features.
  • Contextual Tooltips/Hints: Small, non-intrusive tips that appear when a user hovers over a new or complex feature.
  • Help Center/Documentation: Easily accessible resources for deeper learning and troubleshooting.

gemini Output

Infographic Creator: Design Specifications & UX Recommendations

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


1. Detailed Design Specifications

The Infographic Creator will be a web-based application designed for desktop use, prioritizing a rich and interactive editing experience.

1.1 Core Functionality

  • Template Library: A curated collection of professionally designed, customizable infographic templates across various categories (e.g., business, education, health, marketing).
  • Start from Scratch: Option to begin with a blank canvas of specified dimensions.
  • Drag-and-Drop Editor: Intuitive interface for adding, resizing, repositioning, and rotating elements.
  • Element Library:

* Text: Various font styles, sizes, colors, alignments, line spacing, and text box shapes.

* Images: Upload custom images, access a stock photo library, image cropping, filters, and transparency.

* Icons: Extensive library of scalable vector icons with customizable colors.

* Shapes: Basic geometric shapes (rectangles, circles, lines, arrows) with customizable fill, stroke, and opacity.

* Charts & Graphs: Data visualization tools (bar, line, pie, area, scatter plots) with data input options.

* Backgrounds: Solid colors, gradients, patterns, and image backgrounds.

  • Customization Tools:

* Color Picker: Hex, RGB, HSL, and eyedropper tool. Support for custom color palettes.

* Alignment & Distribution: Tools to align and evenly distribute selected elements.

* Layer Management: Bring forward, send backward, group/ungroup elements.

* Lock/Unlock: Prevent accidental changes to elements.

* Zoom & Pan: For detailed editing.

* Grid & Guides: For precise placement.

* Undo/Redo: Unlimited history.

  • Data Input for Charts:

* Manual data entry within the editor.

* Import data from CSV, Excel, or Google Sheets.

* Dynamic linking to external data sources (stretch goal).

  • Project Management:

* Auto-save functionality.

* Save and manage multiple infographic projects.

* Duplicate and rename projects.

  • Export & Share:

* Image Formats: PNG (transparent background option), JPG (adjustable quality).

* Vector Format: SVG (for scalability).

* Print-Ready PDF: High-resolution output.

* Social Media Optimized: Pre-set dimensions for common platforms.

* Direct sharing options (e.g., link sharing, embed code).

1.2 Technical Considerations

  • Web Technologies: Frontend (React/Vue/Angular), Backend (Node.js/Python/PHP), Database (MongoDB/PostgreSQL).
  • Scalable Architecture: Designed to handle a growing number of users and features.
  • Performance Optimization: Efficient rendering of canvas elements, fast asset loading, optimized image processing.
  • Security: Secure user authentication, data storage, and asset management.
  • Cross-Browser Compatibility: Support for modern web browsers (Chrome, Firefox, Safari, Edge).

2. Wireframe Descriptions

The user interface will be structured around a clear and efficient workflow, minimizing cognitive load and maximizing creative freedom.

2.1 Dashboard / Template Selection Screen

  • Layout:

* Header: Logo, user profile/account management, "Create New" button.

* Main Area:

* "My Projects" Section: Displays recently edited or saved projects as cards with thumbnails, project name, and last modified date. Options to "Edit," "Duplicate," "Delete."

* "Start New Infographic" Section:

* "Start from Scratch" Card: Prominent button to begin with a blank canvas, prompting for canvas dimensions.

* Template Categories: Tabs or filters (e.g., Business, Marketing, Education, Health, etc.).

* Template Gallery: Grid view of customizable templates with thumbnails and short descriptions. Hovering over a template shows a "Preview" and "Use Template" button.

* Search Bar: For finding specific templates or projects.

  • User Flow: User logs in -> lands on Dashboard -> can continue an existing project or select a new template/start from scratch.

2.2 Editor Interface

  • Layout:

* Top Bar (Global Controls):

* Logo/Back to Dashboard.

* Project Title (editable).

* "Save" button (with auto-save status indicator).

* "Undo" / "Redo" buttons.

* "Zoom" controls (slider, percentage input, Fit to Screen).

* "Share" / "Download" buttons.

* User Profile.

* Left Sidebar (Element Library & Layers):

* Tabs/Sections:

* Templates: Browse and apply new templates or template sections.

* Text: Pre-designed text blocks, headings, body text.

* Images: Upload, Stock Library.

* Icons: Searchable icon library.

* Shapes: Basic shapes, lines, arrows.

* Charts: Bar, Pie, Line, Area, Scatter.

* Backgrounds: Solid, Gradient, Pattern, Image.

* Uploads: User's uploaded assets.

* Layers: List of all elements on the canvas, with visibility toggle, lock, and reordering (drag-and-drop).

* Central Canvas Area:

* The main workspace where the infographic is built.

* Visible grid lines (toggleable).

* Drag-and-drop elements onto the canvas.

* Selection handles for resizing, rotating, and moving elements.

* Contextual smart guides for alignment.

* Right Sidebar (Properties Panel):

* Contextual: Displays properties of the currently selected element(s).

* Text Properties: Font family, size, color, bold, italic, underline, alignment, line height, letter spacing.

* Image Properties: Crop, filters, transparency, border, shadow.

* Shape Properties: Fill color, stroke color, stroke width, border radius.

* Chart Properties: Data input table/upload, chart type, axis labels, legend, colors.

* Position & Size: X/Y coordinates, Width/Height, Rotation.

* Opacity: Slider control.

* Layer Order: Bring forward/backward, send to front/back.

* Lock/Unlock: Toggle.

* Group/Ungroup: Button.

  • User Flow: User selects a template or starts blank -> lands in Editor -> adds/modifies elements using sidebars and canvas -> saves/downloads.

2.3 Chart Data Input Modal / Panel

  • Layout:

* Header: Chart type, "Close" button.

* Data Entry Area:

* Table View: Spreadsheet-like interface for manual data input (rows/columns for categories/values).

* Import Options: Buttons for "Upload CSV," "Upload Excel," "Connect Google Sheets."

* Example Data: Pre-filled data to guide users.

* Chart Settings:

* Axis Labels, Legend visibility, Data labels.

* Color palette for chart series.

* "Apply" Button: Updates the chart on the canvas.

  • User Flow: User adds a chart element -> clicks on the chart -> Properties Panel opens "Edit Data" -> Modal/Panel appears -> user inputs/imports data -> applies changes.

2.4 Export / Download Options Modal

  • Layout:

* Header: "Export Infographic," "Close" button.

* Format Selection: Radio buttons/dropdown for PNG, JPG, SVG, PDF.

* Format-Specific Options:

* PNG/JPG: Quality slider, Transparent background (PNG only), Dimensions (actual, custom, social media presets).

* PDF: Print quality, Embed fonts.

* SVG: Export options.

* Preview Area: Small thumbnail preview of the infographic.

* "Download" Button.

  • User Flow: User clicks "Download" -> Modal appears -> user selects format and options -> clicks "Download."

3. Color Palettes

We will offer a selection of professional and versatile color palettes, allowing users to choose or create their own. The UI itself will adhere to a clean, modern, and accessible palette.

3.1 UI System Palette (for the editor interface itself)

  • Primary Accent: #4A90E2 (A professional, trustworthy blue)
  • Secondary Accent: #50E3C2 (A subtle, refreshing teal for highlights)
  • Background: #F9FAFC (Very light grey for main content areas)
  • Panel Background: #FFFFFF (Pure white for sidebars and modals)
  • Text - Dark: #333333 (For primary headings and body text)
  • Text - Light: #666666 (For secondary text, descriptions)
  • Borders/Dividers: #E0E0E0 (Light grey for subtle separation)
  • Error/Warning: #D0021B (Red)
  • Success: #7ED321 (Green)

3.2 Infographic Content Palettes (for user selection)

Palette 1: "Professional & Corporate"

  • Primary: #2C3E50 (Dark Navy Blue)
  • Secondary: #3498DB (Vibrant Sky Blue)
  • Accent 1: #27AE60 (Emerald Green)
  • Accent 2: #F39C12 (Orange Gold)
  • Neutral 1: #ECF0F1 (Light Grey)
  • Neutral 2: #BDC3C7 (Medium Grey)
  • Text: #2C3E50, #ECF0F1 (for dark backgrounds)
  • Use Case: Business reports, financial summaries, formal presentations.

Palette 2: "Vibrant & Creative"

  • Primary: #FF6B6B (Coral Red)
  • Secondary: #FFE66D (Sunny Yellow)
  • Accent 1: #4ECDC4 (Turquoise)
  • Accent 2: #C70039 (Deep Berry)
  • Neutral 1: #F7F7F7 (Off-white)
  • Neutral 2: #A2A2A2 (Soft Grey)
  • Text: #333333, #F7F7F7
  • Use Case: Marketing, social media, educational content, creative projects.

Palette 3: "Minimalist & Modern"

  • Primary: #34495E (Charcoal Grey)
  • Secondary: #9B59B6 (Soft Violet)
  • Accent 1: #1ABC9C (Teal)
  • Accent 2: #E67E22 (Burnt Orange)
  • Neutral 1: #F0F0F0 (Very Light Grey)
  • Neutral 2: #CCCCCC (Light Grey)
  • Text: #34495E, #F0F0F0
  • Use Case: Tech, startups, contemporary design, clean data visualization.

4. UX Recommendations

User experience is paramount for a creative tool. These recommendations focus on making the Infographic Creator intuitive, efficient, and enjoyable to use.

4.1 Intuitive Interaction Design

  • Direct Manipulation: Emphasize drag-and-drop for placement, resizing, and rotation of elements directly on the canvas.
  • Contextual Tools: Property panels should adapt to the selected element, showing only relevant options.
  • Smart Guides & Snapping: Visual cues (lines, alignment indicators) appear automatically to help users align and distribute elements precisely. Elements should snap to grid, other elements, and canvas edges.
  • Undo/Redo Visibility: Clearly visible and accessible undo/redo buttons with a history panel (optional, advanced feature).

4.2 Clear Visual Hierarchy & Feedback

  • Clean Interface: Minimize clutter. Use ample whitespace. Sidebars should be collapsible or resizable if possible.
  • Consistent Iconography: Use a consistent style for all icons to denote functionality clearly.
  • Real-time Previews: All changes (color, font, size, data updates) should be reflected instantly on the canvas.
  • Loading States: Provide clear visual feedback (spinners, progress bars) for actions that take time (e.g., image upload, data import, export).
  • Error Handling: Provide clear, actionable error messages rather than generic alerts.

4.3 Efficiency & Productivity

  • Keyboard Shortcuts: Implement common shortcuts (e.g., Ctrl/Cmd+C/V/X, Z/Y, A for select all, arrow keys for fine-tuning position).
  • Grouping & Layering: Easy access to group/ungroup elements and manage layers to work with complex designs.
  • Template Customization: Templates should be fully customizable, allowing users to modify every element while providing a strong starting point.
  • Asset Management: A dedicated "Uploads" section for users to easily access their own images and files across projects.
  • Search Functionality: Robust search for templates, icons, and stock images.

4.4 Onboarding & Support

  • First-Time User Experience (FTUE): A brief, interactive tutorial or tooltip system for new users highlighting key features.
  • Help & Documentation: Easily accessible help center with FAQs, video tutorials, and best practices for infographic design.
  • Tooltips: Informative tool
gemini Output

Finalized Infographic Design Assets & Specifications

This document outlines the comprehensive design specifications, wireframe descriptions, color palettes, and user experience (UX) recommendations for your infographic. These assets are designed to ensure a professional, engaging, and highly effective visual communication tool, ready for implementation.


1. Overall Infographic Design Principles

The core design philosophy for this infographic centers on clarity, engagement, and effective data storytelling. We aim to create a visually appealing and easily digestible piece that educates, informs, and persuades its audience. Key principles include:

  • Clarity & Readability: Ensuring all text and data visualizations are easy to read and understand at a glance.
  • Visual Hierarchy: Guiding the viewer's eye through the content logically and highlighting key information.
  • Brand Consistency: Integrating brand elements seamlessly (if provided) to reinforce identity.
  • Engagement: Using compelling visuals, concise text, and a logical flow to maintain viewer interest.
  • Actionability: Clearly communicating the main takeaway or call to action.

2. Detailed Design Specifications

These specifications provide the foundational elements for constructing your infographic.

2.1. Target Audience & Purpose

  • Target Audience: General public, industry professionals, stakeholders (adapt based on specific content).
  • Purpose: To inform, educate, explain a process, present data, compare concepts, or advocate for a specific idea (adapt based on specific content).

2.2. Infographic Type (Assumed Example)

  • Type: Data-Driven Explainer / Process & Statistical Infographic. This type typically combines statistical data with a sequential explanation or comparison, ideal for complex topics.

2.3. Key Visual Elements & Iconography

  • Style: Modern, clean, flat or semi-flat design with subtle shadows/gradients for depth. Vector-based for scalability.
  • Consistency: All icons and illustrations will maintain a consistent stroke weight, corner radius, and color scheme.
  • Icon Library: Utilize a curated library of professional, relevant icons (e.g., from Noun Project, Font Awesome, custom designs) to represent concepts, categories, and data points.
  • Usage: Icons should simplify complex ideas, break up text, and provide visual cues without cluttering the design.

2.4. Data Visualization Components

  • Chart Types:

* Bar Charts: For comparing discrete categories or tracking changes over time.

* Line Charts: For showing trends or progress over continuous data.

* Pie/Donut Charts: For illustrating proportions of a whole (use sparingly, for 2-5 categories).

* Area Charts: For showing magnitude of change over time.

* Infographic-specific Visuals: Pictograms, icon arrays, call-out numbers for key statistics.

  • Clarity: All charts will have clear labels, legends, and concise titles. Avoid 3D charts or overly complex designs.
  • Data Integrity: Visualizations will accurately represent data without distortion or misrepresentation.
  • Annotations: Use call-out boxes, arrows, and highlight colors to draw attention to critical data points or insights.

2.5. Typography

  • Font Pairing Strategy: A maximum of two complementary fonts will be used to maintain readability and visual harmony.

* Headline Font (Serif or Sans-Serif): Bold, impactful, and easy to read at larger sizes.

Example:* Montserrat Bold, Lato Black, Open Sans ExtraBold

* Body Font (Sans-Serif): Highly readable at smaller sizes, neutral, and clean.

Example:* Lato Regular/Bold, Open Sans Regular/SemiBold, Roboto Regular/Medium

  • Font Sizing & Hierarchy:

* Main Title: 36-48pt (or larger, depending on infographic dimensions)

* Section Titles: 24-32pt

* Subheadings: 18-22pt

* Body Text: 12-16pt (ensure minimum 10pt for dense data labels)

* Captions/Sources: 8-10pt

  • Line Spacing (Leading): 1.2 to 1.5 times the font size for optimal readability.
  • Color Contrast: Ensure sufficient contrast between text and background colors (WCAG AA standards minimum).

2.6. Imagery & Illustrations

  • Style: Consistent with the overall visual theme (e.g., modern vector art, abstract shapes, high-quality photography with consistent filters).
  • Purpose: To set the mood, illustrate complex concepts, or provide visual breaks.
  • Integration: Images will be seamlessly integrated into the layout, often with text overlays, masking, or as background elements that don't distract from core content.

2.7. Call to Action (CTA)

  • Placement: Prominently featured at the end of the infographic, or strategically placed within relevant sections.
  • Design: A clear, contrasting button or text link.
  • Content: Concise and actionable (e.g., "Learn More," "Download Report," "Visit Our Website").

2.8. Branding Integration

  • Logo Placement: Discreetly but clearly visible, typically in the header or footer.
  • Brand Colors: Primary brand colors will be incorporated into the infographic's palette.
  • Brand Fonts: If specific brand fonts are available and suitable, they will be prioritized.
  • Brand Guidelines: Adherence to any provided brand style guides (e.g., tone of voice, imagery guidelines).

3. Wireframe Descriptions (Conceptual Layout)

The infographic will be structured vertically, guiding the viewer through a logical narrative flow. Each section serves a distinct purpose in building the overall message.

3.1. Header Section

  • Content:

* Main Title: Clear, concise, and attention-grabbing, summarizing the infographic's core topic.

* Subtitle/Tagline: A brief sentence providing context or a key benefit.

* Brand Logo: Top left or right corner.

  • Layout: Prominent title, potentially with a large hero image or abstract background graphic.

3.2. Introduction / Problem Statement Section

  • Content:

* Hook/Opening Statistic: A compelling data point or question to immediately engage the reader.

* Brief Overview: 1-2 paragraphs introducing the topic, problem, or key challenge the infographic addresses.

  • Layout: Text-heavy, but broken up with an illustrative icon or small visual. Clear section heading.

3.3. Key Data / Insights Sections (Multiple Subsections)

  • Content:

* Each subsection will focus on a specific data point, trend, or aspect of the topic.

* Data Visualizations: Charts, graphs, pictograms, and call-out numbers presenting statistics.

* Supporting Text: Concise explanations for each visualization, highlighting the key takeaway.

* Icons: Used to visually categorize or represent concepts.

  • Layout: Alternating layouts (e.g., left-aligned text with right-aligned visual, vice-versa, or central visual with text on both sides) to maintain visual interest. Ample white space between elements.

3.4. Process / Solution Section (If Applicable)

  • Content:

* Step-by-Step Explanation: Breaking down a complex process, solution, or timeline into digestible steps.

* Visual Cues: Numbered steps, arrows, flow lines, or sequential icons.

  • Layout: Linear flow, often using a central vertical line connecting different stages, or a multi-column grid for parallel processes.

3.5. Conclusion / Summary Section

  • Content:

* Key Takeaways: 2-3 bullet points summarizing the most important insights or recommendations.

* Future Outlook/Impact: A brief statement on the implications or next steps.

  • Layout: A distinct block, often using a different background color or border to signify a summary.

3.6. Footer / Call to Action Section

  • Content:

* Call to Action (CTA): A prominent button or link encouraging further engagement.

* Source Information: Citing data sources for credibility.

* Contact Information / Social Media Links: Optional, but useful for digital sharing.

* Brand Logo: Final brand reinforcement.

  • Layout: Clear, concise, and distinct from the main content. Often uses a solid background color.

4. Color Palettes

A balanced and harmonious color palette is crucial for readability, visual appeal, and brand consistency.

4.1. Primary Palette (Professional & Trustworthy)

  • Purpose: Dominant colors for backgrounds, large text elements, and primary data visualizations.
  • Colors:

* Deep Blue: #2C3E50 (Primary background, strong headings) - Represents trust, stability, professionalism.

* Light Gray: #F4F6F8 (Main background, subtle separation) - Provides clean contrast and readability.

* Mid Gray: #7F8C8D (Body text, secondary elements) - Ensures good contrast against light backgrounds.

* White: #FFFFFF (Text, specific elements) - For maximum contrast and clean space.

4.2. Secondary Palette (Supportive & Harmonious)

  • Purpose: For subheadings, borders, icons, and less prominent data visualizations.
  • Colors:

* Teal: #1ABC9C (Accent for important data, icons) - Adds a touch of modern vibrancy.

* Soft Green: #2ECC71 (Positive indicators, growth) - Conveys nature, growth, positivity.

* Subtle Yellow: #F1C40F (Highlighting, warnings) - For attention-grabbing elements.

4.3. Accent Colors (Strategic Highlights)

  • Purpose: To draw immediate attention to key statistics, CTAs, or critical insights. Use sparingly.
  • Colors:

* Vibrant Orange: #E67E22 (CTA buttons, critical alerts) - Energetic, draws attention.

* Deep Red: #C0392B (Negative indicators, warnings) - For emphasis on caution or decline.

4.4. Usage Guidelines

  • Contrast: Always ensure sufficient contrast between text and background colors (WCAG AA standards).
  • Hierarchy: Use darker, more saturated colors for primary information and lighter, less saturated colors for background elements.
  • Consistency: Apply colors consistently to similar types of information throughout the infographic (e.g., all positive data points use green).
  • Brand Integration: If brand colors are provided, this palette will be adjusted to incorporate them seamlessly while maintaining visual harmony.

5. User Experience (UX) Recommendations

Beyond aesthetics, a successful infographic delivers an excellent user experience, ensuring the message is effectively conveyed and easily consumed.

5.1. Readability & Flow

  • Logical Progression: Guide the viewer's eye from top to bottom, left to right, following a clear narrative.
  • Chunking Information: Break down complex information into small, digestible chunks. Each section should have a clear purpose.
  • Whitespace: Utilize generous whitespace around elements to prevent visual clutter and improve comprehension.
  • Concise Copy: All text should be succinct and to the point. Avoid jargon where possible.

5.2. Visual Hierarchy

  • Size & Scale: Use larger fonts and visuals for the most important information.
  • Color & Contrast: Employ contrasting colors to highlight key data points or sections.
  • Placement: Position critical information centrally or at the beginning/end of sections.
  • Repetition: Consistent use of design elements (e.g., icon style, chart colors) reinforces structure.

5.3. Interactivity (for Digital Infographics)

  • Hover States: Provide tooltips on data points or icons to reveal additional details or explanations.
  • Clickable Elements: Make CTAs, source links, and relevant external links clickable.
  • Scroll-Triggered Animations: Subtle animations that appear as the user scrolls can enhance engagement without distracting.
  • Embeddability: Ensure the infographic can be easily embedded on websites or blogs using an iframe.

5.4. Accessibility

  • Alt Text: Provide descriptive alt text for the entire infographic image (if static) or for individual images and data visualizations (if interactive).
  • Color Blindness: Avoid relying solely on color to convey information. Use patterns, textures, or labels in addition to color.
  • Text Contrast: Adhere to WCAG AA guidelines for text and background color contrast.

5.5. Responsiveness (for Digital Infographics)

  • Adaptability: The infographic design should ideally adapt gracefully to different screen sizes (desktop, tablet, mobile).
  • Modular Design: If highly complex, consider a modular approach where sections stack or rearrange for smaller screens, ensuring content remains legible and accessible.
  • Image Optimization: Optimize image sizes and formats (e.g., WebP, SVG) for fast loading times across devices.

5.6. Shareability

  • Social Media Integration: Include clear share buttons for popular platforms (Facebook, Twitter, LinkedIn, Pinterest) if published online.
  • Download Option: Offer a high-resolution downloadable PDF or image file for offline viewing and printing.
  • Embed Code: Provide an easy-to-copy embed code for websites and blogs.

This comprehensive design blueprint provides a robust foundation for creating a professional, engaging, and highly effective infographic. We are ready to proceed with content integration and visual asset generation based on these finalized specifications.

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);}});}