feat(ranking): adicionar badges de tipos de atuação nos cards

- Adiciona campo tipos_atuacao ao schema e extração no mapper
- Exibe tipos de atuação (Coordenador, Consultor, Avaliador, etc.)
  na seção expandida do card, acima de Selos e Reconhecimentos
- Inclui estilos visuais distintos para cada tipo de atuação
- Melhorias no Header e SugerirConsultores
This commit is contained in:
Frederico Castro
2025-12-21 05:36:26 -03:00
parent bb36961b4c
commit d4aa75ca0b
10 changed files with 424 additions and 40 deletions

View File

@@ -124,6 +124,8 @@
font-size: 1.35rem;
white-space: nowrap;
line-height: 1;
color: #ffffff;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.rank-number.rank-digits-4 {
@@ -578,13 +580,17 @@
.selos-container.selos-compacto {
display: inline-flex;
margin-left: 0.3rem;
margin-left: 0.25rem;
gap: 0.2rem;
}
.selos-compacto .selo {
background: rgba(148, 163, 184, 0.12);
border-color: rgba(148, 163, 184, 0.25);
color: #94a3b8;
padding: 0.1rem 0.25rem;
gap: 0.15rem;
font-size: 0.6rem;
}
.selos-compacto .selo:hover {
@@ -596,11 +602,14 @@
.selos-compacto .selo-icone {
filter: grayscale(100%) brightness(1.2);
opacity: 0.85;
font-size: 0.65rem;
}
.selos-compacto .selo-qtd {
background: rgba(148, 163, 184, 0.25);
color: #cbd5e1;
font-size: 0.5rem;
padding: 0.05rem 0.2rem;
}
.selo {
@@ -644,8 +653,9 @@
.selo-mais {
background: rgba(255, 255, 255, 0.05);
border-style: dashed;
font-size: 0.65rem;
font-size: 0.55rem;
color: var(--muted);
padding: 0.1rem 0.2rem;
}
.selo-coord {
@@ -722,6 +732,32 @@
color: #e2e8f0;
}
.tipos-section {
grid-column: 1 / -1;
margin-top: 1rem;
}
.tipos-section h4 {
color: var(--accent-2);
}
.tipos-expandido {
gap: 0.5rem;
}
.tipos-expandido .tipo-atuacao {
padding: 0.25rem 0.5rem;
font-size: 0.7rem;
}
.tipos-expandido .tipo-icone {
font-size: 0.8rem;
}
.tipos-expandido .tipo-label {
font-size: 0.65rem;
}
.selos-section {
grid-column: 1 / -1;
margin-top: 1rem;
@@ -771,3 +807,123 @@
border-color: rgba(79, 70, 229, 0.4);
transform: scale(1.1);
}
.tipos-atuacao-container {
display: flex;
flex-wrap: wrap;
gap: 0.35rem;
margin-top: 0.4rem;
}
.tipo-atuacao {
display: inline-flex;
align-items: center;
gap: 0.2rem;
font-size: 0.65rem;
padding: 0.15rem 0.4rem;
border-radius: 4px;
border: 1px solid rgba(255, 255, 255, 0.12);
background: rgba(255, 255, 255, 0.05);
color: var(--muted);
font-weight: 500;
transition: all 150ms ease;
}
.tipo-atuacao:hover {
transform: translateY(-1px);
border-color: rgba(255, 255, 255, 0.25);
}
.tipo-icone {
font-size: 0.7rem;
line-height: 1;
opacity: 0.9;
}
.tipo-label {
font-size: 0.6rem;
letter-spacing: 0.2px;
text-transform: uppercase;
}
.tipo-mais {
background: rgba(255, 255, 255, 0.03);
border-style: dashed;
font-size: 0.55rem;
padding: 0.1rem 0.25rem;
}
.tipo-coordenador {
background: linear-gradient(135deg, rgba(239, 68, 68, 0.2), rgba(239, 68, 68, 0.08));
border-color: rgba(239, 68, 68, 0.35);
color: #fca5a5;
}
.tipo-consultor {
background: linear-gradient(135deg, rgba(59, 130, 246, 0.2), rgba(59, 130, 246, 0.08));
border-color: rgba(59, 130, 246, 0.35);
color: #93c5fd;
}
.tipo-avaliador {
background: linear-gradient(135deg, rgba(168, 85, 247, 0.2), rgba(168, 85, 247, 0.08));
border-color: rgba(168, 85, 247, 0.35);
color: #d8b4fe;
}
.tipo-premiado {
background: linear-gradient(135deg, rgba(251, 191, 36, 0.25), rgba(251, 191, 36, 0.1));
border-color: rgba(251, 191, 36, 0.4);
color: #fcd34d;
}
.tipo-orientador {
background: linear-gradient(135deg, rgba(34, 197, 94, 0.2), rgba(34, 197, 94, 0.08));
border-color: rgba(34, 197, 94, 0.35);
color: #86efac;
}
.tipo-bolsista {
background: linear-gradient(135deg, rgba(14, 165, 233, 0.2), rgba(14, 165, 233, 0.08));
border-color: rgba(14, 165, 233, 0.35);
color: #7dd3fc;
}
.tipo-inscrito {
background: linear-gradient(135deg, rgba(249, 115, 22, 0.2), rgba(249, 115, 22, 0.08));
border-color: rgba(249, 115, 22, 0.35);
color: #fdba74;
}
.tipo-projeto {
background: linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(99, 102, 241, 0.08));
border-color: rgba(99, 102, 241, 0.35);
color: #a5b4fc;
}
.tipo-evento {
background: linear-gradient(135deg, rgba(236, 72, 153, 0.2), rgba(236, 72, 153, 0.08));
border-color: rgba(236, 72, 153, 0.35);
color: #f9a8d4;
}
.tipo-default {
background: rgba(148, 163, 184, 0.12);
border-color: rgba(148, 163, 184, 0.25);
color: #94a3b8;
}
@media (max-width: 900px) {
.tipos-atuacao-container {
margin-top: 0.3rem;
}
.tipo-atuacao {
font-size: 0.6rem;
padding: 0.1rem 0.3rem;
}
.tipo-label {
font-size: 0.55rem;
}
}