InternalContextualHero
Componente de destaque utilizado para exibir mensagens personalizadas baseadas na jornada do usuário. Permite combinar título, descrição, lista de itens, botões de ação e uma imagem opcional. Suporta diferentes variantes visuais (type) e posições de imagem (imagePosition).
Importação
import { InternalContextualHero } from '@useblu/ocean-react';
Importação de tipos TypeScript
import type {
InternalContextualHeroProps,
InternalContextualHeroListItemString,
InternalContextualHeroAction,
} from '@useblu/ocean-react';
Playground Interativo
Explore o componente InternalContextualHero no playground interativo do Storybook:
Documentação Completa
Para documentação técnica detalhada, exemplos de uso e API completa, consulte o Storybook do InternalContextualHero.
No Storybook você encontrará:
- ✅ Controles interativos para testar todas as props
- ✅ API gerada automaticamente com tipagem completa
- ✅ Exemplos visuais de todas as variantes e estados
- ✅ Playground para experimentação rápida
Variantes de Tipo (type)
O componente suporta três variantes visuais que alteram as cores dos botões e o estilo geral:
Default
Estilo padrão com cores primárias:
Warning
Estilo de aviso com cores de alerta:
Negative
Estilo crítico/negativo para erros:
Posição da Imagem (imagePosition)
O componente permite controlar a posição vertical da imagem na lateral direita:
Top (padrão)
Imagem alinhada ao topo:
Bottom
Imagem alinhada à parte inferior:
Full
Imagem ocupa toda a altura:
Exemplos de Uso
Todas as variantes
Hero com todas as variantes de tipo e posição:
Com uma ação
Hero com apenas um botão de ação:
Sem ações
Hero sem botões de ação:
Sem imagem
Hero sem a seção de imagem:
Com ListAction
Hero utilizando componentes ListAction como itens da lista:
Lista de texto com ícones
Hero com itens de texto simples e ícones:
Lista de texto sem ícones
Hero com itens de texto simples sem ícones:
Mínimo
Hero apenas com as propriedades obrigatórias:
API
Props
| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
type | 'default' | 'warning' | 'negative' | 'default' | Define a variante visual do hero. Altera as cores dos botões de ação. |
title | string | - | Obrigatório. Título principal exibido no cabeçalho do hero. |
description | string | - | Obrigatório. Descrição exibida abaixo do título. |
listItems | (ReactNode | InternalContextualHeroListItemString)[] | - | Obrigatório. Lista de itens a serem exibidos no corpo do hero. |
image | string | ReactNode | - | Imagem ou componente a ser exibido na lateral direita. Se for string, renderiza como <img>. |
imagePosition | 'top' | 'bottom' | 'full' | 'top' | Posição da imagem em relação ao conteúdo. |
actions | [InternalContextualHeroAction] | [InternalContextualHeroAction, InternalContextualHeroAction] | - | Botões de ação (máximo 2). As variantes são baseadas no type do hero. |
className | string | - | Classes CSS adicionais para o elemento raiz. |
Tipos
InternalContextualHeroListItemString
type InternalContextualHeroListItemString = {
/** Icon element to be displayed before the description. */
icon?: ReactNode;
/** Text content of the list item. */
description: string;
};
InternalContextualHeroAction
type InternalContextualHeroAction = {
/** Text displayed on the action button. */
label: string;
/** Callback function triggered when the action button is clicked. */
onClick: () => void;
};
Variantes de botões por type
Os botões de ação adaptam suas cores automaticamente com base no type do hero:
type | Botão primário | Botão secundário |
|---|---|---|
default | primary | tertiary |
warning | primaryWarning | tertiaryWarning |
negative | primaryCritical | tertiaryCritical |
Estrutura de listItems
O prop listItems aceita dois tipos de itens:
1. Objeto com descrição (e ícone opcional)
listItems={[
{ icon: <CheckCircleOutline size={20} />, description: 'Item com ícone' },
{ description: 'Item sem ícone' },
]}
2. ReactNode customizado
listItems={[
<ListAction key="1" title="Item 1" description="Descrição" type="text" />,
<CustomComponent key="2" />,
]}
Acessibilidade
- ✅ Utiliza elementos semânticos HTML
- ✅ Botões de ação são elementos
<button>nativos - ✅ Imagem inclui atributo
altautomaticamente (usando o título) - ✅ Suporte a navegação por teclado
- ✅ Suporte a ref forwarding
Boas práticas
- Use títulos claros e concisos
- A descrição deve complementar o título, não repeti-lo
- Limite a lista a 3-5 itens para melhor legibilidade
- Use no máximo 2 botões de ação para evitar sobrecarga visual
- A imagem deve ser relevante ao contexto do hero
- Use
type="warning"para mensagens de atenção etype="negative"para erros ou ações críticas - Escolha o
imagePositionapropriado para o layout:toppara imagens pequenas,fullpara imagens que precisam de mais destaque