componentes

dropdown

É um tipo de menu contextual acionado por um botão.

demo interativa

Uma versão de interativa do componente desenvolvido.

propriedades*

propertydescriptionrequireddefault valuetype

direction

Set which direction will be rendered

falseundefinedleftbottomrighttop

anchorElement

Ref to the anchor element that dropdown will use to define it's position

trueundefinedRefObject<HTMLElement>

isOpen

Controls if dropdown needs to be displayed

falseundefinedboolean

onClose

Callback called when dropdown is closed

falseundefined() => void

appendTo

An element id to append dropdown to a different container element

falseundefinedstring

returnFocusToPreviousElement

Set this to false if you don't want to return focus to previous element

falseundefinedboolean

focusTrapContainerElements

Set which elements will be used to trap focus it will use dropdown container as default

falseundefinedHTMLElement[]

*valores gerados automaticamente.

propriedades*

propertydescriptionrequireddefault valuetype

href

Set the href of the dropdown item

falseundefinedstring

caption

Display a caption above dropdown item children

falseundefinedstring

icon

Expect an icon from @olist/design-system-icons to display an icon in the right side of dropdown item children

falseundefinedReactElement<any, string | JSXElementConstructor<any>>

badge

Display a badge on the right side of dropdown item children

falseundefined{ text: string; variation?: "neutral" | "primary" | "info" | "success" | "alert" | "error"; }

isSubMenu

Set this to true if this dropdown item controls an inner dropdown, it will display an chevron right icon on the right side.

falseundefinedboolean

disabled

Set disabled state

falseundefinedboolean

onClick

Called when dropdown item is clicked

falseundefined(event: MouseEvent<Element, MouseEvent>) => void

tabIndex

false0number

*valores gerados automaticamente.

utilizando dentro de um modal

OBS: ao utilizar o Dropdown dentro de um modal é necessário alterar o destino do elemento que o dropdown é inserido. Para isso, basta passar o id do elemento destino na propriedade appendTo, confira o exemplo:

formatação

Ilustração de botão e dropdown aberto. No botão, destaque de número 1. No
título do dropdown, destaque de número 2. No dropdown, destaque de número 3.
  1. Trigger: é o componente utilizado para acionar o dropdown.
  2. Menu header: é o cabeçalho do dropdown, que pode ou não ser clicável.
  3. Menu list: é a lista de opções do dropdown.

uso

O dropdown menu é utilizado contextualmente para escolha de um item dentro de uma lista de opções. Ele pode dispor uma série de ações possíveis ou áreas do produto para as quais a pessoa usuária pode acessar.

Caso um dos itens não esteja disponível, é importante mantê-lo no menu mesmo assim para consistência da navegação.

Ilustração de dropdown menu. Na lista de itens, os dois últimos estão mais desbotados, indicando que não estão ativos.
certoMostre os todos os itens, mesmo que indisponíveis no momento.
Ilustração de dropdown menu aberta. Os últimos 2 itens estão fora da lista em vermelho desbotado, marcando que foram removidos.
erradoNão remova itens indisponíveis do menu.

grupos e alinhamento

O dropdown menu normalmente é acionado através de um botão. Ele fica posicionado próximo ao componente pelo qual foi acionado, alinhado pela esquerda, com excessão de quando estiver próximo à lateral direita da página.

Ilustração de botão e dropdown aberto. Os dois estão alinhados pela esquerda e próximos ao lado esquerdo da página.dropdown alinhado a esquerda
Ilustração de botão e dropdown aberto. Os dois estão alinhados pela direita e próximos ao lado direito da página.dropdown alinhado a direita

guia de conteúdo

  • Em caso do dropdown funcionar como menu de ações, prefira verbos no infinitivo. Exemplo: ativar conta, bloquear conta, excluir produtos.
  • Em caso o dropdown funcionar como menu de navegação, usar nomes que sejam condizentes com o título da página ao qual se refere. Exemplo: perfil, configurações, catálogo.

guia de design

  • Tem guia de uso.
  • Tem guia de conteúdo.
  • Usa os design tokens.
  • Tem símbolo no Figma.
  • Possui motion.
  • Possui versão web.
  • Possui versão responsiva.
  • Possui versão mobile.
  • É acessível via leitor de tela.
  • Texto possui contraste acessível (WCAG 2.0 - Nível AA).

conteúdo relacionado

Migração do United para Olist Design System

Propriedades

UnitedOlist Design System
as
isOpenisOpen
onClick
onCloseonClose
onOpen
shouldShowChevron
direction
anchorElement
appendTo
returnFocusToPreviousElement
focusTrapContainerElements