Mobile App Wireframe Kit
Run ID: 69cb5a7b61b1021a29a884292026-03-31Design
PantheraHive BOS
BOS Dashboard

Generate a complete mobile app wireframe specification with screen flows, component library, interaction patterns, and developer handoff notes.

Mobile App Wireframe Kit - Comprehensive Study Plan

This document outlines a detailed, professional study plan designed to equip you with the knowledge and skills necessary to create a complete mobile app wireframe specification. This plan is structured to provide a robust understanding of wireframing principles, tools, and best practices, culminating in the ability to produce high-quality, developer-ready wireframes.


1. Overall Goal

The primary goal of this study plan is to enable you to independently conceptualize, design, and document mobile app wireframes. Upon successful completion, you will be proficient in:

  • Understanding core UX/UI principles relevant to mobile app design.
  • Creating clear and logical screen flows and information architecture.
  • Developing a reusable component library.
  • Defining interaction patterns for various app elements.
  • Generating comprehensive developer handoff notes and specifications.
  • Utilizing industry-standard wireframing tools effectively.

2. Weekly Schedule

This 5-week schedule assumes a dedication of approximately 5-10 hours per week, balancing theoretical learning with practical application.

Week 1: Fundamentals of Wireframing & UX Principles

  • Learning Focus: Introduction to wireframing, its purpose, types (low-fidelity, mid-fidelity, high-fidelity), and core User Experience (UX) principles for mobile.
  • Key Activities:

* Day 1-2 (Theory): Read articles/chapters on "What is UX/UI Design?", "Why Wireframe?", "Mobile-First Design Principles," and common UI patterns (e.g., navigation, input fields).

* Day 3-4 (Tool Introduction): Choose a primary wireframing tool (Figma, Sketch, or Adobe XD) and complete its basic tutorials. Understand its interface, artboards, basic shapes, and text tools.

* Day 5-7 (Practical):

* Exercise 1: Sketch low-fidelity wireframes for 3-5 common mobile app screens (e.g., Login, Dashboard, Profile, Settings) on paper. Focus on layout and content hierarchy.

* Exercise 2: Recreate 2-3 of these screens in your chosen digital tool as basic low-fidelity wireframes. Focus on using simple shapes and placeholder text.

  • Deliverable: Digital low-fidelity wireframes for 2-3 core app screens.

Week 2: Screen Flows & Information Architecture

  • Learning Focus: Understanding how users navigate an app, mapping user journeys, and structuring content effectively.
  • Key Activities:

* Day 1-2 (Theory): Study concepts of User Flows, Task Analysis, Information Architecture (IA), site maps, and common mobile navigation patterns (e.g., tab bars, hamburger menus).

* Day 3-4 (Tool Practice): Explore flow diagramming tools (e.g., Miro, Whimsical, or built-in flow features in Figma/Sketch/XD).

* Day 5-7 (Practical):

* Project 1 (Core Feature): Select a simple mobile app idea (e.g., a To-Do list, a basic weather app, or a simple recipe app).

* Exercise 1: Define 1-2 key user tasks for your chosen app (e.g., "Add a new task," "View recipe details").

* Exercise 2: Create a detailed user flow diagram showing all screens and decision points for one of these key tasks.

* Exercise 3: Develop a basic site map or IA structure for your app idea.

  • Deliverable: A comprehensive user flow diagram for a core app feature and a basic site map/IA structure.

Week 3: Component Library & Interaction Patterns

  • Learning Focus: Building reusable UI elements, understanding their states, and defining how users interact with them.
  • Key Activities:

* Day 1-2 (Theory): Learn about UI components (buttons, input fields, cards, lists), their states (normal, hover, active, disabled), and common mobile interaction patterns (e.g., swipe, tap, long press, pull-to-refresh). Study principles of consistency and reusability.

* Day 3-4 (Tool Practice): Master creating components/symbols/masters in your chosen wireframing tool. Understand auto-layout, constraints, and variants.

* Day 5-7 (Practical):

* Exercise 1: Create a foundational component library for your Project 1 app. Include at least 5-7 common UI elements (e.g., primary button, secondary button, text input, checkbox, basic card, navigation bar).

* Exercise 2: Define and document the different states for each component (e.g., active/inactive button, empty/filled input field).

* Exercise 3: Update your Week 1 low-fidelity wireframes using these newly created components to achieve mid-fidelity.

  • Deliverable: A foundational component library with defined states, and updated mid-fidelity wireframes using these components.

Week 4: Prototyping, Feedback & Iteration

  • Learning Focus: Connecting wireframes to create interactive prototypes, gathering feedback, and iterating on designs.
  • Key Activities:

* Day 1-2 (Theory): Understand the importance of prototyping, different levels of interactivity, and basic principles of usability testing and gathering feedback.

* Day 3-4 (Tool Practice): Learn the prototyping features of your chosen tool (linking screens, adding transitions, basic animations).

* Day 5-7 (Practical):

* Exercise 1: Connect the mid-fidelity wireframes from your Project 1 app (covering the core user flow from Week 2) into an interactive prototype.

* Exercise 2: Simulate a usability test: ask a friend or family member to perform the core task using your prototype. Observe their interactions and collect feedback.

* Exercise 3: Based on the feedback, identify areas for improvement and iterate on your wireframes and prototype. Document the changes made and the rationale.

  • Deliverable: An interactive mid-fidelity prototype of your Project 1 app's core user flow, along with documented feedback and design iterations.

Week 5: High-Fidelity Wireframes & Developer Handoff

  • Learning Focus: Refining wireframes to a high-fidelity level, adding detailed annotations, and preparing for seamless developer handoff.
  • Key Activities:

* Day 1-2 (Theory): Learn about transforming mid-fidelity to high-fidelity wireframes (adding more realistic content, specific sizing, basic color indications if necessary). Understand the critical elements of developer handoff (specs, assets, states, interactions).

* Day 3-4 (Tool Practice): Explore annotation plugins or features in your tool. Practice creating detailed specifications (measurements, spacing, typography details).

* Day 5-7 (Practical):

* Exercise 1: Enhance your Project 1 mid-fidelity wireframes to high-fidelity. Ensure all components are consistent and representative of final UI elements (though still focusing on structure and content, not full visual design).

* Exercise 2: Add comprehensive annotations to your high-fidelity wireframes. Include details on:

* Screen titles and purpose.

* Component names and states.

* Interaction descriptions (e.g., "Tap to expand," "Swipe left to delete").

* Error messages, empty states, and loading states.

* Basic content rules (e.g., character limits for input fields).

* Exercise 3: Organize your wireframe file for developer handoff. Use clear naming conventions for layers and components. Prepare a simple "Read Me" page within the file for developers.

  • Deliverable: A complete high-fidelity wireframe specification for your Project 1 app's core user flow, including detailed annotations and organized for developer handoff.

3. Learning Objectives

Upon completing this study plan, you will be able to:

  • Knowledge & Understanding:

* Articulate the value and purpose of wireframes in the product development lifecycle.

* Differentiate between low, mid, and high-fidelity wireframes and their appropriate use.

* Explain fundamental mobile UX principles, including consistency, feedback, and learnability.

* Describe common mobile navigation patterns and their implications for user experience.

* Understand the importance of information architecture and user flows in structuring an app.

* Identify key UI components and their various states.

* Recognize and apply common mobile interaction patterns.

* Comprehend the requirements for effective developer handoff.

  • Skills & Application:

* Translate user requirements and app concepts into structured wireframes.

* Create clear and logical screen flows that map user journeys.

* Design and manage a reusable component library within a digital wireframing tool.

* Define and document interaction patterns for various UI elements.

* Develop interactive prototypes to simulate user experiences and gather feedback.

* Iterate on wireframe designs based on feedback and usability insights.

* Annotate wireframes with comprehensive specifications for developers.

* Organize wireframe files for efficient developer handoff.

  • Tool Proficiency:

* Proficiently use a chosen wireframing tool (Figma, Sketch, or Adobe XD) for creating wireframes, components, and prototypes.

* Utilize basic flow diagramming tools (e.g., Miro, Whimsical) for mapping user journeys.


4. Recommended Resources

Books & Articles:

  • "Don't Make Me Think, Revisited" by Steve Krug: Essential for understanding usability principles.
  • "The Design of Everyday Things" by Don Norman: Fundamental principles of design.
  • "Mobile First" by Luke Wroblewski: Key concepts for mobile design.
  • Nielsen Norman Group Articles: A treasure trove of UX research and best practices. (www.nngroup.com)
  • UX Planet / Smashing Magazine: Online articles covering various UX/UI topics.

Online Courses & Tutorials:

  • Coursera / Udemy / edX: Search for "UX Design Fundamentals," "Wireframing," "Figma/Sketch/Adobe XD Masterclass."
  • YouTube Channels: "Figma Learn," "Sketch Tutorials," "Adobe XD Tutorials," "Mizko" (for general UI/UX insights).
  • Tool-Specific Learning Hubs: Figma Learn (help.figma.com), Sketch Documentation (www.sketch.com/docs/), Adobe XD Learn & Support (helpx.adobe.com/xd/tutorials.html).

Software Tools:

  • Primary Wireframing Tools (Choose One):

* Figma: Cloud-based, excellent for collaboration, strong community and plugins. (Free tier available)

* Sketch: Mac-only, industry-standard for many years, robust plugin ecosystem. (Paid)

* Adobe XD: Part of the Adobe Creative Cloud suite, good for design and prototyping. (Free Starter plan available)

  • Flow Diagramming / Whiteboarding:

* Miro / Whimsical: Excellent for brainstorming, user flows, and site maps. (Free tiers available)

  • Inspiration & Reference:

* Mobbin.design: A library of real app screenshots and flows for inspiration.

* Dribbble / Behance: Portfolios of designers for visual inspiration (

gemini Output

As a professional AI assistant within PantheraHive, I am generating the detailed mobile app wireframe specification based on your request. This output is designed to be comprehensive, actionable, and ready for direct consumption by your development team.


Mobile App Wireframe Specification: Core Kit

Project: Mobile App Wireframe Kit

Version: 1.0

Date: October 26, 2023

Prepared For: Customer Deliverable

Purpose: This document provides a comprehensive specification for the core mobile app wireframes, including screen flows, a reusable component library, defined interaction patterns, and critical developer handoff notes. It serves as a foundational blueprint for the user interface (UI) and user experience (UX) implementation, ensuring clarity and consistency across design and development phases.


1. Screen Flows

This section details the primary user journeys within the application, outlining the sequence of screens and key actions. Each flow provides a high-level overview of the user's path and the purpose of each screen.

1.1. Flow: User Onboarding & Account Creation

Description: Guides new users through the initial setup, introduction to the app, and account registration process.

Flow Diagram (Conceptual):

Splash Screen → Welcome Carousel → Sign Up/Log In → Create Profile → Verify Account → Set Preferences → Home Screen

Detailed Steps & Screen Specifications:

  • Screen 1.1: Splash_Screen

* Purpose: Initial app launch screen, displays app logo and branding.

* Transition: Automatically transitions to Welcome_Carousel_Screen_1 after 2-3 seconds.

* Key Elements: App Logo, Tagline (optional).

* State: Static, full-screen.

  • Screen 1.2: Welcome_Carousel_Screen_1

* Purpose: Introduces app's core value proposition through a series of illustrative screens.

* Transition: Swipe left to Welcome_Carousel_Screen_2, Tap "Skip" to Sign_Up_Log_In_Screen.

* Key Elements: Large Illustration/Image, Headline, Description Text, Pagination Dots (1/3), "Skip" Button (top right), "Next" Button.

* State: Initial welcome message.

  • Screen 1.3: Welcome_Carousel_Screen_2

* Purpose: Second introductory screen.

* Transition: Swipe left to Welcome_Carousel_Screen_3, Swipe right to Welcome_Carousel_Screen_1, Tap "Skip" to Sign_Up_Log_In_Screen, Tap "Next" to Welcome_Carousel_Screen_3.

* Key Elements: Same as Welcome_Carousel_Screen_1 with updated content and pagination (2/3).

  • Screen 1.4: Welcome_Carousel_Screen_3

* Purpose: Final introductory screen.

* Transition: Swipe right to Welcome_Carousel_Screen_2, Tap "Skip" to Sign_Up_Log_In_Screen, Tap "Get Started" to Sign_Up_Log_In_Screen.

* Key Elements: Same as Welcome_Carousel_Screen_1 with updated content and pagination (3/3), "Next" button replaced with "Get Started" button.

  • Screen 1.5: Sign_Up_Log_In_Screen

* Purpose: Allows users to register a new account or log in to an existing one.

* Transition:

* Tap "Sign Up" Button → Create_Profile_Screen

* Tap "Log In" Button → Log_In_Screen (Separate flow, not detailed here)

* Tap "Continue with Google/Apple/Facebook" → OAuth flow (external).

* Key Elements: App Logo, "Sign Up" Primary Button, "Log In" Secondary Button, Social Login Buttons (Google, Apple, Facebook), "Forgot Password" (text link).

  • Screen 1.6: Create_Profile_Screen

* Purpose: Collects essential user information for account creation.

* Transition: Tap "Create Account" Button → Verify_Account_Screen.

* Key Elements: Top App Bar with "Back" button, Heading "Create Your Profile", Input Field (Full Name), Input Field (Email Address), Input Field (Password), Input Field (Confirm Password), Checkbox (Terms & Conditions), "Create Account" Primary Button.

* Validation: Required fields, email format, password strength.

  • Screen 1.7: Verify_Account_Screen

* Purpose: Verifies user identity via OTP sent to email/phone.

* Transition: Tap "Verify" Button (after valid OTP) → Set_Preferences_Screen.

* Key Elements: Top App Bar with "Back" button, Heading "Verify Your Account", Description text ("Enter the 6-digit code sent to [email/phone]"), OTP Input Fields (6 individual fields), "Resend Code" Text Link, "Verify" Primary Button.

* State: Loading spinner on "Verify" button tap, error message for invalid OTP.

  • Screen 1.8: Set_Preferences_Screen

* Purpose: Allows users to select interests or preferences to personalize their experience.

* Transition: Tap "Continue" Button → Home_Screen.

* Key Elements: Top App Bar with "Skip" (optional) and "Back" buttons, Heading "Tell us what you like", Grid of selectable "Interest Tags" (e.g., Sports, Tech, Food), "Continue" Primary Button.

* Interaction: Multiple tags can be selected.

1.2. Flow: Browse & View Item

Description: Users navigate through the app to discover and view details of an item or content.

Flow Diagram (Conceptual):

Home Screen → Category/Search Results → Item Detail Screen

Detailed Steps & Screen Specifications:

  • Screen 2.1: Home_Screen

* Purpose: Main dashboard/feed, personalized content, quick access to features.

* Transition:

* Tap on Category Card → Category_Results_Screen

* Tap on Search Bar → Search_Screen (not detailed here)

* Tap on Item Card → Item_Detail_Screen

* Tap on Bottom Nav Item → Corresponding main screen.

* Key Elements: Top App Bar (with Hamburger Menu/Avatar, Search Icon), Horizontal Scrollable Category List (Category Cards), Vertical Scrollable Feed of Item Cards, Bottom Navigation Bar.

  • Screen 2.2: Category_Results_Screen

* Purpose: Displays a list of items belonging to a specific category or search query.

* Transition:

* Tap on "Back" Button → Home_Screen

* Tap on Item Card → Item_Detail_Screen

* Scroll to end of list → Load more items.

* Key Elements: Top App Bar (with "Back" Button, Category Title, Filter/Sort Icon), Item List (vertical scroll, using Item_Card component), Loading Indicator at bottom for pagination.

* Empty State: "No results found" message with an illustration if the list is empty.

  • Screen 2.3: Item_Detail_Screen

* Purpose: Shows comprehensive details about a selected item.

* Transition:

* Tap on "Back" Button → Category_Results_Screen or Home_Screen

* Tap "Add to Cart" → Cart_Screen (not detailed here)

* Tap "Share" → Native Share Sheet.

* Key Elements: Top App Bar (with "Back" Button, Share Icon, Favorite Icon), Large Image Carousel for item visuals, Item Title (H1), Price/Status, Description Text, Seller/Author Info, Call-to-Action Buttons (e.g., "Add to Cart", "Buy Now"), Related Items (horizontal scrollable list of Item_Cards), Reviews Section.

* Interaction: Image carousel swipe, expandable description text.

1.3. Flow: User Profile Management

Description: Allows users to view and update their personal information and app settings.

Flow Diagram (Conceptual):

Home Screen (Bottom Nav) → Profile Screen → Edit Profile / Settings

Detailed Steps & Screen Specifications:

gemini Output

Mobile App Wireframe Kit: Complete Specification

Project: Mobile App Wireframe Kit

Date: October 26, 2023

Version: 1.0

Prepared For: [Customer Name/Team]


1. Introduction & Overview

This document provides a comprehensive wireframe specification for the proposed mobile application, detailing its structure, user flows, reusable components, interaction patterns, and critical notes for development. This specification serves as a foundational blueprint, outlining the core functionality and user experience at a low-fidelity level, prior to visual design.

Purpose:

  • To clearly define the app's information architecture and screen layouts.
  • To illustrate key user journeys and navigation pathways.
  • To establish a consistent set of UI components for efficiency and uniformity.
  • To provide a clear understanding of user interactions within the app.
  • To facilitate a smooth handoff to the development team with actionable instructions.

Scope:

This document covers the primary user flows, essential UI components, and fundamental interaction models. It is a functional specification, not a visual design guide. Visual styling, branding, and high-fidelity mockups will follow in subsequent design phases.


2. Key User Flows (Screen Flows)

This section outlines critical user journeys within the application, demonstrating screen progression and decision points.

App Context: For illustrative purposes, we will assume a "Content Discovery & Management" app where users can browse articles, save favorites, and manage their profile.

2.1. User Onboarding & Login Flow

Objective: Allow new users to sign up or existing users to log in securely.

  1. Splash Screen:

* Description: Displays app logo and branding briefly (e.g., 2-3 seconds).

* Transition: Auto-navigates to "Welcome Screen."

  1. Welcome Screen:

* Description: Presents options for "Sign Up" or "Log In."

* Components: Large primary buttons for "Sign Up" and "Log In." Optional text link for "Continue as Guest."

* Transitions:

* Tap "Sign Up" → "Registration Screen (Email/Password)."

* Tap "Log In" → "Login Screen."

* Tap "Continue as Guest" → "Home Screen (Guest Mode)."

  1. Registration Screen (Email/Password):

* Description: Form for new user registration.

* Components:

* Text Input Field: "Email Address" (keyboard type: email).

* Text Input Field: "Password" (keyboard type: password, secure text entry, show/hide toggle).

* Text Input Field: "Confirm Password" (keyboard type: password, secure text entry).

* Checkbox: "Agree to Terms & Conditions" (linked to T&C document).

* Primary Button: "Create Account."

* Text Link: "Already have an account? Log In."

* Transitions:

* Successful registration → "Profile Setup (Optional)."

* Tap "Log In" link → "Login Screen."

* Validation errors → Inline error messages below fields.

  1. Login Screen:

* Description: Form for existing user login.

* Components:

* Text Input Field: "Email Address."

* Text Input Field: "Password."

* Primary Button: "Log In."

* Text Link: "Forgot Password?"

* Text Link: "Don't have an account? Sign Up."

* Transitions:

* Successful login → "Home Screen (Authenticated)."

* Tap "Forgot Password?" → "Forgot Password Screen."

* Tap "Sign Up" link → "Registration Screen."

* Failed login → Toast notification: "Invalid credentials."

  1. Forgot Password Screen:

* Description: Allows users to reset their password.

* Components:

* Text Input Field: "Email Address."

* Primary Button: "Reset Password."

* Transitions:

* Successful submission → Toast notification: "Password reset link sent to your email." → "Login Screen."

* Invalid email → Inline error message.

2.2. Content Browsing & Viewing Flow

Objective: Enable users to discover and consume content.

  1. Home Screen (Authenticated):

* Description: Main dashboard with personalized content feeds.

* Components:

* Top Navigation Bar: Search icon, Profile icon.

* Content Feed (Scrollable): List of "Card" components, each representing an article/content item (Title, Thumbnail, Author, Category).

* Bottom Navigation Bar: Home, Explore, Saved, Settings.

* Transitions:

* Tap Search icon → "Search Results Screen."

* Tap Profile icon → "User Profile Screen."

* Tap a "Card" component → "Content Detail Screen."

* Tap "Explore" in bottom nav → "Explore Categories Screen."

* Tap "Saved" in bottom nav → "Saved Content Screen."

  1. Content Detail Screen:

* Description: Displays the full content of an article.

* Components:

* Top Navigation Bar: Back arrow, Share icon, Save icon (toggle state).

* Content Area: Article Title, Author, Date, Main Image, Rich Text Content (scrollable).

* Related Content Section: Scrollable list of small "Card" components.

* Transitions:

* Tap Back arrow → "Home Screen" or previous screen.

* Tap Share icon → Native Share Sheet (iOS/Android).

* Tap Save icon → Toggles save status, updates icon, toast notification ("Saved" / "Unsaved").

* Tap a related content card → Another "Content Detail Screen."

2.3. Profile Management Flow

Objective: Allow users to view and edit their profile information.

  1. User Profile Screen:

* Description: Displays user's personal information and app settings.

* Components:

* Top Navigation Bar: Back arrow, Edit icon.

* Profile Header: Profile Picture (placeholder), User Name, Email.

* Sections: "My Saved Items" (link), "Account Settings" (link), "Notifications" (toggle), "Privacy Policy" (link), "Logout" (button).

* Transitions:

* Tap Back arrow → "Home Screen."

* Tap Edit icon → "Edit Profile Screen."

* Tap "My Saved Items" → "Saved Content Screen."

* Tap "Account Settings" → "Account Settings Screen."

* Tap "Logout" → Confirmation Modal → Logs out and returns to "Welcome Screen."

  1. Edit Profile Screen:

* Description: Form for users to update their profile details.

* Components:

* Top Navigation Bar: Back arrow, Save button.

* Profile Picture: Tap to upload new image (access camera/gallery).

* Text Input Field: "First Name."

* Text Input Field: "Last Name."

* Text Input Field: "Bio" (multiline).

* Primary Button: "Change Password."

* Transitions:

* Tap Back arrow (without saving) → Confirmation Modal: "Discard changes?" → "User Profile Screen."

* Tap Save button → Updates profile, toast notification: "Profile updated." → "User Profile Screen."

* Tap "Change Password" button → "Change Password Screen."


3. Component Library

This section defines the reusable UI elements that form the building blocks of the application, ensuring consistency and efficiency in design and development.

3.1. Navigation Components

  • Top Navigation Bar (App Bar):

* Description: Persistent bar at the top of the screen.

* Elements: Title, Back Button, Action Icons (e.g., Search, Profile, Share, Save, Edit).

* States: Default, with back button, with multiple action icons.

* Usage: Primary screen title, global actions.

  • Bottom Navigation Bar (Tab Bar):

* Description: Persistent bar at the bottom for primary app navigation.

* Elements: 3-5 navigation icons with optional text labels.

* States: Default, Active (highlighted icon/text for current screen).

* Usage: Core app sections (Home, Explore, Saved, Settings).

  • Hamburger Menu (Drawer Navigation):

* Description: Slide-out menu from the left/right edge.

* Elements: Menu icon (top left/right), list of navigation links, potentially user profile info.

* States: Closed, Open.

Usage: Secondary navigation, settings, less frequently accessed sections (if not using bottom nav for all main sections). For this app, we primarily use a Bottom Nav and direct links.*

3.2. Input Components

  • Text Input Field:

* Description: Allows users to enter single or multiline text.

* Elements: Label/Placeholder text, Input area.

* States: Default, Focused (highlighted border/underline), Filled, Disabled, Error (red border/text, inline error message).

* Variants: Single line, Multiline (Textarea), Password (secure text entry, show/hide toggle), Email, Number.

  • Button (Primary):

* Description: Main call to action.

* Appearance: Solid background, contrasting text.

* States: Default, Pressed, Disabled, Loading (with spinner).

* Usage: Form submission, key actions.

  • Button (Secondary/Outline):

* Description: Less prominent action.

* Appearance: Transparent background, colored border and text.

* States: Default, Pressed, Disabled.

* Usage: Alternative actions, "Cancel" buttons.

  • Text Link Button:

* Description: Simple text that triggers an action or navigation.

* Appearance: Underlined text or distinct color.

* States: Default, Pressed.

* Usage: "Forgot Password?", "Sign Up," "Learn More."

  • Checkbox:

* Description: Allows users to select one or more options from a list.

* Elements: Square box, label.

* States: Unchecked, Checked, Disabled (checked/unchecked).

* Usage: Agreeing to terms, multi-selection.

  • Radio Button:

* Description: Allows users to select only one option from a mutually exclusive group.

* Elements: Circular button, label.

* States: Unselected, Selected, Disabled (selected/unselected).

* Usage: Single choice selection.

  • Toggle Switch:

* Description: Binary on/off control.

* Elements: Track, thumb.

* States: Off (inactive), On (active), Disabled (on/off).

* Usage: Settings (e.g., "Receive Notifications").

3.3. Information Display Components

  • Card:

* Description: Container for related pieces of information.

* Elements: Image/Thumbnail, Title, Subtitle, Description, Action button/icon (optional).

* Usage: Displaying articles, products, user profiles in lists/grids.

  • List Item:

* Description: Single row in a list, often with an icon or accessory.

* Elements: Icon (optional), Primary Text, Secondary Text (optional), Disclosure Indicator (arrow) or Action Icon.

* Usage: Settings menu, saved items list.

  • Modal/Dialog:

* Description: Overlays the current content to demand user attention for a specific task or information.

* Elements: Title, Message, Action Buttons (e.g., "Confirm," "Cancel").

* Usage: Confirming destructive actions (e.g., "Logout"), important alerts.

  • Toast Notification:

* Description: Small, non-intrusive, temporary message appearing at the bottom of the screen.

* Elements: Short text message.

* Usage: Confirmation of actions (e.g., "Item Saved," "Profile Updated"), minor alerts.

  • Banner/Snackbar:

* Description: Persistent message bar that appears at the top or bottom of the screen, often with an action.

* Elements: Text message, optional action button.

* Usage: Offline status, undo actions.

  • Progress Indicator (Spinner/Loader):

* Description: Indicates that an operation is ongoing.

* Elements: Circular spinner.

* Usage: Loading content, submitting forms.

3.4. Media Components

  • Image:

* Description: Displays static images.

* States: Default, Loading (with placeholder/spinner), Error (with broken image icon).

* Usage: Thumbnails, hero images, profile pictures.


4. Interaction Patterns

This section details common ways users will interact with the application and its components.

  • Tap/Click:

* Description: Single touch action to activate buttons

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

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

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

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

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

"+title+"

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

$1

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

$1

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

$1

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

"); h+="

"+hc+"

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