Aplicar estilo glassmorphism a chips de grupos del usuario
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 58s
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 58s
- Reemplazar UBadge con spans personalizados - Aplicar mismo estilo que filtros de grupos - Badges primarios con color primary y glassmorphism - Badge de conteo (+N) con estilo neutral - Hover con efecto de elevación sutil - Soporte completo para modo oscuro con brillo ajustado
This commit is contained in:
@@ -23,25 +23,19 @@
|
|||||||
</div>
|
</div>
|
||||||
<p class="user-email">{{ user?.email }}</p>
|
<p class="user-email">{{ user?.email }}</p>
|
||||||
<div class="user-badges">
|
<div class="user-badges">
|
||||||
<UBadge
|
<span
|
||||||
v-for="group in user?.groups.slice(0, 3)"
|
v-for="group in user?.groups.slice(0, 3)"
|
||||||
:key="group"
|
:key="group"
|
||||||
size="sm"
|
class="user-badge"
|
||||||
color="primary"
|
|
||||||
variant="solid"
|
|
||||||
class="solid-badge"
|
|
||||||
>
|
>
|
||||||
{{ group }}
|
{{ group }}
|
||||||
</UBadge>
|
</span>
|
||||||
<UBadge
|
<span
|
||||||
v-if="user && user.groups.length > 3"
|
v-if="user && user.groups.length > 3"
|
||||||
size="sm"
|
class="user-badge user-badge-count"
|
||||||
color="neutral"
|
|
||||||
variant="solid"
|
|
||||||
class="solid-badge"
|
|
||||||
>
|
>
|
||||||
+{{ user.groups.length - 3 }}
|
+{{ user.groups.length - 3 }}
|
||||||
</UBadge>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -125,21 +119,38 @@ defineEmits(['edit-profile'])
|
|||||||
gap: 0.5rem;
|
gap: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.solid-badge {
|
.user-badge {
|
||||||
box-shadow:
|
display: inline-block;
|
||||||
0 2px 8px 0 rgba(0, 0, 0, 0.15),
|
padding: 0.375rem 0.875rem;
|
||||||
inset 0 -1px 2px 0 rgba(0, 0, 0, 0.2),
|
font-size: 0.8125rem;
|
||||||
inset 0 1px 1px 0 rgba(255, 255, 255, 0.3);
|
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
border-radius: 0.625rem;
|
||||||
|
background: rgba(var(--color-primary-500), 0.15);
|
||||||
|
backdrop-filter: blur(10px) saturate(150%);
|
||||||
|
border: 1px solid rgba(var(--color-primary-500), 0.3);
|
||||||
|
color: rgb(var(--color-primary-500));
|
||||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
box-shadow:
|
||||||
|
0 2px 8px 0 rgba(var(--color-primary-500), 0.2),
|
||||||
|
inset 0 1px 1px 0 rgba(255, 255, 255, 0.3),
|
||||||
|
inset 0 -1px 2px 0 rgba(var(--color-primary-500), 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.solid-badge:hover {
|
.user-badge:hover {
|
||||||
transform: translateY(-1px);
|
transform: translateY(-1px);
|
||||||
box-shadow:
|
box-shadow:
|
||||||
0 4px 12px 0 rgba(0, 0, 0, 0.2),
|
0 4px 12px 0 rgba(var(--color-primary-500), 0.3),
|
||||||
inset 0 -1px 2px 0 rgba(0, 0, 0, 0.2),
|
inset 0 1px 1px 0 rgba(255, 255, 255, 0.4),
|
||||||
inset 0 1px 1px 0 rgba(255, 255, 255, 0.4);
|
inset 0 -1px 2px 0 rgba(var(--color-primary-500), 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-badge-count {
|
||||||
|
background: rgba(255, 255, 255, 0.25);
|
||||||
|
border-color: rgba(0, 0, 0, 0.1);
|
||||||
|
color: var(--color-gray-700);
|
||||||
|
box-shadow:
|
||||||
|
0 2px 6px 0 rgba(31, 38, 135, 0.08),
|
||||||
|
inset 0 1px 1px 0 rgba(255, 255, 255, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.edit-button {
|
.edit-button {
|
||||||
@@ -270,4 +281,32 @@ defineEmits(['edit-profile'])
|
|||||||
0 0 0 1px rgba(var(--color-primary-500), 0.7),
|
0 0 0 1px rgba(var(--color-primary-500), 0.7),
|
||||||
inset 0 1px 1px 0 rgba(255, 255, 255, 0.1) !important;
|
inset 0 1px 1px 0 rgba(255, 255, 255, 0.1) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dark .user-badge {
|
||||||
|
background: rgba(var(--color-primary-500), 0.25) !important;
|
||||||
|
border-color: rgba(var(--color-primary-500), 0.5) !important;
|
||||||
|
color: rgb(var(--color-primary-400)) !important;
|
||||||
|
box-shadow:
|
||||||
|
0 2px 8px 0 rgba(var(--color-primary-500), 0.4),
|
||||||
|
0 0 0 1px rgba(var(--color-primary-500), 0.3),
|
||||||
|
inset 0 1px 1px 0 rgba(255, 255, 255, 0.08),
|
||||||
|
inset 0 -1px 2px 0 rgba(var(--color-primary-500), 0.2) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .user-badge:hover {
|
||||||
|
box-shadow:
|
||||||
|
0 4px 12px 0 rgba(var(--color-primary-500), 0.5),
|
||||||
|
0 0 0 1px rgba(var(--color-primary-500), 0.4),
|
||||||
|
inset 0 1px 1px 0 rgba(255, 255, 255, 0.1),
|
||||||
|
inset 0 -1px 2px 0 rgba(var(--color-primary-500), 0.25) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .user-badge-count {
|
||||||
|
background: rgba(255, 255, 255, 0.05) !important;
|
||||||
|
border-color: rgba(255, 255, 255, 0.1) !important;
|
||||||
|
color: var(--color-gray-300) !important;
|
||||||
|
box-shadow:
|
||||||
|
0 2px 6px 0 rgba(0, 0, 0, 0.3),
|
||||||
|
inset 0 1px 1px 0 rgba(255, 255, 255, 0.05) !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user