xonecode 0.1.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 +167 -0
- package/dist/agent/authEnDisco.js +56 -0
- package/dist/agent/authEnDisco.js.map +1 -0
- package/dist/agent/configEnDisco.js +109 -0
- package/dist/agent/configEnDisco.js.map +1 -0
- package/dist/agent/crearProyecto.js +34 -0
- package/dist/agent/crearProyecto.js.map +1 -0
- package/dist/agent/entorno.js +124 -0
- package/dist/agent/entorno.js.map +1 -0
- package/dist/agent/guionizado.js +53 -0
- package/dist/agent/guionizado.js.map +1 -0
- package/dist/agent/instantanea.js +129 -0
- package/dist/agent/instantanea.js.map +1 -0
- package/dist/agent/interrupts.js +83 -0
- package/dist/agent/interrupts.js.map +1 -0
- package/dist/agent/mensajes.js +24 -0
- package/dist/agent/mensajes.js.map +1 -0
- package/dist/agent/modelos.js +42 -0
- package/dist/agent/modelos.js.map +1 -0
- package/dist/agent/normalizar.js +20 -0
- package/dist/agent/normalizar.js.map +1 -0
- package/dist/agent/perfiles.js +103 -0
- package/dist/agent/perfiles.js.map +1 -0
- package/dist/agent/proyecto.js +107 -0
- package/dist/agent/proyecto.js.map +1 -0
- package/dist/agent/puente.js +142 -0
- package/dist/agent/puente.js.map +1 -0
- package/dist/agent/resumenDeTool.js +48 -0
- package/dist/agent/resumenDeTool.js.map +1 -0
- package/dist/agent/skills.js +65 -0
- package/dist/agent/skills.js.map +1 -0
- package/dist/agent/textoDeTool.js +113 -0
- package/dist/agent/textoDeTool.js.map +1 -0
- package/dist/agent/turnoReal.js +173 -0
- package/dist/agent/turnoReal.js.map +1 -0
- package/dist/agent/verificador.js +65 -0
- package/dist/agent/verificador.js.map +1 -0
- package/dist/agent/xoneAgent.js +106 -0
- package/dist/agent/xoneAgent.js.map +1 -0
- package/dist/bin.js +9 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/aprobar.js +82 -0
- package/dist/cli/aprobar.js.map +1 -0
- package/dist/cli/config.js +133 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/consola.js +346 -0
- package/dist/cli/consola.js.map +1 -0
- package/dist/cli/describe.js +53 -0
- package/dist/cli/describe.js.map +1 -0
- package/dist/cli/doctor.js +45 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/main.js +520 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/markdown.js +90 -0
- package/dist/cli/markdown.js.map +1 -0
- package/dist/cli/run.js +164 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/spinner.js +89 -0
- package/dist/cli/spinner.js.map +1 -0
- package/dist/cli/stdio.js +193 -0
- package/dist/cli/stdio.js.map +1 -0
- package/dist/cli/tema.js +40 -0
- package/dist/cli/tema.js.map +1 -0
- package/dist/cli/verify.js +62 -0
- package/dist/cli/verify.js.map +1 -0
- package/dist/core/bitacora.js +30 -0
- package/dist/core/bitacora.js.map +1 -0
- package/dist/core/config.js +236 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/contextos.js +56 -0
- package/dist/core/contextos.js.map +1 -0
- package/dist/core/deps.js +51 -0
- package/dist/core/deps.js.map +1 -0
- package/dist/core/diff.js +79 -0
- package/dist/core/diff.js.map +1 -0
- package/dist/core/esqueleto.js +366 -0
- package/dist/core/esqueleto.js.map +1 -0
- package/dist/core/events.js +2 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/modelos.js +85 -0
- package/dist/core/modelos.js.map +1 -0
- package/dist/core/notify.js +106 -0
- package/dist/core/notify.js.map +1 -0
- package/dist/core/ports.js +114 -0
- package/dist/core/ports.js.map +1 -0
- package/dist/core/turno.js +127 -0
- package/dist/core/turno.js.map +1 -0
- package/dist/vendor/hitl.js +103 -0
- package/dist/vendor/hitl.js.map +1 -0
- package/dist/vendor/skillLoaders/catalog.js +74 -0
- package/dist/vendor/skillLoaders/catalog.js.map +1 -0
- package/dist/vendor/tokenTracking.js +58 -0
- package/dist/vendor/tokenTracking.js.map +1 -0
- package/package.json +41 -0
- package/skills/xone-debugging/SKILL.md +52 -0
- package/skills/xone-debugging/references/faq.md +561 -0
- package/skills/xone-debugging/references/troubleshooting-y-glosario.md +429 -0
- package/skills/xone-development/SKILL.md +105 -0
- package/skills/xone-development/references/anti-patrones.md +94 -0
- package/skills/xone-development/references/css/atributos-por-categoria.md +509 -0
- package/skills/xone-development/references/css/buenas-practicas-y-parser.md +419 -0
- package/skills/xone-development/references/css/dinamicos-cascada-y-componentes.md +550 -0
- package/skills/xone-development/references/css/patrones-material-y-temas.md +1140 -0
- package/skills/xone-development/references/css/propiedades-y-herencia.md +885 -0
- package/skills/xone-development/references/css/selectores-unidades-colores.md +840 -0
- package/skills/xone-development/references/datos/appdata-referencia-ampliada.md +457 -0
- package/skills/xone-development/references/datos/appdata.md +611 -0
- package/skills/xone-development/references/datos/http-sqlmanager-y-crypto.md +720 -0
- package/skills/xone-development/references/datos/http.md +366 -0
- package/skills/xone-development/references/datos/oauth2-y-replica.md +156 -0
- package/skills/xone-development/references/device/biometria-imagedrawing-y-otros.md +544 -0
- package/skills/xone-development/references/device/objetos-de-dispositivo.md +583 -0
- package/skills/xone-development/references/device/systemsettings-referencia-ampliada.md +396 -0
- package/skills/xone-development/references/device/systemsettings-y-permisos.md +342 -0
- package/skills/xone-development/references/fundamentos/conceptos-clave.md +695 -0
- package/skills/xone-development/references/fundamentos/configuracion-app-xml-ini-mappings.md +668 -0
- package/skills/xone-development/references/fundamentos/errores-comunes.md +312 -0
- package/skills/xone-development/references/fundamentos/navegacion-convenciones-y-primer-proyecto.md +576 -0
- package/skills/xone-development/references/fundamentos/plataforma-y-anatomia-de-proyecto.md +387 -0
- package/skills/xone-development/references/indice-completo.md +77 -0
- package/skills/xone-development/references/javascript/coleccion-error-y-usuario.md +260 -0
- package/skills/xone-development/references/javascript/debugging-y-best-practices.md +245 -0
- package/skills/xone-development/references/javascript/metodos-de-los-controles.md +556 -0
- package/skills/xone-development/references/javascript/metodos-nativos-de-la-vista.md +114 -0
- package/skills/xone-development/references/javascript/motor-js-y-contexto-de-ejecucion.md +319 -0
- package/skills/xone-development/references/javascript/objeto-ai-llm-en-dispositivo.md +358 -0
- package/skills/xone-development/references/javascript/objetos-creables-a-m.md +527 -0
- package/skills/xone-development/references/javascript/objetos-creables-n-z.md +385 -0
- package/skills/xone-development/references/javascript/patrones-criticos-seguridad-y-rendimiento.md +595 -0
- package/skills/xone-development/references/javascript/patrones-de-navegacion-datos-y-codigo.md +751 -0
- package/skills/xone-development/references/javascript/patrones-de-ui-voz-integracion-y-seguridad.md +701 -0
- package/skills/xone-development/references/javascript/plantillas-y-funciones-utilitarias.md +647 -0
- package/skills/xone-development/references/javascript/self-y-dataobject.md +449 -0
- package/skills/xone-development/references/javascript/singletons-globales.md +361 -0
- package/skills/xone-development/references/javascript/ui-catalogo-de-metodos.md +464 -0
- package/skills/xone-development/references/javascript/ui-gps-camara-y-multimedia.md +506 -0
- package/skills/xone-development/references/javascript/ui-navegacion-mensajes-y-vista.md +422 -0
- package/skills/xone-development/references/resumen-js-datos-dispositivo.md +80 -0
- package/skills/xone-development/references/resumen-xml-y-css.md +74 -0
- package/skills/xone-development/references/tipos-de-prop.md +28 -0
- package/skills/xone-development/references/xml-ui/asfilter-visibilidad-eventos-y-macros.md +576 -0
- package/skills/xone-development/references/xml-ui/atributos-coll-group-frame.md +235 -0
- package/skills/xone-development/references/xml-ui/atributos-method-macro-script-event-app.md +244 -0
- package/skills/xone-development/references/xml-ui/atributos-prop.md +439 -0
- package/skills/xone-development/references/xml-ui/contents-y-macros.md +392 -0
- package/skills/xone-development/references/xml-ui/errores-comunes-xml.md +245 -0
- package/skills/xone-development/references/xml-ui/estructura-y-nodo-coll.md +326 -0
- package/skills/xone-development/references/xml-ui/eventos-ciclo-de-vida-e-interaccion.md +704 -0
- package/skills/xone-development/references/xml-ui/eventos-sistema-login-y-personalizados.md +944 -0
- package/skills/xone-development/references/xml-ui/layouts-herencia-y-buenas-practicas.md +618 -0
- package/skills/xone-development/references/xml-ui/mapas.md +685 -0
- package/skills/xone-development/references/xml-ui/mappings-y-colecciones-separadas.md +148 -0
- package/skills/xone-development/references/xml-ui/nodos-group-y-frame.md +666 -0
- package/skills/xone-development/references/xml-ui/patrones-de-pantalla.md +643 -0
- package/skills/xone-development/references/xml-ui/prop-atributos-y-condiciones.md +298 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-basicos.md +493 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-combos-y-controles.md +664 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-listas-y-mapas.md +412 -0
- package/skills/xone-plan-builder/SKILL.md +183 -0
- package/skills/xone-plan-builder/agents/openai.yaml +5 -0
- package/skills/xone-plan-builder/references/TASKS-FORMAT.md +132 -0
- package/skills/xone-project-generator/SKILL.md +111 -0
- package/skills/xone-project-generator/references/canonical-sizes.md +292 -0
- package/skills/xone-project-generator/references/colecciones-base.md +16 -0
- package/skills/xone-project-generator/references/convenciones-de-nombres.md +16 -0
- package/skills/xone-project-generator/references/ejemplos-por-sector-y-prohibiciones.md +140 -0
- package/skills/xone-project-generator/references/fase-3-estilos-css.md +597 -0
- package/skills/xone-project-generator/references/fase-6-colecciones.md +762 -0
- package/skills/xone-project-generator/references/fase-7-asfilter-e-integraciones.md +142 -0
- package/skills/xone-project-generator/references/fase-7-entidades-y-estructura-de-pantalla.md +494 -0
- package/skills/xone-project-generator/references/fase-7-plantilla-consola.md +477 -0
- package/skills/xone-project-generator/references/fase-7-plantillas-de-pantalla.md +302 -0
- package/skills/xone-project-generator/references/fase-7-viewmodes-graficos-y-listas.md +681 -0
- package/skills/xone-project-generator/references/fase-7-viewmodes-mapa-y-calendario.md +479 -0
- package/skills/xone-project-generator/references/fases-0-2-analisis-y-modelo-de-datos.md +350 -0
- package/skills/xone-project-generator/references/fases-10-12-readmes-y-validacion.md +194 -0
- package/skills/xone-project-generator/references/fases-4-5-estructura-y-configuracion.md +587 -0
- package/skills/xone-project-generator/references/fases-8-9-eventos-y-javascript.md +861 -0
- package/skills/xone-project-generator/references/flujo-de-generacion.md +67 -0
- package/skills/xone-project-generator/references/plantillas-estandar.md +98 -0
- package/skills/xone-project-generator/references/tamanos-canonicos.md +49 -0
- package/skills/xone-review/SKILL.md +189 -0
- package/skills/xone-spec-builder/SKILL.md +235 -0
- package/skills/xone-spec-builder/agents/openai.yaml +5 -0
- package/skills/xone-spec-builder/references/ADR-FORMAT.md +55 -0
- package/skills/xone-spec-builder/references/CONTEXT-FORMAT.md +42 -0
- package/skills/xone-spec-builder/references/PLAN-FORMAT.md +120 -0
|
@@ -0,0 +1,597 @@
|
|
|
1
|
+
# Generación XOne — Fase 3: estilos CSS
|
|
2
|
+
|
|
3
|
+
> Fuente: `xone/v2/xone-project-generator/references/xone-project-generation-workflow.md` §4. Referencia de la skill; el índice está en [../SKILL.md](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Contenido: §4 declaración de CSS en app.xml, prioridad de estilos, selectores, plantilla default.css, plantilla colors.css, tabla de transparencias alpha y referencia rápida de atributos
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 4. Fase 3: Estilos CSS
|
|
10
|
+
|
|
11
|
+
### 4.1 Objetivo
|
|
12
|
+
|
|
13
|
+
Crear el archivo `default.css` con los estilos globales de la aplicación. Opcionalmente, crear `colors.css` para la paleta de colores.
|
|
14
|
+
|
|
15
|
+
> **ADVERTENCIA:** Si en el nodo `<app>` del mappings esta definido `compatibility-mode="true"`, los estilos CSS **NO se aplicaran**. Verificar siempre que este atributo no este presente o sea `false`.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
### 4.2 Declaración de CSS en app.xml
|
|
20
|
+
|
|
21
|
+
Los ficheros CSS se declaran en el nodo `<app>` con el nodo `<style>`. Se pueden declarar multiples ficheros aplicados según condiciones de plataforma, tamaño y orientación:
|
|
22
|
+
|
|
23
|
+
```xml
|
|
24
|
+
<app prefix="gen" version="1.0.0" ...>
|
|
25
|
+
<style url="default.css" />
|
|
26
|
+
<style url="default_phone.css" conditions="phone:vertical"/>
|
|
27
|
+
<style url="default_phone_hor.css" conditions="phone:horizontal"/>
|
|
28
|
+
<style url="default_tablet.css" conditions="tablet:vertical"/>
|
|
29
|
+
<style url="default_tablet_hor.css" conditions="tablet:horizontal"/>
|
|
30
|
+
<style url="default_android_ver.css" conditions="android:phone:vertical"/>
|
|
31
|
+
<style url="default_iphone.css" conditions="ios:phone"/>
|
|
32
|
+
<style url="default_ipad_vertical.css" conditions="ios:tablet:vertical"/>
|
|
33
|
+
</app>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Formato del atributo `conditions`:** `PLATAFORMA:TAMAÑO:ORIENTACION` — siempre en este orden y en minusculas.
|
|
37
|
+
|
|
38
|
+
| Parte | Valores posibles |
|
|
39
|
+
|-------|-----------------|
|
|
40
|
+
| Plataforma | `android`, `ios`, `wm`, `bb`, `wp` |
|
|
41
|
+
| Tamaño | `phone`, `tablet`, `mini` (android <3.5"), `hiphone` (android >4.5" y <7") |
|
|
42
|
+
| Orientación | `vertical`, `horizontal` |
|
|
43
|
+
|
|
44
|
+
> El fichero `default.css` (sin conditions) se aplica siempre como base. Los demas lo sobreescriben según condición.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
### 4.3 Prioridad de Estilos (de menor a mayor)
|
|
49
|
+
|
|
50
|
+
Los estilos en XOne tienen este orden de prioridad. Un nivel superior sobreescribe al inferior:
|
|
51
|
+
|
|
52
|
+
| Prioridad | Origen | Ejemplo |
|
|
53
|
+
|-----------|--------|---------|
|
|
54
|
+
| 1 (más baja) | Valores predefinidos del framework | Valores por defecto internos de XOne |
|
|
55
|
+
| 2 | Nodos de sistema en CSS (`coll`, `group`, `frame`, `prop` sin punto) | `prop { fontsize: 10; }` |
|
|
56
|
+
| 3 | Clases de nodos de sistema en CSS (`prop.clase`, `group.clase`) | `prop.particular { labelbox: false; }` |
|
|
57
|
+
| 4 | Clases propias en CSS (`.miclase`) | `.btnPrimario { bgcolor: #2196F3; }` |
|
|
58
|
+
| 5 (más alta) | Atributos definidos directamente en la etiqueta XML | `<prop bgcolor="#FF0000" .../>` |
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### 4.4 Tipos de Selectores CSS en XOne
|
|
63
|
+
|
|
64
|
+
#### Nodos de sistema (sin punto — afectan a todos los nodos de ese tipo)
|
|
65
|
+
|
|
66
|
+
```css
|
|
67
|
+
coll { editmask: 0; notab: true; }
|
|
68
|
+
group { imgbk: portada_interior.jpg; }
|
|
69
|
+
frame { width: 100%; framebox: false; }
|
|
70
|
+
prop { fontsize: 10; labelbox: false; }
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
#### Clases de nodo de coll (se aplican con `class=` en el nodo `coll`)
|
|
74
|
+
|
|
75
|
+
Cuando se pone `class="nombreclase"` en una `coll`, los estilos `prop.nombreclase`, `group.nombreclase` y `frame.nombreclase` se aplican automáticamente a todos sus hijos:
|
|
76
|
+
|
|
77
|
+
```css
|
|
78
|
+
prop.miColl { labelbox: false; fontsize: 9; }
|
|
79
|
+
group.miColl { imgbk: fondo.jpg; }
|
|
80
|
+
frame.miColl { bgcolor: #FFFFFF; }
|
|
81
|
+
```
|
|
82
|
+
```xml
|
|
83
|
+
<coll name="MiColl" class="miColl" ...>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
#### Clases propias (con punto — se aplican con `class=` en cualquier nodo)
|
|
87
|
+
|
|
88
|
+
```css
|
|
89
|
+
.btnPrimario { bgcolor: #2196F3; forecolor: #FFFFFF; }
|
|
90
|
+
.frameHeader { width: 100%; height: 120p; bgcolor: #2196F3; }
|
|
91
|
+
```
|
|
92
|
+
```xml
|
|
93
|
+
<prop name="BTN" type="B" class="btnPrimario" />
|
|
94
|
+
<frame name="frmHeader" class="frameHeader" />
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
#### Selectores por tipo de prop (`prop:TIPO`)
|
|
98
|
+
|
|
99
|
+
```css
|
|
100
|
+
prop:B { bgcolor: #2196F3; forecolor: #FFFFFF; }
|
|
101
|
+
prop:IMG { width: 500p; height: 400p; }
|
|
102
|
+
prop:Z { width: 96%; lmargin: 2%; }
|
|
103
|
+
prop:NC { apply-css: true; }
|
|
104
|
+
prop:AT { img-att: attach.png; }
|
|
105
|
+
prop:PH { img-camera: camera.png; }
|
|
106
|
+
prop:VD { img-video: video.png; }
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
#### Herencia con `extends`
|
|
110
|
+
|
|
111
|
+
```css
|
|
112
|
+
.btnSecundario {
|
|
113
|
+
extends: .btnPrimario; /* hereda todos los atributos de btnPrimario */
|
|
114
|
+
bgcolor: #757575; /* sobreescribe solo el color */
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
### 4.5 Plantilla: default.css
|
|
121
|
+
|
|
122
|
+
```css
|
|
123
|
+
/* ============================================
|
|
124
|
+
ESTILOS BASE - PROYECTO XONE
|
|
125
|
+
NombreProyecto - v1.0.0
|
|
126
|
+
============================================ */
|
|
127
|
+
|
|
128
|
+
/* -------- NODOS DE SISTEMA -------- */
|
|
129
|
+
coll {
|
|
130
|
+
notab: true;
|
|
131
|
+
show-toolbar: false;
|
|
132
|
+
group-swipe: false;
|
|
133
|
+
editmask: 0;
|
|
134
|
+
dependent: false;
|
|
135
|
+
check-owner: false;
|
|
136
|
+
cell-bgcolor: #FFFFFF;
|
|
137
|
+
cell-border-width: 0;
|
|
138
|
+
cell-border: false;
|
|
139
|
+
cell-even-color: #F5F5F5;
|
|
140
|
+
cell-odd-color: #FFFFFF;
|
|
141
|
+
cell-height: 80p;
|
|
142
|
+
cell-tpadding: 4p;
|
|
143
|
+
cell-bpadding: 4p;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
group {
|
|
147
|
+
/* sin estilos globales por defecto */
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
frame {
|
|
151
|
+
framebox: false;
|
|
152
|
+
bgcolor: #00000000;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
prop {
|
|
156
|
+
fontname: Roboto-Regular.ttf; /* Puede ser cualquier fuente .ttf/.otf incluida en fonts/ */
|
|
157
|
+
fontsize: 10;
|
|
158
|
+
labelbox: false;
|
|
159
|
+
label-wrap: true;
|
|
160
|
+
text-border: false;
|
|
161
|
+
width: 96%;
|
|
162
|
+
lmargin: 2%;
|
|
163
|
+
lines: 1;
|
|
164
|
+
fixed-lines: true;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/* -------- TIPOS DE PROP -------- */
|
|
168
|
+
prop:B {
|
|
169
|
+
forecolor: #FFFFFF;
|
|
170
|
+
bgcolor: #2196F3;
|
|
171
|
+
border-corner-radius: 8;
|
|
172
|
+
ripple-effect: true;
|
|
173
|
+
forecolor-disabled: #ADAA9C;
|
|
174
|
+
bgcolor-disabled: #C6CEC6;
|
|
175
|
+
forecolor-pressed: #FFFFFF;
|
|
176
|
+
bgcolor-pressed: #1565C0;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
prop:NC {
|
|
180
|
+
apply-css: true;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
prop:IMG {
|
|
184
|
+
labelwidth: 0;
|
|
185
|
+
width: 500p;
|
|
186
|
+
height: 400p;
|
|
187
|
+
file-maxwidth: 800;
|
|
188
|
+
file-maxheight: 600;
|
|
189
|
+
img-sign: bt_firma.png;
|
|
190
|
+
img-sign-sel: bt_firma.png;
|
|
191
|
+
img-delete: bt_delete.png;
|
|
192
|
+
img-delete-sel: bt_delete.png;
|
|
193
|
+
img-save: guardar.png;
|
|
194
|
+
img-save-sel: guardar.png;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
prop:PH {
|
|
198
|
+
img-camera: bt_camera.png;
|
|
199
|
+
img-camera-sel: bt_camera_sel.png;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
prop:VD {
|
|
203
|
+
img-video: bt_video.png;
|
|
204
|
+
img-video-sel: bt_video_sel.png;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
prop:AT {
|
|
208
|
+
img-att: bt_attach.png;
|
|
209
|
+
img-att-sel: bt_attach_sel.png;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
prop:Z {
|
|
213
|
+
extends: prop;
|
|
214
|
+
bgcolor: #F2F2F2;
|
|
215
|
+
width: 96%;
|
|
216
|
+
lmargin: 2%;
|
|
217
|
+
tmargin: 2%;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/* ============================================
|
|
221
|
+
CLASES DE LAYOUT
|
|
222
|
+
============================================ */
|
|
223
|
+
|
|
224
|
+
.frameHeader {
|
|
225
|
+
width: 100%;
|
|
226
|
+
height: 120p;
|
|
227
|
+
bgcolor: #2196F3;
|
|
228
|
+
align: center;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.frameBody {
|
|
232
|
+
width: 100%;
|
|
233
|
+
height: 100%;
|
|
234
|
+
scroll: true;
|
|
235
|
+
bgcolor: #FFFFFF;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.frameFooter {
|
|
239
|
+
width: 100%;
|
|
240
|
+
height: 100p;
|
|
241
|
+
bgcolor: #F5F5F5;
|
|
242
|
+
align: center;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/* ============================================
|
|
246
|
+
CLASES DE GRUPOS
|
|
247
|
+
============================================ */
|
|
248
|
+
|
|
249
|
+
.groupNoTab {
|
|
250
|
+
tab-visible: false;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.groupConTab {
|
|
254
|
+
tab-visible: true;
|
|
255
|
+
tab-height: 48p;
|
|
256
|
+
tab-fontsize: 12;
|
|
257
|
+
group-theme: material;
|
|
258
|
+
tab-mode: scrollable;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.groupFixed {
|
|
262
|
+
fixed: true;
|
|
263
|
+
orientation: top;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/* ============================================
|
|
267
|
+
CLASES DE BOTONES
|
|
268
|
+
============================================ */
|
|
269
|
+
|
|
270
|
+
.btnPrimario {
|
|
271
|
+
width: 90%;
|
|
272
|
+
height: 50p;
|
|
273
|
+
bgcolor: #2196F3;
|
|
274
|
+
forecolor: #FFFFFF;
|
|
275
|
+
border-corner-radius: 8;
|
|
276
|
+
text-align: center;
|
|
277
|
+
fontsize: 14;
|
|
278
|
+
align: center;
|
|
279
|
+
ripple-effect: true;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.btnSecundario {
|
|
283
|
+
extends: .btnPrimario;
|
|
284
|
+
bgcolor: #757575;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.btnPeligro {
|
|
288
|
+
extends: .btnPrimario;
|
|
289
|
+
bgcolor: #F44336;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.btnExito {
|
|
293
|
+
extends: .btnPrimario;
|
|
294
|
+
bgcolor: #4CAF50;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.btnTransparente {
|
|
298
|
+
bgcolor: #00000000;
|
|
299
|
+
forecolor: #2196F3;
|
|
300
|
+
fontsize: 14;
|
|
301
|
+
text-align: center;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/* Boton con ejecucion asincrona (no bloquea UI) */
|
|
305
|
+
.btnAsync {
|
|
306
|
+
extends: .btnPrimario;
|
|
307
|
+
execute-async: true;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/* ============================================
|
|
311
|
+
CLASES DE TEXTO
|
|
312
|
+
============================================ */
|
|
313
|
+
|
|
314
|
+
/* Labels (type="L"): el texto es el `title` (o el valor del campo si no hay `title`), que se
|
|
315
|
+
pinta dentro del ancho de la etiqueta. NO usar labelwidth:0 aquí — ocultaría el texto.
|
|
316
|
+
(labelwidth:0 solo es correcto en campos con contenido en el valor, o IMG.) */
|
|
317
|
+
.textoTitulo {
|
|
318
|
+
fontsize: 18;
|
|
319
|
+
forecolor: #212121;
|
|
320
|
+
align: center;
|
|
321
|
+
fontname: Roboto-Bold.ttf;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
.textoSubtitulo {
|
|
325
|
+
fontsize: 14;
|
|
326
|
+
forecolor: #757575;
|
|
327
|
+
align: center;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
.textoEditable {
|
|
331
|
+
labelwidth: 0;
|
|
332
|
+
text-border: true;
|
|
333
|
+
text-border-bottom: true;
|
|
334
|
+
text-border-left: false;
|
|
335
|
+
text-border-right: false;
|
|
336
|
+
text-border-top: false;
|
|
337
|
+
text-border-color: #BDBDBD;
|
|
338
|
+
lpadding: 10p;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
/* Campo de texto con tooltip flotante */
|
|
342
|
+
.textoConTooltip {
|
|
343
|
+
labelwidth: 0;
|
|
344
|
+
border-corner-radius: 8;
|
|
345
|
+
floating-tooltip: true;
|
|
346
|
+
tooltip-forecolor: #757575;
|
|
347
|
+
expanded-hint-color: #757575;
|
|
348
|
+
show-counter: true;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.textoSoloLectura {
|
|
352
|
+
labelwidth: 0;
|
|
353
|
+
text-border: false;
|
|
354
|
+
locked: true;
|
|
355
|
+
forecolor: #757575;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
.etiquetaLabel {
|
|
359
|
+
labelwidth: 7;
|
|
360
|
+
labelfont-underline: false;
|
|
361
|
+
labelshadow: false;
|
|
362
|
+
labelbox: false;
|
|
363
|
+
labelfont-bold: true;
|
|
364
|
+
labelfont-size: 8;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/* ============================================
|
|
368
|
+
CLASES DE ICONOS
|
|
369
|
+
============================================ */
|
|
370
|
+
|
|
371
|
+
.iconoAccion {
|
|
372
|
+
width: 48p;
|
|
373
|
+
height: 48p;
|
|
374
|
+
labelwidth: 0;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
.iconoMenu {
|
|
378
|
+
width: 64p;
|
|
379
|
+
height: 64p;
|
|
380
|
+
labelwidth: 0;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
/* ============================================
|
|
384
|
+
CLASES DE TARJETAS (CARDS)
|
|
385
|
+
============================================ */
|
|
386
|
+
|
|
387
|
+
.cardItem {
|
|
388
|
+
width: 90%;
|
|
389
|
+
height: 100p;
|
|
390
|
+
bgcolor: #FFFFFF;
|
|
391
|
+
border-corner-radius: 8;
|
|
392
|
+
align: center;
|
|
393
|
+
tmargin: 10p;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/* ============================================
|
|
397
|
+
CLASES DE LISTADOS (contents)
|
|
398
|
+
============================================ */
|
|
399
|
+
|
|
400
|
+
.listado {
|
|
401
|
+
grid-bgcolor: #00000000;
|
|
402
|
+
grid-text-bgcolor: #00000000;
|
|
403
|
+
show-toolbar: false;
|
|
404
|
+
check-owner: false;
|
|
405
|
+
dependent: false;
|
|
406
|
+
show-selected-item: false;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/* ============================================
|
|
410
|
+
CLASES DE SEPARADORES
|
|
411
|
+
============================================ */
|
|
412
|
+
|
|
413
|
+
.separadorH {
|
|
414
|
+
labelbox: false;
|
|
415
|
+
width: 100%;
|
|
416
|
+
height: 2p;
|
|
417
|
+
bgcolor: #E0E0E0;
|
|
418
|
+
tmargin: 5p;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
/* ============================================
|
|
422
|
+
CLASES DE CALENDARIO
|
|
423
|
+
============================================ */
|
|
424
|
+
|
|
425
|
+
.calendarioBase {
|
|
426
|
+
show-toolbar: false;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.calendarioContenido {
|
|
430
|
+
cell-bgcolor: #FF328BA9;
|
|
431
|
+
cell-forecolor: #FFFFFF;
|
|
432
|
+
cell-border-width: 4;
|
|
433
|
+
cell-border-color: #00000000;
|
|
434
|
+
cell-align: center;
|
|
435
|
+
align: center;
|
|
436
|
+
fontsize: 25;
|
|
437
|
+
cell-selected-bgcolor: #00000000;
|
|
438
|
+
cell-selected-forecolor: #FF328BA9;
|
|
439
|
+
cell-selected-border-color: #00000000;
|
|
440
|
+
weekdays-bgcolor: #00000000;
|
|
441
|
+
weekdays-forecolor: #FF328BA9;
|
|
442
|
+
weekdays-fontsize: 6;
|
|
443
|
+
weekdays-longname: false;
|
|
444
|
+
weekdays-align: top|left;
|
|
445
|
+
border-width: 2;
|
|
446
|
+
page-swipe: true;
|
|
447
|
+
cell-other-month-bgcolor: #50000000;
|
|
448
|
+
border: false;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/* ============================================
|
|
452
|
+
CLASES DE ANIMACION
|
|
453
|
+
============================================ */
|
|
454
|
+
|
|
455
|
+
.animFadeIn {
|
|
456
|
+
animation-in: ##ALPHA_IN##;
|
|
457
|
+
animation-in-delay: 300;
|
|
458
|
+
animation-out: ##ALPHA_OUT##;
|
|
459
|
+
animation-out-delay: 300;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
.animSlideRight {
|
|
463
|
+
animation-in: ##RIGHT_IN##;
|
|
464
|
+
animation-in-delay: 300;
|
|
465
|
+
animation-out: ##LEFT_OUT##;
|
|
466
|
+
animation-out-delay: 300;
|
|
467
|
+
}
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
---
|
|
471
|
+
|
|
472
|
+
### 4.6 Plantilla: colors.css (Opcional)
|
|
473
|
+
|
|
474
|
+
```css
|
|
475
|
+
/* ============================================
|
|
476
|
+
PALETA DE COLORES - NombreProyecto
|
|
477
|
+
Modificar estos colores segun el proyecto
|
|
478
|
+
============================================ */
|
|
479
|
+
|
|
480
|
+
/* Primarios */
|
|
481
|
+
.colorPrimario { bgcolor: #2196F3; }
|
|
482
|
+
.colorPrimarioDark { bgcolor: #1976D2; }
|
|
483
|
+
.colorPrimarioLight { bgcolor: #BBDEFB; }
|
|
484
|
+
|
|
485
|
+
/* Acento */
|
|
486
|
+
.colorAccento { bgcolor: #FF5722; }
|
|
487
|
+
|
|
488
|
+
/* Fondos */
|
|
489
|
+
.colorFondo { bgcolor: #FFFFFF; }
|
|
490
|
+
.colorSuperficie { bgcolor: #F5F5F5; }
|
|
491
|
+
|
|
492
|
+
/* Texto */
|
|
493
|
+
.textoColorPrimario { forecolor: #212121; }
|
|
494
|
+
.textoColorSecundario { forecolor: #757575; }
|
|
495
|
+
.textoColorBlanco { forecolor: #FFFFFF; }
|
|
496
|
+
|
|
497
|
+
/* Estado */
|
|
498
|
+
.colorExito { bgcolor: #4CAF50; }
|
|
499
|
+
.colorAdvertencia { bgcolor: #FFC107; }
|
|
500
|
+
.colorError { bgcolor: #F44336; }
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
---
|
|
504
|
+
|
|
505
|
+
### 4.7 Tabla de Transparencias Alpha
|
|
506
|
+
|
|
507
|
+
En XOne los colores usan formato `#AARRGGBB` donde `AA` es el canal alpha. Referencia:
|
|
508
|
+
|
|
509
|
+
| Alpha | Hex | Alpha | Hex |
|
|
510
|
+
|-------|-----|-------|-----|
|
|
511
|
+
| 100% (opaco) | `FF` | 45% | `73` |
|
|
512
|
+
| 95% | `F2` | 40% | `66` |
|
|
513
|
+
| 90% | `E6` | 35% | `59` |
|
|
514
|
+
| 85% | `D9` | 30% | `4D` |
|
|
515
|
+
| 80% | `CC` | 25% | `40` |
|
|
516
|
+
| 75% | `BF` | 20% | `33` |
|
|
517
|
+
| 70% | `B3` | 15% | `26` |
|
|
518
|
+
| 65% | `A6` | 10% | `1A` |
|
|
519
|
+
| 60% | `99` | 5% | `0D` |
|
|
520
|
+
| 55% | `8C` | 0% (transparente) | `00` |
|
|
521
|
+
| 50% | `80` | | |
|
|
522
|
+
|
|
523
|
+
Ejemplo: rojo al 50% de opacidad = `#80FF0000`
|
|
524
|
+
|
|
525
|
+
---
|
|
526
|
+
|
|
527
|
+
### 4.8 Referencia Rápida de Atributos CSS XOne
|
|
528
|
+
|
|
529
|
+
| Atributo XOne | Equivalente Web (NO USAR) | Descripción |
|
|
530
|
+
|---------------|---------------------------|-------------|
|
|
531
|
+
| `fontsize` | font-size | Tamaño de fuente |
|
|
532
|
+
| `fontname` | font-family | Nombre del fichero de fuente |
|
|
533
|
+
| `fontbold` | font-weight | Negrita (`true`/`false`) |
|
|
534
|
+
| `labelfont-bold` | — | Negrita del label |
|
|
535
|
+
| `labelfont-size` | — | Tamaño del label |
|
|
536
|
+
| `labelfont-underline` | — | Subrayado del label |
|
|
537
|
+
| `labelwidth` | — | Proporcion del label (0 = sin label) |
|
|
538
|
+
| `labelbox` | — | Muestra borde en el label (`true`/`false`) |
|
|
539
|
+
| `forecolor` | color | Color del texto |
|
|
540
|
+
| `bgcolor` | background-color | Color de fondo |
|
|
541
|
+
| `text-forecolor` | — | Color del texto dentro del campo editable |
|
|
542
|
+
| `text-bgcolor` | — | Color de fondo del campo editable |
|
|
543
|
+
| `text-forecolor-focus` | — | Color de texto al tener el foco |
|
|
544
|
+
| `text-bgcolor-focus` | — | Color de fondo al tener el foco |
|
|
545
|
+
| `text-forecolor-disabled` | — | Color de texto deshabilitado |
|
|
546
|
+
| `text-bgcolor-disabled` | — | Color de fondo deshabilitado |
|
|
547
|
+
| `forecolor-disabled` | — | Color de texto del botón deshabilitado |
|
|
548
|
+
| `bgcolor-disabled` | — | Color de fondo del botón deshabilitado |
|
|
549
|
+
| `forecolor-pressed` | — | Color de texto del botón pulsado |
|
|
550
|
+
| `bgcolor-pressed` | — | Color de fondo del botón pulsado |
|
|
551
|
+
| `tmargin` | margin-top | Margen superior |
|
|
552
|
+
| `bmargin` | margin-bottom | Margen inferior |
|
|
553
|
+
| `lmargin` | margin-left | Margen izquierdo |
|
|
554
|
+
| `rmargin` | margin-right | Margen derecho |
|
|
555
|
+
| `tpadding` | padding-top | Padding superior |
|
|
556
|
+
| `bpadding` | padding-bottom | Padding inferior |
|
|
557
|
+
| `lpadding` | padding-left | Padding izquierdo |
|
|
558
|
+
| `rpadding` | padding-right | Padding derecho |
|
|
559
|
+
| `border-corner-radius` | border-radius | Radio de esquinas |
|
|
560
|
+
| `border-width` | border-width | Ancho del borde |
|
|
561
|
+
| `border-color` | border-color | Color del borde |
|
|
562
|
+
| `text-align` | text-align | Alineacion del texto (`left`, `center`, `right`) |
|
|
563
|
+
| `align` | — | Alineacion del control dentro del frame |
|
|
564
|
+
| `text-border` | border | Borde del campo de texto (`true`/`false`) |
|
|
565
|
+
| `text-border-top` | border-top | Borde superior del campo |
|
|
566
|
+
| `text-border-bottom` | border-bottom | Borde inferior del campo |
|
|
567
|
+
| `text-border-left` | border-left | Borde izquierdo del campo |
|
|
568
|
+
| `text-border-right` | border-right | Borde derecho del campo |
|
|
569
|
+
| `text-border-color` | border-color | Color del borde del campo |
|
|
570
|
+
| `floating-tooltip` | placeholder | Tooltip flotante como placeholder |
|
|
571
|
+
| `tooltip` | placeholder | Texto del tooltip |
|
|
572
|
+
| `tooltip-forecolor` | — | Color del texto del tooltip |
|
|
573
|
+
| `expanded-hint-color` | — | Color del hint expandido (Material Design) |
|
|
574
|
+
| `show-counter` | — | Muestra contador de caracteres |
|
|
575
|
+
| `ripple-effect` | — | Efecto ripple en botones |
|
|
576
|
+
| `execute-async` | — | Ejecuta la acción del botón de forma asíncrona |
|
|
577
|
+
| `apply-css` | — | Aplica estilos CSS al control (requerido en `prop:NC`) |
|
|
578
|
+
| `file-maxwidth` | — | Ancho máximo de imagen capturada (px) |
|
|
579
|
+
| `file-maxheight` | — | Alto máximo de imagen capturada (px) |
|
|
580
|
+
| `img` | — | Imagen del botón principal |
|
|
581
|
+
| `img-sel` | — | Imagen al pulsar el botón |
|
|
582
|
+
| `img-delete` | — | Imagen del botón borrar |
|
|
583
|
+
| `img-search` | — | Imagen del botón lupa |
|
|
584
|
+
| `img-spinner` | — | Imagen del combo/spinner |
|
|
585
|
+
| `img-phone` | — | Imagen del botón telefono |
|
|
586
|
+
| `img-undo` | — | Imagen del botón deshacer |
|
|
587
|
+
| `img-date` | — | Imagen del botón fecha |
|
|
588
|
+
| `img-time` | — | Imagen del botón hora |
|
|
589
|
+
| `img-att` | — | Imagen del botón adjunto |
|
|
590
|
+
| `img-camera` | — | Imagen del botón camara (`prop:PH`) |
|
|
591
|
+
| `img-video` | — | Imagen del botón video (`prop:VD`) |
|
|
592
|
+
| `img-sign` | — | Imagen del botón firma (`prop:IMG`) |
|
|
593
|
+
| `img-save` | — | Imagen del botón guardar firma (`prop:IMG`) |
|
|
594
|
+
| `img-width` | — | Ancho del botón imagen |
|
|
595
|
+
| `img-height` | — | Alto del botón imagen |
|
|
596
|
+
| `imgbk` | background-image | Imagen de fondo del grupo o frame |
|
|
597
|
+
|