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
- 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
- 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
- Runs as a plain HTML file β open in any browser, no server or build step needed
DiskAnalyzer.htmlβ Version 1, pure HTML + CSS + vanilla JSDiskAnalyzerV2.htmlβ Version 2, refined UI with improved layout and interactionsDiskanalyzer.jsxβ React component version for embedding into React projects
- V1 (
DiskAnalyzer.html) β clean, functional baseline implementation - V2 (
DiskAnalyzerV2.html) β polished design iteration with enhanced UX and visual improvements
# 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.htmlOr simply double-click DiskAnalyzerV2.html in your file manager.
β No npm, no server, no build tools required β it just works.
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.htmlCopy Diskanalyzer.jsx into your React project:
cp Diskanalyzer.jsx your-react-project/src/components/DiskAnalyzer.jsxThen import and use it:
import DiskAnalyzer from './components/DiskAnalyzer';
function App() {
return (
<div>
<DiskAnalyzer />
</div>
);
}| 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 |
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.
| 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 |
βββββββββββββββββββββββββββ
β 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% β β
β βββββββββββββββββββββ β
β ... β
βββββββββββββββββββββββββββ
| 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 |
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 |
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: 'ποΈ' },
]
};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.
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: 'πΌοΈ' },
// ...
]}
/>| 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 |
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- 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
β 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) orCmd + 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
.jsxextension - 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!