@erplora/outfitkit 0.1.23 → 0.1.25

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/dist/erplora.css CHANGED
@@ -72,6 +72,33 @@
72
72
  --ok-spacing: 1rem;
73
73
  --ok-container-max: 1140px;
74
74
  --ok-font: var(--ion-font-family);
75
+ --ok-font-display: var(--font-display, var(--ok-font));
76
+
77
+ /* ── Escala tipográfica semántica ──
78
+ * Los componentes consumen estos niveles en lugar de inventar tamaños
79
+ * propios. Los clamp mantienen la jerarquía entre móvil y escritorio. */
80
+ --ok-type-display-size: clamp(3rem, 2.25rem + 3vw, 4.5rem);
81
+ --ok-type-display-weight: 650;
82
+ --ok-type-display-leading: 1;
83
+ --ok-type-page-title-size: clamp(2.35rem, 1.75rem + 2.6vw, 4rem);
84
+ --ok-type-page-title-compact-size: clamp(2rem, 1.55rem + 2vw, 3.25rem);
85
+ --ok-type-page-title-weight: 650;
86
+ --ok-type-page-title-leading: 1.04;
87
+ --ok-type-section-title-size: clamp(1.75rem, 1.1rem + 2.6vw, 2.85rem);
88
+ --ok-type-section-title-weight: 650;
89
+ --ok-type-section-title-leading: 1.06;
90
+ --ok-type-card-title-size: clamp(1.05rem, 1rem + 0.25vw, 1.15rem);
91
+ --ok-type-card-title-weight: 620;
92
+ --ok-type-card-title-leading: 1.25;
93
+ --ok-type-intro-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
94
+ --ok-type-intro-leading: 1.6;
95
+ --ok-type-body-size: 1rem;
96
+ --ok-type-body-leading: 1.6;
97
+ --ok-type-card-body-size: 0.92rem;
98
+ --ok-type-card-body-leading: 1.55;
99
+ --ok-type-eyebrow-size: 0.72rem;
100
+ --ok-type-eyebrow-weight: 600;
101
+ --ok-type-eyebrow-leading: 1.2;
75
102
  }
76
103
 
77
104
  /* ── OSCURO (dark zinc, coherente con el light) ── */
package/dist/layout.css CHANGED
@@ -175,8 +175,9 @@
175
175
  align-self: flex-start;
176
176
  padding: 0.28rem 0.7rem;
177
177
  border-radius: 999px;
178
- font-size: 0.72rem;
179
- font-weight: 600;
178
+ font-size: var(--ok-type-eyebrow-size, 0.72rem);
179
+ font-weight: var(--ok-type-eyebrow-weight, 600);
180
+ line-height: var(--ok-type-eyebrow-leading, 1.2);
180
181
  letter-spacing: 0.04em;
181
182
  text-transform: uppercase;
182
183
  color: var(--ok-primary, var(--ion-color-primary, #1496d6));
@@ -190,17 +191,58 @@
190
191
 
191
192
  .ok-section-title {
192
193
  margin: 0;
193
- font-size: clamp(1.75rem, 1.1rem + 2.6vw, 2.85rem);
194
- line-height: 1.06;
194
+ font-family: var(--ok-font-display, var(--ok-font, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif));
195
+ font-size: var(--ok-type-section-title-size, clamp(1.75rem, 1.1rem + 2.6vw, 2.85rem));
196
+ line-height: var(--ok-type-section-title-leading, 1.06);
195
197
  letter-spacing: -0.025em;
196
- font-weight: 650;
198
+ font-weight: var(--ok-type-section-title-weight, 650);
197
199
  }
198
200
 
199
201
  .ok-section-sub {
200
202
  margin: 0;
201
- font-size: clamp(1rem, 0.95rem + 0.3vw, 1.15rem);
202
- line-height: 1.55;
203
+ font-size: var(--ok-type-intro-size, clamp(1rem, 0.95rem + 0.25vw, 1.125rem));
204
+ line-height: var(--ok-type-intro-leading, 1.6);
205
+ color: var(--ok-muted, rgba(var(--ion-text-color-rgb, 24, 24, 27), 0.62));
206
+ }
207
+
208
+ /* Tipografía editorial reutilizable fuera de los componentes. El display se
209
+ * reserva para el hero principal; page-title para cabeceras interiores e
210
+ * intro/body para el texto que las acompaña. */
211
+ .ok-display-title,
212
+ .ok-page-title {
213
+ margin: 0;
214
+ font-family: var(--ok-font-display, var(--ok-font, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif));
215
+ letter-spacing: -0.045em;
216
+ }
217
+
218
+ .ok-display-title {
219
+ font-size: var(--ok-type-display-size, clamp(3rem, 2.25rem + 3vw, 4.5rem));
220
+ font-weight: var(--ok-type-display-weight, 650);
221
+ line-height: var(--ok-type-display-leading, 1);
222
+ }
223
+
224
+ .ok-page-title {
225
+ font-size: var(--ok-type-page-title-size, clamp(2.35rem, 1.75rem + 2.6vw, 4rem));
226
+ font-weight: var(--ok-type-page-title-weight, 650);
227
+ line-height: var(--ok-type-page-title-leading, 1.04);
228
+ text-wrap: balance;
229
+ }
230
+
231
+ .ok-intro,
232
+ .ok-body {
233
+ margin: 0;
203
234
  color: var(--ok-muted, rgba(var(--ion-text-color-rgb, 24, 24, 27), 0.62));
235
+ text-wrap: pretty;
236
+ }
237
+
238
+ .ok-intro {
239
+ font-size: var(--ok-type-intro-size, clamp(1rem, 0.95rem + 0.25vw, 1.125rem));
240
+ line-height: var(--ok-type-intro-leading, 1.6);
241
+ }
242
+
243
+ .ok-body {
244
+ font-size: var(--ok-type-body-size, 1rem);
245
+ line-height: var(--ok-type-body-leading, 1.6);
204
246
  }
205
247
 
206
248
  /* ===== Tabla apilable (.ok-table-stack) — patrón «no more tables» =====
@@ -96,20 +96,26 @@ class OkBentoItem extends LitElement {
96
96
  mask: var(--u) center / contain no-repeat;
97
97
  }
98
98
  .eyebrow {
99
- font-size: 0.7rem;
100
- font-weight: 600;
99
+ font-size: var(--ok-type-eyebrow-size, 0.72rem);
100
+ font-weight: var(--ok-type-eyebrow-weight, 600);
101
+ line-height: var(--ok-type-eyebrow-leading, 1.2);
101
102
  letter-spacing: 0.05em;
102
103
  text-transform: uppercase;
103
104
  color: var(--muted);
104
105
  }
105
106
  .title {
106
107
  margin: 0;
107
- font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.35rem);
108
- font-weight: 620;
108
+ font-size: var(--ok-type-card-title-size, 1.15rem);
109
+ font-weight: var(--ok-type-card-title-weight, 620);
109
110
  letter-spacing: -0.015em;
110
- line-height: 1.2;
111
+ line-height: var(--ok-type-card-title-leading, 1.25);
112
+ }
113
+ ::slotted(p) {
114
+ margin: 0;
115
+ color: var(--muted);
116
+ font-size: var(--ok-type-card-body-size, 0.92rem);
117
+ line-height: var(--ok-type-card-body-leading, 1.55);
111
118
  }
112
- ::slotted(p) { margin: 0; color: var(--muted); line-height: 1.55; }
113
119
  `;
114
120
  }
115
121
  updated() {
@@ -68,31 +68,34 @@ class OkCtaBand extends LitElement {
68
68
  border: 1px solid color-mix(in oklab, var(--color) 12%, transparent);
69
69
  }
70
70
  .eyebrow {
71
- font-size: 0.74rem;
72
- font-weight: 600;
71
+ font-size: var(--ok-type-eyebrow-size, 0.72rem);
72
+ font-weight: var(--ok-type-eyebrow-weight, 600);
73
+ line-height: var(--ok-type-eyebrow-leading, 1.2);
73
74
  letter-spacing: 0.06em;
74
75
  text-transform: uppercase;
75
76
  color: var(--muted);
76
77
  }
77
78
  .title {
78
79
  margin: 0;
79
- font-size: clamp(1.7rem, 1.1rem + 2.8vw, 3rem);
80
- line-height: 1.08;
80
+ font-family: var(--ok-font-display, var(--ok-font, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif));
81
+ font-size: var(--ok-type-section-title-size, clamp(1.75rem, 1.1rem + 2.6vw, 2.85rem));
82
+ line-height: var(--ok-type-section-title-leading, 1.06);
81
83
  letter-spacing: -0.03em;
82
- font-weight: 680;
84
+ font-weight: var(--ok-type-section-title-weight, 650);
83
85
  max-width: 22ch;
84
86
  }
85
87
  ::slotted([slot='heading']) {
86
88
  margin: 0;
87
- font-size: clamp(1.7rem, 1.1rem + 2.8vw, 3rem);
88
- line-height: 1.08;
89
+ font-family: var(--ok-font-display, var(--ok-font, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif));
90
+ font-size: var(--ok-type-section-title-size, clamp(1.75rem, 1.1rem + 2.6vw, 2.85rem));
91
+ line-height: var(--ok-type-section-title-leading, 1.06);
89
92
  letter-spacing: -0.03em;
90
- font-weight: 680;
93
+ font-weight: var(--ok-type-section-title-weight, 650);
91
94
  }
92
95
  .sub {
93
96
  margin: 0;
94
- font-size: clamp(1rem, 0.95rem + 0.3vw, 1.2rem);
95
- line-height: 1.5;
97
+ font-size: var(--ok-type-intro-size, clamp(1rem, 0.95rem + 0.25vw, 1.125rem));
98
+ line-height: var(--ok-type-intro-leading, 1.6);
96
99
  color: var(--muted);
97
100
  max-width: 50ch;
98
101
  }
@@ -151,7 +151,7 @@ class OkDataTable extends LitElement {
151
151
  .tk-scrim { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.18); z-index: 19; }
152
152
  .drawer { position: absolute; top: 0; right: 0; height: 100%; width: 340px; max-width: 88%;
153
153
  background: var(--background); border-left: 1px solid var(--border-color);
154
- box-shadow: -10px 0 28px rgba(0, 0, 0, 0.10); display: flex; flex-direction: column; z-index: 20;
154
+ display: flex; flex-direction: column; z-index: 20;
155
155
  animation: tk-slide-in 0.18s ease; }
156
156
  @keyframes tk-slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
157
157
  .drawer .dh { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between;
@@ -91,23 +91,24 @@ class OkFeatureCard extends LitElement {
91
91
  mask: var(--u) center / contain no-repeat;
92
92
  }
93
93
  .eyebrow {
94
- font-size: 0.7rem;
95
- font-weight: 600;
94
+ font-size: var(--ok-type-eyebrow-size, 0.72rem);
95
+ font-weight: var(--ok-type-eyebrow-weight, 600);
96
+ line-height: var(--ok-type-eyebrow-leading, 1.2);
96
97
  letter-spacing: 0.05em;
97
98
  text-transform: uppercase;
98
99
  color: var(--muted);
99
100
  }
100
101
  .title {
101
102
  margin: 0;
102
- font-size: 1.15rem;
103
- font-weight: 620;
103
+ font-size: var(--ok-type-card-title-size, 1.15rem);
104
+ font-weight: var(--ok-type-card-title-weight, 620);
104
105
  letter-spacing: -0.015em;
105
- line-height: 1.25;
106
+ line-height: var(--ok-type-card-title-leading, 1.25);
106
107
  }
107
108
  .desc {
108
109
  color: var(--muted);
109
- font-size: 0.92rem;
110
- line-height: 1.55;
110
+ font-size: var(--ok-type-card-body-size, 0.92rem);
111
+ line-height: var(--ok-type-card-body-leading, 1.55);
111
112
  }
112
113
  ::slotted(*) { margin: 0; }
113
114
  `;
package/dist/ok-hero.js CHANGED
@@ -86,9 +86,9 @@ class OkHero extends LitElement {
86
86
  border-radius: 999px;
87
87
  color: var(--primary);
88
88
  background: color-mix(in oklab, var(--primary) 12%, transparent);
89
- font-size: 0.72rem;
90
- font-weight: 600;
91
- line-height: 1.2;
89
+ font-size: var(--ok-type-eyebrow-size, 0.72rem);
90
+ font-weight: var(--ok-type-eyebrow-weight, 600);
91
+ line-height: var(--ok-type-eyebrow-leading, 1.2);
92
92
  letter-spacing: 0.04em;
93
93
  text-transform: uppercase;
94
94
  }
@@ -111,14 +111,14 @@ class OkHero extends LitElement {
111
111
  max-width: 52rem;
112
112
  margin: 0;
113
113
  font-family: var(--font-display);
114
- font-size: clamp(2.35rem, 1.75rem + 2.6vw, 4rem);
115
- font-weight: 650;
116
- line-height: 1.04;
114
+ font-size: var(--ok-type-page-title-size, clamp(2.35rem, 1.75rem + 2.6vw, 4rem));
115
+ font-weight: var(--ok-type-page-title-weight, 650);
116
+ line-height: var(--ok-type-page-title-leading, 1.04);
117
117
  letter-spacing: -0.045em;
118
118
  text-wrap: balance;
119
119
  }
120
120
  :host([compact]) .title {
121
- font-size: clamp(2rem, 1.55rem + 2vw, 3.25rem);
121
+ font-size: var(--ok-type-page-title-compact-size, clamp(2rem, 1.55rem + 2vw, 3.25rem));
122
122
  }
123
123
  .title ::slotted([slot='title']) {
124
124
  margin: 0 !important;
@@ -135,8 +135,8 @@ class OkHero extends LitElement {
135
135
  max-width: 46rem;
136
136
  margin: 1.5rem 0 0;
137
137
  color: var(--color-muted);
138
- font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
139
- line-height: 1.6;
138
+ font-size: var(--ok-type-intro-size, clamp(1rem, 0.95rem + 0.25vw, 1.125rem));
139
+ line-height: var(--ok-type-intro-leading, 1.6);
140
140
  text-wrap: pretty;
141
141
  }
142
142
  .subtitle ::slotted([slot='subtitle']) {
package/dist/ok-navbar.js CHANGED
@@ -26,7 +26,9 @@ function adoptPanelSheet() {
26
26
  --height: 100%;
27
27
  --border-radius: 0;
28
28
  --background: var(--ok-surface, var(--ion-card-background, #ffffff));
29
- --box-shadow: -12px 0 40px rgba(0, 0, 0, 0.18);
29
+ /* Sin sombra lateral (decisión 2026-07-19, paneles laterales de SaaS y Hub): "none"
30
+ explícito para no caer al default de ion-modal; el backdrop separa. */
31
+ --box-shadow: none;
30
32
  /* El host del modal es un flex que centra el wrapper: lo anclamos a la derecha. */
31
33
  justify-content: flex-end;
32
34
  align-items: stretch;
@@ -78,8 +78,9 @@ class OkProductCard extends LitElement {
78
78
  mask: var(--u) center / contain no-repeat;
79
79
  }
80
80
  .cat {
81
- font-size: 0.68rem;
82
- font-weight: 600;
81
+ font-size: var(--ok-type-eyebrow-size, 0.72rem);
82
+ font-weight: var(--ok-type-eyebrow-weight, 600);
83
+ line-height: var(--ok-type-eyebrow-leading, 1.2);
83
84
  letter-spacing: 0.05em;
84
85
  text-transform: uppercase;
85
86
  color: var(--muted);
@@ -97,15 +98,15 @@ class OkProductCard extends LitElement {
97
98
  }
98
99
  .name {
99
100
  margin: 0.3rem 0 0;
100
- font-size: 1.05rem;
101
- font-weight: 620;
101
+ font-size: var(--ok-type-card-title-size, 1.15rem);
102
+ font-weight: var(--ok-type-card-title-weight, 620);
102
103
  letter-spacing: -0.01em;
103
- line-height: 1.25;
104
+ line-height: var(--ok-type-card-title-leading, 1.25);
104
105
  }
105
106
  .desc {
106
107
  color: var(--muted);
107
- font-size: 0.88rem;
108
- line-height: 1.5;
108
+ font-size: var(--ok-type-card-body-size, 0.92rem);
109
+ line-height: var(--ok-type-card-body-leading, 1.55);
109
110
  flex: 1;
110
111
  }
111
112
  .foot {