ui-optago 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,136 @@
1
+ # UI Óptago
2
+
3
+ Design System da **Óptago** — componentes UI em **CSS puro** + **JS vanilla**, sem Tailwind e sem build obrigatório. Tema escuro por padrão, tema claro automático, verde-lima `#C0FF6B` como cor de destaque e o octógono da marca como motivo visual.
4
+
5
+ ## Instalação
6
+
7
+ **Via npm:**
8
+
9
+ ```bash
10
+ npm install ui-optago
11
+ ```
12
+
13
+ ```html
14
+ <link rel="stylesheet" href="node_modules/ui-optago/ui-optago.css">
15
+ <script src="node_modules/ui-optago/ui-optago.js"></script>
16
+ ```
17
+
18
+ **Via CDN (após publicado no npm):**
19
+
20
+ ```html
21
+ <link rel="stylesheet" href="https://unpkg.com/ui-optago/ui-optago.css">
22
+ <script src="https://unpkg.com/ui-optago/ui-optago.js"></script>
23
+ ```
24
+
25
+ **Ou copie os arquivos direto** (`ui-optago.css` e `ui-optago.js`) para o seu projeto:
26
+
27
+ ```html
28
+ <head>
29
+ <link rel="stylesheet" href="ui-optago.css">
30
+ <!-- Carregue no <head> SEM defer: o JS aplica o tema salvo antes do
31
+ primeiro paint (evita flash de tema errado) e injeta sozinho as
32
+ Google Fonts e os ícones Phosphor. -->
33
+ <script src="ui-optago.js"></script>
34
+ </head>
35
+ ```
36
+
37
+ ## Showcase
38
+
39
+ Abra **`ui-optago.html`** no navegador: todos os componentes com botões **Copiar** (HTML pronto) e **Ver código**.
40
+
41
+ ## Estrutura de layout (app shell)
42
+
43
+ Header, footer e sidebar (à direita) fixos — só o `.op-main` rola. A sidebar colapsa no desktop (só ícones + tooltip) e vira drawer no mobile.
44
+
45
+ ```html
46
+ <body class="op-app">
47
+ <div class="op-app-body">
48
+ <header class="op-header">...</header>
49
+ <main class="op-main">CONTEÚDO ROLÁVEL</main>
50
+ <footer class="op-footer">...</footer>
51
+ </div>
52
+ <aside class="op-sidebar">
53
+ <nav class="op-sidebar-nav">
54
+ <a class="op-nav-item" href="#secao">
55
+ <i class="ph ph-palette"></i>
56
+ <span class="op-nav-text">Título</span>
57
+ <span class="op-nav-tooltip">Título</span>
58
+ </a>
59
+ </nav>
60
+ </aside>
61
+ </body>
62
+ ```
63
+
64
+ ## Componentes
65
+
66
+ Todas as classes usam o prefixo `op-`; estados usam `is-` (`is-open`, `is-active`, `is-error`...).
67
+
68
+ | Grupo | Classes principais |
69
+ |---|---|
70
+ | Botões | `op-btn` + `op-btn-primary/secondary/success/danger/warning/info`, ghosts, `op-btn-sm/lg`, `op-btn-icon`, `op-btn-group`, `is-loading` |
71
+ | Badges | `op-badge` + `op-badge-brand/info/success/warning/danger`, `op-badge-pill`, `op-dot` |
72
+ | Alertas | `op-alert` + `op-alert-info/success/warning/danger`, `data-op-dismiss` |
73
+ | Formulários | `op-field`, `op-label`, `op-input`, `op-select`, `op-textarea`, `op-check`, `op-switch`, `op-range`, `op-input-group`, estados `is-error/is-success` |
74
+ | Tabelas | `op-table` (+ `op-table-hover/striped`) e Tabulator com tema Óptago via `OptagoUI.tabulator()` |
75
+ | Cards | `op-card`, `op-card-hover`, `op-stat` (KPI) |
76
+ | Feedback | `op-progress`, `op-spinner`, `op-skeleton` (+ `-thumb/-title/-btn/-badge/-row`), toasts |
77
+ | Navegação | `op-tabs` (linha, `op-tabs-pills`, `op-tabs-vertical`), `op-accordion`, `op-breadcrumb`, `op-pagination`, `op-dropdown` |
78
+ | Overlays | `op-modal` (+ `op-modal-drawer`, `op-modal-centered`, `op-modal-sm/lg`), tooltip via `data-op-tip` |
79
+ | Extras | `op-timeline` (marcadores octogonais), `op-glow` (manchas verde-lima desfocadas de fundo), `op-avatar` |
80
+
81
+ ## Comportamentos via atributos `data-op-*`
82
+
83
+ Nenhum JS manual necessário — basta o atributo:
84
+
85
+ | Atributo | Ação |
86
+ |---|---|
87
+ | `data-op-theme-toggle` | Alterna tema claro/escuro (persiste em `localStorage`) |
88
+ | `data-op-sidebar-toggle` | Colapsa/expande a sidebar |
89
+ | `data-op-sidebar-mobile` | Abre/fecha o drawer no mobile |
90
+ | `data-op-modal-open="#id"` | Abre o modal |
91
+ | `data-op-modal-close` | Fecha o modal (dentro dele; ESC e clique no fundo também fecham) |
92
+ | `data-op-tab="nome"` | Botão de aba (com `data-op-tab-group` no container) |
93
+ | `data-op-dropdown-toggle` | Abre/fecha o `.op-dropdown` |
94
+ | `data-op-dismiss` | Remove o `.op-alert` pai |
95
+ | `data-op-tip="texto"` | Tooltip em CSS puro (variante `.op-tip-bottom`) |
96
+ | `data-op-copy="#sel"` / `data-op-code="#sel"` | Copiar HTML / ver código (showcase) |
97
+
98
+ ## API JavaScript (`window.OptagoUI`)
99
+
100
+ ```js
101
+ OptagoUI.toast('Deploy concluído!', 'success'); // 'success' | 'error' | 'warning' | 'info'
102
+ OptagoUI.openModal('#meuModal');
103
+ OptagoUI.closeModal('#meuModal');
104
+ OptagoUI.setTheme('light'); // 'dark' | 'light'
105
+ OptagoUI.toggleSidebar();
106
+
107
+ // Tabela avançada (carrega o Tabulator do CDN sob demanda, já com tema Óptago)
108
+ OptagoUI.tabulator('#minhaTabela', {
109
+ layout: 'fitColumns',
110
+ pagination: true,
111
+ data: [...],
112
+ columns: [...]
113
+ }).then(tabela => { /* instância Tabulator */ });
114
+ ```
115
+
116
+ ## Tokens (CSS Custom Properties)
117
+
118
+ Personalize sobrescrevendo as variáveis no seu próprio CSS:
119
+
120
+ ```css
121
+ :root {
122
+ --op-accent: #C0FF6B; /* verde-lima da marca */
123
+ --op-info: #3B82F6;
124
+ --op-success: #10B981;
125
+ --op-warning: #F59E0B;
126
+ --op-danger: #EF4444;
127
+ --op-radius: 12px;
128
+ /* superfícies: --op-bg, --op-panel, --op-border, --op-text, --op-muted... */
129
+ }
130
+ ```
131
+
132
+ Tema claro = classe `light` no `<html>` (gerenciada automaticamente pelo JS).
133
+
134
+ ## Dependências em runtime
135
+
136
+ Injetadas automaticamente pelo `ui-optago.js` (CDN): Google Fonts (Chakra Petch, Inter, JetBrains Mono) e Phosphor Icons. Tabulator só é baixado se `OptagoUI.tabulator()` for chamado.
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "ui-optago",
3
+ "version": "1.0.0",
4
+ "description": "Design System Óptago — componentes UI em CSS puro + JS vanilla, com tema claro/escuro, verde-lima (#C0FF6B) e app shell com sidebar colapsável.",
5
+ "author": "Óptago <cowork@optago.com.br> (https://optago.com.br)",
6
+ "license": "MIT",
7
+ "homepage": "https://optago.com.br",
8
+ "keywords": [
9
+ "design-system",
10
+ "ui",
11
+ "css",
12
+ "components",
13
+ "dark-mode",
14
+ "vanilla-js",
15
+ "optago"
16
+ ],
17
+ "main": "ui-optago.js",
18
+ "style": "ui-optago.css",
19
+ "unpkg": "ui-optago.js",
20
+ "jsdelivr": "ui-optago.js",
21
+ "files": [
22
+ "ui-optago.css",
23
+ "ui-optago.js",
24
+ "ui-optago.html"
25
+ ]
26
+ }