Publicado
- 3 min read
Aprenda a Criar um Design System Usando Vue 3: Do Básico ao Avançado

Introdução ao Design System com Vue 3
Nos dias atuais, a criação de interfaces de usuário coesas e eficientes é essencial para o sucesso de qualquer aplicação web. Um Design System é um conjunto de componentes reutilizáveis e diretrizes que ajuda a manter a consistência visual e funcional em um produto. Neste guia, vamos aprender como construir um Design System utilizando Vue 3, que não apenas aborda a estrutura dos componentes, mas também seu ecossistema completo, incluindo estilos, documentação e práticas recomendadas.
Pré-requisitos
Para seguir este guia, é necessário ter:
- Conhecimento básico de JavaScript e HTML
- Noções básicas de Vue.js
- Ambiente de desenvolvimento configurado (Node.js e npm instalados)
Principais Conceitos
Componentes
Os componentes são a base de qualquer aplicação Vue. Um Design System consiste em vários componentes que podem ser reutilizados em diferentes partes da aplicação.
<template>
<button :class="buttonClass" @click="handleClick">{{ label }}</button>
</template>
<script>
export default {
name: 'BaseButton',
props: {
label: {
type: String,
required: true
},
variant: {
type: String,
default: 'default'
}
},
computed: {
buttonClass() {
return `btn btn-${this.variant}`;
}
},
methods: {
handleClick() {
this.$emit('click');
}
}
};
</script>
<style>
.btn {
padding: 10px;
border-radius: 5px;
border: none;
}
.btn-default {
background-color: gray;
color: white;
}
.btn-primary {
background-color: blue;
color: white;
}
</style>
Estilos
Um Design System é tanto sobre a experiência do usuário quanto sobre a aparência visual. Normalmente, você vai querer usar pré-processadores de CSS (como SASS ou LESS) para organizar seus estilos.
Documentação
Documentar os componentes é crucial. Utilize ferramentas como Storybook para facilitar a criação e visualização de componentes em diferentes estados.
Mini-projeto: Criando um Design System Simples
Vamos criar um Design System básico que inclui um botão e um input de texto.
- Estrutura do Projeto Crie um novo projeto Vue utilizando o Vue CLI:
vue create my-design-system
cd my-design-system
- Criar Componentes
Adicione os componentes
BaseButton.vue
eBaseInput.vue
na pastasrc/components
.
// BaseInput.vue
<template>
<input class="base-input" :placeholder="placeholder" />
</template>
<script>
export default {
name: 'BaseInput',
props: {
placeholder: {
type: String,
default: 'Digite algo...'
}
}
};
</script>
<style>
.base-input {
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
</style>
- Utilização dos Componentes
No
App.vue
, importe e utilize os componentes que você acabou de criar.
<template>
<div>
<BaseInput placeholder="Seu nome" />
<BaseButton label="Enviar" variant="primary" @click="handleSubmit" />
</div>
</template>
<script>
import BaseButton from './components/BaseButton.vue'
import BaseInput from './components/BaseInput.vue'
export default {
components: {
BaseButton,
BaseInput
},
methods: {
handleSubmit() {
alert('Formulário enviado!')
}
}
}
</script>
Melhores Práticas para Criar Componentes Performáticos
- Evite re-renderizações desnecessárias: Utilize
v-if
ev-show
efetivamente. - Componente Único: Sempre que possível, crie componentes que sirvam a múltiplos propósitos em vez de vários similares.
- Fragmentação: Não crie componentes excessivamente grandes. Mantenha unidades coesas e bem definidas.
- Uso de
props
eemit
: Utilizeprops
para passar dados eemit
para comunicar eventos.
Dicas de Próximos Passos
- Aprofundamento em Vue Router: Aprenda a gerenciar rotas em sua aplicação.
- State Management com Vuex: Explore como gerenciar estados globais.
- Práticas de Acessibilidade: Estude como melhorar a acessibilidade de seu Design System.
Possíveis Erros e Como Solucionar
- Erro: “Component not found…”: Verifique se o componente está exportado corretamente e se o caminho de importação está correto.
- Erro: “Template compilation error…”: Isso geralmente indica um erro de sintaxe no HTML do componente. Revise a estrutura do seu template.
Links Úteis para Aprendizado
Com este guia, você terá uma base sólida para começar a desenvolver um Design System utilizando Vue 3. Lembre-se de que a prática leva à perfeição, e quanto mais você experimentar, melhor será o seu entendimento. Boa sorte!