350 lines
8.9 KiB
Markdown
350 lines
8.9 KiB
Markdown
# 📱 Panduan Testing Mobile Responsive di DevTools
|
||
|
||
## 🚀 Cara Test Dashboard Responsive dengan Device Emulation
|
||
|
||
### **Langkah 1: Buka Dashboard Admin**
|
||
```
|
||
1. Buka browser (Chrome, Firefox, Edge)
|
||
2. Akses: http://localhost:8000/admin/dashboard
|
||
3. Login dengan: admin@gmail.com / admin123
|
||
```
|
||
|
||
### **Langkah 2: Buka DevTools**
|
||
```
|
||
Windows/Linux: Tekan Ctrl + Shift + I
|
||
Mac: Tekan Cmd + Option + I
|
||
Atau: Klik kanan → Inspect
|
||
```
|
||
|
||
### **Langkah 3: Aktifkan Device Toolbar (Mobile Mode)**
|
||
```
|
||
Windows/Linux: Tekan Ctrl + Shift + M
|
||
Mac: Tekan Cmd + Shift + M
|
||
Atau: DevTools → Click icon "Toggle device toolbar"
|
||
```
|
||
|
||
---
|
||
|
||
## 📱 Device Emulation yang Perlu Ditest
|
||
|
||
### **1. Mobile Phones (Portrait)**
|
||
| Device | Resolution | Size |
|
||
|--------|-----------|------|
|
||
| iPhone SE | 375×667 | Kecil |
|
||
| iPhone 12 | 390×844 | Medium |
|
||
| iPhone 13 Pro | 390×844 | Medium |
|
||
| iPhone 14 | 390×844 | Medium |
|
||
| Pixel 5 | 393×851 | Medium |
|
||
| Galaxy S21 | 360×800 | Kecil |
|
||
|
||
### **2. Tablet (Portrait & Landscape)**
|
||
| Device | Portrait | Landscape |
|
||
|--------|----------|-----------|
|
||
| iPad Air | 768×1024 | 1024×768 |
|
||
| iPad Pro | 1024×1366 | 1366×1024 |
|
||
| Galaxy Tab | 600×960 | 960×600 |
|
||
|
||
### **3. Desktop**
|
||
| Resolution | Size |
|
||
|-----------|------|
|
||
| 1366×768 | Laptop |
|
||
| 1920×1080 | Desktop Full HD |
|
||
| 2560×1440 | Desktop 2K |
|
||
|
||
---
|
||
|
||
## ✅ Checklist Testing Mobile Mode
|
||
|
||
### **Header/Navigation** ✓
|
||
- [ ] Hamburger menu (≡) **VISIBLE** di mobile
|
||
- [ ] Hamburger menu **HIDDEN** di tablet+ (md breakpoint)
|
||
- [ ] Dark mode toggle **VISIBLE** di semua ukuran
|
||
- [ ] Logout button **VISIBLE** tapi text hidden di mobile
|
||
- [ ] Page title **VISIBLE** di mobile
|
||
|
||
### **Sidebar** ✓
|
||
- [ ] Sidebar **HIDDEN** di mobile (default)
|
||
- [ ] Hamburger menu bisa **membuka** sidebar
|
||
- [ ] Sidebar bisa **ditutup** dengan overlay
|
||
- [ ] Sidebar link bisa **ditutup** otomatis saat diklik (mobile)
|
||
- [ ] Sidebar **VISIBLE** di tablet+ (md breakpoint)
|
||
|
||
### **Main Content** ✓
|
||
- [ ] Grid layout **2 kolom** di mobile
|
||
- [ ] Grid layout **2 kolom** di tablet
|
||
- [ ] Grid layout **4 kolom** di desktop
|
||
- [ ] **No horizontal scroll** di mobile
|
||
- [ ] Text **readable** di semua ukuran
|
||
- [ ] Padding/spacing **optimal** per device
|
||
|
||
### **Statistics Cards** ✓
|
||
- [ ] Card height **responsive**
|
||
- [ ] Card padding **compact** di mobile
|
||
- [ ] Card padding **full** di desktop
|
||
- [ ] Icon size **scalable** (8px → 10px)
|
||
- [ ] Statistics text **readable**
|
||
|
||
### **Charts** ✓
|
||
- [ ] Chart height **250px** di mobile
|
||
- [ ] Chart height **320px** di desktop
|
||
- [ ] Chart font size **10px** di mobile
|
||
- [ ] Chart font size **12px** di desktop
|
||
- [ ] Chart point radius **3px** di mobile
|
||
- [ ] Chart point radius **5px** di desktop
|
||
- [ ] Chart **tidak terpotong** (no overflow)
|
||
|
||
### **Tables** ✓
|
||
- [ ] Table kolom **hide/show** sesuai breakpoint
|
||
- [ ] Mobile: Hanya **Nama + Status** visible
|
||
- [ ] Tablet: **Nama, Email, Status** visible
|
||
- [ ] Desktop: **Semua kolom** visible
|
||
- [ ] Thumbnail image **responsive** (8px → 12px)
|
||
- [ ] No horizontal scroll di mobile
|
||
|
||
### **Forms/Modals** ✓
|
||
- [ ] Modal **full width** di mobile
|
||
- [ ] Modal **centered + max-width** di desktop
|
||
- [ ] Input fields **full width** di mobile
|
||
- [ ] Buttons **properly spaced** (44px min height)
|
||
- [ ] Form **accessible** dan tidak terjepit
|
||
|
||
---
|
||
|
||
## 🔄 Testing Steps Detail
|
||
|
||
### **Test 1: Mobile Layout (375px)**
|
||
```
|
||
1. DevTools → Device Emulation → iPhone 12 (390×844)
|
||
2. Refresh page (Ctrl+R)
|
||
3. Verify:
|
||
✓ Sidebar hidden
|
||
✓ Hamburger menu visible
|
||
✓ 2 kolom grid
|
||
✓ Text readable
|
||
✓ No horizontal scroll
|
||
```
|
||
|
||
### **Test 2: Hamburger Menu Toggle**
|
||
```
|
||
1. Mobile mode (375px)
|
||
2. Klik hamburger menu (≡) di header kiri
|
||
3. Verify:
|
||
✓ Sidebar slide dari kiri
|
||
✓ Overlay gelap muncul
|
||
✓ Sidebar tertutup saat klik link
|
||
✓ Sidebar tertutup saat klik overlay
|
||
```
|
||
|
||
### **Test 3: Resize from Mobile to Desktop**
|
||
```
|
||
1. DevTools → Device Emulation → iPhone 12 (390×844)
|
||
2. Refresh page
|
||
3. Verifikasi mobile layout (sidebar hidden, hamburger visible)
|
||
4. Resize browser ke 768px (md breakpoint)
|
||
5. Verify:
|
||
✓ Sidebar auto-appear
|
||
✓ Hamburger auto-hide
|
||
✓ Layout adjust to 2 columns
|
||
```
|
||
|
||
### **Test 4: Resize from Desktop to Mobile**
|
||
```
|
||
1. DevTools → Responsive (1920×1080)
|
||
2. Refresh page
|
||
3. Verifikasi desktop layout (sidebar visible, 4 columns)
|
||
4. Resize browser ke 374px (mobile)
|
||
5. Verify:
|
||
✓ Sidebar auto-hide
|
||
✓ Hamburger auto-show
|
||
✓ Layout adjust to 2 columns
|
||
```
|
||
|
||
### **Test 5: Tablet Landscape**
|
||
```
|
||
1. DevTools → Device Emulation → iPad Air (Landscape 1024×768)
|
||
2. Refresh page
|
||
3. Verify:
|
||
✓ Sidebar visible (md: breakpoint)
|
||
✓ Hamburger hidden
|
||
✓ 2-4 kolom grid (bergantung desain)
|
||
✓ All content visible
|
||
```
|
||
|
||
### **Test 6: Chart Responsiveness**
|
||
```
|
||
1. Mobile mode (375px)
|
||
2. Buka Dashboard atau System Statistics
|
||
3. Verify chart:
|
||
✓ Height 250px
|
||
✓ Font size small
|
||
✓ Point radius 3px
|
||
4. Resize ke desktop (1920px)
|
||
5. Verify chart:
|
||
✓ Height 320px
|
||
✓ Font size normal
|
||
✓ Point radius 5px
|
||
```
|
||
|
||
### **Test 7: All Pages Responsive**
|
||
```
|
||
Testing pages:
|
||
1. Dashboard (/)
|
||
✓ Stat cards responsive
|
||
✓ Charts responsive
|
||
|
||
2. System Statistics (/system-statistics)
|
||
✓ Charts visible
|
||
✓ No overlap
|
||
|
||
3. Classification History (/classification-history)
|
||
✓ Table responsive
|
||
✓ Columns hide/show
|
||
|
||
4. Manage Admin (/manage-admin)
|
||
✓ Table responsive
|
||
✓ Modal adaptive
|
||
```
|
||
|
||
---
|
||
|
||
## 🐛 Troubleshooting
|
||
|
||
### **Problem: Sidebar tidak hilang di mobile**
|
||
```
|
||
Solution:
|
||
1. Hard refresh: Ctrl+Shift+R (bukan Ctrl+R)
|
||
2. Clear DevTools: Tekan X di kanan atas DevTools
|
||
3. Buka file app.blade.php
|
||
4. Cek class: -translate-x-full pada sidebar-wrapper
|
||
5. Cek viewport meta tag ada: <meta name="viewport" ...>
|
||
```
|
||
|
||
### **Problem: Hamburger menu tidak berfungsi**
|
||
```
|
||
Solution:
|
||
1. Buka DevTools Console (F12 → Console)
|
||
2. Verify tidak ada error (lihat warna merah)
|
||
3. Test manual: Ketik di console:
|
||
document.getElementById('menuToggle').click()
|
||
4. Klik hamburger di page, sidebar harus slide
|
||
```
|
||
|
||
### **Problem: Chart tidak responsive**
|
||
```
|
||
Solution:
|
||
1. Buka file dengan chart (dashboard.blade.php)
|
||
2. Cek ada script:
|
||
const isMobile = window.innerWidth < 768;
|
||
Chart.js options dengan conditional values
|
||
3. Refresh page, cek di DevTools Console
|
||
```
|
||
|
||
### **Problem: Grid tidak berubah kolom**
|
||
```
|
||
Solution:
|
||
1. Cek class pada grid:
|
||
grid grid-cols-2 md:grid-cols-2 lg:grid-cols-4
|
||
2. Hard refresh: Ctrl+Shift+R
|
||
3. Inspect element (F12)
|
||
4. Di DevTools, cek computed styles
|
||
5. Verifikasi breakpoint md (768px) dan lg (1024px)
|
||
```
|
||
|
||
### **Problem: Text terlalu kecil/besar**
|
||
```
|
||
Solution:
|
||
1. Cek responsive text classes:
|
||
text-xs md:text-sm lg:text-base
|
||
2. Inspect element untuk lihat actual font-size
|
||
3. Browser zoom tidak mempengaruhi
|
||
4. Refresh page untuk reset
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 Console Testing Commands
|
||
|
||
Paste di DevTools Console untuk cek:
|
||
|
||
```javascript
|
||
// 1. Check viewport width
|
||
console.log('Viewport:', window.innerWidth, 'x', window.innerHeight);
|
||
|
||
// 2. Check breakpoints
|
||
console.log('Mobile (< 768px):', window.innerWidth < 768);
|
||
console.log('Tablet (≥ 768px):', window.innerWidth >= 768);
|
||
console.log('Desktop (≥ 1024px):', window.innerWidth >= 1024);
|
||
|
||
// 3. Check responsive elements
|
||
console.log('Sidebar visible:', !document.getElementById('sidebar-wrapper').classList.contains('-translate-x-full'));
|
||
console.log('Hamburger visible:', window.getComputedStyle(document.getElementById('menuToggle')).display !== 'none');
|
||
|
||
// 4. Manually toggle sidebar
|
||
document.getElementById('menuToggle').click();
|
||
|
||
// 5. Check all classes
|
||
console.log('Sidebar classes:', document.getElementById('sidebar-wrapper').className);
|
||
console.log('Overlay classes:', document.getElementById('sidebar-overlay').className);
|
||
```
|
||
|
||
---
|
||
|
||
## ✨ Expected Results
|
||
|
||
### **Mobile (390px)**
|
||
```
|
||
✓ Sidebar: Hidden (-translate-x-full)
|
||
✓ Hamburger: Visible (md:hidden removed)
|
||
✓ Grid: 2 columns (grid-cols-2)
|
||
✓ Gap: Small (gap-3)
|
||
✓ Padding: Compact (p-3)
|
||
✓ Font: Small (text-xs)
|
||
✓ Charts: 250px height
|
||
✓ No horizontal scroll
|
||
```
|
||
|
||
### **Tablet (768px)**
|
||
```
|
||
✓ Sidebar: Visible (md:translate-x-0)
|
||
✓ Hamburger: Hidden (md:hidden active)
|
||
✓ Grid: 2-4 columns adaptive
|
||
✓ Gap: Medium (gap-3/4)
|
||
✓ Padding: Medium (p-4/6)
|
||
✓ Font: Base (text-sm)
|
||
✓ Charts: 250-300px height
|
||
```
|
||
|
||
### **Desktop (1920px)**
|
||
```
|
||
✓ Sidebar: Visible
|
||
✓ Hamburger: Hidden
|
||
✓ Grid: 4 columns (lg:grid-cols-4)
|
||
✓ Gap: Large (gap-6)
|
||
✓ Padding: Full (p-6)
|
||
✓ Font: Large (text-base)
|
||
✓ Charts: 320px height
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 Final Verification
|
||
|
||
Sebelum launch production:
|
||
|
||
- [ ] Semua page tested di 5+ resolusi
|
||
- [ ] Hamburger menu works di mobile
|
||
- [ ] Sidebar toggle works properly
|
||
- [ ] Charts responsive di semua ukuran
|
||
- [ ] Tables adaptive columns work
|
||
- [ ] No console errors
|
||
- [ ] No horizontal scroll mobile
|
||
- [ ] Touch targets 44px+ size
|
||
- [ ] Performance metrics OK
|
||
- [ ] Tested di Chrome, Firefox, Safari
|
||
|
||
---
|
||
|
||
**Status:** ✅ READY TO TEST
|
||
**Last Updated:** May 7, 2026
|
||
**Version:** 1.0
|