Fix: Compactar checkboxes de sensaciones en boca y gustos predominantes
- Cambiar layout de grid fijo a flex-wrap en mobile para sensaciones y gustos - Mantener grid responsive en desktop (3 columnas para sensaciones, 5 para gustos) - Reducir significativamente todas las dimensiones para mayor compactación: * Desktop: min-height 36px, padding 0.375rem 0.5rem * Mobile: min-height 28px, padding 0.25rem 0.375rem * Font-size: 0.75rem desktop, 0.6875rem mobile - Agregar animaciones y estados focus consistentes - Touch-friendly en dispositivos táctiles (36px min-height)
This commit is contained in:
@@ -27,18 +27,19 @@
|
||||
<label class="block text-sm font-medium mb-2 cata-text">
|
||||
Sensaciones en la Boca (múltiples)
|
||||
</label>
|
||||
<div class="grid grid-cols-2 sm:grid-cols-3 gap-2">
|
||||
<div class="sensaciones-grid">
|
||||
<button
|
||||
v-for="sensacion in sensacionesBoca"
|
||||
:key="sensacion"
|
||||
type="button"
|
||||
:class="[
|
||||
'sensacion-item',
|
||||
'cata-checkbox',
|
||||
{ 'cata-checkbox-checked': muestra.sensacionEnBoca.includes(sensacion) },
|
||||
]"
|
||||
@click="toggleSensacionBoca(sensacion)"
|
||||
>
|
||||
<span class="cata-text text-sm">{{ sensacion }}</span>
|
||||
<span class="sensacion-text cata-text">{{ sensacion }}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -48,19 +49,20 @@
|
||||
<label class="block text-sm font-medium mb-2 cata-text">
|
||||
Gustos Predominantes (mín 1, máx 2)
|
||||
</label>
|
||||
<div class="grid grid-cols-2 sm:grid-cols-5 gap-2">
|
||||
<div class="gustos-grid">
|
||||
<button
|
||||
v-for="gusto in gustosPredominantes"
|
||||
:key="gusto"
|
||||
type="button"
|
||||
:class="[
|
||||
'gusto-item',
|
||||
'cata-checkbox',
|
||||
{ 'cata-checkbox-checked': muestra.gustosPredominantes.includes(gusto) },
|
||||
]"
|
||||
:disabled="!muestra.gustosPredominantes.includes(gusto) && muestra.gustosPredominantes.length >= 2"
|
||||
@click="toggleGustoPredominante(gusto)"
|
||||
>
|
||||
<span class="cata-text">{{ gusto }}</span>
|
||||
<span class="gusto-text cata-text">{{ gusto }}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -949,7 +951,134 @@ watch(() => props.muestra.otrasNotas, (newVal) => {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Grid de sensaciones */
|
||||
.sensaciones-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.375rem;
|
||||
}
|
||||
|
||||
.sensacion-item {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.375rem;
|
||||
padding: 0.375rem 0.5rem;
|
||||
min-height: 32px;
|
||||
}
|
||||
|
||||
.sensacion-item:focus {
|
||||
outline: 2px solid transparent;
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.sensacion-item:focus-visible {
|
||||
box-shadow: 0 0 0 2px var(--cata-primary);
|
||||
}
|
||||
|
||||
.sensacion-text {
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
/* Grid de gustos */
|
||||
.gustos-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.375rem;
|
||||
}
|
||||
|
||||
.gusto-item {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.375rem;
|
||||
padding: 0.375rem 0.5rem;
|
||||
min-height: 32px;
|
||||
}
|
||||
|
||||
.gusto-item:focus {
|
||||
outline: 2px solid transparent;
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.gusto-item:focus-visible {
|
||||
box-shadow: 0 0 0 2px var(--cata-primary);
|
||||
}
|
||||
|
||||
.gusto-text {
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
/* Animaciones */
|
||||
.sensacion-item.cata-checkbox-checked,
|
||||
.gusto-item.cata-checkbox-checked {
|
||||
transform: scale(1.02);
|
||||
}
|
||||
|
||||
.sensacion-item:not(.disabled):hover,
|
||||
.gusto-item:not(.disabled):hover {
|
||||
transform: scale(1.02);
|
||||
}
|
||||
|
||||
.sensacion-item:not(.disabled):active,
|
||||
.gusto-item:not(.disabled):active {
|
||||
transform: scale(0.98);
|
||||
}
|
||||
|
||||
/* Responsive */
|
||||
@media (max-width: 640px) {
|
||||
.sensacion-item {
|
||||
min-height: 28px;
|
||||
padding: 0.25rem 0.375rem;
|
||||
}
|
||||
|
||||
.sensacion-text {
|
||||
font-size: 0.6875rem;
|
||||
}
|
||||
|
||||
.gusto-item {
|
||||
min-height: 28px;
|
||||
padding: 0.25rem 0.375rem;
|
||||
}
|
||||
|
||||
.gusto-text {
|
||||
font-size: 0.6875rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.sensaciones-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.sensacion-item {
|
||||
min-height: 36px;
|
||||
}
|
||||
|
||||
.gustos-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.gusto-item {
|
||||
min-height: 36px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Touch-friendly */
|
||||
@media (hover: none) and (pointer: coarse) {
|
||||
.sensacion-item {
|
||||
min-height: 36px;
|
||||
}
|
||||
|
||||
.gusto-item {
|
||||
min-height: 36px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.formulario-muestra {
|
||||
padding: 0.75rem;
|
||||
|
||||
Reference in New Issue
Block a user