Skip to content

MilindLate/mobile-Disk-Usage-Analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“± Mobile Disk Usage Analyzer

Beautifully designed, mobile-first disk & data usage visualizer

HTML5 JavaScript React Mobile First No Build License


A clean, intuitive mobile-first UI/UX for analyzing disk and data usage β€” delivered as lightweight, zero-dependency HTML files you can open directly in any browser, no install needed.


✨ Features β€’ πŸš€ Quick Start β€’ πŸ“ Files β€’ πŸ“ UI Design β€’ πŸ”§ Customization β€’ 🀝 Contributing


✨ Features

πŸ“Š Visual Data Analysis

  • Interactive charts β€” pie charts, progress bars, and bar graphs for at-a-glance storage breakdown
  • Category breakdown β€” images, videos, audio, documents, apps, system files, and other
  • Size formatting β€” automatic conversion between B, KB, MB, GB for readable display
  • Color-coded categories β€” consistent visual language across all views

πŸ“± Mobile-First UI/UX

  • Designed specifically for small screen usability β€” thumb-friendly tap targets, readable font sizes
  • Responsive layout that adapts naturally to phone, tablet, and desktop viewports
  • Smooth, native-feeling CSS animations and transitions
  • Clean card-based design with well-structured information hierarchy

⚑ Zero Dependencies

  • Runs as a plain HTML file β€” open in any browser, no server or build step needed
  • DiskAnalyzer.html β€” Version 1, pure HTML + CSS + vanilla JS
  • DiskAnalyzerV2.html β€” Version 2, refined UI with improved layout and interactions
  • Diskanalyzer.jsx β€” React component version for embedding into React projects

🎨 Two Complete Versions

  • V1 (DiskAnalyzer.html) β€” clean, functional baseline implementation
  • V2 (DiskAnalyzerV2.html) β€” polished design iteration with enhanced UX and visual improvements

πŸš€ Quick Start

Option 1 β€” Open Directly in Browser (Easiest)

# Clone the repo
git clone https://github.com/MilindLate/mobile-Disk-Usage-Analyzer.git
cd mobile-Disk-Usage-Analyzer

# Open V2 (recommended) directly in your default browser
# On Linux:
xdg-open DiskAnalyzerV2.html

# On macOS:
open DiskAnalyzerV2.html

# On Windows:
start DiskAnalyzerV2.html

Or simply double-click DiskAnalyzerV2.html in your file manager.

βœ… No npm, no server, no build tools required β€” it just works.

Option 2 β€” Serve Locally (Optional)

If you prefer a local server (e.g., to avoid any browser CORS restrictions):

# Using Python 3
python3 -m http.server 8080

# Using Node.js (npx)
npx serve .

# Then open:
# http://localhost:8080/DiskAnalyzerV2.html

Option 3 β€” Use the React Component

Copy Diskanalyzer.jsx into your React project:

cp Diskanalyzer.jsx your-react-project/src/components/DiskAnalyzer.jsx

Then import and use it:

import DiskAnalyzer from './components/DiskAnalyzer';

function App() {
  return (
    <div>
      <DiskAnalyzer />
    </div>
  );
}

πŸ“ Files in This Repo

File Type Description
DiskAnalyzer.html HTML + JS Version 1 β€” Core disk usage analyzer, clean baseline UI
DiskAnalyzerV2.html HTML + JS Version 2 β€” Refined UI/UX with improved visuals and layout βœ… Recommended
Diskanalyzer.jsx React JSX React component version β€” drop into any React/Next.js project

πŸ“ UI & UX Design

Design Goals

The primary goal of this project is to solve a real mobile usability problem: disk usage apps are usually desktop-first and hard to read on phones. This project inverts that β€” designing for the smallest screen first, then scaling up.

Key Design Decisions

Design Choice Rationale
Card-based layout Each storage category is a scannable card β€” easy to skim on a phone
Large tap targets All interactive elements are at least 44Γ—44px β€” thumb-friendly
Color-coded categories Instant visual recognition without reading text labels
Circular/donut chart Best use of vertical mobile space vs. horizontal bar charts
Progress bars per category Relative comparison at a glance β€” no mental math needed
Bottom-anchored controls Reachable with one thumb on tall phones
High contrast text Readable in outdoor / bright-screen conditions

Layout Structure

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Header / App Title     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                         β”‚
β”‚   Donut / Pie Chart     β”‚
β”‚   (total usage visual)  β”‚
β”‚                         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Storage Summary Card   β”‚
β”‚  Used: X GB / Total: Y  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Category Cards         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ πŸ–Ό Images   2.3 GBβ”‚  β”‚
β”‚  β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘  58%   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ 🎡 Audio    1.1 GBβ”‚  β”‚
β”‚  β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘  28%   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚  ...                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

V1 β†’ V2 Improvements

Area V1 V2
Chart Simple bar chart Animated donut/pie chart
Category icons Text labels Emoji / icon prefixes
Color palette Basic colors Curated, accessible palette
Spacing Functional Refined padding and rhythm
Animations None Smooth transitions on load
Summary card Basic text Visual used/free split
Typography System default Consistent size scale

🎨 Color System

Each file category has a consistent color used across charts and category cards:

Category Color Hex
πŸ–ΌοΈ Images Coral #FF6B6B
🎬 Videos Blue #4ECDC4
🎡 Audio Purple #A29BFE
πŸ“„ Documents Yellow #FFEAA7
πŸ“¦ Apps Orange #FD9644
βš™οΈ System Gray-Blue #74B9FF
πŸ—‚οΈ Other Light Gray #DFE6E9

πŸ”§ Customization

Change Storage Data (HTML Versions)

The storage data is defined as a JavaScript object near the top of each HTML file. Edit the values to match your actual device:

const storageData = {
  total: 128,        // Total storage in GB
  used: 89.4,        // Used storage in GB
  categories: [
    { name: 'Images',    size: 23.5, color: '#FF6B6B', icon: 'πŸ–ΌοΈ' },
    { name: 'Videos',    size: 18.2, color: '#4ECDC4', icon: '🎬' },
    { name: 'Audio',     size: 11.1, color: '#A29BFE', icon: '🎡' },
    { name: 'Documents', size: 8.4,  color: '#FFEAA7', icon: 'πŸ“„' },
    { name: 'Apps',      size: 17.6, color: '#FD9644', icon: 'πŸ“¦' },
    { name: 'System',    size: 7.2,  color: '#74B9FF', icon: 'βš™οΈ' },
    { name: 'Other',     size: 3.4,  color: '#DFE6E9', icon: 'πŸ—‚οΈ' },
  ]
};

Change Color Theme

The color palette is defined using CSS custom properties at the top of each file:

:root {
  --bg-primary:    #0F0F23;   /* Dark background */
  --bg-card:       #1A1A2E;   /* Card background */
  --text-primary:  #EAEAEA;   /* Main text */
  --text-secondary:#A0A0B0;   /* Muted text */
  --accent:        #6C63FF;   /* Accent / highlight */
  --border:        #2A2A3E;   /* Card borders */
}

Switch to a light theme by changing these variables.

Use React Component with Real Data

Pass your own data as props to the JSX component:

<DiskAnalyzer
  totalStorage={128}
  usedStorage={89.4}
  categories={[
    { name: 'Images', size: 23.5, color: '#FF6B6B', icon: 'πŸ–ΌοΈ' },
    // ...
  ]}
/>

πŸ“± Responsive Breakpoints

Breakpoint Target Layout
< 480px Small phones Single column, compact cards
480px – 768px Large phones / small tablets Single column, comfortable spacing
768px – 1024px Tablets Two-column category grid
> 1024px Desktop Two-column with sidebar chart

🀝 Contributing

Contributions, feedback, and UI improvement ideas are welcome!

# 1. Fork the repo on GitHub

# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/mobile-Disk-Usage-Analyzer.git

# 3. Create a feature branch
git checkout -b feature/your-improvement

# 4. Make your changes β€” open the HTML file in browser to test
open DiskAnalyzerV2.html

# 5. Commit and push
git add .
git commit -m "improve: describe your change"
git push origin feature/your-improvement

# 6. Open a Pull Request

Ideas for Contribution

  • Add a dark / light theme toggle
  • Add animated number counters on page load
  • Add a drill-down view to see files within each category
  • Add localStorage persistence so data survives page refresh
  • Add export to JSON/CSV button
  • Create a PWA version with a manifest and service worker
  • Add drag-to-compare between two storage profiles

πŸ› οΈ Troubleshooting

❌ Page looks unstyled or broken
  • Make sure you are opening the file in a modern browser (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
  • Try a different browser β€” some privacy-focused browsers block inline scripts
  • If using the JSX file directly, you need a React build environment β€” see Option 3 above
❌ Charts not rendering
  • The charts are drawn using the Canvas API β€” ensure your browser supports it (all modern browsers do)
  • Try a hard refresh: Ctrl + Shift + R (Windows/Linux) or Cmd + Shift + R (macOS)
  • Check browser console (F12 β†’ Console) for any JavaScript errors
❌ File opened but shows blank page
  • Some browsers block JavaScript in locally-opened HTML files β€” use a local server instead:
    npx serve .
    # then open http://localhost:3000/DiskAnalyzerV2.html
❌ JSX version not working in React project
  • Ensure your project has React 16.8+ installed
  • If using Vite or Create React App, make sure the file has a .jsx extension
  • The component expects props β€” check the customization section for the correct prop format

Built with ❀️ by MilindLate



Mobile Disk Usage Analyzer Β |Β  HTML + JS Β |Β  React JSX Β |Β  Mobile-First UI



⭐ If this helped you, consider giving it a star!

About

Design and develop a good UI/UX for easily analysis Data .

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors