Filosofia Revolucionária de Design Atômico
O valor central do Onu UI reside em sua abordagem radical de design CSS atômico. Diferentemente das bibliotecas tradicionais, o Onu UI não depende de arquivos CSS pré-compilados, mas sim gera regras de estilo dinamicamente através do UnoCSS, alcançando carregamento sob demanda real. Essa abordagem traz múltiplas vantagens:
Sem sobrecarga em tempo de execução: Todos os estilos são gerados durante a construção, eliminando a necessidade de carregar arquivos CSS adicionais em tempo de execução, melhorando significativamente a performance da aplicação. Desenvolvedores podem usar diretamente nomes de classes atômicas no template, como botao, botao-principal, flex, espacamento-2, que são convertidas em regras CSS eficientes durante a compilação.
Flexibilidade extrema: O design atômico permite que desenvolvedores combinem livremente estilos sem preocupações com poluição de estilos ou conflitos de especificidade. Por exemplo, em exemplos/vite-onu-predefinicao-so/src/componentes/botao.vue, podemos observar como o componente botão implementa efeitos visuais ricos através de combinações simples de classes:
<button class="botao botao-solido" :disabled="desabilitado">
botao-solido
</button>
<button class="botao botao-contornado" :disabled="desabilitado">
botao botao-contornado
</button>
<button class="botao botao-ligacao" :disabled="desabilitado">
botao botao-ligacao
</button>
Sistema de temas dinâmicos: O Onu UI inclui um gerador de temas dinâmicos baseado no Magicolor, capaz de gerar automaticamente esquemas de cores harmônicos com base na percepção visual humana. Em pacotes/predefinicao/src/index.ts, podemos ver a flexibilidade da configuração de temas:
const opcoesResolvidas = {
...opcoesPadrao,
...opcoes,
cor: opcoes.cor === 'auto' ? aleatorio() : opcoes.cor,
}
Arquitetura Modular Técnica
O Onu UI adota um design arquitetural em camadas, desacoplando funcionalidades principais em módulos independentes para garantir manutenibilidade e extensibilidade do sistema.
Arquitetura do Sistema de Predefinições
No diretório pacotes/predefinicao/src/, podemos observar uma divisão clara de módulos:
predefinicao/
├── atalhos/ # Definição de atalhos para classes atômicas
├── regras/ # Regras CSS personalizadas
├── tema/ # Sistema de configuração de temas
├── variantes/ # Processadores de variantes
└── predefinicoes/ # Redefinições de estilos básicos
Sistema de atalhos: Através do módulo atalhos, o Onu UI encapsula combinações complexas de estilos em nomes de classes simples. Por exemplo, o atalho botao pode corresponder à combinação de múltiplas classes atômicas:
// pacotes/predefinicao/src/atalhos/botao.ts
export const atalhosBotao = {
'botao': 'preenchimento-x-4 preenchimento-y-2 arredondado-md fonte-md',
'botao-principal': 'fundo-azul-500 texto-branco hover:fundo-azul-600',
'botao-secundario': 'fundo-cinza-200 texto-cinza-800 hover:fundo-cinza-300',
}
Mecanismo de extensão de regras: Desenvolvedores podem adicionar regras CSS presonalizadas através do módulo regras, integrando-se perfeitamente ao sistema de regras do UnoCSS.
Design da Biblioteca de Utilitários
O diretório pacotes/utilidades/src/ contém funções utilitárias ricas e APIs compostas Vue:
| Módulo | Descrição Funcional | Arquivos Chave |
|---|---|---|
| hooks/ | APIs Compostas Vue | useConfigGlobal.ts, useLocalizacao.ts |
| localizacao/ | Suporte a internacionalização | pt-br.ts, en.ts, es.ts |
| compartilhado/ | Funções utilitárias compartilhadas | dom.ts, verificacoes.ts, estilo.ts |
| tokens/ | Gerenciamento de tokens de design | configurador-interface.ts |
Esse design modular permite que desenvolvedores importem seletivamente funcionalidades conforme necessário, evitando inflação de código desnecessária.
Implementação Rápida em 5 Minutos
Configuração de Ambiente e Instalação
O Onu UI suporta integração com múltiplas ferramentas de build. Abaixo está uma solução de inicialização rápida baseada no Vite:
# Clonar repositório do projeto
git clone https://gitcode.com/gh_mirrors/on/onu-ui
cd onu-ui
# Instalar dependências
pnpm install
# Iniciar servidor de desenvolvimento
pnpm dev
Configuração Principal Detalhada
Configure UnoCSS e predefinições Onu UI em vite.config.ts:
import { definirConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import UnoCSS from 'unocss/vite'
import { predefinirOnu } from '@onu-ui/predefinicao'
export default definirConfig({
plugins: [
vue(),
UnoCSS({
predefinicoes: [
predefinirOnu({
prefixo: 'o-', // Prefixo de classe
cor: '#608e57', // Cor principal
fonte: ['Inter', 'sans-serif'] // Configuração de fonte
})
]
})
]
})
Exemplo de Uso de Componentes
O uso de componentes Onu UI segue o princípio de "atômico primeiro", permitindo que desenvolvedores construam rapidamente interfaces combinando classes atômicas:
<template>
<div class="controle preenchimento-8">
<button class="o-botao o-botao-principal o-botao-lg">
<i class="i-carbon-favorito-preenchido" />
Botão Principal
</button>
<div class="flex espacamento-4 margem-top-4">
<button class="o-botao o-botao-contornado">Botão Contornado</button>
<button class="o-botao o-botao-fantasma">Botão Fantasma</button>
<button class="o-botao o-botao-ligacao">Botão Ligação</button>
</div>
</div>
</template>
<style>
.controle {
background-color: var(--onu-fundo);
}
</style>
Responsividade e Alternância de Temas
O Onu UI inclui suporte responsivo completo e mecanismos de alternância de temas:
<template>
<div class="escuro:fundo-cinza-900 claro:fundo-branco">
<!-- Cartão em modo escuro -->
<div class="cartao escuro:fundo-cinza-800 claro:fundo-cinza-100">
<h3 class="tamanho-texto-xl fonte-negrito escuro:texto-branco claro:texto-cinza-900">
Componente Consciente de Tema
</h3>
<p class="escuro:texto-cinza-300 claro:texto-cinza-600">
Estilos alternam automaticamente com base no tema do sistema
</p>
</div>
</div>
</template>
Análise Profunda de Cenários Empresariais
Painéis Administrativos de Alta Performance
Para painéis administrativos empresariais que exigem iteração rápida, o design atômico do Onu UI aumenta significativamente a eficiência de desenvolvimento. Através de atalhos predefinidos e sistemas de design, equipes podem manter linguagem visual consistente:
<!-- Componente de tabela de dados -->
<div class="controle-tabela">
<div class="flex justificar-entre itens-centro margem-bottom-4">
<h2 class="tamanho-texto-2xl fonte-negrito">Gestão de Usuários</h2>
<button class="o-botao o-botao-principal o-botao-sm">
<i class="i-carbon-adicionar" />
Novo Usuário
</button>
</div>
<table class="largura-total colapso-borda">
<thead class="fundo-cinza-50">
<tr>
<th class="preenchimento-3 texto-esquerda">Nome</th>
<th class="preenchimento-3 texto-esquerda">Email</th>
<th class="preenchimento-3 texto-esquerda">Ações</th>
</tr>
</thead>
<tbody>
<!-- Linhas de dados -->
</tbody>
</table>
</div>
Aplicações Otimizadas para Mobile
As classes atômicas responsivas do Onu UI fornecem soluções elegantes para desenvolvimento mobile:
<template>
<div class="controle mx-auto px-4">
<!-- Layout adaptável para mobile -->
<div class="flex flex-col md:flex-row espacamento-4">
<div class="flex-1 fundo-branco arredondado-lg sombra preenchimento-6">
<h3 class="tamanho-texto-lg fonte-negrito margem-bottom-4">Cartão Mobile</h3>
<p class="texto-cinza-600">
Disposição vertical em dispositivos móveis, horizontal em desktop
</p>
</div>
<div class="flex-1 fundo-branco arredondado-lg sombra preenchimento-6">
<h3 class="tamanho-texto-lg fonte-negrito margem-bottom-4">Texto Responsivo</h3>
<p class="tamanho-texto-sm md:tamanho-texto-base lg:tamanho-texto-lg">
Ajuste automático de tamanho de fonte com base nas dimensões da tela
</p>
</div>
</div>
</div>
</template>
Integração de Sistemas de Design
Grandes emrpesas geralmente exigem sistemas de design unificados, e o Onu UI pode ser expandido através de configuração para atender essas necessidades:
// Tokens de design personalizados
export const temaPersonalizado = {
cores: {
'marca-principal': '#0088cc',
'marca-secundaria': '#663399',
'sucesso': '#28a745',
'aviso': '#ffc107',
'perigo': '#dc3545',
},
espacamento: {
'xs': '0.25rem',
'sm': '0.5rem',
'md': '1rem',
'lg': '1.5rem',
'xl': '2rem',
}
}
// Extensão na configuração UnoCSS
UnoCSS({
predefinicoes: [
predefinirOnu({
estenderTema: (tema) => ({
...tema,
...temaPersonalizado
})
})
]
})
Visão Futura e Ecosssistema Comunitário
Roadmap de Otimização de Performance
A equipe Onu UI está explorando as seguintes direções de otimização:
- Otimização em tempo de build: Reduzir ainda mais o tempo de geração CSS, melhorando experiência de desenvolvimento através de compilação incremental e mecanismos de cache
- Otimização em tempo de execução: Pesquisar mistura de CSS-in-JS e CSS atômico para estilos dinâmicos mais granulares
- Aprimoramento de Tree Shaking: Melhorar detecção e remoção de estilos não utilizados, reduzindo ainda mais o tamanho do pacote
Plano de Expansão do Ecossistema
| Módulo de Extensão | Descrição Funcional | Data Prevista de Lançamento |
|---|---|---|
| Onu Charts | Componentes de visualização de dados baseados em CSS atômico | T3 2024 |
| Onu Admin | Templates de painel administrativo prontos para uso | T4 2024 |
| Onu Mobile | Extensão de componentes otimizada para mobile | T1 2025 |
| Onu Design Tokens | Sistema de gerenciamento de tokens de design | T2 2025 |
Diretrizes de Contribuição Comunitária
O Onu UI adota modelo open source aberto, incentivando contribuições da comunidade:
# 1. Fork do repositório
# 2. Criar branch de funcionalidade
git checkout -b feature/novo-componente
# 3. Desenvolver novo componente
# Adicionar atalhos em pacotes/predefinicao/src/atalhos/
# Adicionar documentação em docs/componentes/
# Adicionar exemplos em exemplos/
# 4. Executar testes
pnpm test
# 5. Submeter código e criar Pull Request
Adaptação a Tendências Técnicas
Conforme a evolução das tecnologias web, o Onu UI planeja se adaptar às seguintes tecnologias avançadas:
- Integração Web Components: Fornecer suporte nativo a Web Components
- Otimização SSR/SSG: Melhorar tratamento de estilos em renderização server-side
- Suporte a Microfrontend: Otimizar isolamento de estilos em arquiteturas microfrontend
- Desenvolvimento Assistido por IA: Integrar ferramentas de geração de código IA para aumentar produtividade
Através de inovação técnica contínua e desenvolvimento comunitário colaborativo, o Onu UI busca tornar-se um projeto de referência entre bibliotecas UI de CSS atômico, proporcionando aos desenvolvedores frontend experiências de criação de UI mais eficientes e flexíveis.