Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
Essa documentação é considerada herdada. Para obter informações e recursos abrangentes relacionados à formatação de texto em Cartões Adaptáveis, visite o hub de documentação de Cartões Adaptáveis.
O hub de documentação de Cartões Adaptáveis oferece documentação de referência completa e mais recente, um Designer de Cartão Adaptável atualizado, exemplos de JSON internos, práticas recomendadas de design e um histórico de versão detalhado dos recursos do Cartão Adaptável. Para obter mais informações, consulte introdução ao hub de documentação de Cartões Adaptáveis e novas atualizações de Cartões Adaptáveis.
A seguir temos duas maneiras de adicionar uma formatação em rich text aos seus cartões:
Os cartões aceitam formatação somente na propriedade texto, excluindo as propriedades título ou subtítulo. A formatação pode ser especificada usando-se um subconjunto de formatação XML ou HTML ou em Markdown, dependendo do tipo de cartão. Para o desenvolvimento atual e futuro de Cartões Adaptáveis, recomendamos a formatação Markdown.
O suporte à formatação difere entre os tipos de cartão. A renderização do card pode diferir ligeiramente entre a área de trabalho e o dispositivo móvel, os clientes do Microsoft Teams e o Teams no navegador da área de trabalho.
Você pode incluir uma imagem embutida em qualquer cartão do Teams. Os formatos de imagem com suporte são os formatos .png, .jpg ou .gif. Mantenha as dimensões dentro de 1024 x 1024 pixels e tamanho de arquivo menor que 1 MB. Não há suporte para imagens .gif animadas. Para obter mais informações, consulte tipos de cartões.
Você pode formatar Cartões Adaptáveis e cartões de conector para Grupos do Microsoft 365 com Markdown que incluem determinados estilos com suporte.
Formatar cartões em Markdown
Os seguintes tipos de cartão aceitam a formatação Markdown no Teams:
- Cartões Adaptáveis: há suporte para Markdown no campo Cartão
TextblockAdaptável eFact.Titlee .Fact.ValueNão há suporte para HTML em Cartões Adaptáveis. - Cartões de conector para Grupos do Microsoft 365: Markdown e HTML limitado têm suporte em cartões de conector para Grupos do Microsoft 365 nos campos de texto.
Observação
Não há suporte para Markdown para cartões de entrada OAuth em bots.
Você pode usar quebra de linha nos Cartões Adaptáveis usando as sequências de escape \r ou \n para quebras de linha nas listas. A formatação é diferente para as versões desktop e móvel do Teams para Cartões Adaptáveis. Há suporte para menções baseadas em cartões de clientes com as versões para web, desktop e móvel. Você pode usar a propriedade de mascaramento de informações para mascarar informações específicas, como senha ou informações confidenciais de usuários dentro do elemento de entrada Input.Text do Cartão Adaptável. Você pode expandir a largura de um Cartão Adaptável usando o objeto width. Você pode habilitar o suporte ao typeahead nos Cartões Adaptáveis e filtrar o conjunto de opções de entrada à medida que o usuário digita a entrada. Você pode usar a msteams propriedade para adicionar a capacidade de exibir imagens no Stageview seletivamente.
A formatação é diferente para as versões desktop e móvel do Teams para Cartões Adaptáveis e cartões de conector. Nesta seção, você pode analisar um exemplo do formato Markdown para Cartões Adaptáveis e cartões de conector.
- Formato Markdown para Cartões Adaptáveis
- Formato Markdown para cartões conector para Grupos do Microsoft 365
A tabela a seguir fornece os estilos compatíveis para Textblock, Fact.Title e Fact.Value:
| Estilo | Exemplo | Markdown |
|---|---|---|
| Negrito | Negrito | **Bold** |
| Itálico | Itálico | _Italic_ |
| Lista não ordenada |
|
- Item 1\r- Item 2\r- Item 3 |
| Lista ordenada |
|
1. Green\r2. Orange\r3. Blue |
| Hiperlinks | Bing | [Title](url) |
Não há suporte para as seguintes marcas Markdown:
- Cabeçalhos
- Tabelas
- Imagens
- Texto pré-formatado
- Blockquotes
Quebras de linha para Cartões Adaptáveis
Você pode usar as sequências de escape \r ou \n para quebras de linha em listas. O uso de \n\n em listas faz com que o próximo elemento da lista fique recuado. Se você precisar de quebras de linha em outro lugar do TextBlock, use \n\n.
Diferenças entre as versões desktop e móvel para Cartões Adaptáveis
Na versão desktop, a formatação Markdown para Cartões Adaptáveis aparece conforme mostrado na imagem a seguir, tanto em navegadores web quanto no aplicativo cliente do Teams:
No iOS, a formatação Markdown para Cartões Adaptáveis aparece conforme mostrado na imagem a seguir:
No Android, a formatação Markdown para Cartões Adaptáveis aparece conforme mostrado na imagem a seguir:
Para obter mais informações sobre formatação de data e hora e localização em Cartões Adaptáveis, consulte recursos de texto em Cartões Adaptáveis.
Amostra do formato para Cartões Adaptáveis
O código a seguir mostra um exemplo de formatação de Cartões Adaptáveis:
{
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"text": "This is some **bold** text"
},
{
"type": "TextBlock",
"text": "This is some _italic_ text"
},
{
"type": "TextBlock",
"text": "- Bullet \r- List \r",
"wrap": true
},
{
"type": "TextBlock",
"text": "1. Numbered\r2. List\r",
"wrap": true
},
{
"type": "TextBlock",
"text": "Check out [Adaptive Cards](https://adaptivecards.microsoft.com/?topic=welcome)"
}
]
}
Os Cartões Adaptáveis dão suporte a emojis. O conteúdo de card a seguir mostra um Cartão Adaptável com um emoji:
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "Container",
"items": [
{
"type": "TextBlock",
"text": "Publish Adaptive Card with emojis 🥰",
"weight": "bolder",
"size": "medium"
}
]
}
]
}
Observação
Se você usar APIs REST, defina charset=UTF-8 em seus cabeçalhos de solicitação para adicionar emojis em Cartões Adaptáveis.
Suporte a menções dentro dos Cartões Adaptáveis
Você pode adicionar @mentions dentro de um corpo do Cartão Adaptável para bots e respostas de extensão de mensagem. Para adicionar @mentions cartões, siga a mesma lógica de notificação e renderização das menções baseadas em mensagens em conversas de canal e chat em grupo.
Bots e extensões de mensagens podem incluir menções dentro do conteúdo do cartão nos elementos TextBlock e FactSet.
Observação
- Menções de canal e equipe não são suportadas em mensagens de bot.
- No entanto, você pode @mention vários usuários em uma única mensagem de Cartão Adaptável, no entanto, garantir que o limite de tamanho da mensagem não exceda 28 KB para Webhooks de entrada e 100 KB para uma mensagem de bot.
- Os Cartões Adaptáveis enviados de Webhooks de entrada dão suporte apenas a menções de usuários e não a menções de bots.
Para incluir uma menção em um Cartão Adaptável, seu aplicativo precisa incluir os seguintes elementos:
-
<at>username</at>nos elementos com suporte do Cartão Adaptável. - O objeto
mentiondentro de uma propriedademsteamsno conteúdo do cartão inclui a ID do usuário do Teams que está sendo mencionado. - A
userIdé exclusiva da ID do seu bot e de um usuário específico. Ele pode ser usado para @mention um usuário específico. AuserIdpode ser recuperada usando uma das opções mencionadas em como obter a ID do usuário.
Amostra de um Cartão Adaptável com uma menção
O código a seguir mostra um exemplo de Cartão Adaptável com uma menção:
{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"text": "Hi <at>John Doe</at>"
}
],
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0",
"msteams": {
"entities": [
{
"type": "mention",
"text": "<at>John Doe</at>",
"mentioned": {
"id": "29:123124124124",
"name": "John Doe"
}
}
]
}
}
}
ID do Objeto do Microsoft Entra e UPN na menção do usuário
A plataforma Teams permite que você menção usuários com sua ID de Objeto do Microsoft Entra e seu Nome Principal do Usuário (UPN), além das IDs de menção existentes. Bots com Cartões Adaptáveis e Conectores com Webhooks de Entrada oferecem suporte às duas IDs de menção de usuário.
A tabela a seguir descreve as IDs de menção de usuário que passaram a ter suporte recentemente:
| IDs | Recursos que oferecem suporte | Descrição | Exemplo |
|---|---|---|---|
| ID do Objeto do Microsoft Entra | Bot, Conector | ID de Objeto do usuário do Microsoft Entra | 49c4641c-ab91-4248-aebb-6a7de286397b |
| UPN | Bot, Conector | UPN do usuário do Microsoft Entra | john.smith@microsoft.com |
Menção de usuário em bots com Cartões Adaptáveis
Os bots dão suporte à menção do usuário com a ID do Objeto do Microsoft Entra e o UPN, além das IDs existentes. O suporte para duas novas IDs está disponível em bots para mensagens de texto, corpo de Cartões Adaptáveis e resposta de extensão de mensagem. Os bots oferecem suporte às IDs de menção em conversas e cenários invoke. O usuário recebe uma notificação do feed de atividades quando está @mentioned com as IDs.
Observação
A atualização do esquema e as alterações da interface do usuário/experiência do usuário não são necessárias para menções do usuário com Cartões Adaptáveis no Bot.
Exemplo
Exemplo de menção de usuário em bots com Cartões Adaptáveis como se segue:
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0",
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"text": "Hi <at>Adele UPN</at>, <at>Adele Microsoft Entra ID</at>"
}
],
"msteams": {
"entities": [
{
"type": "mention",
"text": "<at>Adele UPN</at>",
"mentioned": {
"id": "AdeleV@contoso.onmicrosoft.com",
"name": "Adele Vance"
}
},
{
"type": "mention",
"text": "<at>Adele Microsoft Entra ID</at>",
"mentioned": {
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd",
"name": "Adele Vance"
}
}
]
}
}
A imagem a seguir ilustra a menção do usuário com Cartão Adaptável no Bot:
Menção de usuário em um Webhook de Entrada com Cartões Adaptáveis
Os webhooks de entrada começam a dar suporte à menção do usuário em Cartões Adaptáveis com a ID do Objeto do Microsoft Entra e o UPN.
Observação
- Habilite a menção do usuário no esquema para webhooks de entrada para dar suporte à ID do Objeto do Microsoft Entra e ao UPN.
- Alterações de interface do usuário/experiência do usuário não são necessárias para menções do usuário com a ID do Objeto e o UPN do Microsoft Entra.
Exemplo
Exemplo de menção de usuário em Webhooks de Entrada como se segue:
{
"type": "message",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"size": "Medium",
"weight": "Bolder",
"text": "Sample Adaptive Card with User Mention"
},
{
"type": "TextBlock",
"text": "Hi <at>Adele UPN</at>, <at>Adele Microsoft Entra ID</at>"
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0",
"msteams": {
"entities": [
{
"type": "mention",
"text": "<at>Adele UPN</at>",
"mentioned": {
"id": "AdeleV@contoso.onmicrosoft.com",
"name": "Adele Vance"
}
},
{
"type": "mention",
"text": "<at>Adele Microsoft Entra ID</at>",
"mentioned": {
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd",
"name": "Adele Vance"
}
}
]
}
}
}]
}
A imagem a seguir ilustra a menção do usuário em Webhooks de Entrada:
People icon em um Cartão Adaptável
O ícone People ajuda os usuários a exibir as imagens dos usuários em um Cartão Adaptável. Você pode inserir uma imagem e aplicar todas as propriedades com suporte nas imagens.
Há dois tipos de ícones de pessoas com suporte em um Cartão Adaptável:
Persona: Se você quiser mostrar um único usuário em um Cartão Adaptável, ele exibirá o ícone de pessoas e o nome do usuário.
O código JSON a seguir é um exemplo de um Persona card:
{ "$schema": "https://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.0.0", "body": [ { "type": "TextBlock", "text": "Persona", "weight": "bolder" }, { "type": "Component", "name": "graph.microsoft.com/user", "view": "compact", "properties": { "id": "65f50003-e15d-434a-9e14-0fcfeb3d7817", "displayName": "Daniela Mandera", "userPrincipalName": "damandera@microsoft.com" } } ] }Conjunto de Personas: Se você quiser mostrar vários usuários em um Cartão Adaptável, ele exibirá apenas o ícone de pessoas dos usuários.
O código JSON a seguir é um exemplo de um conjunto de personas:
{ "$schema": "https://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.0.0", "body": [ { "type": "TextBlock", "text": "Persona Set", "weight": "bolder" }, { "type": "Component", "name": "graph.microsoft.com/users", "view": "compact", "properties": { "users": [ { "id": "65f50003-e15d-434a-9e14-0fcfeb3d7817", "displayName": "Daniela Mandera", "userPrincipalName": "damandera@microsoft.com" }, { "id": "65f50003-e15d-434a-9e14-0fcfeb3d7817", "displayName": "Daniela Mandera", "userPrincipalName": "damandera@microsoft.com" } ] } } ] }Observação
Não é possível personalizar o estilo da Persona e do Conjunto de Persona em um Cartão Adaptável.
A imagem a seguir é um exemplo do ícone de pessoas em um Cartão Adaptável:
Esquema
A tabela a seguir lista as propriedades do Component elemento:
| Nome da propriedade | Descrição |
|---|---|
type |
component |
name |
Use graph.microsoft.com/users para pesquisar todos os membros na organização |
view |
compact |
properties |
Passado para o modelo de componente |
id |
Ressonância magnética do usuário |
displayName |
Nome do usuário |
userPrincipalName |
O nome principal do usuário da conta no Microsoft Entra ID |
Os Componentes Adaptáveis são componentes de alto nível alimentados por elementos de Modelo e Cartão Adaptável nativos. O tipo component pode ser usado em qualquer lugar dentro do corpo do card e os dados do componente são definidos no properties atributo. Os dados do componente abaixo properties são passados diretamente para o componente. A properties propriedade define o formato para Persona e Conjunto de Persona e todas as outras propriedades em properties são ignoradas por component tipo no esquema do Cartão Adaptável.
Seu bot pode consultar a lista de membros e seus perfis de usuário básicos, incluindo IDs de usuário do Teams e informações do Microsoft Entra, como name, ide userPrincipalName. Para obter mais informações, consulte Buscar a lista de participantes ou o perfil do usuário.
As imagens a seguir mostram o ícone de pessoas em um Cartão Adaptável na área de trabalho do Teams e nos clientes móveis:
Cliente de desktop:
Quando um usuário passa o mouse sobre um ícone de pessoas, o card de pessoas desse usuário é exibido.
Cliente móvel
Quando um usuário seleciona um ícone de pessoas, ele exibe o card de pessoas desse usuário.
Mascaramento de informações em Cartões Adaptáveis
Use a propriedade “mascarar informações” para mascarar informações específicas, como senha ou informações confidenciais de usuários, dentro do elemento de entrada Input.Text do Cartão Adaptável.
Observação
O recurso oferece suporte apenas ao mascaramento de informações do lado do cliente. O texto de entrada mascarado é enviado como texto claro para o endereço HTTPS do ponto de extremidade especificado durante a configuração do bot.
Para mascarar informações em Cartões Adaptáveis, adicione a style propriedade a ser typeinput.text e defina seu valor como Password.
Amostra de Cartão Adaptável com a propriedade de mascaramento
O código a seguir mostra um exemplo de Cartão Adaptável com a propriedade de mascaramento:
{
"type": "Input.Text",
"id": "secretThing",
"style": "password",
},
A imagem a seguir é um exemplo de mascaramento de informações em Cartões Adaptáveis:
Cartão Adaptável com largura total
Você pode usar a msteams propriedade para expandir a largura de um Cartão Adaptável e usar espaço extra na tela. A próxima seção fornece informações sobre como usar a propriedade.
Observação
Teste seu Cartão Adaptável de largura total em fatores forma estreitos, como painéis laterais móveis e de reunião, para garantir que o conteúdo não seja truncado.
Como construir cartões com largura total
Para criar um Cartão Adaptável com largura total, o objeto width na propriedade msteams do conteúdo do cartão deve ser definido como Full.
Amostra de Cartão Adaptável com largura total
Para criar um Cartão Adaptável com largura total, seu aplicativo precisa incluir os elementos da amostra de código a seguir:
{
"type": "AdaptiveCard",
"body": [{
"type": "Container",
"items": [{
"type": "TextBlock",
"text": "Digest card",
"size": "Large",
"weight": "Bolder"
}]
}],
"msteams": {
"width": "Full"
},
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2"
}
A imagem a seguir mostra um Cartão Adaptável com largura total:
A imagem a seguir mostra o modo de exibição padrão de um Cartão Adaptável quando você não definiu a width propriedade como Completa:
Layout responsivo do Cartão Adaptável
Os Cartões Adaptáveis adaptam automaticamente sua aparência ao estilo do aplicativo host, mas têm um layout fixo que permanece o mesmo em clientes móveis e de área de trabalho do Teams. Você deve projetar seus Cartões Adaptáveis para ter uma ótima aparência em qualquer dispositivo, a fim de fornecer uma experiência de usuário aprimorada em chat, canais e chat de reunião. Neste artigo, você aprenderá a criar Cartões Adaptáveis responsivos.
O layout responsivo do Cartão Adaptável ajuda você a criar cartões com layouts diferentes que visam larguras de card diferentes.
Criar Cartões Adaptáveis responsivos
Use a targetWidth propriedade em qualquer elemento para:
Mostrar ou ocultar qualquer elemento com base na largura do card.
Defina diferentes larguras de destino em diferentes elementos para criar diferentes layouts.
A tabela a seguir lista os valores disponíveis
targetWidth:Valor Descrição veryNarrowO elemento fica visível quando a largura do Cartão Adaptável é muito estreita, como em um chat de reunião. narrowO elemento fica visível quando a largura do Cartão Adaptável é estreita, como em um telefone celular no modo retrato. standardO elemento fica visível quando a largura do Cartão Adaptável é padrão, como em um telefone celular no modo paisagem, em um tablet no modo retrato ou em um chat na área de trabalho. wideO elemento é visível quando a largura do Cartão Adaptável é larga, como em um tablet no modo paisagem, em um canal ou chat na área de trabalho, quando você define seu card como largura total. Você também pode definir a
targetWidthpropriedade para tornar um elemento visível para um intervalo de larguras de card usando os prefixosatLeasteatMost. Por exemplo, você pode tornar um elemento visível somente quando a largura do card for 'padrão ou superior' ou somente quando a largura do card for 'estreita ou abaixo'. A tabela a seguir fornece orientações sobre como tornar um elemento visível para um intervalo de larguras de card:Exemplo Descrição "targetWidth": "atLeast:standard"O elemento só é visível quando a largura do Cartão Adaptável é pelo menos padrão, o que significa padrão ou largo. "targetWidth": "atMost:narrow"O elemento só é visível quando a largura do Cartão Adaptável é no máximo estreita, o que significa muito estreita ou estreita. Observação
Você não precisa definir
targetWidthtodos os elementos. Se você não definirtargetWidthpara um elemento, o elemento estará sempre visível, independentemente da largura do card.
A seguir estão exemplos de JSON para um Cartão Adaptável projetado sem uso targetWidth e modificado para usotargetWidth:
Cartão Adaptável projetado sem usar
targetWidth:{ "type": "AdaptiveCard", "body": [ { "type": "ColumnSet", "columns": [ { "type": "Column", "items": [ { "type": "Image", "style": "Person", "url": "https://aka.ms/AAp9xo4", "size": "Small" } ], "width": "auto" }, { "type": "Column", "spacing": "medium", "verticalContentAlignment": "center", "items": [ { "type": "TextBlock", "weight": "Bolder", "text": "David Claux", "wrap": true } ], "width": "auto" }, { "type": "Column", "spacing": "medium", "items": [ { "type": "TextBlock", "text": "Platform Architect", "isSubtle": true, "wrap": true } ], "width": "stretch", "verticalContentAlignment": "center" } ] } ], "$schema": "https://adaptivecards.io/schemas/adaptive-card.json", "version": "1.5" }As imagens a seguir mostram a renderização do Cartão Adaptável para diferentes larguras de card:
Quando a largura do card é larga, o card parece bom.
Quando a largura do card é padrão ou estreita, a função é reduzida.
Quando a largura do card é muito estreita, o nome e a função são significativamente reduzidos.
Cartão Adaptável atualizado para responder usando
targetWidth:{ "type": "AdaptiveCard", "body": [ { "type": "ColumnSet", "columns": [ { "type": "Column", "targetWidth": "atLeast:narrow", "items": [ { "type": "Image", "style": "Person", "url": "https://aka.ms/AAp9xo4", "size": "Small" } ], "width": "auto" }, { "type": "Column", "spacing": "medium", "verticalContentAlignment": "center", "items": [ { "type": "TextBlock", "weight": "Bolder", "text": "David Claux", "wrap": true }, { "type": "TextBlock", "targetWidth": "atMost:narrow", "spacing": "None", "text": "Platform Architect", "isSubtle": true, "wrap": true } ], "width": "auto" }, { "type": "Column", "targetWidth": "atLeast:standard", "spacing": "medium", "items": [ { "type": "TextBlock", "text": "Platform Architect", "isSubtle": true, "wrap": true } ], "width": "stretch", "verticalContentAlignment": "center" } ] } ], "$schema": "https://adaptivecards.io/schemas/adaptive-card.json", "version": "1.5" }Vamos ver como o mesmo Cartão Adaptável é renderizado depois de usar a
targetWidthpropriedade para diferentes larguras de card:Quando a largura do card é larga, o card ainda parece bom.
Quando a largura do card é padrão ou estreita, a função é movida sob o nome, pois não há espaço horizontal para mostrá-los lado a lado.
Quando a largura do card é muito estreita, podemos ocultar a imagem e manter apenas as informações mais significativas.
Para obter mais informações sobre como criar um Cartão Adaptável, consulte Criando Cartões Adaptáveis para seu aplicativo do Teams.
Suporte ao typeahead
Dentro do elemento Input.ChoiceSet do esquema, pedir que os usuários filtrem e selecionem um número considerável de opções pode aumentar de forma significativa o tempo necessário para a conclusão da tarefa. O suporte ao typeahead nos Cartões Adaptáveis pode simplificar a seleção de entradas ao restringir ou filtrar o conjunto de opções de entrada à medida que o usuário digita a entrada.
Para habilitar o typeahead dentro do Input.Choiceset, defina o style como filtered e certifique-se de definir isMultiSelect como false.
Amostra de Cartão Adaptável com suporte ao typeahead
O código a seguir mostra um exemplo de Cartão Adaptável com suporte ao typeahead:
{
"type": "Input.ChoiceSet",
"label": "Select a user",
"isMultiSelect": false,
"choices": [
{ "title": "User 1", "value": "User1" },
{ "title": "User 2", "value": "User2" }
],
"style": "filtered"
}
Stageview para imagens em Cartões Adaptáveis
Em um Cartão adaptável, você pode usar a msteams propriedade para adicionar a capacidade de exibir imagens no Stageview seletivamente. Quando passam o mouse sobre as imagens, os usuários podem ver um ícone de expansão para o qual o atributo allowExpand está definido como true. O código a seguir é um exemplo da msteams propriedade:
{
"type": "AdaptiveCard",
"body": [
{
"type": "Image",
"url": "https://picsum.photos/200/200?image=110",
"msTeams": {
"allowExpand": true
}
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2"
}
Quando os usuários passam o mouse sobre a imagem, um ícone de expansão aparece no canto superior direito, conforme mostrado na imagem a seguir:
A imagem aparece no Stageview quando o usuário seleciona o ícone de expansão, conforme mostrado na imagem a seguir:
No Stageview, os usuários podem aumentar e diminuir o zoom da imagem. Você pode selecionar as imagens do seu Cartão Adaptável que precisam ter essa capacidade.
Observação
- A capacidade de ampliar e reduzir se aplica somente aos elementos de imagem com o tipo de imagem de um Cartão Adaptável.
- Para aplicativos móveis do Teams, a funcionalidade Stageview para imagens em Cartões Adaptáveis está disponível por padrão. Os usuários podem exibir imagens de Cartão Adaptável no Stageview simplesmente tocando na imagem, independentemente de o
allowExpandatributo estar presente ou não.
CodeBlock em Cartões Adaptáveis
O CodeBlock elemento permite que você compartilhe trechos de código como Cartões Adaptáveis ricamente formatados em chats, canais e reuniões do Teams. Os Cartões Adaptáveis com o CodeBlock elemento facilitam a leitura do trecho de código, pois o recuo, a numeração e o realce de sintaxe correspondem à linguagem de programação. Além disso, você pode adicionar botões de ação para exibir o código em sua origem ou editar o código em ambientes de desenvolvimento integrados (IDEs), como Microsoft Visual Studio ou Microsoft Visual Studio Visual Studio Code.
A captura de tela a seguir mostra um Cartão Adaptável com um snippet de código:
O CodeBlock elemento suporta os seguintes idiomas:
| Idioma | Com suporte | Idioma | Com suporte |
|---|---|---|---|
| Bash | ✔️ | JSON | ✔️ |
| C | ✔️ | Perl | ✔️ |
| C++ | ✔️ | PHP | ✔️ |
| C# | ✔️ | PowerShell | ✔️ |
| CSS | ✔️ | Python | ✔️ |
| dos | ✔️ | SQL | ✔️ |
| Ir | ✔️ | TypeScript | ✔️ |
| GraphQL | ✔️ | Visual Basic | ✔️ |
| HTML | ✔️ | Verilog | ✔️ |
| Java | ✔️ | VHDL | ✔️ |
| JavaScript | ✔️ | XML | ✔️ |
Observação
O CodeBlock elemento reconhece o texto sem formatação como uma linguagem se você definir o valor de enumeração como PlainText na language propriedade do esquema.
O código a seguir é um exemplo de um Cartão Adaptável exibindo um trecho de código:
{
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.5",
"body": [
{
"type": "TextBlock",
"text": "editor.js",
"style": "heading"
},
{
"type": "TextBlock",
"text": "Lines 61 - 76"
},
{
"type": "CodeBlock",
"codeSnippet": "/**\n* @author John Smith <john.smith@example.com>\n*/\npackage l2f.gameserver.model;\n\npublic abstract strictfp class L2Char extends L2Object {\n public static final Short ERROR = 0x0001;\n\n public void moveTo(int x, int y, int z) {\n _ai = null;\n log(\"Shouldn't be called\");\n if (1 > 5) { // what!?\n return;\n }\n }\n}",
"language": "java",
"startLineNumber": 61
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "View in Azure Repos",
"url": "https://azure.microsoft.com/en-us/products/devops/repos/"
},
{
"type": "Action.OpenUrl",
"title": "Edit in vscode.dev",
"url": "https://vscode.dev/"
}
]
}
O CodeBlock elemento suporta as seguintes propriedades:
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
codeSnippet |
Cadeia de caracteres | Sim | O trecho de código a ser exibido em um Cartão Adaptável. |
language |
Enum | Sim | O idioma do trecho de código a ser exibido em um Cartão Adaptável. |
startLineNumber |
Número | Não | O número de linha na origem onde o trecho de código começa. Se deixado em branco, o padrão é 1. |
Dica
- Caracteres especiais têm funções específicas na
codeSnippetpropriedade. Por exemplo, o caractere\nde nova linha dispara uma quebra de linha. - Para exibir o caractere
\nde nova linha como parte do trecho de código em um Cartão Adaptável, certifique-se de escapar dele como\\nnacodeSnippetpropriedade. Caso contrário, o Teams renderizará o código após o\nna próxima linha do card.
Limitações
- Um Cartão Adaptável com o
CodeBlockelemento tem suporte apenas em clientes da Web e da área de trabalho do Teams. - O trecho de código em um Cartão Adaptável é somente leitura e não editável.
- Um Cartão Adaptável visualiza apenas as primeiras 10 linhas do trecho de código. Se houver mais de 10 linhas de código, o usuário deverá selecionar Expandir para ver o restante do snippet de código.
Menu de estouro de Cartões Adaptáveis
O Cartão Adaptável no Teams dá suporte ao menu de estouro. Você pode preencher um menu de estouro para todas as ações secundárias em um Cartão Adaptável. Um menu de estouro em um Cartão Adaptável pode ser adicionado ao seguinte:
Ações: em ações, os botões principais aparecem no Cartão Adaptável e os botões secundários estão dentro do menu estouro.
ActionSet: ActionSet é uma combinação de várias ações em um Cartão Adaptável. Cada conjunto de ações pode ter um menu de estouro.
Observação
Um Cartão Adaptável dá suporte a até seis ações principais a serem exibidas no card. Qualquer ação primária adicional é exibida no menu estouro.
Habilitar menu de estouro
Para habilitar o menu de estouro, configure a mode propriedade com o valor como primary ou secondary no esquema do Cartão Adaptável. A tabela a seguir descreve a mode propriedade:
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
mode |
Enumeração (Primária, Secundária) | Não | Se a ação é primária ou secundária ou não. As ações secundárias são recolhidas em um menu de estouro. |
O exemplo a seguir mostra a modeactions propriedade no tipo e no ActionSet elemento:
Ações
No exemplo a seguir, existem duas ações primárias e uma ação secundária. A ação secundária cria um menu de estouro.
{
"type": "AdaptiveCard",
"actions": [
{
"type": "Action.Submit",
"title": "Set due date"
},
{
"type": "Action.OpenUrl",
"title": "View",
"url": "https://adaptivecards.microsoft.com/?topic=welcome"
},
{
"type": "Action.Submit",
"title": "Delete",
"mode": "secondary"
}
]
}
Observação
O menu de estouro se comporta de maneira diferente em um bot sent card e em um card de extensão de mensagem para o nível actions raiz em um Adaptive Card. O menu flutuante em um bot sent card aparece como um menu de contexto pop-up e, no card de extensão de mensagem, ele aparece no canto superior direito sob o ícone Mais opções (...). O comportamento não é aplicável ao ActionSet em um Cartão Adaptável.
A imagem a seguir é um exemplo do menu de estouro em um bot enviado card e uma extensão de mensagem card:
Conjunto de ações
No exemplo a seguir, todas as ações são marcadas como secundárias, portanto, um único menu de estouro aparece no card.
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Submit",
"title": "view",
"mode": "Secondary"
{
},
"type": "Action.submit",
"title": "Delete",
"mode": "secondary"
},
{
"type": "Action.submit",
"title": "Delete",
"mode": "secondary"
}
]
}
O exemplo a seguir mostra a experiência do menu de estouro em clientes móveis e da área de trabalho do Teams:
Quando um usuário seleciona o menu de estouro em uma área de trabalho, os botões definidos como secundários aparecem no Cartão Adaptável.
Bordas e cantos arredondados em Cartões Adaptáveis
Os Cartões Adaptáveis dão suporte a uma ampla variedade de elementos, mas ter muitos elementos bagunça o card e dificulta a legibilidade. Você pode adicionar bordas a vários elementos em um Cartão Adaptável para delineá-los, facilitando a distinção entre eles pelos usuários.
Você pode usar Cartões Adaptáveis em vários hosts. Muitos desses hosts seguem sistemas e estruturas de design contemporâneos. Os Cartões Adaptáveis dão suporte a cantos arredondados para vários elementos para manter a consistência com esses hosts e acompanhar as últimas tendências de design. Os cantos arredondados tornam o design do card mais moderno e visualmente atraente, criando um fluxo visual mais suave.
Você pode adicionar bordas e cantos arredondados apenas aos seguintes elementos:
| Elemento | Bordas | Cantos arredondados |
|---|---|---|
Container |
✔️ | ✔️ |
ColumnSet |
✔️ | ✔️ |
Column |
✔️ | ✔️ |
Table |
✔️ | ✔️ |
Image |
❌ | ✔️ |
Implementar bordas e cantos arredondados em Cartões Adaptáveis
Para adicionar uma borda a um Containerelemento , ColumnSetou Column , defina a showBorder propriedade para true o elemento na carga útil do card. Para adicionar uma borda a um Table elemento, defina a showGridLines propriedade como true. A cor da borda corresponde ao estilo do elemento, conforme definido no HostConfig.json.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
showBorder |
Booliano | Não | Adiciona uma borda ao Container, ColumnSet, ou Column elementos. |
showGridLines |
Booliano | Não | Adiciona uma borda ao Table elemento. Valor padrão: true |
Para adicionar cantos arredondados a um Containerelemento , ColumnSet, Column, ou Table , defina a roundedCorners propriedade para true o elemento na carga útil do card. Para adicionar cantos arredondados ao Image elemento, defina a style propriedade como RoundedCorners dentro do elemento.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
roundedCorners |
Booliano | Não | Adiciona cantos arredondados ao Container, ColumnSet, Column, ou elementos Table . |
style |
Cadeia de caracteres | Não | Adiciona cantos arredondados ao Image elemento quando você define o valor como roundedCorners. |
O conteúdo JSON a seguir mostra um Cartão Adaptável com bordas e cantos arredondados ao redor de seus elementos:
{
"type": "AdaptiveCard",
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.5",
"body": [
{
"type": "TextBlock",
"text": "Below is a **ColumnSet** with borders and rounded corners:",
"wrap": true
},
{
"type": "ColumnSet",
"showBorder": true,
"roundedCorners": true,
"style": "emphasis",
"columns": [
{
"type": "Column",
"width": "stretch",
"showBorder": true,
"roundedCorners": true,
"style": "accent",
"items": [
{
"type": "TextBlock",
"text": "This is a **Column** with borders and rounded corners",
"wrap": true
}
]
},
{
"type": "Column",
"width": "stretch",
"showBorder": true,
"roundedCorners": true,
"style": "good",
"items": [
{
"type": "TextBlock",
"text": "This is another **Column** with borders and rounded corners",
"wrap": true
}
]
}
]
},
{
"type": "Container",
"style": "attention",
"showBorder": true,
"roundedCorners": true,
"items": [
{
"type": "TextBlock",
"text": "This is a **Container** with borders and rounded corners",
"wrap": true
}
]
},
{
"type": "Table",
"roundedCorners": true,
"columns": [
{
"width": 1
},
{
"width": 1
}
],
"rows": [
{
"type": "TableRow",
"cells": [
{
"type": "TableCell",
"items": [
{
"type": "TextBlock",
"text": "This **Table**...",
"wrap": true
}
]
},
{
"type": "TableCell",
"items": [
{
"type": "TextBlock",
"text": "...has borders and rounded corners",
"wrap": true
}
]
}
]
}
]
},
{
"type": "TextBlock",
"text": "The below **Image** has rounded corners:",
"wrap": true
},
{
"type": "Image",
"url": "https://media.licdn.com/dms/image/C4E03AQF5uhIghtPzrA/profile-displayphoto-shrink_400_400/0/1517690039090?e=2147483647&v=beta&t=g1DFilNHZhah2fhaTS9ylBxGGGb2XyPA2C7LZptk4QE",
"width": "100px",
"style": "RoundedCorners"
}
]
}
Contêineres roláveis em Cartões Adaptáveis
Um contêiner com muitos elementos pode levar a um card longo e ilegível. Use a maxHeight propriedade para definir a altura máxima do contêiner. Quando o contêiner tiver uma altura máxima e seu conteúdo exceder essa altura, uma barra de rolagem vertical será exibida.
Veja como a maxHeight propriedade é definida:
| Propriedade | Tipo | Descrição |
|---|---|---|
maxHeight |
Cadeia de caracteres | Define a altura máxima do contêiner. Esta propriedade está disponível em Container, Column, TableCell, e em outros contêineres também.Você deve definir o <number>px valor no formato. |
O conteúdo de card a seguir mostra um contêiner com uma barra de rolagem:
{
"type": "AdaptiveCard",
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.5",
"body": [
{
"type": "TextBlock",
"text": "This is a scrollable container",
"wrap": true,
"size": "ExtraLarge",
"weight": "Bolder"
},
{
"type": "Container",
"style": "emphasis",
"showBorder": true,
"maxHeight": "100px",
"items": [
{
"type": "TextBlock",
"text": "Item 1",
"size": "ExtraLarge"
},
{
"type": "TextBlock",
"text": "Item 2",
"size": "ExtraLarge"
},
{
"type": "TextBlock",
"text": "Item 3",
"size": "ExtraLarge"
}
]
}
]
}
Botão Composto em Cartões Adaptáveis
O botão composto é um tipo especial de botão com um ícone, título e descrição. Você pode adicionar um botão Composto usando o CompoundButton elemento. Esse elemento permite replicar a aparência dos prompts em um Cartão Adaptável.
Aqui estão as propriedades do CompoundButton elemento:
| Propriedade | Obrigatório | Tipo | Descrição |
|---|---|---|---|
type |
✔️ | Cadeia de caracteres | Deve ser CompoundButton. |
title |
✔️ | Cadeia de caracteres | Título do botão. Não há suporte para Markdown. |
id |
Cadeia de caracteres | Identificador exclusivo para o elemento ou ação. | |
requires |
Objeto | Uma lista de recursos que o elemento requer que o aplicativo host dê suporte. Se o aplicativo host não der suporte a pelo menos um dos recursos listados, o elemento não será renderizado ou seu fallback será renderizado, se fornecido. | |
isVisible |
Booliano | Controla a visibilidade do elemento. | |
separator |
Booliano | Controla se uma linha separadora deve ser exibida acima do elemento para separá-lo visualmente do elemento anterior. Nenhum separador é exibido para o primeiro elemento em um contêiner, mesmo se essa propriedade estiver definida como true. |
|
height |
Cadeia de caracteres | Altura do elemento. Quando definido como stretch, o elemento usa o espaço vertical restante em seu contêiner. Valores permitidos: auto, stretch |
|
horizontalAlignment |
Cadeia de caracteres | Controla como o elemento deve ser alinhado horizontalmente. Valores permitidos: Left, Center, Right |
|
Spacing |
Cadeia de caracteres | Controla a quantidade de espaço entre este elemento e o anterior. Nenhum espaço é adicionado para o primeiro elemento em um contêiner. Valores permitidos: None, Small, Default, MediumLarge, ,ExtraLarge |
|
targetWidth |
Cadeia de caracteres | Controla a largura do card para a qual o elemento deve ser exibido. Se targetWidth não for especificado, o elemento será renderizado em todas as larguras de card. O uso targetWidth possibilita a criação de cartões responsivos que adaptam seu layout ao espaço horizontal disponível. Para obter mais informações, consulte Layout responsivo do Cartão Adaptável. Valores permitidos: VeryNarrow, Narrow, Standard, Wide |
|
icon |
Cadeia de caracteres | Ícone mostrado no botão. | |
badge |
Cadeia de caracteres | Selo mostrado no botão. Não há suporte para Markdown. | |
description |
Cadeia de caracteres | Texto de descrição do botão. Não há suporte para Markdown. | |
selectAction |
Ação que é invocada quando o botão é selecionado. Todas as ações são permitidas, exceto Action.ShowCard. |
Aqui estão as propriedades do icon elemento:
| Propriedade | Obrigatório | Tipo | Descrição |
|---|---|---|---|
name |
✔️ | Cadeia de caracteres | Nome do ícone, de acordo com o diretório de ícones do Fluent. É o mesmo que o nome do novo elemento de ícone. |
size |
Cadeia de caracteres | Tamanho do ícone. Valores permitidos: xxSmall, xSmall, Small, StandardMedium, Large, , xLarge,xxLarge |
|
style |
Cadeia de caracteres | Estilo do ícone. Valores permitidos: Regular, Filled |
|
color |
Cadeia de caracteres | Cor do ícone. Valores permitidos: Default, Dark, Light, AccentGood, Warning,Attention |
Aqui está um exemplo de Cartão Adaptável que usa o CompoundButton elemento:
{
"type": "AdaptiveCard",
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.5",
"body": [
{
"type": "CompoundButton",
"title": "Photos",
"icon": {
"name": "Camera"
},
"description": "Add photos",
"height": "stretch"
}
]
}
Ícones no Cartão Adaptável
Os Cartões Adaptáveis dão suporte à adição de ícones da biblioteca de ícones do Fluent usando o Icon elemento. Você também pode usar ícones do Fluent em botões de ação definindo a propriedade da iconUrl ação como um valor no formato de icon:<icon name>[,regular|filled].
Aqui estão as propriedades do Icon elemento:
| Propriedade | Descrição |
|---|---|
type |
Deve ser Icon. |
name |
Nome do ícone a ser exibido. Por exemplo, calendar. |
size |
Tamanho do ícone.
Valores permitidos: xxSmall, xSmall, SmallMedium, Large, xLarge, , e xxLargeValor padrão: Standard |
color |
Cor do ícone.
Valores permitidos: Dark, Light, AccentGoodWarninge AttentionValor padrão: Default |
style |
Estilo do ícone.
Valores permitidos: Filled, Regular |
selectAction |
Ação invocada quando o ícone é tocado ou selecionado. Todos os tipos de ação são suportados, exceto Action.ShowCard. Valores permitidos: Action.Execute, Action.OpenUrl, Action.Popover, Action.ResetInputsAction.Submit, ,Action.ToggleVisibility |
Aqui está um exemplo de Cartão Adaptável que usa o Icon elemento e a iconUrl propriedade em um botão de ação:
{
"type": "AdaptiveCard",
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.5",
"body": [
{
"type": "TextBlock",
"text": "Here's an Icon element"
},
{
"type": "Icon",
"name": "Calendar",
"size": "Medium",
"style": "Filled",
"color": "Accent"
},
{
"type": "TextBlock",
"text": "Here's an Icon element in a button"
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "Filled icon",
"url": "https://www.microsoft.com",
"iconUrl": "icon:AccessTime,filled"
}
]
}
Classificações em Cartões Adaptáveis
Você pode adicionar uma entrada de classificação por estrelas ao seu Cartão Adaptável usando o Input.Rating elemento. Você também pode incluir uma classificação por estrelas somente leitura usando o Rating elemento.
O conteúdo a seguir mostra um Cartão Adaptável com classificações por estrelas habilitadas para entrada e somente leitura:
{
"type": "AdaptiveCard",
"$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.5",
"body": [
{
"type": "TextBlock",
"size": "Large",
"text": "Rating input"
},
{
"type": "Input.Rating",
"id": "rating1",
"label": "Pick a rating",
"size": "medium",
"color": "marigold",
"isRequired": true,
"errorMessage": "Please pick a rating"
},
{
"type": "TextBlock",
"size": "large",
"text": "Read-only rating",
"separator": true,
"spacing": "ExtraLarge"
},
{
"type": "Rating",
"max": 20,
"value": 3.2,
"color": "marigold"
}
]
}
Input.Rating
Aqui estão as propriedades do Input.Rating elemento:
| Propriedade | Obrigatório | Tipo | Descrição |
|---|---|---|---|
type |
✔️ | Cadeia de caracteres | Deve ser Input.Rating. |
allowHalfSteps |
Booliano | Controla se o usuário pode selecionar meias estrelas. Valor padrão: false |
|
color |
Cadeia de caracteres | A cor das estrelas. Valores permitidos: Neutral, MarigoldValor padrão: Neutral |
|
errorMessage |
Cadeia de caracteres | A mensagem de erro a ser exibida quando a entrada falhar na validação. | |
fallback |
Um de objeto ou cadeia de caracteres | Um elemento alternativo a ser renderizado se o tipo desse elemento não tiver suporte ou se o aplicativo host não der suporte a requires todos os recursos especificados na propriedade.Valores permitidos: Container, ActionSet, ColumnSet, MediaRichTextBlockTableTextBlockFactSetImageSetImageInput.TextInput.DateInput.TimeInput.NumberInput.ToggleInput.ChoiceSetInput.RatingRatingCompoundButtonIconChart.DonutChart.PieChart.VerticalBar.GroupedChart.VerticalBarChart.HorizontalBarChart.HorizontalBar.StackedChart.LineChart.GaugeCodeBlockdrop |
|
grid.area |
Cadeia de caracteres | A área de um Layout.AreaGrid layout na qual um elemento deve ser exibido. |
|
height |
Cadeia de caracteres | Controla a altura do elemento. Quando definido como stretch, o elemento usa o espaço vertical restante em seu contêiner.Valores permitidos: auto, stretchValor padrão: auto |
|
id |
✔️ | Cadeia de caracteres | Um identificador exclusivo para o elemento ou ação. |
isRequired |
Booliano | Determina se a entrada é necessária. Valor padrão: false |
|
isVisible |
Booliano | Determina a visibilidade do elemento. Valor padrão: true |
|
label |
Cadeia de caracteres | O rótulo da entrada. | |
lang |
Cadeia de caracteres | A localidade associada ao elemento. | |
max |
Número | O número de estrelas a serem exibidas. O número padrão e máximo de estrelas com suporte é cinco. | |
requires |
Objeto | Uma lista de recursos que o elemento requer que o aplicativo host dê suporte. Se o aplicativo host não der suporte a pelo menos um dos recursos listados, o elemento não será renderizado ou seu fallback será renderizado, se fornecido. Valores permitidos: HostCapabilities |
|
separator |
Booliano | Determina se uma linha separadora deve ser exibida acima do elemento para separá-lo visualmente do elemento anterior. Nenhum separador é exibido para o primeiro elemento em um contêiner, mesmo se essa propriedade estiver definida como true.Valor padrão: false |
|
size |
Cadeia de caracteres | O tamanho das estrelas. Valores permitidos: Medium, LargeValor padrão: Large |
|
spacing |
Cadeia de caracteres | Controla a quantidade de espaço entre este elemento e o anterior. Nenhum espaço é adicionado para o primeiro elemento em um contêiner. Valores permitidos: None, Small, Default, MediumLarge, ExtraLarge,PaddingValor padrão: Default |
|
targetWidth |
Cadeia de caracteres | Controla a largura do card para a qual o elemento deve ser exibido. Se targetWidth não for especificado, o elemento será renderizado em todas as larguras de card. O uso targetWidth possibilita a criação de cartões responsivos que adaptam seu layout ao espaço horizontal disponível. Para obter mais informações, consulte Layout responsivo do Cartão Adaptável.Valores permitidos: VeryNarrow, Narrow, Standard, WideatMost:NarrowatLeast:VeryNarrowatLeast:NarrowatLeast:StandardatMost:VeryNarrow, atMost:Standard, , atLeast:WideatMost:Wide |
|
value |
Número | O valor padrão da entrada. Esse valor não poderá exceder max, se max for especificado. |
|
valueChangedAction |
Ação | Uma Action.ResetInputs ação que será executada quando o valor da entrada for alterado.Valor permitido: Action.ResetInputs |
Classificação
Aqui estão as propriedades do Rating elemento:
| Propriedade | Obrigatório | Tipo | Descrição |
|---|---|---|---|
type |
✔️ | Cadeia de caracteres | Deve ser Rating. |
color |
Cadeia de caracteres | A cor das estrelas. Valores permitidos: Neutral, MarigoldValor padrão: Neutral |
|
count |
Número | O número de "votos" associados à classificação. | |
fallback |
Um de objeto ou cadeia de caracteres | Um elemento alternativo a ser renderizado se esse tipo de elemento não tiver suporte ou se o aplicativo host não der suporte a requires todos os recursos especificados na propriedade.Valores permitidos: Container, ActionSet, ColumnSet, MediaRichTextBlockTableTextBlockFactSetImageSetImageInput.TextInput.DateInput.TimeInput.NumberInput.ToggleInput.ChoiceSetInput.RatingRatingCompoundButtonIconChart.DonutChart.PieChart.VerticalBar.GroupedChart.VerticalBarChart.HorizontalBarChart.HorizontalBar.StackedChart.LineChart.GaugeCodeBlockdrop |
|
grid.area |
Cadeia de caracteres | A área de um Layout.AreaGrid layout na qual um elemento deve ser exibido. |
|
height |
Cadeia de caracteres | A altura do elemento. Quando definido como stretch, o elemento usa o espaço vertical restante em seu contêiner.Valores permitidos: Auto, Stretch |
|
horizontalAlignment |
Cadeia de caracteres | Controla como o elemento deve ser alinhado horizontalmente. Valores permitidos: Left, Center, Right |
|
id |
Cadeia de caracteres | Um identificador exclusivo para o elemento ou ação. | |
isVisible |
Booliano | Controla a visibilidade do elemento. Valor padrão: true |
|
lang |
Cadeia de caracteres | A localidade associada ao elemento. | |
max |
Número | O número de estrelas a serem exibidas. O número padrão e máximo de estrelas com suporte é cinco. | |
requires |
Objeto | Uma lista de recursos que o elemento requer que o aplicativo host dê suporte. Se o aplicativo host não der suporte a pelo menos um dos recursos listados, o elemento não será renderizado ou seu fallback será renderizado, se fornecido. Valor permitido: HostCapabilities |
|
separator |
Booliano | Controla se uma linha separadora deve ser exibida acima do elemento para separá-lo visualmente do elemento anterior. Nenhum separador é exibido para o primeiro elemento em um contêiner, mesmo se essa propriedade estiver definida como true.Valor padrão: false |
|
size |
Cadeia de caracteres | O tamanho das estrelas. Valores permitidos: Medium, LargeValor padrão: Large |
|
spacing |
Cadeia de caracteres | Controla a quantidade de espaço entre este elemento e o anterior. Nenhum espaço é adicionado para o primeiro elemento em um contêiner. Valores permitidos: None, Small, Default, MediumLarge, ExtraLarge,PaddingValor padrão: Default |
|
style |
Cadeia de caracteres | O estilo das estrelas. No modo compacto, apenas uma estrela é exibida. Valores permitidos: Default, CompactValor padrão: Default |
|
targetWidth |
Cadeia de caracteres | Controla a largura do card para a qual o elemento deve ser exibido. Se targetWidth não for especificado, o elemento será renderizado em todas as larguras de card. O uso targetWidth possibilita a criação de cartões responsivos que adaptam seu layout ao espaço horizontal disponível. Para obter mais informações, consulte Layout responsivo do Cartão Adaptável.Valores permitidos: VeryNarrow, Narrow, Standard, WideatMost:NarrowatLeast:VeryNarrowatLeast:NarrowatLeast:StandardatMost:VeryNarrow, atMost:Standard, , atLeast:WideatMost:Wide |
|
value |
Número | O valor da classificação. Esse valor deverá estar entre zero e max, se max for especificado. |
Formatar cartões em HTML
Os seguintes tipos de cartão oferecem suporte à formatação HTML no Teams:
- Cartões conector para Grupos do Microsoft 365: há suporte para Markdown limitado e formatação HTML no connector card para Grupos do Microsoft 365.
- Cartões com imagem em destaque e em miniatura: os cartões simples, como cartões com imagem em destaque e em miniatura, oferecem suporte aos rótulos HTML.
A formatação é diferente entre a área de trabalho e as versões móveis do Teams para cartões conector para Grupos do Microsoft 365 e cartões simples. Nesta seção, você pode analisar um exemplo do formato HTML para cartões de conector e cartões simples.
- Formato HTML para cartões conector para Grupos do Microsoft 365
- Formato HTML para cartões com imagens em destaque e em miniatura
Os cartões de conector oferecem um suporte limitado à formatação Markdown e HTML.
| Estilo | Exemplo | HTML |
|---|---|---|
| Negrito | text | <strong>text</strong> |
| Itálico | text | <em>text</em> |
| Cabeçalho (níveis 1 a 3) | Texto | <h3>Text</h3> |
| Tachado |
|
<strike>text</strike> |
| Lista não ordenada |
|
<ul><li>text</li><li>text</li></ul> |
| Lista ordenada |
|
<ol><li>text</li><li>text</li></ol> |
| Texto pré-formatado | text |
<pre>text</pre> |
| Blockquote | texto |
<blockquote>text</blockquote> |
| Hiperlink | Bing | <a href="https://www.bing.com/">Bing</a> |
| Link da imagem |
|
<img src="https://aka.ms/Fo983c" alt="Duck on a rock"></img> |
Nos cartões de conector, as quebras de linha são renderizadas em HTML usando o rótulo <p>.
Diferenças entre as versões desktop e móvel para cartões de conector
Na versão desktop, a formatação HTML para cartões de conector aparece conforme mostrado na imagem a seguir:
No iOS, a formatação HTML aparece conforme mostrado na imagem a seguir:
Os cartões de conector que usam HTML para iOS incluem os seguintes problemas:
- As imagens embutidas não são renderizadas no iOS usando Markdown ou HTML nos cartões conectores.
- O texto pré-formatado é renderizado, mas não tem um plano de fundo cinza.
No Android, a formatação HTML aparece conforme mostrado na imagem a seguir:
Amostra de formatação HTML para cartões de conector
O código a seguir mostra um exemplo de formatação HTML para cartões de conector:
{
"contentType": "application/vnd.microsoft.teams.card.o365connector",
"content": {
"@type": "MessageCard",
"@context": "https://schema.org/extensions",
"summary": "Summary",
"title": "Connector Card HTML formatting",
"sections": [
{
"text": "This is some <strong>bold</strong> text"
},
{
"text": "This is some <em>italic</em> text"
},
{
"text": "This is some <strike>strikethrough</strike> text"
},
{
"text": "<h1>Header 1</h1>\r<h2>Header 2</h2>\r <h3>Header 3</h3>"
},
{
"text": "bullet list <ul><li>text</li><li>text</li></ul>"
},
{
"text": "ordered list <ol><li>text</li><li>text</li></ol>"
},
{
"text": "hyperlink <a href=\"https://www.bing.com/\">Bing</a>"
},
{
"text": "embedded image <img src=\"https://aka.ms/Fo983c\" alt=\"Duck on a rock\"></img>"
},
{
"text": "preformatted text <pre>text</pre>"
},
{
"text": "Paragraphs <p>Line a</p><p>Line b</p>"
},
{
"text": "<blockquote>Blockquote text</blockquote>"
}
]
}
}
Exemplos de código
| S.No. | Descrição | .NET | Node.js | Manifesto |
|---|---|---|---|---|
| 1 | Este exemplo demonstra como usar vários estilos de formatação em Cartões Adaptáveis, como menções, ícones de persona e layout responsivo. | View | View | Exibir |