Escrito por Fábio Kyrillos,
6 minutos de leitura
Criando visuais personalizados no Power BI com HTML e CSS
Aprenda a usar HTML e CSS no Power BI para criar visuais personalizados que se alinham à identidade da sua marca, destacando dados com flexibilidade e inovação.
O Power BI é amplamente reconhecido por suas ferramentas poderosas de visualização de dados, proporcionando insights que ajudam os tomadores de decisão a entenderem suas métricas. No entanto, muitas vezes os visuais padrão não oferecem o nível de personalização necessário para representar certos tipos de dados ou não atendem à identidade visual de uma marca. É aqui que entra a possibilidade de criar visuais personalizados usando HTML e CSS no Power BI.
Uma solução flexível para criar visuais únicos no Power BI é utilizar HTML e CSS, oferecendo uma experiência de design personalizada e responsiva. Neste artigo, vamos explorar como é possível criar um visual em HTML simples e atrativo para acompanhar pedidos em aberto.
Por que usar HTML e CSS para criar visuais personalizados?
HTML e CSS oferecem flexibilidade quase ilimitada para criar designs personalizados, possibilitando um controle maior sobre a apresentação dos dados. Isso é útil especialmente para:
- Adaptar os visuais à identidade visual da empresa, seguindo cores e estilos pré-definidos;
- Criar soluções únicas que os visuais padrão não cobrem;
- Inovar no design de dashboards, destacando informações importantes.
Exemplo de visual: barra de pedidos em aberto
Vamos considerar um exemplo simples: criar uma barra que nos permite acompanhar visualmente o progresso de pedidos em aberto. Imagine que queremos apresentar de uma maneira mais visual e atrativa a proporção de pedidos que já foram concluídos em relação ao total.
Tabela de Pedidos
Vamos usar a tabela abaixo como exemplo para ilustrar como funciona o visual:
PedidoId | Cliente | Status |
1 | João Silva | Concluído |
2 | Maria Souza | Em Aberto |
3 | Carlos Lima | Concluído |
4 | Ana Costa | Em Aberto |
5 | Pedro Rocha | Concluído |
6 | Laura Neves | Concluído |
7 | Bruno Alves | Concluído |
8 | Paula Dias | Concluído |
9 | Renato Melo | Em Aberto |
10 | Juliana Reis | Concluído |
Nesta tabela, temos 10 pedidos, dos quais 7 estão concluídos e 3 ainda estão em aberto.
Passo a passo da criação do visual
Podemos utilizar o visual “HTML Content” do marketplace do Power BI, que nos permite criar e visualizar código HTML diretamente no painel.
- Adicionar o Visual HTML: Primeiro, instale o visual “HTML Content” do marketplace do Power BI. Com ele no dashboard, você será capaz de renderizar código HTML e estilizar usando CSS.
- Escrever o Código HTML e CSS: Observação: O DAX usa aspas duplas (“) para inserir texto. Portanto, ao construir o código em HTML e CSS, é recomendado usar aspas simples (‘) para evitar conflitos. Isso garantirá que o código seja interpretado corretamente tanto no HTML quanto no DAX.
Explicação de cada seção do código:
- .progress-bar: Esta classe define a barra de progresso como um todo, incluindo largura, altura, cor de fundo e bordas arredondadas;
- .progress-fill: Esta classe é responsável pela parte preenchida da barra de progresso, que mostra o progresso real. Possui cor de preenchimento, animação para suavizar o movimento e posicionamento relativo dentro da barra principal;
- .progress-label: Esta classe define o estilo do rótulo interno que mostra a porcentagem de progresso;
- @keyframes progress-animation: Define a animação para a barra de progresso, começando em 0% e preenchendo até o valor necessário.
<style> .progress-bar { width: 100%; height: 25px; /* Altura fixa para exemplo */ background-color: #e8e8e8; /* Cor de fundo fixa para exemplo */ border-radius: 10px; /* Arredondamento fixo para exemplo */ position: relative; } .progress-fill { height: 100%; background-color: #ff6f61; /* Cor de preenchimento fixa para exemplo */ border-radius: 10px; animation: progress-animation 2s ease-out forwards; /* Duração da animação fixa para exemplo */ color: #ffffff; /* Cor do texto fixa para exemplo */ text-align: center; position: absolute; left: 0; top: 0; } .progress-label { display: inline-block; width: 50%; line-height: 25px; /* Altura fixa para exemplo */ font-weight: bolder; /* Peso da fonte fixa para exemplo */ } @keyframes progress-animation { 0% { width: 0%; } } </style> <div class='progress-bar'> <div class='progress-fill' style='width: 70%;'> <span class='progress-label'>70%</span> </div> </div>
No exemplo acima, usamos valores fixos para altura, cor de fundo, cor de preenchimento, duração da animação e outras propriedades. Esses valores podem ser substituídos por variáveis DAX para tornar o visual dinâmico, conforme mostrado na medida DAX a seguir.
Este código cria uma barra de progresso que varia de acordo com o percentual de pedidos concluídos, representado pelo valor {Progress}. A estilização aplicada torna a barra visualmente atrativa, utilizando cores vibrantes, cantos arredondados e uma animação suave para o progresso.
Integrando os dados com DAX
Podemos integrar a porcentagem de pedidos concluídos às métricas que temos em nossa base de dados no Power BI, de modo que o HTML seja preenchido dinamicamente com a porcentagem correta. Vamos definir duas medidas DAX simples:
- TotalOrders: Conta o total de linhas na tabela de pedidos.
TotalOrders = COUNTROWS(fOrders) - CompletedOrders: Conta o total de pedidos que estão com o status ‘Concluído’.
CompletedOrders = COUNTROWS(FILTER(fOrders, fOrders[Status] = “Concluído”)) - OpenOrdersBar: Nesta etapa, vamos substituir os valores fixos utilizados no exemplo de HTML e CSS por variáveis DAX, tornando o visual dinâmico e adaptável aos dados reais.
OpenOrdersBar = // Valor de preenchimento da barra (0 a 100) VAR fillValue = ([CompletedOrders] / [TotalOrders]) * 100 // Altura da barra em pixels VAR barHeight = 25 // Cor de fundo da barra em RGB VAR barBackgroundColor = "RGB(230, 230, 230)" // Arredondamento dos cantos da barra em pixels VAR borderRadius = 10 // Cor de preenchimento da barra em RGB VAR fillColor = "RGB(255, 100, 90)" // Duração da animação em segundos VAR animationDuration = 2 // Cor do texto interno da barra em RGB VAR textColor = "RGB(255, 255, 255)" // Peso da fonte do texto interno: opções - lighter, normal, bolder VAR fontWeight = "bolder" RETURN "<style> .progress-bar { width: 100%; height: "&barHeight&"px; background-color: "&barBackgroundColor&"; border-radius: "&borderRadius&"px; position: relative; } .progress-fill { height: 100%; background-color: "&fillColor&"; border-radius: "&borderRadius&"px; animation: progress-animation "&animationDuration&"s ease-out forwards; color: "&textColor&"; text-align: center; position: absolute; left: 0; top: 0; } .progress-label { display: inline-block; width: 50%; line-height: "&barHeight&"px; font-weight: "&fontWeight&"; } @keyframes progress-animation { 0% { width: 0%; } } </style> <div class='progress-bar'> <div class='progress-fill' style='width: "&fillValue&"%;'> <span class='progress-label'>"&fillValue&"%</span> </div> </div> "
Benefícios da customização
- Design Personalizado: Você pode facilmente modificar as cores, adicionar animações, ícones ou ajustar as dimensões da barra;
- Flexibilidade: Com HTML e CSS, você pode criar elementos que se adaptam ao contexto dos seus relatórios, dando mais destaque ao que é importante;
- Coerência Visual: Utilizando código HTML, é possível seguir à risca o manual de identidade visual da empresa, garantindo consistência entre relatórios e outros materiais.
Criar visuais personalizados com HTML e CSS pode elevar significativamente a qualidade e a estética dos relatórios no Power BI, agregando muito valor na hora de comunicar informações de maneira eficaz. A nossa barra de progresso foi apenas um exemplo, mas as possibilidades são vastas, incluindo a criação de gráficos interativos e até visuais responsivos.
Que tal experimentar e adicionar um toque pessoal ao seu próximo dashboard? O que você gostaria de explorar mais sobre visuais personalizados? Compartilhe suas ideias ou deixe suas dúvidas nos comentários!