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

User Onboarding Flow: Design Requirements & Specifications

This document outlines the comprehensive design requirements and specifications for the "User Onboarding Flow." The goal is to create an intuitive, engaging, and efficient onboarding experience that maximizes user adoption, reduces early churn, and seamlessly introduces users to the core value proposition of our product.


1. Introduction & Project Goals

The user onboarding flow is a critical first impression, designed to guide new users from initial sign-up to becoming active, engaged participants. This deliverable details the design specifications, wireframe concepts, visual identity (color palettes, typography), and key UX recommendations to ensure a best-in-class experience.

Primary Goals of the Onboarding Flow:

  • Reduce Time-to-Value (TTV): Enable users to experience the product's core benefit as quickly as possible.
  • Increase Feature Adoption: Introduce key functionalities effectively, ensuring users know how to use essential tools.
  • Enhance User Satisfaction: Create a welcoming and supportive environment that builds confidence and trust.
  • Minimize Churn: Prevent users from dropping off during the initial stages due to confusion or lack of perceived value.
  • Gather Essential Information: Collect necessary user data for personalization and account setup efficiently.

2. General Design Principles

The following principles will guide the design and development of the entire onboarding journey:

  • Simplicity & Clarity: Each step should have a clear purpose, with minimal cognitive load and straightforward language.
  • Progressive Disclosure: Introduce information and features gradually, avoiding overwhelming users with too much at once.
  • Feedback & Guidance: Provide clear visual and textual feedback for user actions and offer helpful guidance throughout the process.
  • Brand Consistency: Maintain a consistent visual identity, tone of voice, and interaction patterns aligned with the overall brand.
  • Mobile-First Approach: Design for optimal experience on mobile devices first, ensuring scalability and responsiveness for larger screens.
  • Personalization: Where possible, tailor the experience based on user input to make it more relevant.
  • Empowerment: Give users control, including options to skip steps or revisit information.

3. Core Onboarding Stages & Detailed Requirements

The 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, articulate the product's core value proposition, and set a positive tone.
  • Design Specifications:

* Visuals: A compelling hero image, animation, or short video demonstrating a key benefit or use case. High-quality, brand-aligned imagery is crucial.

* Headline: A clear, concise, and benefit-driven headline (e.g., "Unlock Your Creative Potential," "Streamline Your Workflow").

* Body Text: 1-2 sentences summarizing the unique selling proposition (USP) and how the product will improve the user's life/work.

* Call to Action (CTA): A prominent primary button, typically "Get Started," "Create Account," or "Sign Up."

* Secondary Action: A smaller, less prominent link for existing users to "Log In."

* Navigation: Optional dots or arrows for multi-screen welcome carousels, indicating progress.

  • Wireframe Description:

* Option A (Single Screen): Full-screen layout with a central hero visual, overlaid with headline, body text, and a stack of primary and secondary CTAs at the bottom.

* Option B (Carousel/Tour): Multiple screens, each introducing a key benefit with a distinct visual. Navigation dots at the bottom to indicate progress. The final screen of the carousel will present the primary "Get Started" CTA.

  • UX Recommendations:

* Keep text minimal and scannable.

* Focus on benefits, not just features.

* Ensure the "Log In" option is easily discoverable for returning users.

* Consider A/B testing different headlines and visuals to maximize engagement.

3.2. Stage 2: Account Creation / Personalization

  • Objective: Securely gather necessary user information and begin tailoring the experience.
  • Design Specifications:

* Form Fields: Clearly labeled input fields for essential information (e.g., Email, Password, Full Name).

* Password Requirements: Display real-time feedback on password strength and required criteria (e.g., "Minimum 8 characters," "Includes a number").

* Social Login: Prominent buttons for "Continue with Google," "Continue with Apple," etc., to reduce friction.

* Terms & Privacy: A checkbox for "I agree to the Terms of Service and Privacy Policy" with clickable links.

* Progress Indicator: A visual indicator (e.g., "Step 1 of 3," a progress bar) to manage user expectations.

* Optional Personalization: Screens for selecting interests, roles, goals, or preferred language. This data should be clearly explained regarding its purpose (e.g., "To personalize your dashboard").

  • Wireframe Description:

* Multi-Step Form: Each screen focuses on a small set of related fields. A clear "Next" or "Continue" button, with a "Back" button (or swipe gesture on mobile) for navigation.

* Single-Screen Form (if minimal fields): A compact form with all fields visible, followed by social login options and the primary "Create Account" button.

* Personalization Screens: Visually appealing selection options (e.g., tags, cards, icons) for interests, with a "Skip for now" option.

  • UX Recommendations:

* Minimize Required Fields: Only ask for strictly necessary information upfront. Defer non-essential data collection.

* Clear Labels & Placeholders: Use descriptive labels and helpful placeholder text.

* Error Handling: Provide immediate, clear, and actionable inline error messages for invalid input.

* Social Login First: Position social login prominently as it's often preferred for speed.

* Explain "Why": For personalization steps, briefly explain how the collected data will benefit the user.

* Pre-fill Options: If possible (e.g., email from previous step), pre-fill fields.

3.3. Stage 3: Core Feature Introduction / Guided Tour

  • Objective: Familiarize users with the product's primary interface and essential functionalities.
  • Design Specifications:

* Interactive Tooltips/Hotspots: Contextual overlays highlighting key UI elements (e.g., "This is your main navigation," "Click here to create a new project").

* Short Video Tutorials: Embed brief (30-60 second) videos demonstrating complex actions or workflows.

* Empty States with Guidance: For areas without user-generated content yet, display helpful instructions or a direct CTA to get started (e.g., "No projects yet? Start your first one here!").

* Progressive Onboarding: Introduce features as the user interacts with the product, rather than a single, lengthy tour.

* "Skip Tour" / "End Tour" Button: Always provide an option to exit the guided experience.

* "Replay Tour" Option: Make the tour accessible from a help menu or settings later.

  • Wireframe Description:

* Overlay Tour: Semi-transparent overlays covering the interface, with focused "spotlights" on specific elements and a small tooltip box for explanation. "Next" and "Back" buttons, plus a "Skip Tour" option.

* Checklist/Progress Card: A persistent module on the dashboard showing onboarding tasks (e.g., "Complete your profile," "Create your first item") with progress and direct links.

* Contextual Pop-ups: Small, non-intrusive pop-ups triggered by a user's first interaction with a specific feature.

  • UX Recommendations:

* Focus on 1-3 Critical Features: Don't try to explain everything. Prioritize features that deliver immediate value.

* "Show, Don't Just Tell": Use interactive elements or short videos over lengthy text descriptions.

* Make it Optional: Respect user preference; some users prefer to explore on their own.

* Gamification: Consider subtle elements like progress bars or completion badges to encourage engagement.

3.4. Stage 4: First Task / Call to Action

  • Objective: Prompt the user to perform their first meaningful action, demonstrating immediate value and solidifying their understanding.
  • Design Specifications:

* Prominent CTA: A clear, unmissable button or prompt guiding the user to their first task (e.g., "Create Your First Project," "Add Your First Friend," "Set Your First Goal").

* Contextual Guidance: Brief instructions or examples related to the first task.

* Positive Reinforcement: A celebratory message or visual upon successful completion of the first task.

  • Wireframe Description:

* Dedicated "First Task" Module: A prominent card or section on the main dashboard, distinct from other elements, with a clear headline and CTA.

* Full-Screen Prompt: A temporary full-screen overlay prompting the first action, immediately after the guided tour.

  • UX Recommendations:

* Keep it Simple: The first task should be low-effort and easily achievable.

* Instant Gratification: Ensure the user immediately sees the benefit of completing the task.

* Celebrate Success: Use positive language, animations, or sounds to acknowledge completion.

* Remove Obstacles: Minimize any additional steps or decisions required to complete the first task.

3.5. Stage 5: Onboarding Completion & Dashboard Access

  • Objective: Confirm successful onboarding and provide seamless access to the full application.
  • Design Specifications:

* Confirmation Message: A "Congratulations!" or "You're All Set!" message.

* Direct Link to Dashboard: A primary button to "Go to Dashboard," "Start Using [Product Name]," or "Explore."

* Optional Secondary Links: Links to help documentation, FAQ, community forums, or premium features.

* Subtle Animation: A brief, positive animation (e.g., a checkmark, confetti) to enhance the celebratory feel.

  • Wireframe Description:

* Completion Screen: A full-screen or modal display with a celebratory message, visual, and the primary CTA to enter the application.

  • UX Recommendations:

* Positive Reinforcement: End

gemini Output

Detailed Design Specifications: User Onboarding Flow

This document outlines the comprehensive design specifications, wireframe descriptions, color palettes, and UX recommendations for the "User Onboarding Flow." The goal is to create an intuitive, engaging, and efficient experience that guides new users effectively through the initial setup, familiarizes them with the product, and sets them up for success.


1. Design Principles

The onboarding experience will be guided by the following core design principles:

  • Clarity: Clear, concise language and intuitive visual hierarchy to minimize cognitive load.
  • Engagement: Interactive elements, positive reinforcement, and a visually appealing interface to keep users interested.
  • Efficiency: Streamlined steps, progressive disclosure, and smart defaults to reduce effort and time to completion.
  • Trust: Transparent communication regarding data usage, permissions, and privacy.
  • Personalization: Opportunities for users to tailor their experience, making the product feel relevant from the start.
  • Accessibility: Design choices that ensure the experience is usable by individuals with diverse abilities.

2. Onboarding Flow Overview

The proposed User Onboarding Flow consists of the following key stages, designed to progressively introduce the user to the application's core value proposition and functionality:

  1. Welcome Screen: Greet the user and articulate the immediate value proposition.
  2. Account Creation/Login: Securely establish user identity (if not already done).
  3. Profile Setup / Personalization: Gather essential information to tailor the experience.
  4. Permissions / Notifications: Request necessary access and set communication preferences.
  5. Feature Tour / Product Walkthrough: Briefly showcase key functionalities and benefits.
  6. First Action / Goal Setting: Guide the user to complete their first meaningful task.
  7. Onboarding Completion / Dashboard Access: Transition to the main application interface.

3. Detailed Screen Specifications & Wireframe Descriptions

Each screen within the onboarding flow is meticulously designed to serve a specific purpose, contributing to a seamless user journey.

3.1. Welcome Screen

  • Purpose: To greet the user, introduce the product's core benefit, and initiate the onboarding process.
  • Key Elements:

* Hero Image/Animation: A compelling visual representing the product's core value or a key use case.

* Headline: A concise and impactful statement of the product's primary benefit (e.g., "Unlock Your Productivity," "Connect with Your Community").

* Short Description: 1-2 sentences elaborating on the headline.

* Call to Action (CTA): Prominent button to start the onboarding (e.g., "Get Started," "Create Account").

* Secondary CTA (Optional): "Log In" for returning users, placed less prominently.

* Branding: Product logo clearly visible.

  • Wireframe Description:

* Top: Product Logo.

* Middle-Top: Large, engaging graphic/animation.

* Middle-Center: Headline (H1), followed by a brief descriptive paragraph.

* Bottom-Center: Primary CTA button (full width, prominent color).

* Bottom: Secondary CTA (text link or ghost button).

  • Interactions: Tapping "Get Started" transitions to the Account Creation/Login screen.

3.2. Account Creation/Login Screen

  • Purpose: To allow new users to register and existing users to log in, ensuring secure access.
  • Key Elements:

* Toggle/Tabs: Clearly distinguish between "Sign Up" and "Log In" states.

* Sign Up Fields: Email, Password (with show/hide toggle), Confirm Password.

* Login Fields: Email/Username, Password.

* Social Login Options: Buttons for Google, Apple, Facebook, etc., for faster registration/login.

* "Forgot Password" Link: For login state.

* Terms of Service/Privacy Policy Link: Checkbox for agreement during signup.

* Primary CTA: "Create Account" or "Log In."

  • Wireframe Description:

* Top: Screen Title (e.g., "Create Your Account").

* Below Title: Toggle/Tabs for "Sign Up" / "Log In."

* Main Section (Sign Up): Email input, Password input (with icon to toggle visibility), Confirm Password input. Checkbox for Terms & Privacy.

* Main Section (Login): Email/Username input, Password input. "Forgot Password?" link.

* Separator: "Or continue with..."

* Below Separator: Row of social login buttons (e.g., Google, Apple).

* Bottom: Primary CTA button.

  • Interactions: Input validation on fields. Successful creation/login proceeds to Profile Setup.

3.3. Profile Setup / Personalization Screen

  • Purpose: To gather basic user information that enables personalization and enhances the initial experience.
  • Key Elements:

* Progress Indicator: Visual representation of onboarding progress (e.g., "Step 1 of 5").

* Headline: Explaining the benefit of personalization (e.g., "Tell us about yourself to tailor your experience").

* Input Fields:

* Name (First, Last - optional).

* Profile Picture Upload (optional, with default avatar).

* User Type/Role (e.g., "Student," "Professional," "Hobbyist" - dropdown/radio buttons).

* Interests/Preferences (multi-select tags/checkboxes).

* Location (optional, for region-specific content).

* "Skip for now" Option: Clearly visible.

* Primary CTA: "Continue" or "Save & Continue."

  • Wireframe Description:

* Top: Progress bar/indicator.

* Below Progress: Screen Title (H2) and a short descriptive paragraph.

* Main Section: Profile picture upload area (circular placeholder). Input fields for Name, User Type (dropdown), Interests (tag cloud or list with checkboxes).

* Bottom-Left: "Skip for now" text link.

* Bottom-Right: Primary CTA button.

  • Interactions: User inputs data. "Skip" proceeds without data. "Continue" saves data and proceeds to Permissions.

3.4. Permissions / Notifications Screen

  • Purpose: To transparently request necessary permissions (e.g., notifications, location) and allow users to manage their communication preferences.
  • Key Elements:

* Progress Indicator: Continues from previous screen.

* Headline: Explaining why permissions are needed (e.g., "Stay updated and never miss a thing").

* Permission Cards/Toggles: For each permission request (e.g., "Enable Push Notifications," "Allow Location Access"). Each card should include:

* Icon.

* Permission Name.

Brief explanation of why it's needed and how* it benefits the user.

* Toggle switch (ON/OFF).

* Email Preferences: Checkboxes for marketing, product updates, etc.

* "Skip for now" Option: For all permissions.

* Primary CTA: "Continue."

  • Wireframe Description:

* Top: Progress bar/indicator.

* Below Progress: Screen Title (H2) and a short descriptive paragraph.

* Main Section: List of permission toggles, each with an icon, title, and benefit description. Followed by email preference checkboxes.

* Bottom-Left: "Skip for now" text link.

* Bottom-Right: Primary CTA button.

  • Interactions: Toggling permissions updates settings. "Continue" proceeds to Feature Tour.

3.5. Feature Tour / Product Walkthrough

  • Purpose: To highlight key functionalities and the value they provide, offering a quick overview of the product's capabilities.
  • Key Elements:

* Carousel/Swipeable Cards: 3-5 screens, each focusing on a core feature.

* Feature Visual: High-quality screenshot or short animation/video demonstrating the feature.

* Feature Headline: Concise description of the feature.

Benefit Statement: Explaining how* this feature helps the user (e.g., "Organize your tasks effortlessly," "Collaborate in real-time").

* Progress Dots: Indicate current position in the tour.

* "Skip Tour" Button: Prominent option to bypass the tour.

* "Next" / "Done" Button: To navigate through the tour.

  • Wireframe Description:

* Top-Right: "Skip Tour" button.

* Main Section: Large area for feature visual (image/GIF). Below it, Feature Headline (H3) and Benefit Statement.

* Bottom-Center: Progress dots (pagination).

* Bottom-Right: "Next" button (changes to "Done" on the last slide).

  • Interactions: Swiping or tapping "Next" navigates slides. Tapping "Skip Tour" or "Done" proceeds to First Action.

3.6. First Action / Goal Setting Screen

  • Purpose: To guide the user towards their first meaningful interaction, anchoring them within the product's core loop. This is crucial for retention.
  • Key Elements:

* Progress Indicator: Final step of onboarding.

* Headline: Action-oriented (e.g., "What's your first goal?", "Let's get started with your first project").

* Suggested Actions/Goals: A few pre-defined, high-impact actions relevant to the product. Users can select one or multiple. (e.g., "Create a new document," "Invite a team member," "Explore templates").

* Custom Action Input (Optional): "Or tell us what you want to achieve."

* "Do this later" Option: Clearly visible.

* Primary CTA: "Start Now" or "Go to Dashboard."

  • Wireframe Description:

* Top: Progress bar/indicator.

* Below Progress: Screen Title (H2) and a short, encouraging paragraph.

* Main Section: List of suggested actions presented as clickable cards or buttons. Optional text input for custom goal.

* Bottom-Left: "Do this later" text link.

* Bottom-Right: Primary CTA button.

  • Interactions: Selecting an action might pre-fill a template or navigate directly to that feature. "Start Now" or "Go to Dashboard" completes onboarding.

3.7. Onboarding Completion / Dashboard Access

  • Purpose: To provide a sense of accomplishment and seamlessly transition the user into the main application.
  • Key Elements:

* Celebratory Visual/Animation: A subtle animation, checkmark, or confetti.

* Completion Message: (e.g., "You're all set!", "Welcome to [Product Name]!").

* Brief Encouragement: (e.g., "Ready to achieve your goals?").

* Primary CTA: "Go to Dashboard" or "Explore [Product Name]."

  • Wireframe Description:

* Top-Center: Celebratory visual/animation.

* Middle-Center: Large, welcoming message (H1), followed by a brief encouraging sentence.

* Bottom-Center: Primary CTA button.

  • Interactions: Tapping the CTA navigates the user to the main application dashboard or home screen.

4. Color Palette

A harmonious and accessible color palette is crucial for brand identity and user experience.

4.1. Primary Colors

  • Primary Brand Color: #007AFF (Vibrant Blue)

* Usage: Main call-to-action buttons, active states, key branding elements, progress indicators, primary headings.

* Rationale: Evokes trust, professionalism, and innovation. Highly visible and recognizable.

  • Primary Dark/Accent: #0056B3 (Darker Blue)

* Usage: Hover states, secondary brand elements, borders, text links.

* Rationale: Provides contrast and depth, complements the primary blue.

4.2. Secondary Colors

  • Secondary Accent: #FFC107 (Amber/Gold)

* Usage: Highlighted elements, notifications, warnings, interactive elements that need to stand out (e.g., "Skip" buttons, less critical CTAs).

* Rationale: Adds warmth and energy, draws attention without competing with the primary CTA.

  • Success/Positive: #28A745 (Green)

* Usage: Success messages, confirmed actions, positive feedback.

  • Error/Danger: #DC3545 (Red)

* Usage: Error messages, destructive actions, critical alerts.

4.3. Neutral Colors

  • Background: #F8F9FA (Light Gray)

* Usage: Screen backgrounds, card backgrounds, subtle separators.

* Rationale: Provides a clean, spacious canvas that allows content and interactive elements to stand out.

  • Text Primary: #212529 (Dark Gray)

* Usage: Main body text, headings.

* Rationale: Excellent readability against light backgrounds.

  • Text Secondary: #6C757D (Medium Gray)

* Usage: Helper text, subtle labels, disabled states, less important information.

  • Borders/Dividers: #DEE2E6 (Light Border Gray)

* Usage: Input field borders, dividers between sections.

  • White: #FFFFFF

* Usage: Card backgrounds, modal backgrounds, prominent text on dark backgrounds.

4.4. Usage Guidelines

  • Contrast: Ensure sufficient contrast between text and background colors for accessibility (WCAG AA compliance at minimum).
  • Hierarchy: Use color strategically to guide the user's eye and indicate importance (e.g., primary CTA in brand blue, secondary in ghost button style or accent color).
  • Consistency: Apply colors consistently across all onboarding screens and eventually the entire application.

5. Typography

A clear and consistent typographic system enhances readability and reinforces brand identity.

5.1. Font Families

  • Primary Font (Sans-serif): Inter (or a similar modern, highly legible sans-serif like Roboto, Open Sans).

* Usage: Headings, body text, UI elements.

* Rationale: Modern, clean, highly readable at various sizes, and available across platforms.

  • Fallback Font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"

* Usage: Ensures consistent rendering across different operating systems.

5.2. Sizing and Hierarchy

  • Headings:

* H1 (Screen Title): 28-36px, font-weight: 700 (Bold) - Used for primary screen

gemini Output

User Onboarding Flow: Finalized Design Assets & Specifications

This document outlines the comprehensive design specifications, wireframe descriptions, color palettes, and UX recommendations for the "User Onboarding Flow." This deliverable represents the finalized design assets, ready for development implementation. Our goal is to create an intuitive, engaging, and efficient onboarding experience that quickly demonstrates value and guides users to their first successful interaction with the platform.


1. Overall Design Principles & Goals

The user onboarding flow is designed with the following core principles in mind:

  • Clarity & Simplicity: Minimize cognitive load, use clear language, and intuitive interactions.
  • Engagement & Delight: Incorporate subtle animations, engaging visuals, and a positive tone to create an enjoyable experience.
  • Value Proposition: Clearly communicate the benefits of the platform at each stage.
  • Efficiency: Streamline the process to get users to their core tasks quickly.
  • Flexibility: Allow users to skip or revisit steps where appropriate.
  • Accessibility: Ensure the design is usable by individuals with diverse needs.

2. Brand Identity & Visual Language

2.1. Color Palette

The chosen color palette is designed to be modern, professional, and inviting, aligning with the brand's identity.

  • Primary Brand Color: HEX: #2E86DE (RGB: 46, 134, 222)

Usage:* Primary call-to-action buttons, active states, key branding elements, progress indicators.

  • Secondary Accent Color: HEX: #FFC300 (RGB: 255, 195, 0)

Usage:* Secondary buttons, highlights, interactive elements, success messages, subtle accents for visual interest.

  • Text & Iconography - Dark: HEX: #333333 (RGB: 51, 51, 51)

Usage:* Body text, headings, primary icons. Ensures high readability.

  • Text & Iconography - Light: HEX: #666666 (RGB: 102, 102, 102)

Usage:* Secondary text, helper text, disabled states.

  • Background - Light: HEX: #F8F9FA (RGB: 248, 249, 250)

Usage:* Main background for screens, cards. Provides a clean, spacious feel.

  • Background - Off-White: HEX: #FFFFFF (RGB: 255, 255, 255)

Usage:* Card backgrounds, input fields, modals.

  • Error State: HEX: #DC3545 (RGB: 220, 53, 69)

Usage:* Form validation errors, destructive actions.

  • Success State: HEX: #28A745 (RGB: 40, 167, 69)

Usage:* Confirmation messages, successful actions.

2.2. Typography

A clear and modern font family is selected for optimal readability and brand consistency.

  • Font Family: 'Inter' (or a similar sans-serif, e.g., 'Roboto', 'Open Sans')

Rationale:* Highly readable across various screen sizes, modern, and professional.

  • Headings (H1, H2, H3):

* H1 (Screen Title): 28px - 32px, Bold, HEX: #333333

* H2 (Section Title): 22px - 24px, Semi-Bold, HEX: #333333

* H3 (Subtitle/Card Title): 18px - 20px, Medium, HEX: #333333

  • Body Text:

* Default Body: 16px, Regular, HEX: #333333

* Secondary Body/Helper Text: 14px, Regular, HEX: #666666

  • Buttons & Labels: 16px - 18px, Medium/Semi-Bold, HEX: #FFFFFF (for primary buttons) or HEX: #2E86DE (for secondary/ghost buttons)
  • Line Height: 1.5 - 1.6 for body text to improve readability.

2.3. Iconography

  • Style: Line-based, consistent stroke weight, rounded corners.
  • Usage: Used to reinforce meaning, add visual interest, and guide users. Icons should be easily understandable and universally recognized where possible.
  • Source: Material Icons, Font Awesome (Pro), or custom SVG icons.
  • Color: Primarily HEX: #2E86DE or HEX: #333333 depending on context and background.

3. Wireframe Descriptions & Detailed Design Specifications

The onboarding flow is broken down into distinct screens, each with specific content, layout, and interaction details.

3.1. Screen 1: Welcome / Splash Screen

  • Purpose: Greet the user, showcase brand identity, and provide the entry point to the onboarding.
  • Layout:

* Top (20%): Brand Logo (SVG, centered, approx. 120px width).

* Middle (50%): Large, engaging illustration or animation (e.g., a dynamic scene representing the platform's core value).

* Bottom (30%):

* H1 Title: "Welcome to [Your Product Name]!"

* Body Text: "Your journey to [primary benefit] starts here. Let's get you set up."

* Primary CTA Button: "Get Started"

* Secondary Link (Optional): "Already have an account? Log In"

  • Design Specifications:

* Background: HEX: #F8F9FA

* Illustration: High-quality, brand-aligned vector illustration.

* Button:

* Background: HEX: #2E86DE

* Text: 18px, Semi-Bold, HEX: #FFFFFF

* Padding: 16px vertical, 32px horizontal

* Border Radius: 8px

* Hover/Active State: Darker shade of primary color (HEX: #257ACE)

* Log In Link: 16px, Regular, HEX: #2E86DE, Underlined on hover.

  • UX Recommendations:

* Subtle entrance animation for the illustration and text.

* Ensure the "Get Started" button is prominent and easily tappable.

3.2. Screen 2: Value Proposition Carousel (3-4 screens)

  • Purpose: Highlight key features and benefits, building anticipation and understanding.
  • Layout (Per Screen):

* Top (10%): "Skip" button (top right).

* Middle (50%): Large, distinct illustration/icon representing the feature.

* Bottom (40%):

* H2 Title: Engaging headline for the feature (e.g., "Streamline Your Workflow").

* Body Text: Concise description of the benefit (1-2 sentences).

* Pagination Dots: Visual indicators of progress (e.g., 3-4 dots).

* Navigation Buttons: "Next" (primary CTA) and "Back" (secondary).

  • Design Specifications:

* Background: HEX: #FFFFFF

* Illustrations: Consistent style across all carousel screens, engaging and relevant.

* Pagination Dots:

* Active: HEX: #2E86DE, larger size (e.g., 10px diameter)

* Inactive: HEX: #D3D3D3, smaller size (e.g., 8px diameter)

* "Next" Button: Same style as "Get Started" button from Screen 1.

* "Back" Button: Ghost button style: transparent background, HEX: #2E86DE text, 1px HEX: #2E86DE border.

* "Skip" Button: Text link, 16px, Regular, HEX: #666666.

  • UX Recommendations:

* Allow horizontal swipe gestures to navigate the carousel.

* Animate transitions between slides (e.g., slide in/out).

* The "Skip" button should be clearly visible but not distract from the main content. Tapping "Skip" should lead directly to the "Create Account" screen.

3.3. Screen 3: Sign Up / Create Account

  • Purpose: Capture essential user information to create an account.
  • Layout:

* Top (10%): Back arrow (top left) to return to the previous screen.

* H1 Title: "Create Your Account"

* Input Fields:

* "Email Address"

* "Password" (with show/hide toggle)

* "Confirm Password" (optional, depending on security requirements)

* Primary CTA Button: "Sign Up"

* Social Login Options (Optional): "Continue with Google", "Continue with Apple" (with respective brand icons).

* Secondary Link: "Already have an account? Log In"

  • Design Specifications:

* Background: HEX: #F8F9FA

* Input Fields:

* Background: HEX: #FFFFFF

* Border: 1px HEX: #D3D3D3 (normal), 2px HEX: #2E86DE (focus)

* Text: 16px, Regular, HEX: #333333

* Placeholder: 16px, Regular, HEX: #999999

* Padding: 12px vertical, 16px horizontal

* Border Radius: 6px

* Error State: 1px HEX: #DC3545 border, error message below field in HEX: #DC3545.

* "Sign Up" Button: Same style as previous primary CTAs.

* Social Login Buttons:

* Background: HEX: #FFFFFF

* Border: 1px HEX: #D3D3D3

* Text: 16px, Medium, HEX: #333333

* Icon: Left-aligned, 24px, official brand color (e.g., Google red/yellow/blue/green, Apple black).

* Hover State: Subtle shadow or border change.

  • UX Recommendations:

* Implement real-time validation for email format and password strength.

* Provide clear password requirements (e.g., minimum length, special characters) as helper text.

* Offer "Forgot Password?" link if this screen also serves as a login entry.

* Ensure social login buttons are easily recognizable and functional.

3.4. Screen 4: Profile Setup / Basic Information

  • Purpose: Collect essential user profile details for a personalized experience.
  • Layout:

* Top (10%): Back arrow (top left), Progress Indicator (e.g., "1 of 4").

* H1 Title: "Tell Us About Yourself"

* Input Fields:

* "First Name"

* "Last Name"

* "Date of Birth" (picker or specific format)

* "Country" (dropdown/searchable list)

* "Profile Picture" (optional, with upload button and default avatar)

* Primary CTA Button: "Continue"

* Secondary Link: "Skip for now"

  • Design Specifications:

* Background: HEX: #FFFFFF

* Input Fields: Same as Screen 3.

* Profile Picture Upload:

* Default Avatar: Circular placeholder with initials or generic icon, HEX: #D3D3D3 background.

* Upload Button: Icon (e.g., camera or upload cloud) + "Upload Photo" text, secondary button style.

* Progress Indicator:

* Text: 14px, Medium, HEX: #666666

* Bar: HEX: #D3D3D3 (background), HEX: #2E86DE (filled progress)

* "Continue" Button: Primary

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