Logo

Publicado

- 3 min read

Dominando Design Systems com Angular: Um Guia Completo

img of Dominando Design Systems com Angular: Um Guia Completo

Introdução

Nos últimos anos, o conceito de Design System tornou-se um elemento essencial para qualquer projeto web de sucesso. Um Design System é um conjunto de diretrizes e componentes que ajudam a garantir a consistência visual e de experiência do usuário em plataformas digitais. O Angular, um dos frameworks JavaScript mais populares, fornece as ferramentas necessárias para implementar um design system eficiente.

Neste guia, abordaremos como desenvolver um design system utilizando Angular e todo o ecossistema envolvido, incluindo bibliotecas, ferramentas e melhores práticas. Vamos começar!

Pré-requisitos

Antes de mergulharmos no desenvolvimento do design system, é importante que você tenha uma compreensão básica dos seguintes conceitos:

  • Angular: Conhecimento sobre componentes, módulos e serviços.
  • TypeScript: Familiaridade com as funcionalidades básicas do TypeScript, já que o Angular é construído sobre ele.
  • HTML e CSS: Habilidade em escrever código HTML e CSS, pois serão fundamentais na construção dos componentes.

Se você ainda não está familiarizado com esses tópicos, considere fazer um curso introdutório ou consultar a documentação oficial do Angular.

Principais Conceitos e Exemplos

Componentes

Os componentes são a base do Angular. Eles encapsulam a lógica e a apresentação em uma única unidade. Vamos criar um exemplo simples de um botão reutilizável.

   // button.component.ts
import { Component, Input } from '@angular/core'

@Component({
	selector: 'app-button',
	template: `<button [ngClass]="btnClass">{{ label }}</button>`,
	styleUrls: ['./button.component.css']
})
export class ButtonComponent {
	@Input() label: string = 'Clique Aqui'
	@Input() btnClass: string = 'btn-default'
}
   /* button.component.css */
.btn-default {
	background-color: blue;
	color: white;
	padding: 10px 20px;
	border: none;
	border-radius: 5px;
	cursor: pointer;
}

.btn-default:hover {
	background-color: darkblue;
}

Módulos

Módulos ajudam a organizar seu código em partes coesas. Um design system pode ser estruturado em um módulo próprio:

   // design-system.module.ts
import { NgModule } from '@angular/core'
import { ButtonComponent } from './button/button.component'

@NgModule({
	declarations: [ButtonComponent],
	exports: [ButtonComponent]
})
export class DesignSystemModule {}

Mini-Projeto Prático

Neste mini-projeto, vamos criar uma página simples que utiliza nosso botão.

  1. Crie um novo projeto Angular:
    ng new design-system-example
 cd design-system-example
  1. Adicione o módulo de Design System:
    • Crie a estrutura de pastas e arquivos conforme mostrado anteriormente.
  2. Utilize o componente de botão em sua aplicação:
   <!-- app.component.html -->
<app-button label="Enviar" btnClass="btn-default"></app-button>
  1. Estilize a aplicação: Você pode usar CSS ou SCSS para estilizar sua aplicação conforme necessário.

Melhores Práticas para Geração de Builds e Performance de Componentes

  • Lazy Loading: Carregue módulos de maneira assíncrona apenas quando necessário.
  • Imutabilidade: Sempre que possível, utilize objetos imutáveis para evitar renderizações desnecessárias.
  • Change Detection: Utilize OnPush para mudar a maneira como o Angular detecta mudanças em componentes.
  • Performance Profiler: Utilize ferramentas como o Angular Profiler para identificar gargalos de performance em sua aplicação.

Dicas de Próximos Passos

  1. Explore outras bibliotecas: Considere usar libraries como Angular Material ou NG-Zorro para componentes prontos.
  2. Documentação: A documentação oficial do Angular e do TypeScript é um recurso valioso.
  3. Interatividade: Adicione interatividade ao seu design system utilizando formulários e rotas do Angular.

Possíveis Erros e Soluções

  • Erro de Dependência: Ao importar módulos, verifique se você os declarou corretamente no NgModule.
  • Estilos Não Aplicados: Confirme se as classes CSS estão corretamente atribuídas aos elementos HTML.
  • Performance Lenta: Utilize o ng.build --prod para gerar uma build otimizada e verifique o desempenho da aplicação.

Espero que este guia tenha ajudado a entender como implementar um Design System utilizando Angular. Boa sorte e divirta-se codando!