User Onboarding Flow
Run ID: 69cc85b33e7fb09ff16a2a482026-04-01UX Design
PantheraHive BOS
BOS Dashboard

Step 1 of 3: Research & Design Requirements for User Onboarding Flow

Project: User Onboarding Flow

Phase: Research & Design Requirements

Deliverable: Comprehensive Design Specifications, Wireframe Descriptions, Color Palettes, and UX Recommendations

This document outlines the foundational design requirements for the User Onboarding Flow, aiming to create an intuitive, engaging, and efficient experience for new users. The goal is to maximize user activation, reduce time-to-value, and set a strong foundation for long-term user retention.


1. Overview & Objectives

The User Onboarding Flow is a critical initial interaction that guides new users from their first sign-up to their first "Aha! Moment" within the application.

Primary Objectives:

  • Increase Activation Rate: Ensure a high percentage of new sign-ups successfully complete the core onboarding steps.
  • Reduce Time-to-Value (TTV): Help users quickly understand the product's core benefits and achieve their first successful task.
  • Personalize Experience: Gather essential user data to tailor the initial application experience.
  • Educate & Engage: Introduce key features and functionalities in an digestible and engaging manner.
  • Build Trust & Confidence: Establish a positive first impression of the brand and product.
  • Minimize Friction: Streamline the process to prevent user drop-off.

2. Detailed Design Specifications

This section details the functional and content requirements for each stage of the onboarding process.

2.1. Stage 1: Welcome & Account Creation

  • Purpose: Greet the user, set expectations, and facilitate initial account setup.
  • Functional Requirements:

* Email/Password Input: Secure fields for email and password (with "show password" toggle).

* Password Strength Indicator: Real-time feedback on password complexity.

* Social Sign-up Options: Integration with Google, Apple, and/or other relevant social providers.

* Terms of Service/Privacy Policy: Links to legal documents with a mandatory acceptance checkbox.

* Sign-up Button: Clear call to action to create the account.

* Existing User Login Link: Easy access for returning users.

  • Content Strategy:

* Headline: Engaging and benefit-oriented (e.g., "Welcome Aboard!", "Unlock Your Potential").

* Sub-headline/Body Copy: Briefly explain the core value proposition or what the user will achieve.

* Image/Illustration: A welcoming, brand-aligned visual that conveys simplicity or positive outcomes.

* Error Messages: Clear, concise, and actionable messages for invalid inputs (e.g., "Email already registered," "Password must be at least 8 characters").

2.2. Stage 2: Basic Profile Setup & Personalization

  • Purpose: Collect essential user information to tailor the initial experience and provide context.
  • Functional Requirements:

* Name Input: First and Last Name fields.

* Role/Industry Selection (Conditional): Dropdown or multi-select for relevant user roles or industries (e.g., "Marketing Manager," "Software Developer," "Healthcare").

* Goal Selection (Conditional): Multi-select or radio buttons for primary goals the user wants to achieve with the product (e.g., "Improve team collaboration," "Automate workflows," "Track project progress").

* Skip Option: A clearly visible "Skip for now" or "Do this later" option.

* Progress Indicator: Visual cue showing progress through the onboarding (e.g., "2/5 steps complete").

  • Content Strategy:

* Headline: "Tell Us About Yourself" or "Personalize Your Experience."

Body Copy: Explain why* this information is being collected (e.g., "To tailor your dashboard," "To recommend relevant features").

* Placeholders: Clear placeholder text in input fields (e.g., "John Doe").

* Descriptive Labels: Intuitive labels for all fields and options.

2.3. Stage 3: Feature Introduction / Product Walkthrough

  • Purpose: Highlight key features and their benefits without overwhelming the user.
  • Functional Requirements:

* Carousel/Slideshow: Interactive slides (3-5 maximum) showcasing core features.

* Call to Action per Slide (Optional): A "Learn More" or "Try This Feature" button if applicable.

* Navigation Controls: "Next," "Previous," and "Skip Tour" buttons.

* Progress Dots: Visual indication of current slide and total slides.

* Contextual Tooltips (Alternative/Complementary): If an in-product tour, tooltips appear on specific UI elements.

  • Content Strategy:

* Short, Punchy Headlines: For each feature (e.g., "Streamline Collaboration," "Visualize Your Data").

Benefit-Oriented Descriptions: Focus on what the user gains, not just what* the feature does.

* High-Quality Screenshots/GIFs: Visual demonstrations of the feature in action.

* Concise Language: Avoid jargon; keep descriptions brief and clear.

2.4. Stage 4: First Task / "Aha! Moment" Prompt

  • Purpose: Guide the user to experience the product's core value immediately. This is often the most critical step for activation.
  • Functional Requirements:

* Guided Action: A clear, single call to action to perform a foundational task (e.g., "Create Your First Project," "Invite Your Team Member," "Connect Your First Data Source").

* Input Fields (if necessary): Minimal fields required to complete the task.

* Success Confirmation: Visual feedback upon successful completion.

* Skip Option: A secondary "Maybe later" or "Explore Dashboard" option.

  • Content Strategy:

* Headline: "Let's Get Started!" or "Your First Step to Success."

* Clear Instructions: Step-by-step guidance if the task is complex.

* Encouraging Language: Motivate the user to complete the task.

* Contextual Help: Small info icons with tooltips for clarification.

2.5. Stage 5: Completion & Dashboard Access

  • Purpose: Congratulate the user and transition them to the main application interface.
  • Functional Requirements:

* Confirmation Message: A clear message indicating successful onboarding.

* Primary CTA: Button to "Go to Dashboard" or "Start Using [Product Name]".

* Secondary CTA (Optional): Link to a knowledge base, tutorial videos, or support.

  • Content Strategy:

* Headline: "You're All Set!" or "Onboarding Complete!"

* Positive Reinforcement: "Welcome to the team!" or "Get ready to achieve great things."

* Brief Product Overview: Reiterate the core benefit they are about to experience.

* Next Steps Suggestion: Briefly hint at what they can do next in the application.


3. Wireframe Descriptions (High-Level)

The following descriptions outline the structural layout and key elements for each onboarding screen.

3.1. Screen 1: Welcome & Account Creation

  • Layout: Split screen or centered modal.

* Left/Top (Visual): Large, engaging illustration or product screenshot with brand messaging.

* Right/Bottom (Form):

* Prominent headline (e.g., "Join [Product Name]").

* Sub-headline reinforcing value.

* Email input field.

* Password input field with strength indicator and toggle.

* Optional "Remember Me" checkbox.

* Social login buttons (Google, Apple) with icons.

* Separator line (e.g., "or").

* Primary "Sign Up" button.

* "Already have an account? Log In" link.

* Links to "Terms of Service" and "Privacy Policy."

  • Interaction: Smooth transitions, clear focus states on input fields.

3.2. Screen 2: Basic Profile Setup

  • Layout: Single-column form, potentially within a modal or full-screen.

* Header: Progress indicator (e.g., "Step 2 of 5").

* Headline: "Tell Us a Little About Yourself."

* Body Copy: Explaining the benefit of providing info.

* Input Fields: First Name, Last Name.

* Dropdown/Radio Group: "Your Role" (e.g., "Student," "Manager," "Freelancer").

* Multi-select/Checkboxes: "What are your primary goals?" (e.g., "Improve productivity," "Manage projects," "Learn new skills").

* Buttons: "Next" (primary), "Skip for now" (secondary).

  • Interaction: Form validation on "Next," clear selection states for dropdowns/checkboxes.

3.3. Screen 3: Feature Introduction Tour

  • Layout: Full-screen carousel with distinct slides.

* Header: "Discover Key Features" or "A Quick Tour."

* Main Content Area:

* Large, high-quality image/GIF demonstrating a feature.

* Feature-specific headline.

* Concise description of feature benefit.

* Navigation: "Back," "Next" buttons.

* Progress Indicators: Small dots at the bottom indicating current slide and total.

* Action: "Skip Tour" button/link.

  • Interaction: Smooth slide transitions, visual cues for active slide.

3.4. Screen 4: First Task Prompt

  • Layout: Centered card or full-screen focus.

* Header: "Ready to Get Started?" or "Your First Step."

* Icon/Illustration: Representing the task (e.g., a "plus" icon for creating, a team icon for inviting).

* Headline: "Create Your First Project."

* Instructions/Input: Brief, clear instructions and minimal input fields (e.g., "Project Name" field).

* Primary Button: "Create Project" or "Complete Task."

* Secondary Button: "Explore Dashboard" or "Skip for now."

  • Interaction: Direct focus on the primary action, immediate feedback upon task completion.

3.5. Screen 5: Completion & Dashboard Access

  • Layout: Full-screen success message or celebratory modal.

* Header: "You're All Set!"

* Illustration/Animation: A celebratory graphic (e.g., confetti, checkmark).

* Main Message: "Welcome to [Product Name]!"

* Sub-message: Briefly reiterate how the product will help them.

* Primary Button: "Go to Dashboard."

* Secondary Links (Optional): "Watch Tutorial," "Visit Help Center."

  • Interaction: Clear path to the main application, positive and encouraging tone.

4. Color Palettes

A consistent and branded color palette is crucial for a professional and cohesive user experience.

4.1. Primary Brand Colors

  • Primary Blue: #2D76F9 (HEX) - Used for primary CTAs, active states, main brand elements. Represents trust, professionalism, and innovation.
  • Secondary Teal: #00BFA6 (HEX) - Used for secondary CTAs, highlighted features, or complementary brand elements. Represents clarity, growth, and freshness.

4.2. Neutral & Text Colors

  • Dark Grey (Text): #2C3E50 (HEX) - Primary text color for readability.
  • Medium Grey (Sub-text): #7F8C8D (HEX) - Secondary text, descriptions, placeholders.
  • Light Grey (Background/Borders): #ECF0F1 (HEX) - Subtle backgrounds, borders, inactive states.
  • White: #FFFFFF (HEX) - Backgrounds, cards, modal content.

4.3. System & Feedback Colors

  • Success Green: #2ECC71 (HEX) - For successful actions, completion messages.
  • Warning Yellow: #F39C12 (HEX) - For warnings, attention-grabbing but non-critical info.
  • Error Red: #E74C3C (HEX) - For error messages, critical alerts.

4.4. Accent Colors

  • Orange: #FF8C42 (HEX) - Used sparingly for emphasis, badges, or specific interactive elements to draw attention.

Palette Application Rationale:

  • Contrast: Ensure sufficient contrast between text and background colors for accessibility (WCAG 2.1 AA compliance).
  • Hierarchy: Use color to guide the user's eye and indicate interactive elements vs. static content.
  • Brand Consistency: Reflect the overall brand identity throughout the onboarding.

5. UX Recommendations

These recommendations focus on best practices to enhance usability, engagement, and accessibility.

5.1. General UX Principles

  • Progressive Disclosure: Only show users information or options relevant to their current step. Avoid overwhelming them upfront.
  • Clear Calls to Action (CTAs): Use strong, action-oriented verbs on buttons (e.g., "Create Account," "Next," "Go to Dashboard"). Ensure CTAs are visually prominent.
  • Visual Feedback: Provide immediate feedback for user actions (e.g., loading spinners, success messages, input validation).
  • Micro-interactions: Subtle animations (e.g., button presses, field highlights) to make the experience feel more responsive and delightful.
  • Mobile-First Design: Ensure the entire onboarding flow is fully responsive and optimized for mobile devices, given the prevalence of mobile sign-ups.
  • Brand Personality: Inject the brand's voice and tone through copy and visuals to create a memorable experience.

5.2. Interaction Design

  • Keyboard Navigation: All interactive elements should be accessible and operable via keyboard for users who don't use a mouse.
  • Focus Management: Ensure logical tab order and clear focus indicators for accessibility.
  • Error Handling:

* Inline Validation: Provide real-time feedback as users type, rather than waiting for form submission.

Clear Error Messages: Explain what went wrong and how* to fix it, rather than generic messages.

* Focus on Error: Automatically scroll to and highlight the first error field upon submission.

  • Skip Options: Provide a "Skip for
gemini Output

This document outlines the detailed design specifications for the "User Onboarding Flow," serving as a comprehensive guide for visual design, interaction design, and development. The goal is to create an intuitive, engaging, and efficient onboarding experience that quickly introduces users to the product's value and guides them towards successful initial interaction.


1. Introduction & Project Goal

This deliverable details the design specifications, wireframe descriptions, color palettes, and user experience (UX) recommendations for the "User Onboarding Flow." The primary objective is to transform initial user interest into active engagement by providing a clear, concise, and value-driven introduction to the product. A well-designed onboarding flow minimizes friction, educates users on core functionalities, and encourages successful task completion, ultimately improving user retention and satisfaction.

2. Key Design Principles

The onboarding flow will be guided by the following principles:

  • Clarity & Simplicity: Each step should have a clear purpose and minimal cognitive load.
  • Value-Driven: Emphasize the benefits and "why" behind each action.
  • Progressive Disclosure: Introduce information and features gradually, avoiding overwhelm.
  • Actionable & Goal-Oriented: Guide users towards completing key setup tasks or experiencing core features.
  • Engaging & Delightful: Utilize appropriate visuals, micro-interactions, and positive reinforcement.
  • Flexible & Forgiving: Allow users to skip optional steps and provide clear error handling.

3. Onboarding Flow Stages & Design Specifications

The user onboarding flow is broken down into distinct, logical stages, each with specific objectives and design considerations.

3.1. Stage 1: Welcome & Value Proposition

  • Objective: Greet the user, reiterate the product's core value, and set expectations.
  • Content:

* Catchy headline stating the main benefit.

* 1-3 concise bullet points or a short paragraph highlighting key advantages.

* High-quality illustration or animation relevant to the product's purpose.

* Clear Call-to-Action (CTA) to begin the onboarding process (e.g., "Get Started," "Create Account").

* Secondary CTA for existing users (e.g., "Log In").

  • Interaction: Simple navigation forward.

3.2. Stage 2: Account Creation / Sign-up

  • Objective: Secure user identity and create an account.
  • Content:

* Email/Username Field: Standard input for identification.

* Password Field: Secure input with "show/hide" toggle and strength indicator.

* Password Confirmation Field (Optional, for clarity): If not using a "show/hide" toggle.

* "Remember Me" Checkbox (Optional): For convenience on trusted devices.

* Social Sign-up Options: Prominently display "Sign up with Google," "Sign up with Apple," etc., for ease of use.

* Terms of Service/Privacy Policy Link: Required legal links.

* CTA: "Create Account," "Sign Up."

  • Interaction: Form validation, clear error messages, progressive button states (loading, success).

3.3. Stage 3: Profile Setup / Personalization (1-3 Screens)

  • Objective: Gather essential information to personalize the user's experience and configure initial settings.
  • Content (Examples - tailor to product):

* Name (First, Last): Standard text inputs.

* Profile Picture Upload (Optional): Avatar selection or upload feature.

* Role/Industry/Use Case Selection: Multi-choice radio buttons, dropdowns, or tags to understand user's primary goal.

* Notification Preferences: Toggles or checkboxes for email, push notifications.

* Time Zone/Language Selection: Dropdowns.

* CTA: "Continue," "Next," "Save & Continue."

* "Skip for now" option: Crucial for user flexibility.

  • Interaction: Input validation, clear labels, visual feedback for selections. Each screen should focus on a single theme or a small group of related inputs to prevent overwhelming the user.

3.4. Stage 4: Feature Introduction / Core Task Walkthrough (1-2 Screens)

  • Objective: Briefly introduce key features or guide the user through their first critical action.
  • Content (Examples - tailor to product):

* "What you can do here" Screen: Showcase 2-3 primary features with icons, short descriptions, and quick demo GIFs/videos.

* "Your First Step" Guided Tour: A simplified interactive tutorial for a core action (e.g., "Create your first project," "Add your first friend").

* CTA: "Explore Features," "Start My First [Action]," "Go to Dashboard."

* "Skip Tour" option: Allow users to bypass the tour if they prefer self-exploration.

  • Interaction: Clear visual hierarchy, interactive elements for guided tours, progress indicator if multiple steps.

3.5. Stage 5: Permissions & Notifications (If applicable)

  • Objective: Request necessary device permissions (e.g., camera, location, notifications) at a relevant time.
  • Content:

Permission Request: Explain why the permission is needed before* the system prompt appears.

* Illustration: Visual representation of the benefit.

* CTA: "Grant Access," "Allow Notifications."

* "Not now" / "Deny" option: Respect user choice.

  • Interaction: Display a custom modal/screen before triggering native system permission prompts, providing context.

3.6. Stage 6: Completion & Dashboard Redirect

  • Objective: Congratulate the user and seamlessly transition them to the main application dashboard.
  • Content:

* "You're All Set!" / "Welcome Aboard!" Message: Positive reinforcement.

* Optional Personalization: "Welcome, [User's Name]!"

* Brief encouragement: "Start exploring your personalized dashboard."

* CTA: "Go to Dashboard," "Let's Go!"

  • Interaction: Immediate redirect to the main application interface. Consider a subtle animation or celebratory visual.

4. Wireframe Descriptions (Key Screens)

These descriptions outline the layout and primary elements for critical screens within the onboarding flow.

4.1. Wireframe: Welcome Screen

  • Layout: Centered content with a large hero illustration/animation at the top.
  • Elements:

* [Large Illustration/Animation]: Occupies top 40-50% of the screen, visually representing product's core value.

* [Headline]: H1, centered, concise value proposition (e.g., "Unlock Your Creative Potential").

* [Sub-headline/Benefit Points]: Body text, 1-3 bullet points or short paragraph explaining benefits.

* [Primary CTA Button]: Large, prominent, centered (e.g., "Get Started").

* [Secondary CTA Link]: Smaller, text-based link below primary CTA (e.g., "Log In").

* [Language Selector (Optional)]: Small icon/dropdown in top right corner.

4.2. Wireframe: Account Creation Screen

  • Layout: Form-centric, potentially within a card or centered container.
  • Elements:

* [Page Title]: H2 (e.g., "Create Your Account").

* [Social Sign-up Buttons]: Prominent buttons for "Sign up with Google," "Sign up with Apple," etc., often stacked.

* [Divider Text]: "or" or "continue with email" separating social and email options.

* [Email Input Field]: Standard text input with label.

* [Password Input Field]: Standard password input with "show/hide" toggle and password strength indicator.

* [Terms & Privacy Checkbox]: Checkbox with links to legal documents.

* [Primary CTA Button]: Large, prominent (e.g., "Create Account").

* [Already Have Account Link]: Text link (e.g., "Already have an account? Log in").

* [Progress Indicator]: Small dots or a linear bar at the top or bottom of the screen.

4.3. Wireframe: Profile Setup Screen (Example: "What brings you here?")

  • Layout: Clear question at the top, followed by interactive selection options.
  • Elements:

* [Page Title/Question]: H2 (e.g., "What's your primary goal?").

* [Description Text]: Optional, brief explanation of why this info is needed.

* [Selection Options]: Visually distinct buttons, cards, or radio groups for choices (e.g., "Manage projects," "Collaborate with team," "Learn new skills"). Each option includes an icon and short text.

* [Progress Indicator]: Small dots or a linear bar at the top or bottom of the screen.

* [Primary CTA Button]: "Continue" or "Next."

* [Secondary CTA Link]: "Skip for now."

4.4. Wireframe: Feature Introduction Screen

  • Layout: Card-based or carousel layout, showcasing features one by one or in a grid.
  • Elements:

* [Page Title]: H2 (e.g., "Discover Key Features").

* [Feature Card 1]:

* [Feature Icon/Illustration]: Prominent visual.

* [Feature Name]: Bold text.

* [Feature Description]: Concise explanation of benefit.

* [Feature Card 2]: (Similar structure)

* [Feature Card 3]: (Similar structure)

* [Carousel Dots/Navigation Arrows (if applicable)]: For multiple feature screens.

* [Primary CTA Button]: "Explore Dashboard" or "Start My First Project."

* [Secondary CTA Link]: "Skip Tour."

* [Progress Indicator]: Small dots or a linear bar at the top or bottom of the screen.

5. Color Palettes

A consistent and appealing color palette is crucial for brand identity and user experience.

5.1. Primary Brand Color

  • Purpose: Dominant color for primary CTAs, active states, and key branding elements. Evokes the core emotion or identity of the product.
  • Example: #007AFF (Vibrant Blue - often associated with trust, technology, clarity)
  • Usage: Buttons, active links, progress indicators, main headings, selected states.

5.2. Secondary Color

  • Purpose: Supports the primary color, used for secondary actions, accents, or background elements.
  • Example: #5AC8FA (Lighter Blue - complementary, adds depth)
  • Usage: Secondary buttons, hover states, background accents, illustrations.

5.3. Accent Color

  • Purpose: Used sparingly to draw attention to important elements, notifications, or success/error states (when not using dedicated semantic colors).
  • Example: #FF9500 (Warm Orange - suggests energy, warning, or highlight)
  • Usage: Alerts, badges, subtle highlights, interactive elements that need to stand out.

5.4. Neutral Palette

  • Purpose: Provides a foundation for text, backgrounds, borders, and disabled states. Ensures readability and visual hierarchy.
  • Examples:

* Dark Text: #1C1C1E (Dark Grey - for primary text, ensures high contrast)

* Light Text/Secondary Text: #636366 (Medium Grey - for secondary information, descriptions)

* Borders/Dividers: #D1D1D6 (Light Grey - subtle separators)

* Backgrounds: #F2F2F7 (Very Light Grey - soft background color)

* White: #FFFFFF (Pure White - for cards, modals, main content areas)

  • Usage: Body text, form field backgrounds, card backgrounds, dividers, disabled button states.

5.5. Semantic Colors

  • Success: #34C759 (Green - for successful actions, confirmations)
  • Warning: #FFCC00 (Yellow - for caution, non-critical alerts)
  • Error: #FF3B30 (Red - for critical errors, destructive actions)
  • Info: #007AFF (Blue - often same as primary for general information)

6. User Experience (UX) Recommendations

6.1. Progress Indicators

  • Recommendation: Implement a clear progress indicator (e.g., "Step X of Y" or a series of dots/linear bar) at the top or bottom of multi-step screens.
  • Benefit: Reduces anxiety, manages expectations, and shows users how much more is left.

6.2. Skippability & Flexibility

  • Recommendation: Provide a "Skip for now" or "I'll do this later" option for non-essential profile setup or feature tours.
  • Benefit: Empowers users, respects their time, and prevents frustration for those who prefer to explore independently. Ensure skipped steps can be easily accessed later.

6.3. Contextual Help & Tooltips

  • Recommendation: Use subtle tooltips or small info icons next to complex fields or choices to provide brief explanations without cluttering the interface.
  • Benefit: Offers on-demand assistance, reduces confusion, and prevents users from abandoning the flow due to lack of understanding.

6.4. Micro-interactions & Feedback

  • Recommendation:

* Button States: Clearly show hover, active, loading, and disabled states for buttons.

* Input Focus: Highlight active input fields.

* Validation Feedback: Provide immediate, clear, and specific inline error messages for form fields.

* Success Animations: Subtle checkmark animations or positive visual feedback upon successful completion of a step.

  • Benefit: Enhances responsiveness, makes the interface feel alive, guides users, and provides reassurance.

6.5. Mobile Responsiveness & Accessibility

  • Recommendation:

* Responsive Design: Ensure the entire onboarding flow is fully responsive and optimized for various screen sizes (mobile, tablet, desktop). Prioritize touch targets and font sizes for mobile.

* Accessibility (WCAG 2.1 AA):

* Color Contrast: Maintain sufficient contrast ratios for text and interactive elements.

* Keyboard Navigation: Ensure all interactive elements are navigable via keyboard.

* Screen Reader Support: Use appropriate ARIA attributes and semantic HTML for screen readers.

* Focus States: Clearly visible focus indicators for keyboard users

gemini Output

User Onboarding Flow: Final Design Assets Deliverable

This document outlines the comprehensive design specifications, wireframe descriptions, color palettes, and critical UX recommendations for the "User Onboarding Flow." The goal is to create an intuitive, engaging, and effective onboarding experience that guides new users to their "Aha! moment" swiftly and successfully, fostering early adoption and long-term retention.


1. Design Specifications

1.1. Typography

  • Primary Font Family: Montserrat (or a similar modern, geometric sans-serif for strong readability)
  • Secondary Font Family: Open Sans (or a similar humanist sans-serif for body text, ensuring legibility at smaller sizes)

| Element | Font Family | Weight | Size (Desktop) | Size (Mobile) | Color (Default) |

| :------------------ | :------------ | :-------- | :------------- | :------------ | :-------------- |

| Headline (H1) | Montserrat | Bold | 36px | 28px | #2C3E50 |

| Sub-headline (H2) | Montserrat | Semi-Bold | 24px | 20px | #2C3E50 |

| Body Text | Open Sans | Regular | 16px | 14px | #34495E |

| Labels/Captions | Open Sans | Regular | 14px | 12px | #7F8C8D |

| Buttons | Montserrat | Semi-Bold | 16px | 14px | #FFFFFF |

| Links | Open Sans | Semi-Bold | 16px | 14px | #3498DB |

1.2. Iconography

  • Style: Line-based, minimalist, and consistent across all screens.
  • Color: Utilize the primary brand accent color for active states and #7F8C8D for inactive/secondary states.
  • Source: Feather Icons, Material Design Icons, or custom-designed to match brand aesthetic.
  • Usage: For feature highlights, navigation, and visual cues.

1.3. Imagery & Illustrations

  • Style: Modern, flat or semi-flat vector illustrations with a friendly, approachable tone.
  • Color Palette Integration: Illustrations should primarily use colors from the defined palette to maintain brand consistency.
  • Purpose: To visually explain complex concepts, add warmth, and reinforce the brand personality. Avoid stock photos where custom illustrations can better convey the message.
  • Examples: Abstract shapes, stylized characters performing actions related to the product's features.

1.4. Buttons & Calls-to-Action (CTAs)

  • Primary Button:

* Background: #3498DB (Primary Blue)

* Text Color: #FFFFFF

* Border-Radius: 8px

* Hover State: Background slightly darker (#2980B9)

* Active State: Background even darker (#21618C), slight shadow.

  • Secondary Button:

* Background: #ECF0F1 (Light Gray)

* Text Color: #34495E (Dark Gray)

* Border-Radius: 8px

* Hover State: Background slightly darker (#D5DBDB)

  • Tertiary/Ghost Button (e.g., "Skip", "Later"):

* Background: Transparent

* Text Color: #34495E (Dark Gray)

* Hover State: Underline or slight background highlight.

1.5. Input Fields

  • Border: 1px solid #BDC3C7 (Light Border)
  • Background: #FFFFFF
  • Text Color: #34495E
  • Placeholder Text: #7F8C8D
  • Focus State: 1px solid #3498DB (Primary Blue)
  • Error State: 1px solid #E74C3C (Error Red)
  • Border-Radius: 6px

1.6. Spacing & Grid

  • Base Unit: 8px (e.g., padding, margin, component sizing should be multiples of 8).
  • Consistent Margins: Ensure consistent vertical and horizontal spacing between elements for visual harmony.
  • Responsive Grid: Implement a flexible grid system (e.g., 12-column grid) to ensure consistent layout across various screen sizes.

2. Color Palettes

The chosen color palette is designed for professionalism, approachability, and optimal readability, adhering to accessibility standards (WCAG 2.1 AA for text contrast).

| Name | HEX Code | RGB | Usage |

| :------------- | :-------- | :------------------ | :----------------------------------------------------------------- |

| Primary Blue | #3498DB | (52, 152, 219) | Main CTA, active states, progress indicators, key highlights. |

| Accent Green | #2ECC71 | (46, 204, 113) | Success messages, positive feedback, secondary CTAs. |

| Dark Gray | #2C3E50 | (44, 62, 80) | Primary headlines, important text, strong contrast. |

| Medium Gray | #34495E | (52, 73, 94) | Body text, secondary text, icons. |

| Light Gray | #ECF0F1 | (236, 240, 241) | Backgrounds for sections, inactive states, borders. |

| Border Gray | #BDC3C7 | (189, 195, 199) | Input field borders, subtle dividers. |

| Placeholder Gray | #7F8C8D | (127, 140, 141) | Placeholder text, tertiary text. |

| Error Red | #E74C3C | (231, 76, 60) | Error messages, destructive actions. |

| White | #FFFFFF | (255, 255, 255) | Backgrounds, text on primary CTAs. |


3. Wireframe Descriptions & Key Elements

This section details the layout and content for each key screen in the User Onboarding Flow.

3.1. Welcome Screens (3-5 Screens)

  • Purpose: Introduce the product's core value proposition, key features, and benefits.
  • Layout: Full-screen carousel/swiper with a clear progression indicator.

* Header: Hidden or minimal (e.g., logo only).

* Body:

* Hero Illustration: Large, engaging, and relevant illustration occupying ~60% of the screen.

* Headline (H1): Short, benefit-driven statement (e.g., "Unlock Your Productivity").

* Body Text: Concise 1-2 sentences explaining the headline.

* Footer:

* Progress Indicator: Dots or a thin line indicating current screen (e.g., ● ○ ○).

* Primary Button: "Next" (until the last screen).

* Secondary Button: "Skip" or "I'm Ready" (optional, leading to sign-up).

* On Last Welcome Screen: "Get Started" or "Sign Up Now" as primary CTA.

3.2. Sign-Up / Registration Screen

  • Purpose: Allow new users to create an account.
  • Layout: Centered modal or full-screen form.

* Header: Logo and "Create Account" (H2).

* Body:

* Form Fields:

* Email Address (Input Field)

* Password (Input Field with "Show/Hide" toggle)

Confirm Password (Input Field) - Optional, consider single password field with strong validation.*

* Social Sign-Up: Buttons for "Continue with Google", "Continue with Apple", etc. (Secondary Button style with respective brand icons).

* Terms & Privacy: Link to "By creating an account, you agree to our [Terms of Service] and [Privacy Policy]." (Body Text with links).

* Footer:

* Primary Button: "Sign Up" or "Create Account".

* Link: "Already have an account? [Log In]" (Tertiary Button/Link).

3.3. Log In Screen

  • Purpose: Allow existing users to access their account.
  • Layout: Similar to Sign-Up, centered modal or full-screen form.

* Header: Logo and "Log In" (H2).

* Body:

* Form Fields:

* Email Address (Input Field)

* Password (Input Field with "Show/Hide" toggle)

* Forgot Password: Link (Tertiary Button/Link).

* Social Log-In: Buttons for "Continue with Google", "Continue with Apple", etc.

* Footer:

* Primary Button: "Log In".

* Link: "Don't have an account? [Sign Up]" (Tertiary Button/Link).

3.4. Personalization / Preferences Screen(s)

  • Purpose: Gather information to tailor the user experience.
  • Layout: Multi-step form with clear progress indicator.

* Header: "Tell us about yourself" (H2) or "Personalize Your Experience."

* Body:

* Questions/Options:

* Input Fields: For name, company, role (e.g., "What's your primary goal?").

* Select Boxes/Radio Buttons/Checkboxes: For interests, industry, frequency of use (e.g., "Which topics are you interested in?" presented as tag-like selectable buttons).

* Slider/Stepper: For numerical inputs (e.g., "How many team members?").

* Illustration: Smaller, contextual illustration on the side or top.

* Footer:

* Primary Button: "Next" or "Continue".

* Secondary Button: "Skip for now" (prominently placed but not distracting).

* Progress Indicator: (e.g., "Step 1 of 3").

3.5. Feature Walkthrough / Tutorial (Optional, Contextual)

  • Purpose: Guide users through key functionalities directly within the product interface.
  • Layout: Overlays or tooltips appearing on the actual dashboard/first feature screen.

* Spotlight Effect: Dim the background to highlight the specific UI element.

* Tooltip:

* Headline (H2): "Welcome to [Feature Name]!"

* Body Text: Concise instruction (e.g., "Click here to add your first project.").

* Navigation: "Next Tip" (Primary Button), "Got it" (Secondary Button), "End Tour" (Tertiary Button/Link).

* Progress Indicator: Small dots or text (e.g., "1/5") within the tooltip.

* Dismiss Option: "X" icon in the corner of the tooltip.

3.6. First Action / "Aha! Moment" Screen

  • Purpose: Prompt the user to complete their first valuable action.
  • Layout: Clean, focused screen, potentially a modal on top of a partially visible dashboard.

* Header: "Ready to get started?" (H1) or "Your first step!"

* Body:

* Clear Value Proposition: Reiterate the immediate benefit of completing the action.

* Illustration: Encouraging and simple illustration.

* Primary Call-to-Action: Direct, action-oriented (e.g., "Create Your First Project", "Upload Your First File", "Invite Your Team").

* Secondary Action (Optional): "Explore Dashboard" or "Learn More" (less prominent).

* Footer: Minimal, perhaps just a "Help" link.

3.7. Onboarding Completion / Dashboard Landing

  • Purpose: Confirm successful onboarding and transition to the full product experience.
  • Layout: The main product dashboard.

* Header (Dashboard): Standard product header with navigation, user profile.

* Body (Dashboard):

* Welcome Banner/Toast: A temporary, dismissible banner at the top or bottom of the screen (e.g., "Welcome, [User Name]! You're all set. Here are some quick links to get you started.").

* Empty States: If the user hasn't created content yet, display encouraging empty states with CTAs pointing to the next logical actions (e.g., "No projects yet? [Create your first one!]").

* Quick Start Guide/Checklist: A small, persistent widget on the dashboard that outlines 2-3 essential next steps (e.g., "Complete your profile", "Invite a teammate", "Explore templates"). This can be dismissible.


4. UX Recommendations

4.1. Clarity & Conciseness

  • Minimal Text: Use short, punchy headlines and brief body text. Every word should add value.
  • Clear CTAs: Buttons should clearly state their action (e.g., "Next," "Create Account," "Start Project"). Avoid vague terms like "Go" or "Submit."
  • Visual Hierarchy: Use typography, color, and spacing to guide the user's eye to the most important elements on each screen.

4.2. Progression & Feedback

  • Progress Indicators: Always show where the user is in the onboarding flow (e.g., "Step 3 of 5," dot indicators). This reduces anxiety and gives a sense of accomplishment.
  • Instant Feedback: Provide immediate visual feedback for user actions (e.g., button presses, form validation errors, success messages).
  • Micro-interactions: Subtle animations on button hovers, form field focus, or successful actions can enhance engagement and provide delight.

4.

user_onboarding_flow.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
"); 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' import ReactDOM from 'react-dom/client' import App from './App' import './index.css' ReactDOM.createRoot(document.getElementById('root')!).render( ) "); 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' import './App.css' function App(){ return(

"+slugTitle(pn)+"

Built with PantheraHive BOS

) } export default App "); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box} body{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e} .app{min-height:100vh;display:flex;flex-direction:column} .app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px} h1{font-size:2.5rem;font-weight:700} "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install npm run dev ``` ## Build ```bash npm run build ``` ## Open in IDE Open the project folder in VS Code or WebStorm. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local "); } /* --- 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",'{ "name": "'+pn+'", "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vue-tsc -b && vite build", "preview": "vite preview" }, "dependencies": { "vue": "^3.5.13", "vue-router": "^4.4.5", "pinia": "^2.3.0", "axios": "^1.7.9" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", "typescript": "~5.7.3", "vite": "^6.0.5", "vue-tsc": "^2.2.0" } } '); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' export default defineConfig({ plugins: [vue()], resolve: { alias: { '@': resolve(__dirname,'src') } } }) "); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]} '); zip.file(folder+"tsconfig.app.json",'{ "compilerOptions":{ "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"], "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true, "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue", "strict":true,"paths":{"@/*":["./src/*"]} }, "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"] } '); zip.file(folder+"env.d.ts","/// "); zip.file(folder+"index.html"," "+slugTitle(pn)+"
"); 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' import { createPinia } from 'pinia' import App from './App.vue' import './assets/main.css' const app = createApp(App) app.use(createPinia()) app.mount('#app') "); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue"," "); 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} "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install npm run dev ``` ## Build ```bash npm run build ``` Open in VS Code or WebStorm. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local "); } /* --- 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",'{ "name": "'+pn+'", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test" }, "dependencies": { "@angular/animations": "^19.0.0", "@angular/common": "^19.0.0", "@angular/compiler": "^19.0.0", "@angular/core": "^19.0.0", "@angular/forms": "^19.0.0", "@angular/platform-browser": "^19.0.0", "@angular/platform-browser-dynamic": "^19.0.0", "@angular/router": "^19.0.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, "devDependencies": { "@angular-devkit/build-angular": "^19.0.0", "@angular/cli": "^19.0.0", "@angular/compiler-cli": "^19.0.0", "typescript": "~5.6.0" } } '); zip.file(folder+"angular.json",'{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "'+pn+'": { "projectType": "application", "root": "", "sourceRoot": "src", "prefix": "app", "architect": { "build": { "builder": "@angular-devkit/build-angular:application", "options": { "outputPath": "dist/'+pn+'", "index": "src/index.html", "browser": "src/main.ts", "tsConfig": "tsconfig.app.json", "styles": ["src/styles.css"], "scripts": [] } }, "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"} } } } } '); zip.file(folder+"tsconfig.json",'{ "compileOnSave": false, "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"]}, "references":[{"path":"./tsconfig.app.json"}] } '); zip.file(folder+"tsconfig.app.json",'{ "extends":"./tsconfig.json", "compilerOptions":{"outDir":"./dist/out-tsc","types":[]}, "files":["src/main.ts"], "include":["src/**/*.d.ts"] } '); zip.file(folder+"src/index.html"," "+slugTitle(pn)+" "); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser'; import { appConfig } from './app/app.config'; import { AppComponent } from './app/app.component'; bootstrapApplication(AppComponent, appConfig) .catch(err => console.error(err)); "); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; } "); 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'; import { RouterOutlet } from '@angular/router'; @Component({ selector: 'app-root', standalone: true, imports: [RouterOutlet], templateUrl: './app.component.html', styleUrl: './app.component.css' }) export class AppComponent { title = '"+pn+"'; } "); zip.file(folder+"src/app/app.component.html","

"+slugTitle(pn)+"

Built with PantheraHive BOS

"); 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} "); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; export const appConfig: ApplicationConfig = { providers: [ provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes) ] }; "); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router'; export const routes: Routes = []; "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install ng serve # or: npm start ``` ## Build ```bash ng build ``` Open in VS Code with Angular Language Service extension. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local .angular/ "); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^```[w]* ?/m,"").replace(/ ?```$/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(" "):"# add dependencies here "; zip.file(folder+"main.py",src||"# "+title+" # Generated by PantheraHive BOS print(title+" loaded") "); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables "); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Setup ```bash python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ## Run ```bash python main.py ``` "); zip.file(folder+".gitignore",".venv/ __pycache__/ *.pyc .env .DS_Store "); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^```[w]* ?/m,"").replace(/ ?```$/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)+" "; zip.file(folder+"package.json",pkgJson); var fallback="const express=require("express"); const app=express(); app.use(express.json()); app.get("/",(req,res)=>{ res.json({message:""+title+" API"}); }); const PORT=process.env.PORT||3000; app.listen(PORT,()=>console.log("Server on port "+PORT)); "; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000 "); zip.file(folder+".gitignore","node_modules/ .env .DS_Store "); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Setup ```bash npm install ``` ## Run ```bash npm run dev ``` "); } /* --- 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:" "+title+" "+code+" "; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */ *{margin:0;padding:0;box-sizing:border-box} body{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e} "); zip.file(folder+"script.js","/* "+title+" — scripts */ "); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Open Double-click `index.html` in your browser. Or serve locally: ```bash npx serve . # or python3 -m http.server 3000 ``` "); zip.file(folder+".gitignore",".DS_Store node_modules/ .env "); } /* ===== 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(/ {2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. Files: - "+app+".md (Markdown) - "+app+".html (styled HTML) "); } 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);}});}