Primeira Versão do Sistema de componentes Vue
This commit is contained in:
commit
35f9d57ce7
22 changed files with 1605 additions and 0 deletions
23
src/componentes/EliOlaMundo/EliOlaMundo.vue
Normal file
23
src/componentes/EliOlaMundo/EliOlaMundo.vue
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<template>
|
||||
<v-container>
|
||||
<v-card class="mx-auto" max_width="400">
|
||||
<v-card-title>Olá Mundo!</v-card-title>
|
||||
<v-card-text>
|
||||
Este é um componente de exemplo integrado com Vuetify.
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-btn color="primary" block>
|
||||
Botão Vuetify
|
||||
</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-container>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "vue"
|
||||
|
||||
export default defineComponent({
|
||||
name: "EliOlaMundo",
|
||||
})
|
||||
</script>
|
||||
54
src/componentes/EliOlaMundo/README.md
Normal file
54
src/componentes/EliOlaMundo/README.md
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# EliOlaMundo (Exemplo de Estrutura)
|
||||
|
||||
Este componente serve como **referência oficial** para a criação de novos componentes neste Design System. Utilize esta estrutura como guia.
|
||||
|
||||
## 📂 Estrutura de Pastas e Arquivos
|
||||
|
||||
Todo componente deve seguir rigorosamente a estrutura abaixo, utilizando **PascalCase** (PrimeiraLetraMaiuscula) para pastas e arquivos.
|
||||
|
||||
```
|
||||
src/componentes/
|
||||
└── NomeDoComponente/ <-- Pasta do Componente
|
||||
├── NomeDoComponente.vue <-- Lógica e Template (Vue 3 + TS)
|
||||
├── index.ts <-- Ponto de entrada (Exports)
|
||||
└── README.md <-- Documentação de uso (Props, Slots, Exemplos)
|
||||
```
|
||||
|
||||
## 📝 Como Criar um Novo Componente
|
||||
|
||||
1. **Crie a Pasta:**
|
||||
Nomeie a pasta com o nome do componente em PascalCase.
|
||||
*Ex: `src/componentes/MeuBotao/`*
|
||||
|
||||
2. **Crie o Arquivo Vue:**
|
||||
Nomeie o arquivo igual à pasta.
|
||||
*Ex: `src/componentes/MeuBotao/MeuBotao.vue`*
|
||||
- Utilize a Composition API com TypeScript.
|
||||
- Defina sempre o `name` do componente.
|
||||
|
||||
3. **Crie o Index (`index.ts`):**
|
||||
Este arquivo facilita a importação. Deve conter:
|
||||
```typescript
|
||||
import MeuBotao from './MeuBotao.vue'
|
||||
|
||||
export { MeuBotao }
|
||||
export default MeuBotao
|
||||
```
|
||||
|
||||
4. **Crie a Documentação (`README.md`):**
|
||||
Descreva o que o componente faz, suas propriedades (`props`), eventos (`emits`) e slots.
|
||||
|
||||
5. **Registre na Biblioteca:**
|
||||
Adicione o novo componente no arquivo principal `src/index.ts`:
|
||||
```typescript
|
||||
import { MeuBotao } from './componentes/MeuBotao'
|
||||
// ...
|
||||
export { MeuBotao }
|
||||
|
||||
export default {
|
||||
install(app: App) {
|
||||
// ...
|
||||
app.component('MeuBotao', MeuBotao)
|
||||
}
|
||||
}
|
||||
```
|
||||
4
src/componentes/EliOlaMundo/index.ts
Normal file
4
src/componentes/EliOlaMundo/index.ts
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
import EliOlaMundo from './EliOlaMundo.vue'
|
||||
|
||||
export { EliOlaMundo }
|
||||
export default EliOlaMundo
|
||||
11
src/index.ts
Normal file
11
src/index.ts
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
import type { App } from "vue"
|
||||
import { EliOlaMundo } from './componentes/EliOlaMundo'
|
||||
|
||||
export { EliOlaMundo }
|
||||
|
||||
export default {
|
||||
install(app: App) {
|
||||
app.component('EliOlaMundo', EliOlaMundo)
|
||||
},
|
||||
}
|
||||
15
src/playground/App.vue
Normal file
15
src/playground/App.vue
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<template>
|
||||
<EliOlaMundo />
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
import { EliOlaMundo } from '@/componentes/EliOlaMundo'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'App',
|
||||
components: {
|
||||
EliOlaMundo
|
||||
}
|
||||
})
|
||||
</script>
|
||||
14
src/playground/README.md
Normal file
14
src/playground/README.md
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# Playground
|
||||
|
||||
Este ambiente é destinado a testes locais e experimentação dos componentes do Design System.
|
||||
|
||||
## Como usar
|
||||
|
||||
Os arquivos aqui presentes (`App.vue`, `main.ts`) servem como ponto de entrada para rodar a aplicação em modo de desenvolvimento (`npm run dev` ou `pnpm dev`).
|
||||
|
||||
Você pode importar componentes da biblioteca e testá-los livremente neste ambiente. Ele não será incluído no build final da biblioteca.
|
||||
|
||||
## Estrutura
|
||||
|
||||
- `App.vue`: Componente raiz para testes.
|
||||
- `main.ts`: Ponto de entrada da aplicação de teste.
|
||||
16
src/playground/main.ts
Normal file
16
src/playground/main.ts
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import { createApp } from 'vue'
|
||||
import App from './App.vue'
|
||||
|
||||
// Vuetify
|
||||
import 'vuetify/styles'
|
||||
import '@mdi/font/css/materialdesignicons.css'
|
||||
import { createVuetify } from 'vuetify'
|
||||
import * as components from 'vuetify/components'
|
||||
import * as directives from 'vuetify/directives'
|
||||
|
||||
const vuetify = createVuetify({
|
||||
components,
|
||||
directives,
|
||||
})
|
||||
|
||||
createApp(App).use(vuetify).mount('#app')
|
||||
Loading…
Add table
Add a link
Reference in a new issue