Skip to content
Extensões

Select

Campo de seleção única e múltipla. Reutiliza a base visual do input, com dropdown e scroll customizados. Multi-select com chips e overflow "+N". Dark mode automático via tokens semânticos.

components/select.cssAbrir no Figma

Seleção única

Clique no campo para abrir o dropdown e selecionar uma opção.

Carregando exemplo...

Seleção múltipla

Selecione várias opções. Chips que excedem a largura são substituídos por "+N".

Carregando exemplo...

Propriedades

Classes disponíveis para configurar o select.

PropriedadeTipoDefaultDescrição
.select-groupclasseWrapper flex column do componente.
.select-labelclasseLabel do campo (14px medium).
.select-containerclasseContainer relativo para posicionar o dropdown.
.select-triggerclasseCampo trigger (40px, mesma base do input).
.select-trigger--multiclasseTrigger com suporte a chips (multi-select).
.select-placeholderclasseTexto placeholder dentro do trigger.
.select-valueclasseValor selecionado dentro do trigger.
.select-chevronclasseÍcone chevron (16x16), rotaciona ao abrir.
.select-chipsclasseContainer dos chips (multi-select).
.select-chipclasseChip individual (26px, radius 4px).
.select-chip--overflowclasseChip "+N" indicando opções ocultas.
.select-chip-closeclasseBotão de remover chip (12x12).
.select-helperclasseTexto de apoio abaixo do campo (12px).
.is-openclasseAtiva o dropdown e rotaciona o chevron.
.is-disabledclasseDesabilita o trigger.
.has-errorclasseAtiva estado de erro no .select-group.

Código

Snippets prontos para copiar e usar.

Seleção única

html
<div class="select-group" id="meu-select">
    <label class="select-label">Label</label>
    <div class="select-container">
        <div class="select-trigger">
            <span class="select-placeholder">Selecione</span>
            <span class="select-chevron">
                <svg viewBox="0 0 16 16" fill="none" stroke="currentColor"
                     stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
                    <path d="M4 6l4 4 4-4"/>
                </svg>
            </span>
        </div>
        <div class="dropdown-menu dropdown-menu--bottom">
            <div class="dropdown-list custom-scroll">
                <button class="dropdown-item">
                    <span class="dropdown-item-label">Opção 1</span>
                </button>
                <!-- mais itens -->
            </div>
        </div>
    </div>
</div>

Seleção múltipla com chips

html
<div class="select-group">
    <label class="select-label">Label</label>
    <div class="select-container">
        <div class="select-trigger select-trigger--multi">
            <div class="select-chips">
                <span class="select-chip">
                    <span>Opção 1</span>
                    <button class="select-chip-close">
                        <svg viewBox="0 0 12 12" fill="none" stroke="currentColor"
                             stroke-width="1.5" stroke-linecap="round">
                            <path d="M3 3l6 6M9 3l-6 6"/>
                        </svg>
                    </button>
                </span>
                <span class="select-chip select-chip--overflow">+3</span>
            </div>
            <span class="select-chevron"><!-- svg --></span>
        </div>
        <div class="dropdown-menu">
            <div class="dropdown-list custom-scroll">
                <!-- itens com checkbox -->
            </div>
        </div>
    </div>
</div>

Tokens utilizados

Variáveis semânticas aplicadas ao componente.

TokenUso
--surface-base-neutral-container-defaultBackground do campo
--surface-base-neutral-container-hoverBackground no hover
--surface-base-neutral-container-emphasisBackground disabled / chip
--border-base-neutral-defaultBorda padrão
--border-base-neutral-strongBorda no foco
--border-base-neutral-subtleBorda no disabled
--border-base-error-defaultBorda no erro
--text-base-neutral-defaultCor do label, valor e chip
--text-base-neutral-subtleCor do placeholder
--text-base-error-defaultCor do texto no erro
--icon-base-neutral-defaultCor do chevron
--icon-base-neutral-subtleCor do chip close / chevron disabled
--radius-defaultBorder-radius do campo (6px)

Design System interno do GALES