Guide de Design Mobile - Interface JAP
Contexte
Les Juges-Arbitres travaillent principalement depuis des appareils mobiles (smartphones et tablettes) sur le terrain. L'interface doit ĂȘtre optimisĂ©e pour une utilisation tactile en conditions rĂ©elles (extĂ©rieur, soleil, une main disponible).
ProblÚmes Identifiés
1. Navigation Latérale Fixe
- ProblÚme : Sidebar de 256px (w-64) occupe tout l'écran mobile
- Solution : Navigation hamburger avec menu escamotable ou navigation bottom bar
2. Tailles Touch Targets
- ProblĂšme : Boutons et zones cliquables trop petits (< 44px)
- Solution : Minimum 44px de hauteur pour toute zone tactile
3. Formulaires de Saisie
- ProblĂšme : Inputs de score trop petits et proches
- Solution : Inputs plus grands avec espacement suffisant
4. Textes Illisibles
- ProblÚme : text-xs et text-sm difficiles à lire en extérieur
- Solution : text-base minimum, contraste élevé
5. Tableaux Non Responsifs
- ProblÚme : Tableaux horizontaux débordent
- Solution : Cards empilées sur mobile
Solutions Détaillées
1. Navigation Mobile First
Option A : Bottom Navigation (Recommandé)
Option B : Hamburger Menu
html
2. Touch Targets Optimisés
scss
// Tous les boutons et liens doivent avoir minimum 44px de hauteur
.btn-touch {
@apply min-h-[44px] px-6 py-3;
}
// Espacement entre éléments tactiles
.touch-list > * + * {
@apply mt-2; // Minimum 8px entre éléments
}
3. Formulaires de Score Mobile
html
Ăquipe 1
Ăquipe 2
4. Cards au lieu de Tableaux
html
Match #123
En cours
Ăquipe 1
6-4
Ăquipe 2
4-6
5. Statistiques Responsives
html
12
Validés
3
Contestés
Breakpoints Tailwind
scss
// Configuration responsive
// Mobile First : default (< 640px)
// sm: 640px - Grandes phones
// md: 768px - Tablettes portrait
// lg: 1024px - Tablettes paysage
// xl: 1280px - Desktop
Spécifications Touch
Zones Tactiles
- Minimum : 44x44px (Apple HIG)
- Recommandé : 48x48px
- Espacement : 8px minimum entre targets
Inputs Numériques
html
Swipe et Gestes
- Swipe horizontal pour navigation entre tournois
- Pull-to-refresh pour actualiser scores
- Long press pour actions contextuelles
Optimisations Performance
1. Lazy Loading
html
2. Turbo Mobile
javascript
// Désactiver animations complexes sur mobile
if (window.matchMedia('(max-width: 768px)').matches) {
Turbo.config.drive.progressBarDelay = 0;
}
3. Cache Offline
- Service Worker pour mode hors-ligne
- LocalStorage pour scores en cours
Checklist Implementation
Phase 1 : Navigation
- â ImplĂ©menter bottom navigation mobile
- â Adapter header avec menu hamburger
- â GĂ©rer transitions entre vues
Phase 2 : Touch Targets
- â Augmenter taille tous boutons (min 44px)
- â Espacer Ă©lĂ©ments tactiles
- â Ajouter feedback visuel au toucher
Phase 3 : Formulaires
- â Redesigner saisie scores
- â Optimiser claviers numĂ©riques
- â Ajouter validation temps rĂ©el
Phase 4 : Tableaux
- â Convertir tables en cards mobile
- â ImplĂ©menter vue liste/grille
- â Optimiser scrolling horizontal
Phase 5 : Tests
- â Tester sur iPhone SE (plus petit)
- â Tester sur iPad
- â Tester en conditions extĂ©rieures
- â Tester avec gants (hiver)
Composants Stimulus
Score Input Mobile
javascript
// controllers/mobile_score_controller.js
export default class extends Controller {
static targets = ["input", "increment", "decrement"]
increment() {
this.inputTarget.value = parseInt(this.inputTarget.value || 0) + 1
this.inputTarget.dispatchEvent(new Event('input'))
}
decrement() {
const current = parseInt(this.inputTarget.value || 0)
if (current > 0) {
this.inputTarget.value = current - 1
this.inputTarget.dispatchEvent(new Event('input'))
}
}
}
Accessibilité Mobile
Contraste
- Ratio minimum 4.5:1 pour texte normal
- Ratio 7:1 pour conditions extérieures
Tailles Police
- Corps : 16px minimum (text-base)
- Titres : 20px minimum (text-xl)
- Boutons : 16px minimum
ARIA Labels
html
Testing Mobile
Outils
- Chrome DevTools Device Mode
- Safari Responsive Design Mode
- BrowserStack pour tests réels
Scénarios Prioritaires
- Validation score en cours de match
- Consultation tableau en temps réel
- Gestion contestations urgentes
- Navigation entre tournois multiples
Notes Importantes
- Priorité au mode Portrait : La plupart des JAP utilisent leur téléphone en portrait
- Mode Une Main : Zones d'action principales accessibles avec le pouce
- Offline First : Fonctionnement minimal sans connexion
- Batterie : Ăviter animations/polling excessifs
- Luminosité : Fort contraste pour lisibilité en plein soleil
Date création : 14/10/2025
Version : 1.0
Auteur : Architecture TournoiPro
Retour Ă la documentation
Une question ? Contactez le support