Skip to content
Extensões

Dropzone

Área de upload de arquivos com drag-and-drop. Borda dashed, ícone de link, botão de procurar. Lista de arquivos com nome, tamanho e botão remover. Dark mode automático via tokens semânticos.

components/dropzone.cssAbrir no Figma

Exemplos

O primeiro exemplo é interativo — clique para selecionar ou arraste arquivos. O segundo mostra o estado preenchido.

Carregando exemplo...

Propriedades

Classes disponíveis para configurar o dropzone.

PropriedadeTipoDefaultDescrição
.dropzone-groupclasseWrapper flex column. Adicione .has-files quando houver arquivos.
.dropzone-labelclasseLabel do campo (14px medium).
.dropzoneclasseÁrea de drop (borda dashed, padding 32px).
.dropzone-iconclasseÍcone circular (32x32, borda, ícone accent).
.dropzone-titleclasseTítulo "Anexar arquivos" (p3 medium).
.dropzone-descriptionclasseDescrição (p5 regular, secondary).
.dropzone-btnclasseBotão "Procurar arquivos" (outlined small).
.dropzone-inputclasseInput file oculto.
.dropzone-filesclasseContainer da lista de arquivos.
.dropzone-fileclasseItem de arquivo (nome, tamanho, botão remover).
.dropzone-file-removeclasseBotão remover arquivo (32x32, ícone delete).
.has-filesclasseAdicionar no .dropzone-group quando há arquivos.
.is-drag-overclasseEstado de drag-over na área de drop.

Código

Snippets prontos para copiar e usar.

Dropzone vazio

html
<div class="dropzone-group">
    <label class="dropzone-label">Label</label>
    <div class="dropzone">
        <input type="file" class="dropzone-input" multiple>
        <div class="dropzone-content">
            <span class="dropzone-icon"><!-- SVG link --></span>
            <span class="dropzone-title">Anexar arquivos</span>
            <span class="dropzone-description">Procure os arquivos ou arraste e solte aqui.</span>
        </div>
        <button class="dropzone-btn">Procurar arquivos</button>
    </div>
</div>

Com arquivos

html
<div class="dropzone-group has-files">
    <label class="dropzone-label">Label</label>
    <div class="dropzone">
        <!-- conteúdo do dropzone -->
    </div>
    <div class="dropzone-files">
        <div class="dropzone-file">
            <div class="dropzone-file-info">
                <span class="dropzone-file-name">arquivo.pdf</span>
                <span class="dropzone-file-size">2.4mb</span>
            </div>
            <button class="dropzone-file-remove"><!-- SVG delete --></button>
        </div>
    </div>
</div>

Tokens utilizados

Variáveis semânticas aplicadas ao componente.

TokenUso
--surface-base-neutral-container-defaultBackground da área e arquivos
--surface-base-neutral-container-hoverBackground no hover/drag-over
--border-base-neutral-strongBorda dashed da área de drop
--border-base-neutral-defaultBorda do botão, ícone e arquivos
--text-base-neutral-defaultTítulo e nome do arquivo
--text-base-neutral-secondaryDescrição
--text-base-neutral-subtleTamanho do arquivo
--accent-300Cor do ícone de link
--radius-defaultBorder-radius (6px)
--spacing-7Padding da área de drop (32px)
--spacing-3Gaps internos (12px)

Design System interno do GALES