feat: Add PWA support and consolidate CSS design system
- Add PWA manifest, icons (192x192, 512x512), and service worker - Register service worker in index.html with Apple mobile web app support - Consolidate CSS variables and design tokens documentation - Update PrimeVue overrides for consistent theming - Refactor data-entry components to use shared CSS patterns - Add frontend-style-auditor agent for style consistency checks - Minor OCR validation and job worker improvements - Update start-prod.sh configuration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
115
src/assets/css/vendor/primevue-overrides.css
vendored
115
src/assets/css/vendor/primevue-overrides.css
vendored
@@ -80,17 +80,17 @@
|
||||
transition: background-color var(--transition-fast) !important;
|
||||
}
|
||||
|
||||
/* DataTable Striped Rows - Global Pattern */
|
||||
/* DataTable Striped Rows - Global Pattern (Dark Mode Compatible) */
|
||||
.p-datatable .p-datatable-tbody > tr:nth-child(odd) {
|
||||
background-color: #ffffff !important;
|
||||
background-color: var(--surface-card) !important;
|
||||
}
|
||||
|
||||
.p-datatable .p-datatable-tbody > tr:nth-child(even) {
|
||||
background-color: #f8f9fa !important;
|
||||
background-color: var(--surface-ground) !important;
|
||||
}
|
||||
|
||||
.p-datatable .p-datatable-tbody > tr:hover {
|
||||
background-color: #e3f2fd !important;
|
||||
background-color: var(--surface-hover) !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@@ -112,6 +112,7 @@
|
||||
|
||||
/* ===== Card ===== */
|
||||
.p-card {
|
||||
background: var(--surface-card) !important;
|
||||
box-shadow: var(--shadow-sm) !important;
|
||||
border: 1px solid var(--color-border) !important;
|
||||
border-radius: var(--card-radius, 8px) !important;
|
||||
@@ -125,6 +126,11 @@
|
||||
|
||||
.p-card .p-card-body {
|
||||
padding: var(--space-lg) !important;
|
||||
background: var(--surface-card) !important;
|
||||
}
|
||||
|
||||
.p-card .p-card-content {
|
||||
background: var(--surface-card) !important;
|
||||
}
|
||||
|
||||
/* ===== Mobile Optimizations ===== */
|
||||
@@ -136,3 +142,104 @@
|
||||
font-size: 16px !important; /* Prevent iOS zoom */
|
||||
}
|
||||
}
|
||||
|
||||
/* ===== Compact DataTable (ReceiptsListView) ===== */
|
||||
.compact-table .p-datatable-tbody > tr > td {
|
||||
padding: 0.5rem 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.compact-table .p-datatable-thead > tr > th {
|
||||
padding: 0.5rem 0.5rem;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.compact-table .p-paginator {
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
.compact-table .p-datatable-wrapper {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
/* ===== Receipt Form InputNumber (ReceiptCreateView) ===== */
|
||||
.value-item-total .p-inputnumber {
|
||||
width: 100% !important;
|
||||
max-width: 130px !important;
|
||||
}
|
||||
|
||||
.value-item-total .p-inputnumber-input {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.payment-method-item .p-inputnumber {
|
||||
width: 100% !important;
|
||||
max-width: 110px !important;
|
||||
}
|
||||
|
||||
.payment-method-item .p-inputnumber-input {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.dropdown-payment {
|
||||
width: 100% !important;
|
||||
max-width: 190px !important;
|
||||
}
|
||||
|
||||
.dropdown-payment .p-dropdown {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.input-tva {
|
||||
width: 110px !important;
|
||||
}
|
||||
|
||||
.input-tva .p-inputnumber-input {
|
||||
width: 110px !important;
|
||||
}
|
||||
|
||||
/* ===== Receipt Form Mobile (ReceiptCreateView) ===== */
|
||||
@media (max-width: 768px) {
|
||||
.form-field .p-dropdown,
|
||||
.form-field .p-autocomplete,
|
||||
.form-field .p-calendar {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* ===== OCR Preview Mobile (OCRPreview) ===== */
|
||||
@media (max-width: 768px) {
|
||||
.preview-actions .p-button {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* ===== OCR Engine Selector (OCRUploadZone) ===== */
|
||||
.engine-selector .p-dropdown-label {
|
||||
padding: 0.5rem 0.75rem !important;
|
||||
font-size: 0.875rem;
|
||||
color: var(--text-color-secondary);
|
||||
}
|
||||
|
||||
.engine-selector .p-dropdown-trigger {
|
||||
width: 2rem !important;
|
||||
}
|
||||
|
||||
/* ===== Table Card Striped Rows (InvoicesView) ===== */
|
||||
/* Note: Uses design tokens for dark mode compatibility */
|
||||
.table-card .p-datatable .p-datatable-tbody > tr {
|
||||
transition: background-color 0.2s ease;
|
||||
}
|
||||
|
||||
.table-card .p-datatable .p-datatable-tbody > tr:nth-child(odd) {
|
||||
background-color: var(--surface-card, #ffffff);
|
||||
}
|
||||
|
||||
.table-card .p-datatable .p-datatable-tbody > tr:nth-child(even) {
|
||||
background-color: var(--surface-ground, #f8f9fa);
|
||||
}
|
||||
|
||||
.table-card .p-datatable .p-datatable-tbody > tr:hover {
|
||||
background-color: var(--surface-hover, #e3f2fd) !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user