Files
TieMeasureFlow/client/static/css/numpad.css
T
Adriano a386986c17 feat: FASE 3 - Flusso MeasurementTec (selezione ricetta, esecuzione misure, riepilogo)
Implementazione completa del flusso operativo per il ruolo MeasurementTec:

Blueprint measure.py:
- select_recipe: selezione ricetta con ricerca e barcode
- task_list: lista task con conteggi subtask e allegati
- task_execute: esecuzione misure con numpad, calibro USB, feedback real-time
- task_complete: riepilogo con statistiche pass/fail e export CSV
- API AJAX: lookup-barcode, save-traceability, save-measurement
- Autorizzazione role_required("MeasurementTec") su tutte le route

Componenti riutilizzabili:
- numpad.html/js/css: tastierino numerico touch-friendly con keyboard support
- caliper_status.html + caliper.js: integrazione calibro USB via Web Serial API
- barcode_scanner.html + barcode.js: scansione barcode con html5-qrcode
- measurement_feedback.html: feedback visivo pass/warning/fail in tempo reale
- next_measurement.html: indicatore prossima misurazione
- annotation-viewer.js: visualizzatore canvas con marker su disegni tecnici
- csv-export.js: export CSV con locale italiano (delimitatore ;, decimale ,)

Sicurezza:
- Decoratore role_required(*roles) per autorizzazione basata su ruoli
- CSRF token su tutti i POST AJAX
- |tojson per prevenire XSS su annotations_json
- Validazione input lato client e server

i18n: 23+ nuove chiavi tradotte IT/EN per tutti i template FASE 3

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:40:58 +01:00

56 lines
1.3 KiB
CSS

/**
* Numpad Component Styles
* Additional styles not covered by TailwindCSS utility classes
*/
/* Touch optimization - prevent text selection and improve tap responsiveness */
.numpad-container button {
touch-action: manipulation;
-webkit-tap-highlight-color: transparent;
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}
/* Ensure touch-manipulation class works */
.touch-manipulation {
touch-action: manipulation;
}
/* Prevent tap highlight on mobile devices */
.numpad-container button:active {
-webkit-tap-highlight-color: transparent;
}
/* Improve button focus for accessibility */
.numpad-container button:focus-visible {
outline: 2px solid var(--color-primary, #0D47A1);
outline-offset: 2px;
}
/* Ensure consistent sizing on all devices */
.numpad-container {
-webkit-tap-highlight-color: transparent;
}
/* Value display - ensure proper spacing and alignment */
.value-display {
min-height: 60px;
display: flex;
align-items: center;
justify-content: center;
}
/* Prevent zoom on double-tap for iOS Safari */
@media (max-width: 768px) {
.numpad-container button {
touch-action: manipulation;
}
}
/* Dark mode adjustments for better contrast */
.dark .value-display {
background-color: var(--bg-card, rgb(51, 65, 85));
border-color: var(--border-color, rgb(71, 85, 105));
}