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

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

This document outlines a detailed study plan designed to equip you with the knowledge and skills necessary to create comprehensive mobile app wireframe kits. This plan covers fundamental UI/UX principles, practical wireframing techniques, component library development, interaction patterns, and developer handoff best practices.


Mobile App Wireframe Kit: Comprehensive Study Plan

1. Overview & Goal

This study plan is designed for individuals seeking to master the creation of professional mobile app wireframe kits. The ultimate goal is to enable you to design, document, and prepare wireframes that effectively communicate user experience and functionality to stakeholders and development teams. By the end of this plan, you will be proficient in a chosen wireframing tool and capable of producing detailed specifications for mobile applications.

2. Learning Objectives

Upon successful completion of this study plan, you will be able to:

  • Understand Core UI/UX Principles: Articulate fundamental user interface (UI) and user experience (UX) design principles specific to mobile applications.
  • Master Wireframing Concepts: Differentiate between low-fidelity, mid-fidelity, and high-fidelity wireframes, and apply best practices for each.
  • Achieve Tool Proficiency: Gain hands-on expertise with a leading wireframing and prototyping tool (e.g., Figma, Adobe XD, Sketch).
  • Design User Flows & Screens: Create clear, logical user flows and design essential mobile application screens based on user needs and business requirements.
  • Develop Component Libraries: Build and manage reusable UI component libraries to ensure consistency and efficiency in design.
  • Define Interaction Patterns: Specify standard and custom interaction patterns for mobile elements, including gestures, transitions, and states.
  • Prepare Developer Handoffs: Generate comprehensive wireframe documentation, including annotations and specifications, suitable for seamless developer handoff.
  • Produce a Complete Wireframe Kit: Independently create a full mobile app wireframe kit, demonstrating all learned skills.

3. Weekly Schedule (6 Weeks)

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

Week 1: Fundamentals of UI/UX & Mobile Design

  • Learning Objectives: Grasp core UI/UX principles, understand mobile design constraints, and begin thinking about information architecture.
  • Topics:

* Introduction to UI/UX Design: User-centered design, empathy, problem-solving.

* Mobile Design Principles: Screen size, touch targets, platform guidelines (iOS Human Interface Guidelines, Android Material Design).

* User Research Basics: Why it's important, basic methods (interviews, surveys, competitive analysis).

* Information Architecture: Organizing content, navigation patterns (tabs, hamburger menus, carousels).

  • Activities:

* Read foundational UX articles/chapters.

* Analyze 3-5 popular mobile apps: Identify good/bad UI/UX patterns, navigation structures.

* Sketch out a basic sitemap for a hypothetical simple app (e.g., a to-do list app).

  • Deliverable: A short report summarizing observations from app analysis and a basic sitemap sketch.

Week 2: Introduction to Wireframing & Tool Proficiency

  • Learning Objectives: Understand the purpose of wireframes, differentiate fidelity levels, and become proficient in a chosen wireframing tool.
  • Topics:

* What are Wireframes?: Purpose, benefits, when to use them.

* Types of Wireframes: Low-fidelity (sketches), Mid-fidelity (digital layouts), High-fidelity (detailed designs).

* Choosing a Tool: Overview of Figma, Adobe XD, Sketch, and their core functionalities.

* Basic Tool Operations: Artboards/frames, shapes, text, grouping, layers, basic alignment.

  • Activities:

* Complete introductory tutorials for your chosen wireframing tool (e.g., Figma for Beginners).

* Recreate 3-5 simple mobile screens (e.g., login, profile, settings) as low-fidelity digital wireframes.

* Experiment with basic UI elements in the tool.

  • Deliverable: A set of 3-5 low-fidelity digital wireframes created in your chosen tool.

Week 3: Designing Core Screens & User Flows

  • Learning Objectives: Map out user journeys and design the essential screens that support those journeys.
  • Topics:

* User Flow Mapping: Visualizing user paths through an application.

* Common Mobile Patterns: Onboarding, forms, lists, detail views, search, empty states.

* Designing Key Screens: Home, dashboard, content consumption, data entry screens.

* Grid Systems & Layouts: Structuring content effectively for mobile.

  • Activities:

* Choose a simple mobile app idea (e.g., a recipe app, a budget tracker).

* Map out 2-3 core user flows for your chosen app (e.g., "User creates new recipe," "User views existing recipe").

* Design 7-10 mid-fidelity wireframes for the key screens within these user flows. Focus on content hierarchy and functionality.

  • Deliverable: 2-3 detailed user flow diagrams and 7-10 mid-fidelity wireframes for your chosen app.

Week 4: Component Library & Interaction Patterns

  • Learning Objectives: Build reusable UI components and define how users will interact with the application.
  • Topics:

* Atomic Design Principles: Building from smallest elements (atoms) to full pages (organisms).

* Creating Reusable Components: Buttons, input fields, cards, navigation bars, icons.

* States & Variations: Default, hover, active, disabled, error states for components.

* Interaction Patterns: Taps, swipes, long presses, gestures, basic animations (conceptually).

* Feedback Mechanisms: Loading indicators, success/error messages.

  • Activities:

* Refine your existing wireframes by converting common elements into reusable components in your tool.

* Create a dedicated "Component Library" page within your project file, showcasing all reusable elements and their states.

* Annotate 3-5 screens with notes describing specific user interactions and expected system feedback.

  • Deliverable: A component library within your wireframing tool, and 3-5 annotated wireframes detailing interactions.

Week 5: Prototyping & Iteration

  • Learning Objectives: Create interactive prototypes to simulate user experience and iterate on designs based on feedback.
  • Topics:

* Prototyping Basics: Linking screens, creating basic transitions (push, slide, dissolve).

* Micro-interactions: Subtle animations for feedback and delight (conceptually, not necessarily implemented in detail).

* User Testing (Informal): Gathering feedback on prototypes.

* Iterative Design: Refining wireframes based on feedback.

  • Activities:

* Connect your mid-fidelity wireframes to create an interactive prototype for your chosen app, covering at least one full user flow.

* Conduct informal user testing with 2-3 friends/colleagues; observe their interactions and gather feedback.

* Based on feedback, make at least one significant iteration to your wireframes and prototype.

  • Deliverable: An interactive prototype of your mobile app, and documentation of feedback received and design iterations made.

Week 6: Developer Handoff & Documentation

  • Learning Objectives: Prepare a complete wireframe kit with clear specifications for developers.
  • Topics:

* Wireframe Annotation: Adding detailed notes for developers (functionality, logic, edge cases).

* Specification Documents: Detailing screen content, component usage, interaction logic.

* Version Control: Managing design iterations.

* Best Practices for Developer Handoff: Tools, communication, clarity.

* Introduction to Design Systems (conceptual): How wireframes fit into a larger system.

  • Activities:

* Add comprehensive annotations to all screens within your wireframe kit.

* Create a "Developer Handoff" page or section outlining general guidelines, component usage, and any complex interaction logic.

* Organize your wireframe project file for clarity and easy navigation.

* Conduct a mock handoff presentation to a peer, explaining your wireframe kit.

  • Deliverable: A complete, well-annotated mobile app wireframe kit, ready for developer handoff, including a component library and interactive prototype.

4. Recommended Resources

  • Wireframing & Prototyping Tools (Choose one to master):

* Figma: Highly recommended for its collaborative features, web-based accessibility, and robust plugin ecosystem.

* Adobe XD: Good for integration with other Adobe products.

* Sketch: Industry-standard for macOS users, with a strong plugin community.

  • Books:

* "Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability" by Steve Krug (UX Fundamentals)

* "The Design of Everyday Things" by Don Norman (Design Principles)

* "Atomic Design" by Brad Frost (Building component libraries)

* "Designing for Mobile: Interaction Design for iOS and Android" by Smashing Magazine (Mobile-specific patterns)

  • Online Courses:

* Google UX Design Professional Certificate (Coursera): Comprehensive UX curriculum, including wireframing.

* Udemy/Skillshare: Search for specific courses on "Figma UI/UX," "Adobe XD Masterclass," or "Mobile App Wireframing."

* NN/g Group (Nielsen Norman Group): Offers excellent articles and paid courses on UX research and design.

  • Articles & Blogs:

* UX Planet: Medium publication with daily UX articles.

* Smashing Magazine: In-depth articles on web and mobile design.

* Nielsen Norman Group Articles: Research-backed insights on usability.

* Material Design Guidelines (Google): Official guidelines for Android UI.

* Human Interface Guidelines (Apple): Official guidelines for iOS UI.

  • Inspiration & Community:

* Mobbin: A library of mobile app design patterns and flows.

* Dribbble / Behance: Portfolios and inspiration from designers.

* Pttrns: Mobile UI patterns and resources.

* Reddit (r/userexperience, r/figma): Communities for discussions and advice.

* Local UX Meetups: Networking and learning from peers.

5. Milestones

  • End of Week 1: Demonstrated understanding of mobile UI/UX principles and initial information architecture.
  • End of Week 2: Proficiency in chosen wireframing tool, capable of creating basic low-fidelity digital wireframes.
  • End of Week 3: Ability to map user flows and design mid-fidelity wireframes for core application screens.
  • End of Week 4: Creation of a reusable component library and definition of key interaction patterns.
  • End of Week 5: Development of an interactive prototype and demonstrated ability to iterate based on feedback.
  • End of Week 6: Completion of a professional, fully annotated mobile app wireframe kit, ready for developer handoff.

6. Assessment Strategies

  • Practical Projects: The weekly deliverables culminate in a comprehensive mobile app wireframe kit, serving as the primary assessment of your practical skills.
  • Self-Assessment Checklists: Utilize checklists (e.g., "Is this wireframe consistent?", "Are all interactions defined?") to evaluate your work against best practices.
  • Peer Review & Critiques: Seek feedback from peers, mentors, or online communities. Present your work and actively listen to constructive criticism.
  • Knowledge Checks: Regularly quiz yourself on UI/UX terminology, mobile design principles, and tool-specific features.
  • Portfolio Building: Compile your completed wireframe kits and related documentation into a portfolio. This not only serves as an assessment of your skills but also a critical asset for professional development.
  • Timed Exercises: Periodically challenge yourself to wireframe a simple screen or flow within a set time limit to improve efficiency.

By diligently following this study plan, you will build a strong foundation in mobile app wireframing and develop the practical skills required to contribute effectively to mobile application design and development projects.

gemini Output

As a professional AI assistant within PantheraHive, I am executing step 2 of 3 for the "Mobile App Wireframe Kit" workflow. This step involves generating the core code specification for the mobile app wireframe.

This output provides a comprehensive, detailed, and professional specification using a structured JSON format, defining screen flows, a component library, interaction patterns, and crucial developer handoff notes. This "code" serves as a machine-readable and human-understandable blueprint for the mobile application's foundational structure and behavior.


Mobile App Wireframe Specification (Code Output)

This document provides a detailed, production-ready specification for a mobile app wireframe kit, encapsulated in a structured JSON format. This format is designed for clarity, programmatic consumption, and efficient handoff to development teams.

The example application used for this specification is a "Simple Task Manager" app, demonstrating common UI patterns and flows.


{
  "appName": "Simple Task Manager",
  "version": "1.0.0-wireframe",
  "description": "A low-fidelity wireframe specification for a mobile task management application, detailing screen structures, component usage, navigation flows, and interaction patterns.",

  "globalSettings": {
    "baseGridUnit": "8dp",
    "fontFamily": "System Default",
    "colorPalette": {
      "primary": "#3F51B5",
      "onPrimary": "#FFFFFF",
      "secondary": "#FF4081",
      "onSecondary": "#FFFFFF",
      "surface": "#FFFFFF",
      "onSurface": "#212121",
      "background": "#F5F5F5",
      "onBackground": "#212121",
      "error": "#D32F2F",
      "success": "#4CAF50",
      "warning": "#FFC107"
    }
  },

  "componentLibrary": [
    {
      "id": "Button_Primary",
      "name": "Primary Button",
      "type": "Button",
      "properties": {
        "text": "Call to Action",
        "style": "filled",
        "color": "primary",
        "state": ["enabled", "disabled", "loading"],
        "iconLeading": null,
        "iconTrailing": null
      },
      "description": "Main action button for positive user flows."
    },
    {
      "id": "Button_Secondary",
      "name": "Secondary Button",
      "type": "Button",
      "properties": {
        "text": "Secondary Action",
        "style": "outlined",
        "color": "primary",
        "state": ["enabled", "disabled"],
        "iconLeading": null,
        "iconTrailing": null
      },
      "description": "Alternative action button, less emphasis than primary."
    },
    {
      "id": "Input_Text",
      "name": "Text Input Field",
      "type": "TextInput",
      "properties": {
        "label": "Input Label",
        "placeholder": "Enter text here...",
        "inputType": ["text", "email", "password", "number"],
        "state": ["default", "focused", "error", "disabled"],
        "helperText": null,
        "leadingIcon": null,
        "trailingIcon": null
      },
      "description": "Standard text input field with optional label and helper text."
    },
    {
      "id": "Input_Checkbox",
      "name": "Checkbox",
      "type": "Checkbox",
      "properties": {
        "label": "Remember me",
        "state": ["checked", "unchecked", "disabled"]
      },
      "description": "A checkbox for binary selections."
    },
    {
      "id": "TopAppBar",
      "name": "Top App Bar",
      "type": "AppBar",
      "properties": {
        "title": "Screen Title",
        "leadingIcon": ["back", "menu", "close"],
        "trailingActions": [
          {"icon": "search", "action": "search"},
          {"icon": "more_vert", "action": "options"}
        ]
      },
      "description": "Standard app bar for screen titles and primary actions."
    },
    {
      "id": "BottomNavigationBar",
      "name": "Bottom Navigation Bar",
      "type": "BottomNav",
      "properties": {
        "items": [
          {"label": "Tasks", "icon": "task"},
          {"label": "Calendar", "icon": "calendar_today"},
          {"label": "Profile", "icon": "person"}
        ],
        "activeItem": "Tasks"
      },
      "description": "Persistent navigation at the bottom of the screen."
    },
    {
      "id": "FAB_Primary",
      "name": "Floating Action Button (Primary)",
      "type": "FAB",
      "properties": {
        "icon": "add",
        "color": "secondary",
        "action": "create_new_task"
      },
      "description": "Prominent button for the primary action on a screen."
    },
    {
      "id": "TaskCard",
      "name": "Task Item Card",
      "type": "Card",
      "properties": {
        "title": "Task Title",
        "description": "Short description of the task.",
        "dueDate": "YYYY-MM-DD",
        "status": ["pending", "completed", "overdue"],
        "priority": ["low", "medium", "high"],
        "checkboxVisible": true
      },
      "description": "Display card for individual tasks in a list."
    },
    {
      "id": "Modal_Confirmation",
      "name": "Confirmation Modal",
      "type": "Modal",
      "properties": {
        "title": "Confirm Action",
        "message": "Are you sure you want to proceed?",
        "primaryButtonText": "Confirm",
        "secondaryButtonText": "Cancel"
      },
      "description": "A modal dialog for requesting user confirmation."
    },
    {
      "id": "EmptyState_Placeholder",
      "name": "Empty State Placeholder",
      "type": "EmptyState",
      "properties": {
        "icon": "inbox",
        "title": "No tasks yet!",
        "message": "Start by creating your first task.",
        "actionButton": {"text": "Create Task", "action": "navigate_to_create_task"}
      },
      "description": "A placeholder UI for when a list or section has no content."
    }
  ],

  "interactionPatterns": [
    {
      "id": "Tap_Navigation",
      "name": "Tap to Navigate",
      "description": "Tapping a UI element (button, list item, icon) transitions the user to a new screen or opens a modal.",
      "example": {
        "trigger": "User taps 'Login' button on LoginScreen.",
        "action": "Navigate to DashboardScreen."
      }
    },
    {
      "id": "Swipe_Dismiss",
      "name": "Swipe to Dismiss/Complete",
      "description": "Swiping a list item (e.g., TaskCard) horizontally reveals actions or dismisses the item.",
      "example": {
        "trigger": "User swipes left on a TaskCard on DashboardScreen.",
        "action": "Reveal 'Complete' and 'Delete' buttons. Tapping 'Complete' updates task status and removes card. Tapping 'Delete' triggers Confirmation Modal."
      }
    },
    {
      "id": "LongPress_ContextMenu",
      "name": "Long Press for Context Menu",
      "description": "Pressing and holding a UI element (e.g., TaskCard) brings up a context-sensitive menu.",
      "example": {
        "trigger": "User long presses a TaskCard on DashboardScreen.",
        "action": "Display a bottom sheet or floating menu with options: 'Edit Task', 'Mark as Priority', 'Delete Task'."
      }
    },
    {
      "id": "Form_Submission",
      "name": "Form Submission",
      "description": "Submitting a form (e.g., Create Task) validates inputs and performs an action, often with loading and success/error states.",
      "example": {
        "trigger": "User taps 'Save Task' button on CreateTaskScreen.",
        "action": "Validate inputs. If valid, show loading indicator, submit data. On success, navigate back to DashboardScreen with a toast notification. On error, display inline error messages."
      }
    },
    {
      "id": "PullToRefresh",
      "name": "Pull-to-Refresh",
      "description": "Pulling down on a scrollable content area (e.g., task list) triggers a data refresh.",
      "example": {
        "trigger": "User pulls down on the task list on DashboardScreen.",
        "action": "Display a loading spinner at the top, fetch updated task data, then replace existing list content."
      }
    }
  ],

  "screens": [
    {
      "id": "SplashScreen",
      "name": "Splash Screen",
      "layout": "Centered content",
      "components": [
        {"type": "Image", "properties": {"src": "app_logo.png", "alt": "App Logo"}},
        {"type": "Text", "properties": {"text": "Simple Task Manager", "style": "headline6"}}
      ],
      "flow": [
        {"trigger": "Auto", "delayMs": 2000, "targetScreen": "LoginScreen", "transition": "fade_out"}
      ],
      "notes": "Displays app branding briefly before navigating to login/onboarding."
    },
    {
      "id": "LoginScreen",
      "name": "Login Screen",
      "layout": "Vertical stack with padding",
      "components": [
        {"type": "Image", "properties": {"src": "login_illustration.png", "alt": "Login Illustration"}},
        {"componentId": "Input_Text", "properties": {"label": "Email", "inputType": "email", "placeholder": "your@email.com"}},
        {"componentId": "Input_Text", "properties": {"label": "Password", "inputType": "password", "placeholder": "••••••••"}},
        {"componentId": "Input_Checkbox", "properties": {"label": "Remember Me"}},
        {"componentId": "Button_Primary", "properties": {"text": "Login"}},
        {"componentId": "Button_Secondary", "properties": {"text": "Forgot Password?", "style": "text"}},
        {"componentId": "Button_Secondary", "properties": {"text": "Create Account", "style": "text"}}
      ],
      "flow": [
        {"trigger": "Login_Button.tap", "targetScreen": "DashboardScreen", "transition": "slide_left"},
        {"trigger": "Create_Account_Button.tap", "targetScreen": "RegistrationScreen", "transition": "slide_up"},
        {"trigger": "Forgot_Password_Button.tap", "targetScreen": "ForgotPasswordScreen", "transition": "slide_up"}
      ],
      "notes": "Standard login form. Includes 'Remember Me' checkbox and navigation to registration/forgot password."
    },
    {
      "id": "RegistrationScreen",
      "name": "Registration Screen",
      "layout": "Vertical stack with padding",
      "components": [
        {"componentId": "TopAppBar", "properties": {"title": "Create Account", "leadingIcon": "back"}},
        {"componentId": "Input_Text", "properties": {"label": "Name", "inputType": "text", "placeholder": "John Doe"}},
        {"componentId": "Input_Text", "properties": {"label": "Email", "inputType": "email", "placeholder": "your@email.com"}},
        {"componentId": "Input_Text", "properties": {"label": "Password", "inputType": "password", "placeholder": "••••••••"}},
        {"componentId": "Input_Text", "properties": {"label": "Confirm Password", "inputType": "password", "placeholder": "••••••••"}},
        {"componentId": "Button_Primary", "properties": {"text": "Register"}}
      ],
      "flow": [
        {"trigger": "Register_Button.tap", "targetScreen": "DashboardScreen", "transition": "slide_left"},
        {"trigger": "TopAppBar.back_button.tap", "targetScreen": "LoginScreen", "transition": "slide_right"}
      ],
      "notes": "User registration form. After successful registration, user is logged in and taken to dashboard."
    },
    {
      "id": "DashboardScreen",
      "name": "Dashboard (Task List)",
      "layout": "Full-width list with FAB",
      "components": [
        {"componentId": "TopAppBar", "properties": {"title": "My Tasks", "leadingIcon": "menu", "trailingActions": [{"icon
gemini Output

Mobile App Wireframe Kit Specification

Project: Mobile App Wireframe Kit

Version: 1.0

Date: October 26, 2023

Prepared For: [Client Name/Stakeholder Group]

Prepared By: PantheraHive AI Assistant


1. Introduction and Purpose

This document outlines the complete wireframe specification for the mobile application. Its primary purpose is to serve as a foundational visual blueprint, detailing the application's structure, content hierarchy, core user flows, and basic interaction patterns.

Wireframes are low-fidelity representations focusing on the functionality, behavior, and priority of content on each screen. This kit provides a clear understanding of the user experience (UX) and overall application architecture, enabling alignment among stakeholders before proceeding to high-fidelity design (UI) and development.

Key Objectives of this Document:

  • To visualize the application's layout and content organization.
  • To define the primary user journeys and screen-to-screen navigation.
  • To establish a reusable library of common UI components.
  • To specify fundamental interaction behaviors.
  • To provide initial guidance and considerations for the development team.

2. Screen Flows

This section details the primary user journeys within the application, illustrating the sequence of screens a user will navigate to complete specific tasks.

2.1. High-Level User Journeys

A. Onboarding & Account Creation

  • Goal: Allow new users to sign up or existing users to log in, establishing their identity within the app.
  • Flow: Welcome Screen → Sign Up/Login Options → Registration Form / Login Form → Email Verification (Optional) → Profile Setup (Optional) → Home Screen.

B. Core Feature Usage (Example: "Task Management" App)

  • Goal: Enable users to view, add, edit, and complete tasks.
  • Flow: Home Screen (Task List) → Add Task → New Task Form → Save Task → Task Details Screen → Edit Task / Mark Complete → Home Screen (updated).

C. Profile & Settings Management

  • Goal: Provide users with the ability to manage their personal information and app preferences.
  • Flow: Home Screen → Profile Icon/Menu → Profile Screen → Edit Profile / Settings Options → Specific Setting Screen (e.g., Notifications, Privacy) → Save Changes → Profile Screen.

2.2. Detailed Screen Flows (Example: "Create New Task" Flow)

User Goal: A user wants to add a new task to their list.

  1. Screen: Home Screen (Task List)

* Description: Displays a list of existing tasks.

* Key Elements: App Header, Task List (scrollable), "Add New Task" Floating Action Button (FAB) or prominent button.

* Interaction: User taps the "Add New Task" button.

* Navigation: Navigates to the "New Task" Screen.

  1. Screen: New Task Screen

* Description: A form for entering new task details.

* Key Elements: App Header with "Cancel" and "Save" buttons, Input Field for Task Title, Input Field for Description (multi-line), Date Picker for Due Date, Priority Selector (e.g., radio buttons: High, Medium, Low), Category Selector (e.g., dropdown).

* Interaction: User fills in details. Taps "Save".

* Navigation: Navigates back to the "Home Screen" (Task List), potentially showing a success toast/message.

  1. Screen: Task Details Screen (Optional intermediate step)

* Description: Displays the details of the newly created task immediately after saving.

* Key Elements: App Header with "Back", "Edit", "Delete" buttons, Task Title, Description, Due Date, Priority, Category.

* Interaction: User reviews details. Taps "Back".

* Navigation: Navigates back to the "Home Screen" (Task List).

  1. Screen: Home Screen (Task List - Updated)

* Description: The task list is now updated with the newly added task.

* Key Elements: App Header, Task List (scrollable, new task visible), "Add New Task" FAB.

* Interaction: User can continue browsing or add more tasks.


3. Component Library

This section defines a set of reusable UI components used throughout the application. Maintaining a consistent component library ensures a unified user experience and streamlines the design and development process.

General Notes:

  • All components are represented in a grayscale palette, focusing on structure and function.
  • States (e.g., active, inactive, disabled, error) are indicated where applicable.
  • Dimensions and precise styling will be defined in the high-fidelity UI design phase.

3.1. Basic Elements

  • Typography:

* H1 (Largest Heading): For primary screen titles.

* H2 (Secondary Heading): For section titles within a screen.

* Body Text: Standard paragraph text for content.

* Label: For input fields, buttons.

* Caption: Small text for secondary information.

  • Color Palette (Wireframe):

* #F2F2F2: Backgrounds

* #D0D0D0: Dividers, borders

* #808080: Secondary text, placeholders

* #333333: Primary text, icons

* #007AFF (or similar accent): Interactive elements (buttons, links)

3.2. Buttons & Actions

  • Primary Button:

* Appearance: Solid fill, prominent.

* States: Default, Hover/Pressed, Disabled, Loading.

* Usage: Main call to action (e.g., "Save", "Submit", "Continue").

  • Secondary Button:

* Appearance: Outline or text-only.

* States: Default, Hover/Pressed, Disabled.

* Usage: Less emphasized actions (e.g., "Cancel", "Back").

  • Icon Button:

* Appearance: Icon only, often circular or small square.

* States: Default, Pressed.

* Usage: Navigation (e.g., Back, Menu), specific actions (e.g., Delete, Edit).

  • Floating Action Button (FAB):

* Appearance: Circular, typically with an icon, elevated.

* States: Default, Pressed.

* Usage: Primary action on a screen (e.g., "Add New Task").

3.3. Input Fields

  • Text Input Field:

* Appearance: Rectangular box with placeholder text.

* States: Default, Focused, Filled, Error (with error message), Disabled.

* Usage: Single-line text entry (e.g., Name, Email, Password).

  • Text Area:

* Appearance: Multi-line text input field.

* States: Default, Focused, Filled, Error, Disabled.

* Usage: Multi-line text entry (e.g., Description, Comments).

  • Dropdown/Selector:

* Appearance: Field with a down arrow, opens a list of options.

* States: Default, Active (list open), Selected.

* Usage: Selecting from predefined options (e.g., Category, Priority).

  • Checkbox:

* Appearance: Square box with a checkmark when selected.

* States: Unchecked, Checked, Disabled.

* Usage: Selecting one or more options from a list.

  • Radio Button:

* Appearance: Circular button, filled when selected.

* States: Unselected, Selected, Disabled.

* Usage: Selecting only one option from a mutually exclusive group.

  • Toggle Switch:

* Appearance: On/Off switch.

* States: Off, On, Disabled.

* Usage: Quick settings or preferences (e.g., "Enable Notifications").

  • Date/Time Picker:

* Appearance: Input field that triggers a native date/time selection interface.

* States: Default, Active (picker open), Selected.

* Usage: Selecting dates or times.

3.4. Navigation

  • Tab Bar (Bottom Navigation):

* Appearance: Horizontal bar at the bottom with 3-5 icons/labels.

* States: Inactive, Active (highlighted).

* Usage: Primary navigation between main sections of the app.

  • Navigation Bar (Header):

* Appearance: Top bar containing title, back button, and optional action buttons.

* Elements: App Title, Back Button, Action Buttons (e.g., Search, Settings).

* Usage: Screen-specific navigation and actions.

  • Breadcrumbs (if applicable):

* Appearance: Textual path showing current location in hierarchy.

* Usage: Deep navigation, informing users of their location.

3.5. Content Display

  • List Item:

* Appearance: Row with text, optional icon/image, and accessory (e.g., arrow, checkbox).

* States: Default, Pressed.

* Usage: Displaying lists of items (e.g., tasks, messages, settings).

  • Card:

* Appearance: Rectangular container with content, often elevated.

* Usage: Grouping related information (e.g., a single task summary, profile section).

  • Image Placeholder:

* Appearance: Gray box with an icon or generic image.

* Usage: Indicating where images will be displayed.

  • Divider:

* Appearance: Thin horizontal or vertical line.

* Usage: Separating content sections or list items.

3.6. Feedback & Modals

  • Alert Dialog:

* Appearance: Modal overlay with title, message, and 1-2 action buttons.

* Usage: Critical information, confirmations (e.g., "Are you sure you want to delete?").

  • Toast Notification:

* Appearance: Small, temporary message appearing at the bottom of the screen.

* Usage: Non-critical feedback (e.g., "Task Saved Successfully").

  • Loading Indicator:

* Appearance: Spinner or progress bar.

* Usage: Indicating that content is being loaded or an action is in progress.

  • Empty State:

* Appearance: Screen/section showing an icon, message, and often a call to action.

* Usage: When a list or section has no content (e.g., "No tasks yet!").


4. Interaction Patterns

This section describes how users will interact with the application and its components. These patterns define the expected behavior and responsiveness of the UI.

  • Tap/Click:

* Description: The primary

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