mirror of
https://github.com/marcogll/ap_pos.git
synced 2026-01-13 13:15:16 +00:00
feat(ui): redesign client form and enhance UI
- Reverted to a dark/grey theme for UI elements. - Replaced text-based logout button with a red icon. - Redesigned the client form to a cleaner, single-column layout. - Added 'Gender' field to the client form. - Added a comprehensive section for 'Oncological Patient' status with conditional fields. - Updated client database schema and API to support new fields. - Standardized form input styles, including the telephone field. - Updated version in the footer to 0.3.0.
This commit is contained in:
@@ -4,13 +4,13 @@
|
||||
- Fondo: #f8f9fa (gris muy claro)
|
||||
- Texto principal: #212529 (casi negro)
|
||||
- Bordes/Divisores: #dee2e6 (gris claro)
|
||||
- Botón primario: #343a40 (gris oscuro)
|
||||
- Botón secundario: #6c757d (gris medio)
|
||||
- Primario: #007bff (azul)
|
||||
- Secundario: #6c757d (gris medio)
|
||||
*/
|
||||
|
||||
/* Estilos generales */
|
||||
/* Estilos generales y tipografías */
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
margin: 0;
|
||||
background-color: #f8f9fa;
|
||||
color: #212529;
|
||||
@@ -27,20 +27,22 @@ body {
|
||||
box-shadow: 0 4px 20px rgba(0,0,0,0.05);
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
h1, h2, h3 {
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
font-weight: 600;
|
||||
color: #212529;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 22px;
|
||||
border-bottom: 1px solid #dee2e6;
|
||||
padding-bottom: 12px;
|
||||
margin-top: 0;
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 22px;
|
||||
h3 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.section {
|
||||
@@ -56,29 +58,38 @@ h2 {
|
||||
}
|
||||
|
||||
label {
|
||||
font-weight: 500;
|
||||
font-weight: 600;
|
||||
text-align: right;
|
||||
color: #495057;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="number"],
|
||||
input[type="date"],
|
||||
input[type="time"],
|
||||
input[type="tel"],
|
||||
select,
|
||||
textarea {
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
padding: 10px 12px;
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: 5px;
|
||||
box-sizing: border-box;
|
||||
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
}
|
||||
input:focus, select:focus, textarea:focus {
|
||||
border-color: #80bdff;
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
|
||||
}
|
||||
input:disabled {
|
||||
background-color: #e9ecef;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
button {
|
||||
background-color: #343a40;
|
||||
@@ -88,7 +99,8 @@ button {
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-weight: 600;
|
||||
margin-right: 10px;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
@@ -97,10 +109,10 @@ button:hover {
|
||||
background-color: #212529;
|
||||
}
|
||||
|
||||
button[type="reset"], button#btnTestTicket, #btnExport {
|
||||
.btn-secondary, button[type="reset"], button#btnTestTicket, #btnExport {
|
||||
background-color: #6c757d;
|
||||
}
|
||||
button[type="reset"]:hover, button#btnTestTicket:hover, #btnExport:hover, .btn-secondary:hover {
|
||||
.btn-secondary:hover, button[type="reset"]:hover, button#btnTestTicket:hover, #btnExport:hover {
|
||||
background-color: #5a6268;
|
||||
}
|
||||
|
||||
@@ -111,17 +123,26 @@ button[type="reset"]:hover, button#btnTestTicket:hover, #btnExport:hover, .btn-s
|
||||
background-color: #c82333;
|
||||
}
|
||||
|
||||
.form-actions button {
|
||||
margin-right: 0; /* Remove right margin */
|
||||
margin-left: 10px; /* Add left margin for spacing */
|
||||
.btn-icon {
|
||||
padding: 8px;
|
||||
line-height: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.btn-icon .material-icons-outlined {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.form-actions {
|
||||
/* Empuja los botones a la derecha en el grid */
|
||||
grid-column-start: 2;
|
||||
margin-top: 20px; /* Aumentar espacio superior */
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
justify-content: flex-end; /* Alinea botones a la derecha */
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.form-actions button {
|
||||
margin-right: 0;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
/* Tabla */
|
||||
@@ -131,32 +152,36 @@ button[type="reset"]:hover, button#btnTestTicket:hover, #btnExport:hover, .btn-s
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#tblMoves, #tblClients {
|
||||
#tblMoves, #tblClients, #tblUsers {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#tblMoves th, #tblMoves td,
|
||||
#tblClients th, #tblClients td {
|
||||
#tblClients th, #tblClients td,
|
||||
#tblUsers th, #tblUsers td {
|
||||
border-bottom: 1px solid #dee2e6;
|
||||
padding: 12px 15px;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
}
|
||||
#tblMoves td:last-child, #tblMoves th:last-child,
|
||||
#tblClients td:last-child, #tblClients th:last-child {
|
||||
#tblClients td:last-child, #tblClients th:last-child,
|
||||
#tblUsers td:last-child, #tblUsers th:last-child {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#tblMoves th, #tblClients th {
|
||||
#tblMoves th, #tblClients th, #tblUsers th {
|
||||
background-color: #f8f9fa;
|
||||
font-weight: 600;
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
font-weight: 500;
|
||||
border-bottom-width: 2px;
|
||||
}
|
||||
|
||||
#tblMoves tbody tr:last-child td,
|
||||
#tblClients tbody tr:last-child td {
|
||||
#tblClients tbody tr:last-child td,
|
||||
#tblUsers tbody tr:last-child td {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
@@ -240,26 +265,48 @@ button.action-btn {
|
||||
border-bottom: 1px solid #dee2e6;
|
||||
}
|
||||
|
||||
.main-header h1 {
|
||||
border-bottom: none;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
/* Logo en header */
|
||||
.main-header .header-logo {
|
||||
.header-logo {
|
||||
height: 50px;
|
||||
width: auto;
|
||||
margin-right: 2rem;
|
||||
}
|
||||
|
||||
.main-header {
|
||||
.tabs {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.tab-link {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding-bottom: 1rem;
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
gap: 8px;
|
||||
padding: 10px 20px;
|
||||
cursor: pointer;
|
||||
background: none;
|
||||
border: none;
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
color: #6c757d;
|
||||
border-bottom: 2px solid transparent;
|
||||
margin-bottom: -1px;
|
||||
transition: color 0.2s, border-color 0.2s;
|
||||
}
|
||||
.tab-link:hover {
|
||||
color: #343a40;
|
||||
}
|
||||
|
||||
.tab-link.active {
|
||||
color: #343a40;
|
||||
border-bottom-color: #343a40;
|
||||
}
|
||||
|
||||
.tab-content {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tab-content.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Dashboard Styles */
|
||||
@@ -282,13 +329,14 @@ button.action-btn {
|
||||
margin: 0 0 0.5rem 0;
|
||||
font-size: 1rem;
|
||||
color: #555;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.stat-card p {
|
||||
margin: 0;
|
||||
font-size: 2rem;
|
||||
font-weight: bold;
|
||||
color: var(--color-primary);
|
||||
font-weight: 600;
|
||||
color: #343a40;
|
||||
}
|
||||
|
||||
.dashboard-chart {
|
||||
@@ -296,59 +344,48 @@ button.action-btn {
|
||||
padding: 1.5rem;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
|
||||
/* Fijar altura para evitar bucle infinito de redibujo de Chart.js */
|
||||
position: relative;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
|
||||
.tabs {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.tab-link {
|
||||
padding: 10px 20px;
|
||||
cursor: pointer;
|
||||
background: none;
|
||||
border: none;
|
||||
font-size: 16px;
|
||||
color: #6c757d;
|
||||
border-bottom: 2px solid transparent;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
.tab-link.active {
|
||||
color: #343a40;
|
||||
border-bottom-color: #343a40;
|
||||
}
|
||||
|
||||
.tab-content {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tab-content.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* --- Estilos específicos de Clientes --- */
|
||||
.client-grid {
|
||||
.form-grid-single {
|
||||
display: grid;
|
||||
grid-template-columns: 120px 1fr 120px 1fr; /* Dos columnas de etiquetas y campos */
|
||||
gap: 18px 12px; /* Espacio vertical y horizontal */
|
||||
align-items: center;
|
||||
grid-template-columns: 1fr;
|
||||
gap: 12px;
|
||||
}
|
||||
.form-grid-single label {
|
||||
text-align: left;
|
||||
margin-bottom: -5px; /* Acercar la etiqueta al campo */
|
||||
}
|
||||
.form-grid-single input[type="tel"] {
|
||||
max-width: 250px;
|
||||
}
|
||||
.form-grid-single .checkbox-container {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.form-grid-single .checkbox-container label {
|
||||
font-weight: 400; /* Peso normal para checkboxes */
|
||||
}
|
||||
.form-actions-single {
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.client-grid .checkbox-container {
|
||||
grid-column: 2 / span 3; /* El checkbox ocupa las columnas de la derecha */
|
||||
.checkbox-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.checkbox-container input[type="checkbox"] {
|
||||
width: auto;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* --- Estilos de Configuración --- */
|
||||
.data-location-info {
|
||||
background-color: #e9ecef;
|
||||
@@ -361,6 +398,15 @@ button.action-btn {
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
|
||||
}
|
||||
|
||||
.sub-section {
|
||||
margin-top: 30px;
|
||||
padding-top: 20px;
|
||||
border-top: 1px solid #e9ecef;
|
||||
}
|
||||
.sub-section h3 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
/* --- Estilos del Pie de Página --- */
|
||||
.main-footer-credits {
|
||||
text-align: center;
|
||||
|
||||
Reference in New Issue
Block a user