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

Infographic Creator: Design Requirements & Specifications

This document outlines the comprehensive design requirements and specifications for the "Infographic Creator" workflow, ensuring a professional, intuitive, and highly functional tool. This output serves as the foundation for subsequent development and design phases.


1. Detailed Design Specifications

The Infographic Creator aims to empower users to produce high-quality, engaging, and data-driven infographics with minimal effort and design expertise.

1.1 Core Purpose & Vision

To be the go-to platform for individuals and businesses to easily transform complex data and information into visually compelling and shareable infographics, fostering clarity, engagement, and effective communication.

1.2 Target Audience

  • Marketers & Sales Professionals: Creating engaging content for campaigns, presentations, and social media.
  • Small Business Owners: Designing promotional materials, explaining services, or presenting business insights.
  • Educators & Students: Visualizing concepts, presenting research, or summarizing information.
  • Content Creators & Bloggers: Enhancing articles and blog posts with visual summaries.
  • Data Analysts (basic needs): Presenting data insights in an accessible, visual format.

1.3 Key Functional Features

  • Extensive Template Library:

* Categorized by industry (e.g., Marketing, Business, Education, Health).

* Categorized by type (e.g., Statistical, Process, Timeline, Comparison, Geographic, List).

* Professionally designed, fully customizable templates.

* Ability to save custom templates.

  • Intuitive Drag-and-Drop Editor:

* Canvas-based editing with precise control over element placement, sizing, and rotation.

* Layer management (bring forward, send backward).

* Alignment and distribution tools.

* Grouping and ungrouping of elements.

  • Rich Asset Library:

* Icons: Vast collection of vector icons, searchable by keyword, customizable color.

* Illustrations: Curated sets of high-quality vector illustrations.

* Photos: Integration with stock photo libraries (e.g., Unsplash, Pexels) or direct upload.

* Shapes & Lines: Basic geometric shapes, arrows, connectors.

  • Advanced Text Editing:

* Wide range of professional fonts (Google Fonts integration).

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

* Text boxes with resize and rotation handles.

* Pre-designed text styles (headings, subheadings, body text).

  • Data Visualization Tools:

* Chart Types: Bar charts (horizontal/vertical), line charts, pie charts, donut charts, area charts, scatter plots, bubble charts, progress bars.

* Data Input: Manual data entry, CSV upload, copy-paste from spreadsheets.

* Data Mapping: Easy linking of data to chart elements.

* Customization: Chart colors, labels, legends, axes, data point styling.

  • Branding & Customization:

* Upload custom logos.

* Define brand color palettes for quick application.

* Custom font uploads (premium feature).

  • Export & Sharing Options:

* Image Formats: PNG, JPG (with quality options).

* Vector Format: SVG (for scalability, premium feature).

* Document Format: PDF (print and web optimized).

* Web Embed: Responsive embed code for websites.

* Direct Social Sharing: Integration with major social media platforms.

  • AI-Powered Assistance (Future Enhancement):

* Content suggestions based on keywords.

* Layout suggestions for optimal visual hierarchy.

* Color palette recommendations based on input themes.

  • Project Management:

* Dashboard to view, organize, and manage all created infographics.

* Autosave functionality and version history.

* Folder organization.

1.4 Design Principles

  • Simplicity & Clarity: Clean interface, easy-to-understand tools, minimal cognitive load.
  • Professionalism: High-quality visual assets, elegant typography, polished design.
  • User-Centricity: Focus on user goals, intuitive workflows, helpful feedback.
  • Consistency: Uniform UI elements, predictable interactions, cohesive visual language.
  • Flexibility: Allow for extensive customization while guiding users towards good design practices.
  • Performance: Fast loading times, smooth interactions, responsive editor.

2. Wireframe Descriptions

The following outlines the key screens and their primary components, serving as a blueprint for the user interface.

2.1 Dashboard / Home Screen

  • Header: Logo, "New Infographic" button, User Profile/Account settings, Search bar for templates/projects.
  • Left Sidebar Navigation:

* "My Projects" (default view)

* "Templates"

* "Brand Kit"

* "Inspiration/Examples"

* "Help & Support"

  • Main Content Area - "My Projects":

* Grid or list view of recent or all infographics.

* Each project card includes: Thumbnail, Title, Last Modified Date, Options (Edit, Duplicate, Delete, Share).

* Filtering/Sorting options (Date, Name, Type).

  • Main Content Area - "Templates":

* Categorized template browser (e.g., "Popular", "New", "Business", "Marketing", "Education").

* Search bar for templates.

* Preview modal on hover/click with "Use Template" button.

2.2 Infographic Editor Canvas

  • Top Bar:

* Logo/Back to Dashboard.

* Project Title (editable).

* Undo/Redo buttons.

* Zoom controls (fit to screen, percentage slider).

* "Share" button, "Download/Export" button.

  • Left Sidebar - Element Panel:

* Sections: "Templates", "Text", "Elements" (Icons, Shapes, Illustrations), "Photos", "Data" (Charts), "Uploads", "Background".

* Clicking a section expands it to show options/assets.

* Search bar within each section.

* Drag-and-drop elements onto the canvas.

  • Central Canvas Area:

* The main workspace where the infographic is built.

* Adjustable canvas size (e.g., common infographic dimensions, custom).

* Snap lines, grid overlay (toggleable).

* Selected elements show bounding boxes, resize handles, rotation handle.

* Contextual menu on right-click for selected elements (e.g., Duplicate, Delete, Bring Forward, Send Backward, Group).

  • Right Sidebar - Properties Panel:

* Contextual: Changes based on the selected element (e.g., Text box selected -> Font, Size, Color, Alignment; Chart selected -> Data input, Chart type, Colors, Labels).

* General Properties: Position (X, Y), Size (Width, Height), Rotation, Opacity, Layers (Z-index control).

* Color Picker: Hex code input, RGB/HSL sliders, eyedropper tool, saved brand colors.

* Background Settings: Color fill, gradient, image upload, pattern.

2.3 Data Input & Chart Customization Modal

  • Tabbed Interface: "Data" and "Settings".
  • Data Tab:

* Spreadsheet-like interface for manual data entry.

* "Import CSV" button.

* "Copy/Paste Data" area.

* Clear labels for rows/columns.

  • Settings Tab:

* Chart Type selector (with visual previews).

* Color palette selector for chart elements.

* Axis labels, legend visibility, data labels.

* Animation options (if applicable for web embed).

2.4 Export/Share Dialog

  • Export Tab:

* File Format selection (PNG, JPG, PDF, SVG).

* Quality/Resolution slider (for raster formats).

* "Download" button.

  • Share Tab:

* Social media platform buttons (Facebook, Twitter, LinkedIn, Pinterest).

* "Get Embed Code" option (responsive iframe).

* "Copy Link" (for web preview).

* Email sharing option.


3. Color Palettes

A well-defined color palette ensures brand consistency for the tool itself and provides versatile options for users creating their infographics.

3.1 UI & Branding Palette (for the Infographic Creator tool itself)

  • Primary Brand Color: #007BFF (A vibrant, professional blue – evokes trust, intelligence, and clarity).
  • Secondary Accent Color: #28A745 (A confident green – for success, positive actions, save buttons).
  • Neutral Palette (for backgrounds, text, borders):

* Light Gray Background: #F8F9FA

* Medium Gray UI Elements: #E9ECEF

* Dark Gray Text: #343A40

* Subtle Text/Icons: #6C757D

* White: #FFFFFF (for canvas, primary content areas)

  • Alert/Feedback Colors:

* Success: #28A745

* Warning: #FFC107

* Error: #DC3545

3.2 Example Infographic Content Palettes (for user selection)

These are examples of pre-defined palettes users can apply to their infographics, demonstrating diverse aesthetic options.

Palette 1: "Professional & Corporate"

  • Primary: #004C8C (Deep Blue)
  • Secondary: #FF8C00 (Amber Orange)
  • Accent 1: #6A5ACD (Slate Blue)
  • Accent 2: #3CB371 (Medium Sea Green)
  • Neutrals: #F5F5F5, #607D8B

Palette 2: "Vibrant & Creative"

  • Primary: #FF6347 (Tomato Red)
  • Secondary: #4682B4 (Steel Blue)
  • Accent 1: #FFD700 (Gold)
  • Accent 2: #32CD32 (Lime Green)
  • Neutrals: #FDF5E6, #4B0082

Palette 3: "Minimalist & Modern"

  • Primary: #2F4F4F (Dark Slate Gray)
  • Secondary: #A9A9A9 (Dark Gray)
  • Accent 1: #F0F8FF (Alice Blue)
  • Accent 2: #B0C4DE (Light Steel Blue)
  • Neutrals: #FFFFFF, #D3D3D3

Accessibility Note: All pre-defined palettes will be designed with sufficient contrast ratios (WCAG 2.1 AA or AAA standards) to ensure readability for all users, including those with visual impairments. The tool will also provide a contrast checker for custom color combinations.


4. UX Recommendations

User experience is paramount for an Infographic Creator, ensuring ease of use, efficiency, and delight.

4.1 Onboarding & First-Time Experience

  • Interactive Tutorial: A brief, guided tour highlighting key features (template selection, drag-and-drop, data input, export).
  • Contextual Tooltips: Small, non-intrusive tooltips appearing when a user hovers over an unfamiliar icon or feature.
  • Empty State Guidance: When a user's project list is empty, provide clear calls to action like "Start from a Template" or "Create New Infographic."

4.2 Editor Usability & Efficiency

  • Intuitive Drag-and-Drop: Ensure smooth, responsive, and predictable drag-and-drop behavior for all elements.
  • Smart Guides & Snapping: Automatic alignment guides appearing when elements are moved, aiding precise placement and consistent spacing.
  • Keyboard Shortcuts: Implement common shortcuts (e.g., Ctrl+C/V for copy/paste, Ctrl+Z/Y for undo/redo, Delete, Arrow keys for fine-tuning position).
  • Real-time Previews: Any change to an element (color, font, data) should reflect instantly on the canvas.
  • Contextual Menus: Right-click menus on selected elements to provide quick access to relevant actions (e.g., duplicate, delete, send to back, group).
  • Layer Management: A clear and accessible layers panel (e.g., in the right sidebar) allowing users to easily reorder, hide, and lock elements.
  • Infinite Canvas / Auto-Scrolling: If the infographic exceeds the current view, allow the canvas to scroll seamlessly.

4.3 Feedback & Error Handling

  • Clear Success Messages: Brief, non-obtrusive messages for successful actions (e.g., "Infographic Saved," "Image Downloaded").
  • Actionable Error Messages: Informative messages for errors (e.g., "CSV import failed: Check file format," "Image upload failed: Max file size exceeded"), with suggestions for resolution.
  • Loading Indicators: Visually engaging indicators for operations that take time (e.g., "Loading Templates," "Generating PDF").
  • Autosave Confirmation: A small, temporary message indicating when the project has been automatically saved.

4.4 Accessibility & Inclusivity

  • High Contrast UI: Ensure the tool's interface itself meets WCAG 2.1 AA standards for contrast, making it readable for users with
gemini Output

Infographic Creator: Detailed Design Specifications

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


1. Detailed Design Specifications

The Infographic Creator will be a web-based application, primarily optimized for desktop use, leveraging a drag-and-drop interface for maximum usability.

1.1 Core Features & Modules

  • Dashboard/Project Management:

* Central hub for users to start new projects, access templates, and manage existing infographics.

* Displays recent projects, drafts, and completed designs with search and filtering capabilities.

  • Template Library:

* A rich collection of professional, customizable templates categorized by industry, purpose (e.g., data visualization, process flow, timeline), and style.

* Templates should be fully editable, serving as a starting point rather than a rigid structure.

  • Canvas Editor (Main Design Interface):

* Drag-and-Drop Functionality: Seamless addition and manipulation of elements.

* Real-time Preview (WYSIWYG): Users see exactly what the final output will look like.

* Layer Management: Ability to arrange elements forward/backward, group/ungroup.

* Grid System & Smart Guides: For precise alignment, spacing, and distribution of elements.

* Undo/Redo History: Comprehensive history of actions for easy corrections.

* Zoom & Panning: For detailed work and overall layout review.

  • Elements Panel (Left Sidebar):

* Text: Headings, subheadings, body text, lists with diverse font options, styles, and formatting.

* Images: Upload functionality, integration with a stock photo library, basic image editing (crop, filters, opacity).

* Icons: Extensive library of scalable vector icons (SVG), categorized for easy search, custom icon upload.

* Shapes: Basic geometric shapes, decorative elements, lines, arrows.

* Charts: Data-driven charts including Bar, Line, Pie, Donut, Area, Scatter, Radar, Funnel, Gauge. Supports manual data entry, CSV import, and potential API integrations.

* Maps: Choropleth maps (region-based data), point maps (location-based data) with customizable colors and data linking.

* Uploads: Dedicated section for user-uploaded assets (images, logos, custom icons).

  • Properties Panel (Right Sidebar):

* Context-sensitive panel displaying options for the currently selected element.

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

* Image: Size, position, rotation, opacity, border, shadow, crop, filters, replace.

* Shape/Icon: Fill color, border color/thickness, opacity, shadow, size, position, rotation.

* Chart/Map: Data input/editing, chart type, color palette for data series, labels, axes settings, legends, tooltips.

* General: Position (X/Y), size (W/H), rotation, layer order (bring to front, send to back), lock element.

  • Branding Kit Integration:

* Allows users to define and save brand-specific colors, fonts, and upload logos for consistent application across all designs.

  • Export & Share Options:

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

* Document Formats: PDF (print-ready, web-optimized).

* Vector Format: SVG (for high-quality scaling).

* Embed Code: For embedding infographics directly into websites.

* Direct Link Sharing: For easy sharing with collaborators or public viewing.

1.2 Content Types & Customization

  • Text: Full control over typography, including custom font uploads (premium feature).
  • Visuals: Extensive libraries for stock photos and icons, with robust search and filtering.
  • Data Visualization: Advanced options for data import, real-time chart updates, and customizable chart elements (axes, legends, labels, colors).
  • Layouts: Pre-designed sections (headers, footers, content blocks) within templates for quick assembly.

2. Wireframe Descriptions

The following outlines the key screens and their primary components, providing a structural blueprint for the user interface.

2.1. Dashboard / Home Screen

  • Header:

* Logo (left), User Profile/Account menu (right), Help/Support link, "Upgrade" CTA (if applicable).

  • Main Content Area:

* Large "Create New Infographic" button (prominently featured).

* "Browse Templates" button.

* "My Projects" Section:

* Displays a grid or list of recently edited/saved infographics.

* Each project card includes a thumbnail, title, last modified date, and contextual menu (Edit, Duplicate, Delete, Export).

* Search bar and filters (e.g., by date, name, status).

  • Optional Left Sidebar:

* Links to "Templates," "Brand Kit," "Tutorials," "Trash."

2.2. Template Selection Screen

  • Header:

* Similar to Dashboard, with a "Back to Dashboard" option.

  • Left Sidebar:

* Categories: List of infographic categories (e.g., Business, Education, Marketing, Science, Health).

* Filters: Orientation (Portrait, Landscape, Square), Free/Premium, Style (Minimalist, Modern, Playful).

* Search Bar: To find templates by keywords.

  • Main Content Area:

* Grid display of template thumbnails.

* Hovering over a thumbnail provides a larger preview and "Use Template" / "Preview" buttons.

* Infinite scroll or pagination for large template libraries.

2.3. Infographic Editor (Main Canvas)

  • Top Bar:

* Project Title (editable).

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

* "Undo" and "Redo" buttons.

* Zoom control (dropdown or slider).

* "Share" button.

* "Export" button (opens export modal).

* "Preview" button (shows final infographic in a new tab/modal).

  • Left Sidebar (Elements Panel):

* Tabs or accordion sections for: "Text," "Images," "Icons," "Shapes," "Charts," "Maps," "Uploads."

* Within each section, a searchable library of elements.

* Elements are drag-and-droppable onto the canvas.

  • Central Canvas Area:

* The primary workspace where the infographic is assembled.

* Displays a visual representation of the infographic with a grid overlay (toggleable).

* Selected elements are highlighted with bounding boxes and resizing/rotation handles.

* Right-click contextual menu for common actions (Copy, Paste, Duplicate, Delete, Bring to Front, Send to Back, Group).

  • Right Sidebar (Properties Panel):

* Dynamically changes based on the selected element(s).

* No Element Selected: Canvas properties (Background color/image, Canvas size/dimensions, Margins).

* Text Element Selected: Font options, color, alignment, spacing, position, size, rotation.

* Image Element Selected: Replace image, crop, filters, opacity, border, shadow, position, size, rotation.

* Chart Element Selected: Data editor (table/CSV upload), chart type, color palette, axis labels, legend settings, animation options (for embeddable charts).

  • Bottom Bar (Optional):

* Page navigation (if multi-page infographics are supported).

* Current canvas dimensions.

2.4. Export / Share Modal

  • Header: "Export Infographic" or "Share Infographic."
  • Content:

* Export Tab:

* File Type Selector: PNG, JPG, PDF, SVG.

* Quality/Resolution Slider (for raster formats).

* Size/Dimensions Input (e.g., "Fit to Content," "Custom").

* Toggle for transparent background (for PNG).

* "Export" button.

* Share Tab:

* Public/Private Toggle.

* Direct Link (copyable).

* Embed Code (copyable HTML for websites).

* Social Media Sharing Buttons (Facebook, Twitter, LinkedIn, Pinterest).


3. Color Palettes

The platform will offer a selection of professional, curated color palettes, while also allowing for full customization and brand kit integration.

3.1. Primary System Palette (Default & UI Elements)

  • Professional & Trustworthy: Utilizes cool tones, suitable for a professional design tool.

* Primary Blue: #2C3E50 (Dark Navy Blue - for headers, primary buttons)

* Secondary Blue: #3498DB (Vibrant Sky Blue - for accents, selected states, interactive elements)

* Accent Green: #2ECC71 (Emerald Green - for success messages, positive indicators)

* Accent Orange: #E67E22 (Warm Orange - for warnings, secondary CTAs)

* Light Grey: #ECF0F1 (Off-white - for backgrounds, inactive elements)

* Medium Grey: #BDC3C7 (Silver - for borders, secondary text)

* Dark Grey: #7F8C8D (Asphalt - for body text, icons)

* White: #FFFFFF (Clean white - for canvas background, text on dark backgrounds)

3.2. Curated Infographic Palettes (For Templates & User Selection)

Users can select from these pre-defined palettes or create their own.

  • 1. "Corporate Fresh":

* #007BFF (Deep Blue), #28A745 (Forest Green), #FFC107 (Golden Yellow), #6C757D (Slate Grey), #F8F9FA (Soft White).

Use Case*: Business reports, professional presentations, data-heavy infographics.

  • 2. "Vibrant Modern":

* #E74C3C (Coral Red), #F1C40F (Bright Yellow), #9B59B6 (Amethyst Purple), #1ABC9C (Aqua Teal), `#3449

gemini Output

Infographic Creator: Final Design Assets & Specifications

This document outlines the comprehensive design specifications, visual guidelines, and user experience recommendations for the infographics generated by the "Infographic Creator" system. The goal is to ensure all outputs are professional, engaging, highly readable, and effective in communicating complex information.


1. Overall Design Philosophy

The core philosophy guiding the design of all infographics produced by the creator revolves around Clarity, Engagement, Professionalism, and Adaptability.

  • Clarity: Information must be presented in an easily digestible and understandable format, minimizing cognitive load. Visuals should support, not obscure, the message.
  • Engagement: Designs should be visually appealing and captivating, encouraging viewers to explore the entire infographic. Strategic use of color, imagery, and layout will maintain interest.
  • Professionalism: All elements will adhere to high aesthetic standards, reflecting credibility and expertise. Clean lines, consistent styling, and thoughtful typography are paramount.
  • Adaptability: The creator should offer flexible templates and customization options to suit diverse content types, brand identities, and target audiences, while maintaining core design principles.

2. Core Infographic Templates/Layouts

The Infographic Creator will offer a suite of robust, pre-designed templates categorized by common infographic types. Each template provides a structured foundation while allowing for extensive customization.

2.1. Timeline Infographic

  • Purpose: Illustrates chronological events, historical progressions, or project milestones.
  • Structure: A clear central axis (horizontal or vertical) with distinct points marking events. Each point includes a date/time and a concise description/visual.
  • Key Elements: Date markers, event descriptions, supporting icons/images, progress indicators.
  • Content Fit: Company history, product development roadmap, historical overviews, project timelines.

2.2. Process/Flow Infographic

  • Purpose: Explains sequential steps in a process, workflow, or how something works.
  • Structure: Numbered steps or clearly delineated stages connected by arrows or visual pathways. Each step includes a title, description, and an illustrative icon/graphic.
  • Key Elements: Numbered stages, directional arrows, icons representing actions/outcomes, brief descriptive text.
  • Content Fit: How-to guides, business processes, instructional steps, customer journeys.

2.3. Comparison Infographic

  • Purpose: Highlights differences and similarities between two or more items, concepts, or entities.
  • Structure: Divided sections (e.g., side-by-side columns, Venn diagram, tabular format) with consistent criteria for comparison.
  • Key Elements: Headings for each item being compared, bullet points or short paragraphs detailing features/benefits, comparison icons (e.g., checkmarks, crosses), rating systems.
  • Content Fit: Product comparisons, service differentiators, before-and-after scenarios, pros and cons.

2.4. Data Visualization Infographic

  • Purpose: Presents statistical data and complex numbers in an easily understandable visual format.
  • Structure: Dominant use of charts, graphs, maps, and other data visualization elements, supported by clear labels and concise explanations.
  • Key Elements: Bar charts, line graphs, pie charts, donut charts, area charts, treemaps, heat maps, callout numbers, geographic maps, legends, data sources.
  • Content Fit: Market research, survey results, performance reports, demographic data, scientific findings.

2.5. List/Categorization Infographic

  • Purpose: Organizes information into a structured list or categorizes related items.
  • Structure: A series of distinct blocks or sections, each representing a list item or category, typically with a heading, icon, and short description.
  • Key Elements: Numbered or bulleted lists, icons for each item, clear section dividers, summary statements.
  • Content Fit: Top N lists, key takeaways, benefits/features, educational facts, resource lists.

3. Detailed Design Specifications

These specifications ensure visual consistency and high quality across all generated infographics.

3.1. Typography

  • Primary Headings (H1):

* Font Family: A strong, modern sans-serif (e.g., Montserrat Bold, Lato Black, Open Sans ExtraBold).

* Size: 36-48pt (for print/high-res web), adaptable for smaller formats.

* Color: Primary brand color or a high-contrast dark color.

* Usage: Main title of the infographic.

  • Section Headings (H2):

* Font Family: Same sans-serif as H1, but regular or semi-bold weight.

* Size: 24-32pt.

* Color: Secondary brand color or high-contrast dark color.

* Usage: Titles for major sections within the infographic.

  • Subheadings/Data Labels (H3):

* Font Family: A slightly lighter weight of the primary sans-serif or a contrasting serif for emphasis (e.g., Merriweather Regular).

* Size: 16-22pt.

* Color: Dark neutral (e.g., #333333).

* Usage: Titles for individual data points, list items, or small sections.

  • Body Text/Descriptions:

* Font Family: A highly readable sans-serif (e.g., Open Sans Regular, Lato Regular, Roboto Regular).

* Size: 12-16pt.

* Color: Dark neutral (e.g., #444444).

* Usage: Main explanatory text, descriptions, bullet points.

  • Captions/Sources/Footnotes:

* Font Family: Same as body text, but lighter weight or italicized.

* Size: 8-10pt.

* Color: Lighter neutral (e.g., #666666).

* Usage: Data sources, small annotations, legal disclaimers.

3.2. Iconography

  • Style: Flat or line-art style (consistent throughout). Avoid overly complex or skeuomorphic icons.
  • Consistency: All icons within a single infographic must adhere to the same visual style (stroke weight, fill, corner radius).
  • Purpose: Enhance understanding, break up text, represent concepts visually, add visual interest.
  • Library: A curated library of professional, scalable vector icons should be available (e.g., from Font Awesome, Noun Project, custom sets).

3.3. Illustrations/Graphics

  • Style: Minimalist, geometric, or abstract illustrations are preferred. If characters are used, they should be simple and inclusive.
  • Purpose: To visually represent complex ideas, create engaging scenes, or add brand personality.
  • Integration: Illustrations should complement, not distract from, the core information. They should align with the overall color palette.

3.4. Data Visualization Elements

  • Chart Types: Support for common chart types (bar, column, line, area, pie, donut, scatter, bubble, radar, treemap, heat map).
  • Consistency:

* Axis Labels: Consistent font size and style.

* Legends: Clear, concise, and consistently placed.

* Colors: Use distinct, accessible colors for different data series, adhering to the chosen color palette.

* Tooltips (for interactive versions): Provide additional data on hover.

* Minimalist Design: Avoid 3D effects, heavy gradients, or excessive grid lines unless functionally necessary. Focus on data ink ratio.

3.5. Layout Grid System

  • Margins: Consistent top, bottom, and side margins (e.g., 50-80px for a standard web infographic).
  • Padding: Consistent padding around text blocks, icons, and visual elements (e.g., 20-30px).
  • Column Structure: Flexible column layouts (e.g., 2-column, 3-column, full-width) to accommodate different content types and ensure readability.
  • Alignment: Strict adherence to left, right, or center alignment for text and elements to create a clean, organized look.

3.6. Image/Photo Integration

  • Quality: High-resolution, professional-grade images only.
  • Relevance: Images must directly support the content and enhance understanding.
  • Style: Consistent visual style (e.g., all photos, all illustrations, or a clear distinction between the two).
  • Cropping/Framing: Consistent aspect ratios and framing for images within a template.
  • Transparency/Overlays: Use of subtle color overlays or transparency may be applied to integrate images more seamlessly with the color palette.

4. Color Palettes

The Infographic Creator will offer a selection of professionally curated color palettes, each designed to evoke a specific mood and ensure visual harmony. Users should also have the option to input custom brand colors.

4.1. Primary Professional Palette: "Corporate Clarity"

  • Mood: Trustworthy, authoritative, sophisticated, clean.
  • Colors:

* Primary Accent: #0A4C6A (Deep Teal Blue) - For headings, key data points, primary CTA.

* Secondary Accent: #E67F00 (Vibrant Orange) - For highlights, secondary data points, contrast.

* Neutrals:

* #2D2D2D (Dark Charcoal) - Main text, strong outlines.

* #5D5D5D (Medium Grey) - Subheadings, secondary text.

* #B0B0B0 (Light Grey) - Backgrounds, subtle dividers, inactive states.

* #F8F8F8 (Off-White) - Main background.

  • Accessibility: High contrast between text and background colors. Teal Blue and Vibrant Orange provide good contrast against neutrals.

4.2. Vibrant & Engaging Palette: "Dynamic Energy"

  • Mood: Energetic, modern, creative, stimulating.
  • Colors:

* Primary Accent: #00B5AD (Turquoise Green) - For headings, key data points.

* Secondary Accent: #FF6B6B (Coral Red) - For highlights, secondary data points, warnings.

* Tertiary Accent: #FFD93D (Sunny Yellow) - For subtle highlights, callouts.

* Neutrals:

* #222831 (Dark Slate) - Main text.

* #393E46 (Medium Slate) - Subheadings.

* #EEEEEE (Light Grey) - Backgrounds, dividers.

* #FFFFFF (White) - Main background.

  • Accessibility: Good contrast, particularly for text. Use lighter colors for larger text elements if background is dark.

4.3. Minimalist & Modern Palette: "Sleek Simplicity"

  • Mood: Elegant, understated, clean, contemporary.
  • Colors:

* Primary Accent: #4A4A4A (Charcoal Grey) - For headings, strong outlines, primary elements.

* Secondary Accent: #A0A0A0 (Medium Grey) - For subtle accents, secondary data.

* Tertiary Accent: #D3D3D3 (Light Grey) - For subtle highlights, dividers.

* Neutrals:

* #1A1A1A (Near Black) - Main text.

* #F5F5F5 (Very Light Grey) - Main background.

* #FFFFFF (White) - Card backgrounds, highlights.

  • Accessibility: Relies heavily on contrast in shades of grey. Ensure sufficient contrast for smaller text.

4.4. Data-Centric Palette: "Analytical Focus"

  • Mood: Objective, clear, trustworthy, professional. Specifically designed for data visualization.
  • Colors:

* Primary Data Series: #2874A6 (Medium Blue)

* Secondary Data Series: #2ECC71 (Emerald Green)

* Tertiary Data Series: #F39C12 (Orange-Yellow)

* Quaternary Data Series: #9B59B6 (Amethyst Purple)

* Neutral Text/Backgrounds:

* #34495E (Dark Grey-Blue) - Main text, strong elements.

* #ECF0F1 (Light Grey-Blue) - Backgrounds, subtle separators.

* #FFFFFF (White) - Card backgrounds, labels.

  • Accessibility: Each data series color is distinct and provides good contrast against light backgrounds. Avoid using only red/green for binary data for colorblind users.

5. Wireframe Descriptions (Conceptual Examples for Infographic Output)

These conceptual wireframes illustrate how the design elements and templates would come together in a generated infographic.

5.1. Wireframe 1: Timeline Infographic - "Company Milestones"

  • Layout: Vertical, single-column flow.
  • Top Section:

* H1: "Our Journey: Key Company Milestones" (Corporate Clarity Palette, Deep Teal Blue)

* Body Text: Short introductory paragraph explaining the timeline.

  • Main Body:

* Central Vertical Line: Dark Charcoal, dashed or solid.

* Event Markers: Circular icons (e.g., filled circles or outlined stars) in Primary Accent color, placed alternately on left/right

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