Pular para o conteúdo principal

Ícones nas Traduções

O Nerdify permite definir ícones para componentes, actions e fieldsets através dos arquivos de tradução YAML.


Sintaxe Básica

Adicione a chave icon no componente:

components:
edit_customer:
name: Editar
icon: edit

destroy_customer:
name: Excluir
icon: delete

Ícones em Actions

Actions podem ter ícones definidos na tradução:

components:
new_customer:
name: Novo Cliente
icon: add

edit_customer:
name: Editar
icon: edit

destroy_customer:
name: Excluir
icon: delete
confirm: Tem certeza que deseja excluir?

export_customers:
name: Exportar
icon: file_download

print_customer:
name: Imprimir
icon: print

Ícones em Fieldsets

Fieldsets podem ter ícones no header:

components:
customer_form:
name: Dados do Cliente
icon: person

address_form:
name: Endereço
icon: location_on

financial_info:
name: Informações Financeiras
icon: attach_money

Ícones em Tabs

Tabs podem ter ícones junto com o label:

components:
tabs_customer:
inclusion:
about:
label: Cadastro
icon: person
pets:
label: Pets
icon: pets
sales:
label: Vendas
icon: shopping_cart
addresses:
label: Endereços
icon: location_on

Ícones em Campos Select

Opções de campos select podem ter ícones:

components:
status:
name: Status
inclusion:
active:
label: Ativo
value: active
id: active
icon: check_circle
inactive:
label: Inativo
value: inactive
id: inactive
icon: cancel
pending:
label: Pendente
value: pending
id: pending
icon: schedule

Ícones Disponíveis

O Nerdify usa Material Design Icons. Alguns ícones comuns:

Ações

ÍconeNome
add
✏️edit
🗑️delete
💾save
close
check
↩️undo
↪️redo
ÍconeNome
🏠home
◀️arrow_back
▶️arrow_forward
🔍search
menu
⚙️settings

Status

ÍconeNome
check_circle
cancel
⚠️warning
ℹ️info
help
schedule

Objetos

ÍconeNome
👤person
👥people
🛒shopping_cart
💰attach_money
📍location_on
📧email
📱phone
🐾pets

Arquivos

ÍconeNome
📄description
📁folder
⬇️file_download
⬆️file_upload
🖨️print

Verificando Ícones Disponíveis

No Rails console, você pode verificar ícones:

# Verificar se um ícone existe
Nerdify::MaterialIcon.options.include?("shopping_cart") # => true

# Buscar um ícone com fallback
Nerdify::MaterialIcon.find("meu_icone") # => "info" (fallback)

Exemplo Completo

---
pt-BR:
api/v1/platform/modules/customers/customers:
show:
title: Cliente
components:
# Actions com ícones
edit_customer:
name: Editar
icon: edit
destroy_customer:
name: Excluir
icon: delete
confirm: Tem certeza?
new_sale:
name: Nova Venda
icon: add_shopping_cart

# Fieldsets com ícones
customer_info:
name: Informações
icon: person
contact_info:
name: Contato
icon: contact_phone

# Tabs com ícones
tabs_customer:
inclusion:
about:
label: Cadastro
icon: person
pets:
label: Pets
icon: pets
sales:
label: Vendas
icon: receipt
addresses:
label: Endereços
icon: place

# Campo select com ícones
status:
name: Status
inclusion:
active:
label: Ativo
icon: check_circle
value: active
id: active
blocked:
label: Bloqueado
icon: block
value: blocked
id: blocked

Boas Práticas

Faça

  • Use ícones consistentes para ações similares em toda a aplicação
  • Escolha ícones intuitivos que representem a ação/conceito
  • Teste se o ícone existe antes de usar

Evite

  • Usar ícones que não existem no Material Design
  • Ícones que não representam claramente a ação
  • Excesso de ícones que polui a interface