Design SystemAlquimia Design System

Alquimia

Alquimia Design System

Cada seção mostra o componente real, os parâmetros que mudam o exemplo, o código para copiar e a tabela de propriedades.

Cores

Escalas do ADS. O passo é o nome do token; o hex é o valor no código.

Parâmetros

Grupo

Passo

Código

vue
  1. <div
  2. class="bg-[#e4f2ff] h-10 w-10 rounded-sm"
  3. />

Propriedades

Tokens de uso

A escala acima é a matéria-prima. Na interface, use o token semântico.

Propriedades de Tokens de uso
TokenTipoValorUso
--ads-text-primarycor#061938Texto principal.
--ads-text-secondarycor#505f79Texto de apoio.
--ads-text-tertiarycor#a5adbaTexto desabilitado ou secundário.
--ads-text-brandcor#006ff7Link e destaque da marca.
--ads-text-contrastcor#ffffffTexto sobre fundo de marca.
--ads-surface-maincor#fafbfcFundo da página.
--ads-surface-cardcor#ffffffFundo de cartão e campo.
--ads-surface-brandcor#006ff7Fundo da marca.
--ads-border-subtlecor#e5e8ebBorda de divisória e cartão.

Botão

Ação de tela. O exemplo segue os parâmetros: tipo, cor, tamanho, conteúdo e estado. Outline e unfilled não têm pressed.

Parâmetros

Tipo

Cor

Tamanho

Conteúdo

Estado

Código

vue
  1. <AdsButton
  2. label="Button Test"
  3. leading
  4. trailing
  5. />

Propriedades

AdsButton

Ação de tela. Sem rótulo, o botão fica quadrado e mostra só o ícone.

Propriedades de AdsButton
PropriedadeTipoPadrãoDescrição
typefilled | outline | unfilled | secondaryfilledVisual do botão. Outline e unfilled não têm pressed.
colorprimary | success | attention | warning | new | innovation | blocked | neutralprimaryCor do status. Neutral é ação sem status.
sizemd | smmdmd no desktop, sm no mobile.
labelstring""Rótulo. Vazio deixa o botão só com ícone.
leadingbooleanfalseÍcone à esquerda. No exemplo, sparkles.
trailingbooleanfalseÍcone à direita. Sem trailingIcon, usa icon.
iconstringi-lucide-sparklesNome do ícone Lucide.
trailingIconstring""Ícone da direita. Vazio reutiliza icon.
toRouteLocationRaw—Vira link. Sem valor, continua button.
disabledbooleanfalseBloqueia o clique.
loadingbooleanfalseTroca o ícone por spinner e bloqueia outro clique.
nativeTypebutton | submit | resetbuttonAtributo type do button. A prop type já é o visual.
stateactive | hover | pressed | disabled | nullnullCongela um estado na documentação. Sem valor, hover e pressed vêm do ponteiro.
Slots
Slots de AdsButton
SlotUso
defaultSubstitui o label.

Campos

Formulário, número, busca, texto longo e data. O rótulo fica acima do campo.

Orientação curta sobre o campo.

Parâmetros

Componente

Estado

Código

vue
  1. <AdsInput
  2. v-model="text"
  3. label="Label"
  4. placeholder="Placeholder"
  5. hint="Orientação curta sobre o campo."
  6. />

Propriedades

AdsInput

Propriedades de AdsInput
PropriedadeTipoPadrãoDescrição
v-modelstring | number""Valor do campo.
labelstring""Rótulo acima do campo.
hintstring""Texto de apoio. Some quando há error.
errorstring""Mensagem de erro. Também marca o campo como inválido.
infostring""Tooltip do ícone de informação ao lado do rótulo.
placeholderstring""Texto enquanto o campo está vazio.
disabledbooleanfalseImpede a edição.
iconstring""Ícone à direita. Vazio esconde o ícone.
typetext | numbertextTipo nativo do input.
suffixstring""Texto fixo à direita, como uma unidade.
minstring | number—Mínimo, quando type é number.
stepstring | number—Passo, quando type é number.
statedefault | active | focus | error | disabled | ai | nullnullCongela o estado na documentação.
Eventos
Eventos de AdsInput
EventoPayloadQuando
focusFocusEventO campo recebe o foco.
blurFocusEventO campo perde o foco.

AdsNumberInput

Campo numérico com setas de passo e sufixo.

Propriedades de AdsNumberInput
PropriedadeTipoPadrãoDescrição
v-modelstring | number""Valor do campo.
labelstring""Rótulo acima do campo.
hintstring""Texto de apoio. Some quando há error.
infostring""Tooltip do ícone de informação ao lado do rótulo.
errorstring""Mensagem de erro.
placeholderstring""Texto enquanto o campo está vazio.
suffixstring""Unidade à direita, como %.
disabledbooleanfalseImpede a edição e as setas.
minstring | number—Valor mínimo do passo.
stepstring | number—Incremento das setas.
statedefault | active | focus | error | disabled | nullnullCongela o estado na documentação.
Eventos
Eventos de AdsNumberInput
EventoPayloadQuando
focusFocusEventO campo recebe o foco.
blurFocusEventO campo perde o foco.

AdsSearchInput

Propriedades de AdsSearchInput
PropriedadeTipoPadrãoDescrição
v-modelstring""Texto da busca. Com valor, aparece o botão de limpar.
placeholderstringPesquisarTexto enquanto a busca está vazia.
ariaLabelstring""Nome acessível. Sem valor, usa o placeholder.
hintstring""Texto de apoio abaixo do campo.
disabledbooleanfalseImpede a busca.
iconstringi-lucide-searchÍcone à esquerda.
sizemd | smmdmd tem 45px; sm tem 40px.
statedefault | active | focus | disabled | nullnullCongela o estado na documentação.

AdsTextarea

Propriedades de AdsTextarea
PropriedadeTipoPadrãoDescrição
v-modelstring""Texto longo.
labelstring""Rótulo acima do campo.
hintstring""Texto de apoio. Some quando há error.
errorstring""Mensagem de erro.
placeholderstring""Texto enquanto o campo está vazio.
disabledbooleanfalseImpede a edição.
statedefault | active | focus | error | disabled | nullnullCongela o estado na documentação.

AdsDatePicker

Data única no v-model. Com range, o período vai em start e end.

Propriedades de AdsDatePicker
PropriedadeTipoPadrãoDescrição
v-modelstring""Data no formato AAAA-MM-DD. Ignorado quando range está ativo.
v-model:startstring""Início do período.
v-model:endstring""Fim do período.
rangebooleanfalseAbre o calendário de período.
minstring—Data mínima, AAAA-MM-DD.
maxstring—Data máxima, AAAA-MM-DD.
disabledboolean—Impede a escolha.
readonlyboolean—Mostra a data sem abrir o calendário.
sizesm | md | lgmdAltura do campo.
maximumDaysnumber—Limite de dias do período, contando o início.
classstring—Classe no gatilho.

Filtro

Select com lista, busca ou calendário de mês. Rótulo longo ganha reticências e tooltip.

Label

Orientação curta sobre o campo.

Parâmetros

Tipo

Estado

Código

vue
  1. <AdsFilterSelect
  2. v-model="selection"
  3. type="checkbox"
  4. label="Label"
  5. :options="options"
  6. hint="Orientação curta sobre o campo."
  7. />

Propriedades

AdsFilterSelect

Select com lista, busca ou calendário de mês. Rótulo longo ganha reticências e tooltip.

Propriedades de AdsFilterSelect
PropriedadeTipoPadrãoDescrição
v-modelstring | string[]obrigatóriocheckbox usa string[]. radio e month usam string.
typecheckbox | radio | monthobrigatóriaLista múltipla, escolha única ou mês.
labelstring—Rótulo acima do campo.
hintstring—Texto de apoio. Some quando há error.
errorstring—Mensagem de erro.
placeholderstringSelecioneTexto sem valor.
disabledbooleanfalseImpede a abertura.
options{ value: string; label: string }[][]Itens da lista. month não usa options.
searchableboolean | nullnullnull busca só no checkbox.
selectAllboolean | nullnullnull mostra “selecionar todos” só no checkbox.
selectAllLabelstringSelecionar todosRótulo da ação de marcar todos.
allSelectedLabelstringTodos selecionadosTexto do gatilho quando tudo está marcado.
emptyLabelstringNenhum resultadoLista vazia depois da busca.
searchPlaceholderstringPesquisarPlaceholder da busca interna.
blockbooleanfalseO gatilho ocupa a largura do campo.

Abas

Troca de visão na mesma tela: link para seções, segmented para um filtro curto.

Parâmetros

Variante

Quantidade

Código

vue
  1. <AdsTabs
  2. v-model="tab"
  3. :items="items"
  4. :content="false"
  5. />

Propriedades

AdsTabs

Faixa de links para trocar a visão da mesma tela.

Propriedades de AdsTabs
PropriedadeTipoPadrãoDescrição
v-modelstring | number—Valor da aba ativa.
itemsTabsItem[]obrigatóriaRótulo e valor de cada aba.
contentbooleantruefalse deixa só a faixa, sem painel.
defaultItemTabsItem—Aba inicial quando não há v-model.
listClassstring""Classes extras na lista, como um recuo lateral.
Slots
Slots de AdsTabs
SlotUso
trailingConteúdo depois do rótulo da aba.
contentPainel da aba ativa.

AdsSegmentedTabs

Filtro curto em pílula. Não renderiza painel.

Propriedades de AdsSegmentedTabs
PropriedadeTipoPadrãoDescrição
v-modelstring | numberobrigatórioValor do segmento ativo.
itemsTabsItem[]obrigatóriaRótulo e valor de cada segmento.
ariaLabelstring—Nome do grupo, lido pelo leitor de tela.

Feedback

Aviso, toast flutuante, arquivo escolhido e tooltip. O arquivo usa success e warning do ADS.

Mensagem de erro

Parâmetros

Componente

Status

Código

vue
  1. <AdsToast
  2. status="error"
  3. />

Propriedades

AdsToast

Faixa de aviso na página. O toast flutuante usa useToast do Nuxt UI.

Propriedades de AdsToast
PropriedadeTipoPadrãoDescrição
statusprimary | success | error | warning | neutralerrorCor e ícone da faixa.
appbooleanfalseFaixa estreita de 331px, a variação App.
messagestring—Texto. O slot padrão substitui.
iconstring—Ícone Lucide. Sem valor, segue o status.
closablebooleantrueMostra o botão de fechar.
actionLabelstring—Rótulo da ação, como tentar de novo.
actionIconstringi-lucide-refresh-cwÍcone da ação. Vazio esconde o ícone.
Eventos
Eventos de AdsToast
EventoPayloadQuando
close—O botão de fechar foi acionado.
action—A ação da faixa foi acionada.
Slots
Slots de AdsToast
SlotUso
defaultSubstitui a mensagem.

AdsFileCard

Propriedades de AdsFileCard
PropriedadeTipoPadrãoDescrição
namestringobrigatóriaNome do arquivo.
detailstring—Linha de apoio, como o tamanho.
statussuccess | errorsuccesssuccess confirma; error mostra o problema.
messagestring—Texto do problema, acima do arquivo.
iconstring—Ícone. Sem valor, segue o status.
removablebooleanfalseMostra a ação de remover.
removeLabelstringRemover arquivoNome acessível da ação de remover.
Eventos
Eventos de AdsFileCard
EventoPayloadQuando
remove—A ação de remover foi acionada.

InvertedTooltip

Tooltip escuro para texto que não cabe na linha. O tooltip claro do exemplo é o UTooltip.

Propriedades de InvertedTooltip
PropriedadeTipoPadrãoDescrição
textstringobrigatóriaTexto do tooltip. Vazio desliga o tooltip.
delayDurationnumber150Espera antes de abrir, em milissegundos.
disabledbooleanfalseNão abre.
content.sidetop | right | bottom | lefttopLado em relação ao gatilho.
content.alignstart | center | endstartAlinhamento no lado escolhido.
content.sideOffsetnumber8Distância do gatilho, em pixels.
Slots
Slots de InvertedTooltip
SlotUso
defaultGatilho. No texto truncado, o elemento precisa truncar.

Carregando

Espera na tela. Spinner na área vazia, skeleton quando o formato já é conhecido, shimmer quando o conteúdo continua visível. Ação no botão, processo de tela, percentual e o esqueleto de tabela usam a peça de cada caso.

Parâmetros

Tamanho

Tom

Código

vue
  1. <AdsLoading />

Propriedades

AdsLoading

Propriedades de AdsLoading
PropriedadeTipoPadrãoDescrição
variantspinner | skeleton | shimmerspinnerspinner na área vazia, skeleton quando o formato já é conhecido, shimmer sobre o conteúdo.
sizesm | md | lgmdsm na tabela, md na seção, lg no modal.
toneprimary | mutedprimaryprimary no dado da tela, muted numa tabela secundária.
regionbooleanfalseCentraliza o spinner numa seção vazia.
labelstring""Texto ao lado do spinner.
linesnumber0Linhas do skeleton. Zero desenha um bloco; a class define altura e largura.

useOverlayLoading

Cobre a página quando o processo não tem uma área própria. As opções abaixo são passadas para show() e update().

Propriedades de useOverlayLoading
PropriedadeTipoPadrãoDescrição
titlestring—Título do overlay.
descriptionstring—Texto de apoio.
hintstring—Linha auxiliar.
showProgressboolean—Mostra a barra de progresso.
progressnumber—Percentual, de 0 a 100.
variantloading | success | error | search | info—Estado do processo.
iconSrcstring—Ícone próprio.
actionLabelstring—Rótulo da ação, como fechar no sucesso.
onAction() => void—Callback da ação.
onUserClose() => void—Callback quando a pessoa fecha.
closableVariants('success' | 'error')[]—Variantes em que a pessoa pode fechar o overlay.
Métodos
Métodos de useOverlayLoading
MétodoAssinaturaUso
show(options) => symbol | nullAbre o overlay. Se já houver um aberto, ele fecha antes.
update(options: Partial) => voidMescla as opções no overlay aberto. As props precisam ser planas.
close() => voidFecha o overlay aberto.
isOpen() => booleanDiz se há um overlay aberto.
getCurrentId() => symbol | nullId do overlay aberto.

ProgressBarLoading

Propriedades de ProgressBarLoading
PropriedadeTipoPadrãoDescrição
titlestring""Título do trabalho.
descriptionstring""Texto de apoio.
iconstringi-lucide-loader-circleÍcone ao lado do título.
showIconbooleantrueMostra o ícone.
spinIconbooleantrueGira o ícone.
indeterminatebooleanfalseBarra sem percentual conhecido.
percentnumber0Andamento, de 0 a 100.
showPercentbooleantrueMostra o número do percentual.
showElapsedTimebooleantrueMostra o tempo decorrido.
ariaLabelstring""Nome acessível da barra.
variantprimary | success | errorprimaryCor da barra. Não altera o comportamento.
rootClassstringflex flex-col gap-3Classe do contêiner.

ProductTableSkeleton

Mock local do playground. O bloco genérico continua AdsLoading.

Propriedades de ProductTableSkeleton
PropriedadeTipoPadrãoDescrição
rowsnumber4Quantidade de linhas do esqueleto.

Pills

Estado e contagem em uma peça compacta.

2

Parâmetros

Componente

Cor

Código

vue
  1. <AdsBadge />

Propriedades

AdsBadge

Propriedades de AdsBadge
PropriedadeTipoPadrãoDescrição
colorprimary | success | attention | warning | new | innovation | blockedprimaryCor do contador.
minibooleanfalsePonto de 8px, sem número.
valuestring | number2Número ou texto do contador. Ignorado no mini.

AdsBroadcast

Propriedades de AdsBroadcast
PropriedadeTipoPadrãoDescrição
labelstringLIVETexto da pílula.
statuswarning | successwarningCor do ponto e do texto.

AdsPill

Propriedades de AdsPill
PropriedadeTipoPadrãoDescrição
statusdefault | success | attention | warning | new | blocked | innovation | neutraldefaultCor do estado.
toneprimary | secondaryprimaryprimary é sólido; secondary é a variação clara.
labelstring—Texto. Sem valor, usa o nome do status.
iconstring—Ícone Lucide à esquerda.
iconClassstring—Classes do ícone, como o giro do carregamento.

AdsNotabilityPill

Propriedades de AdsNotabilityPill
PropriedadeTipoPadrãoDescrição
notabilitystringobrigatóriaimage, traffic ou profit. Outro valor cai em image.
labelstring—Texto. Sem valor, formata o nome da notabilidade.

AdsMiniPill

Propriedades de AdsMiniPill
PropriedadeTipoPadrãoDescrição
typenao-iniciado | pausado | novonao-iniciadoEstado compacto.
labelstring—Texto. Sem valor, usa o rótulo do type.

Controles

Switch, checkbox e radio. Texto de 14, regular, na cor secondary.

Parâmetros

Componente

Código

vue
  1. <AdsSwitch
  2. v-model="switchOn"
  3. label="Somente ativas"
  4. />

Propriedades

AdsSwitch

Propriedades de AdsSwitch
PropriedadeTipoPadrãoDescrição
v-modelbooleanfalseLigado ou desligado.
labelstring""Texto ao lado. O slot padrão substitui.
disabledbooleanfalseImpede a troca. O visual muda para o estado desabilitado.
Slots
Slots de AdsSwitch
SlotUso
defaultSubstitui o label.

AdsCheckbox

Propriedades de AdsCheckbox
PropriedadeTipoPadrãoDescrição
v-modelbooleanfalseMarcado ou não.
v-model:indeterminatebooleanfalseEstado misto. O clique desmarca o misto e grava o valor.
labelstring""Texto ao lado. O slot padrão substitui.
disabledbooleanfalseImpede a troca.
Slots
Slots de AdsCheckbox
SlotUso
defaultSubstitui o label.

AdsRadio

Radios do mesmo grupo compartilham v-model e name.

Propriedades de AdsRadio
PropriedadeTipoPadrãoDescrição
v-modelstring | number | boolean""Valor escolhido no grupo.
valuestring | number | booleanonValor deste item.
namestring""Agrupa os radios no formulário. Vazio gera um nome.
labelstring""Texto ao lado. O slot padrão substitui.
disabledbooleanfalseImpede a escolha deste item.
Slots
Slots de AdsRadio
SlotUso
defaultSubstitui o label.

Card

AdsFeatureCard é a entrada de um fluxo: ícone, título, descrição e seta, com 396px. AdsCard é o cartão de conteúdo e substitui UCard. AdsMetricCard é o número em destaque.

Parâmetros

Componente

Cor do ícone

Código

vue
  1. <AdsFeatureCard
  2. title="Simulação"
  3. description="Simulações de preços e cenários."
  4. icon="i-lucide-calculator"
  5. color="success"
  6. footer-text="Atualizada hoje"
  7. />

Propriedades

AdsFeatureCard

Entrada de um fluxo, com 396px: ícone, título, descrição e seta.

Propriedades de AdsFeatureCard
PropriedadeTipoPadrãoDescrição
titlestringobrigatóriaTítulo do fluxo.
descriptionstringobrigatóriaTexto de apoio. Se cortar, ganha tooltip.
iconstringobrigatóriaÍcone Lucide.
colorprimary | success | attention | warning | new | blocked | innovationprimaryCor do ícone, a mesma do pill secondary.
toRouteLocationRaw—Vira link. Sem valor, continua botão.
disabledbooleanfalseFluxo ainda indisponível.
badges{ label: string; tone?: AdsPillTone; status?: AdsPillStatus }[]—Pílulas do rodapé.
footerIconstring—Ícone do rodapé.
footerTextstring—Texto do rodapé.
Eventos
Eventos de AdsFeatureCard
EventoPayloadQuando
clickMouseEventO cartão foi acionado enquanto não está desabilitado.

AdsCard

Cartão de conteúdo. Substitui UCard.

Propriedades de AdsCard
PropriedadeTipoPadrãoDescrição
titlestring—Título em negrito. O slot header substitui.
descriptionstring—Texto de apoio. O slot padrão substitui.
footerTextstring—Linha curta no rodapé. O slot footer substitui.
asdiv | buttondivbutton quando o cartão é a própria ação.
disabledbooleanfalseSó vale quando as é button.
selectedbooleanfalseRealce de item escolhido.
radiussm | mdmdsm tem 8px; md tem 12px.
Slots
Slots de AdsCard
SlotUso
headerSubstitui o título.
hintConteúdo à direita do título.
actionsAções no cabeçalho.
defaultCorpo. Substitui description.
footerRodapé. Substitui footerText.

AdsMetricCard

Número em destaque. Rótulo 14 medium, valor 20 bold, variação 14 bold, legenda 12 regular.

Propriedades de AdsMetricCard
PropriedadeTipoPadrãoDescrição
titlestringobrigatóriaRótulo acima do número.
valuestringobrigatóriaNúmero ou frase principal.
hintstring—Texto do ícone de ajuda ao lado do rótulo.
captionstring—Linha curta abaixo do número, como o valor atual.
emptybooleanfalseValor ausente: 16px medium, cor tertiary.
asdiv | buttondivbutton quando o cartão é a própria ação.
disabledbooleanfalseSó vale quando as é button.
selectedbooleanfalseRealce de item escolhido.
Slots
Slots de AdsMetricCard
SlotUso
statusLinha abaixo do rótulo.
deltaVariação ao lado do valor. Some quando empty.
footerConteúdo à direita da legenda.
defaultCorpo extra abaixo da legenda.