ajuste de css
This commit is contained in:
parent
2e36029ae6
commit
87520552b4
24 changed files with 338 additions and 300 deletions
32
.cursorrules
32
.cursorrules
|
|
@ -22,11 +22,41 @@ Construir um Design System de componentes em **Vue 3** para reutilização em m
|
|||
- TypeScript (modo estrito e tipagem forte)
|
||||
- **defineComponent** (obrigatório)
|
||||
- Sem TSX (padrão: `<template>` + `<script lang="ts">`)
|
||||
- Estilo: preferir CSS scoped por componente (se aplicável)
|
||||
- Estilo: **NÃO usar CSS scoped**. Usar namespacing estático (BEM) com prefixo `eli-` (ex: `.eli-botao__texto`).
|
||||
- Ícones: caso seja necessário o uso de ícones, usar **lucide** (biblioteca `lucide-vue-next`) como padrão do repositório.
|
||||
|
||||
---
|
||||
|
||||
## Regras de Estilização (CSS) - IMPORTANTE
|
||||
|
||||
Para garantir compatibilidade e evitar problemas de hidratação/build em projetos consumidores:
|
||||
|
||||
1. **NUNCA usar `<style scoped>`**.
|
||||
* O atributo `scoped` gera hashes dinâmicos (`data-v-xyz`) que mudam a cada build.
|
||||
* Isso quebra o estilo se o projeto consumidor não atualizar o CSS instantaneamente.
|
||||
|
||||
2. **Use Namespacing Estático (Padrão BEM)**.
|
||||
* Todas as classes devem começar com o prefixo do componente (ex: `.eli-tabela`).
|
||||
* Elementos internos devem seguir o padrão BEM ou similar (ex: `.eli-tabela__cabecalho`, `.eli-tabela--carregando`).
|
||||
* **Exemplo Correto:**
|
||||
```css
|
||||
.eli-modal { ... }
|
||||
.eli-modal__titulo { ... }
|
||||
```
|
||||
* **Exemplo INCORRETO:**
|
||||
```css
|
||||
.container { ... } /* Muito genérico */
|
||||
.titulo { ... } /* Conflita com outros estilos */
|
||||
```
|
||||
|
||||
3. **Evite seletores de tag soltos**.
|
||||
* Não estilize tags HTML diretamente (ex: `div`, `input`, `button`) a menos que estejam estritamente aninhadas em uma classe namespaced.
|
||||
* Melhor ainda: coloque classes em todos os elementos que precisam de estilo.
|
||||
* **Válido:** `.eli-form input { ... }` (aceitável, mas prefira `.eli-form__input`)
|
||||
* **Proibido:** `input { ... }` (afeta a aplicação inteira do consumidor)
|
||||
|
||||
---
|
||||
|
||||
## Regras de idioma e nomenclatura
|
||||
- **Variáveis, nomes de arquivos e nomes de pastas em português sempre que possível**
|
||||
- Ex.: `botao`, `cartao`, `campo_texto`, `seletor_opcoes`
|
||||
|
|
|
|||
24
IA.md
24
IA.md
|
|
@ -61,6 +61,9 @@ createApp(App)
|
|||
.mount("#app");
|
||||
```
|
||||
|
||||
> **IMPORTANTE**: O import do CSS (`import "eli-vue/dist/eli-vue.css";`) é **obrigatório**.
|
||||
> O pacote utiliza **namespacing estático (BEM)** e não estilos scoped, portanto o arquivo CSS contém toda a estilização necessária.
|
||||
|
||||
### 2) Importação direta (quando não quiser plugin)
|
||||
|
||||
```ts
|
||||
|
|
@ -75,11 +78,8 @@ import {
|
|||
EliEntradaParagrafo,
|
||||
EliEntradaSelecao,
|
||||
} from "eli-vue";
|
||||
```
|
||||
|
||||
> Observação: ainda pode ser necessário importar o CSS do pacote:
|
||||
|
||||
```ts
|
||||
// OBRIGATÓRIO: Importar o CSS global
|
||||
import "eli-vue/dist/eli-vue.css";
|
||||
```
|
||||
|
||||
|
|
@ -532,11 +532,19 @@ Provável causa: componente não foi registrado.
|
|||
- Se estiver usando plugin: confirme `app.use(EliVue)`
|
||||
- Se estiver importando direto: registre localmente no componente
|
||||
|
||||
### 2) Estilos não aplicam
|
||||
### 2) Estilos não aplicam ou componentes "quebrados"
|
||||
|
||||
Confirme que o projeto importou:
|
||||
- `vuetify/styles`
|
||||
- `eli-vue/dist/eli-vue.css`
|
||||
**Causa provável**: O CSS do pacote não foi importado.
|
||||
|
||||
O `eli-vue` removeu o uso de `<style scoped>` para evitar problemas de hidratação e compatibilidade entre builds.
|
||||
Todo o estilo reside em arquivos CSS estáticos que precisam ser carregados.
|
||||
|
||||
**Solução**:
|
||||
Adicione no seu `main.ts` ou componente raiz:
|
||||
|
||||
```ts
|
||||
import "eli-vue/dist/eli-vue.css";
|
||||
```
|
||||
|
||||
### 3) Erro de tipo em `celulaTabela`
|
||||
|
||||
|
|
|
|||
2
dist/eli-vue.css
vendored
2
dist/eli-vue.css
vendored
File diff suppressed because one or more lines are too long
530
dist/eli-vue.es.js
vendored
530
dist/eli-vue.es.js
vendored
File diff suppressed because it is too large
Load diff
8
dist/eli-vue.umd.js
vendored
8
dist/eli-vue.umd.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "eli-vue",
|
||||
"version": "0.1.88",
|
||||
"version": "0.1.89",
|
||||
"private": false,
|
||||
"main": "./dist/eli-vue.umd.js",
|
||||
"module": "./dist/eli-vue.es.js",
|
||||
|
|
|
|||
|
|
@ -213,7 +213,7 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-data-hora {
|
||||
width: 100%;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -218,7 +218,7 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-entrada__prefixo,
|
||||
.eli-entrada__sufixo {
|
||||
opacity: 0.75;
|
||||
|
|
|
|||
|
|
@ -63,4 +63,4 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
<style></style>
|
||||
|
|
@ -105,4 +105,4 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
<style></style>
|
||||
|
|
@ -98,4 +98,4 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
<style></style>
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-tabela__busca-grupo {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-tabela__busca {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
|
|||
|
|
@ -30,6 +30,6 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
/* estilos base ficam no EliTabela.css (global do componente) */
|
||||
</style>
|
||||
|
|
@ -265,7 +265,7 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-tabela-modal-colunas__overlay {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-tabela-modal-filtro__overlay {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-tabela__paginacao {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-tabela__celula-link {
|
||||
all: unset;
|
||||
display: inline;
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ export default defineComponent({
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-tabela__celula-link {
|
||||
all: unset;
|
||||
display: inline;
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-tabela__celula-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ export default defineComponent({
|
|||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-tabela__celula-link {
|
||||
all: unset;
|
||||
display: inline;
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-tabela__texto-truncado {
|
||||
display: inline-block;
|
||||
max-width: 260px;
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style>
|
||||
.eli-cartao {
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -111,9 +111,9 @@ export default defineComponent({
|
|||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
:deep(.v-badge__badge),
|
||||
:deep(.v-badge__content) {
|
||||
<style>
|
||||
.eli-badge .v-badge__badge,
|
||||
.eli-badge .v-badge__content {
|
||||
border-radius: var(--eli-badge-radius) !important;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue