Abas
Para mostrar o conteúdo com guias nos arquivos Markdown, você pode recorrer ao MDX. O Docusaurus fornece <Tabs>
componentes fora da caixa.
import Tabs from '@theme/Tabs';import TabItem from '@theme/TabItem';
<Tabs defaultValue="apple" values={[ {label: 'Apple', value: 'apple'}, {label: 'Orange', value: 'orange'}, {label: 'Banana', value: 'banana'}, ]}> <TabItem value="apple">This is an apple 🍎</TabItem> <TabItem value="orange">This is an orange 🍊</TabItem> <TabItem value="banana">This is a banana 🍌</TabItem></Tabs>;
E você receberá o seguinte:
- Apple
- Orange
- Banana
info
Por padrão, as abas são renderizadas ansiosamente, mas é possível carregá-los preguiçosamente passando a propriedade lazy
para o componente Tabs
.
#
Exibindo uma aba padrãoDefina a propriedade defaultValue
no componente Tabs
para o valor de rótulo de sua escolha para mostrar a aba correspondente por padrão.
Por exemplo, no exemplo acima, defaultValue="apple"
força a aba Apple
a ser aberta por padrão.
Se a propriedade defaultValue
não é fornecida ou se refere a um valor não existente, apenas os cabeçalhos da aba aparecem até que o usuário clique em uma aba.
#
Sincronizando opções de guiaVocê pode querer que as escolhas do mesmo tipo de abas sincronizem entre si. Por exemplo, você pode querer fornecer diferentes instruções para usuários no Windows vs usuários no macOS, e você deseja alterar todas as abas de instruções específicas de SO em um clique. Para conseguir isso, você pode dar a todas as abas relacionadas a mesma propriedade groupId
. Observe que fazer isso persistirá na escolha no localStorage
e todas as <Tab>
instâncias com o mesmo groupId
serão atualizadas automaticamente quando o valor de uma delas for alterado. Note que groupID
são globalmente do namespace.
<Tabs groupId="operating-systems" defaultValue="win" values={[ {label: 'Windows', value: 'win'}, {label: 'macOS', value: 'mac'}, ]}><TabItem value="win">Use Ctrl + C to copy.</TabItem><TabItem value="mac">Use Command + C to copy.</TabItem></Tabs>
<Tabs groupId="operating-systems" defaultValue="win" values={[ {label: 'Windows', value: 'win'}, {label: 'macOS', value: 'mac'}, ]}><TabItem value="win">Use Ctrl + V to paste.</TabItem><TabItem value="mac">Use Command + V to paste.</TabItem></Tabs>
- Windows
- macOS
- Windows
- macOS
Para todos os grupos de abas que têm o mesmo groupId
, os valores possíveis não precisam ser os mesmos. Se um grupo de guias com um valor escolhido não existe em outro grupo de tabulações com o mesmo groupId
, o grupo de tabulações com o valor ausente não vai mudar a aba dele. Isso pode ser visto pelo seguinte exemplo. Tente selecionar Linux, e os grupos de abas acima não mudam.
<Tabs groupId="operating-systems" defaultValue="win" values={[ {label: 'Windows', value: 'win'}, {label: 'macOS', value: 'mac'}, {label: 'Linux', value: 'linux'}, ]}> <TabItem value="win">I am Windows.</TabItem> <TabItem value="mac">I am macOS.</TabItem> <TabItem value="linux">I am Linux.</TabItem></Tabs>
- Windows
- macOS
- Linux
As opções de guia com diferentes groupId
não interferem um com o outro:
<Tabs groupId="operating-systems" defaultValue="win" values={[ {label: 'Windows', value: 'win'}, {label: 'macOS', value: 'mac'}, ]}><TabItem value="win">Windows in windows.</TabItem><TabItem value="mac">macOS is macOS.</TabItem></Tabs>
<Tabs groupId="non-mac-operating-systems" defaultValue="win" values={[ {label: 'Windows', value: 'win'}, {label: 'Unix', value: 'unix'}, ]}><TabItem value="win">Windows is windows.</TabItem><TabItem value="unix">Unix is unix.</TabItem></Tabs>
- Windows
- macOS
- Windows
- Unix
#
Personalizando abasVocê pode querer personalizar a aparência de um determinado conjunto de guias. Para fazer isso, você pode passar a string na propriedade className
e a classe CSS especificada será adicionada ao componente Tabs
:
import Tabs from '@theme/Tabs';import TabItem from '@theme/TabItem';
<Tabs className="unique-tabs" defaultValue="apple" values={[ {label: 'Apple', value: 'apple'}, {label: 'Orange', value: 'orange'}, {label: 'Banana', value: 'banana'}, ]}> <TabItem value="apple">This is an apple 🍎</TabItem> <TabItem value="orange">This is an orange 🍊</TabItem> <TabItem value="banana">This is a banana 🍌</TabItem></Tabs>;
- Apple
- Orange
- Banana