juxscript 1.1.144 → 1.1.147

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.
@@ -144,6 +144,70 @@ export declare abstract class BaseComponent<TState extends BaseState = BaseState
144
144
  protected _isTriggerEvent(event: string): boolean;
145
145
  protected _isCallbackEvent(event: string): boolean;
146
146
  protected _triggerCallback(eventName: string, ...args: any[]): void;
147
+ /**
148
+ * Register a click event handler
149
+ */
150
+ click(handler: (e: MouseEvent) => void): this;
151
+ /**
152
+ * Register a double-click event handler
153
+ */
154
+ dblclick(handler: (e: MouseEvent) => void): this;
155
+ /**
156
+ * Register a change event handler
157
+ */
158
+ change(handler: (e: Event) => void): this;
159
+ /**
160
+ * Register an input event handler
161
+ */
162
+ input(handler: (e: Event) => void): this;
163
+ /**
164
+ * Register a mouseover event handler
165
+ */
166
+ hover(handler: (e: MouseEvent) => void): this;
167
+ /**
168
+ * Register a mouseout event handler
169
+ */
170
+ mouseout(handler: (e: MouseEvent) => void): this;
171
+ /**
172
+ * Register a mousedown event handler
173
+ */
174
+ mousedown(handler: (e: MouseEvent) => void): this;
175
+ /**
176
+ * Register a mouseup event handler
177
+ */
178
+ mouseup(handler: (e: MouseEvent) => void): this;
179
+ /**
180
+ * Register a focus event handler (renamed to onFocus to avoid conflict with focus() method)
181
+ */
182
+ onFocus(handler: (e: FocusEvent) => void): this;
183
+ /**
184
+ * Register a blur event handler (renamed to onBlur to avoid conflict with blur() method)
185
+ */
186
+ onBlur(handler: (e: FocusEvent) => void): this;
187
+ /**
188
+ * Register a keydown event handler
189
+ */
190
+ keydown(handler: (e: KeyboardEvent) => void): this;
191
+ /**
192
+ * Register a keyup event handler
193
+ */
194
+ keyup(handler: (e: KeyboardEvent) => void): this;
195
+ /**
196
+ * Register a keypress event handler
197
+ */
198
+ keypress(handler: (e: KeyboardEvent) => void): this;
199
+ /**
200
+ * Register a submit event handler
201
+ */
202
+ submit(handler: (e: Event) => void): this;
203
+ /**
204
+ * Register a scroll event handler
205
+ */
206
+ scroll(handler: (e: Event) => void): this;
207
+ /**
208
+ * Register a contextmenu (right-click) event handler
209
+ */
210
+ contextmenu(handler: (e: MouseEvent) => void): this;
147
211
  /**
148
212
  * Roll back to previous state
149
213
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BaseComponent.d.ts","sourceRoot":"","sources":["BaseComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseComponent.d.ts","sourceRoot":"","sources":["BaseComponent.ts"],"names":[],"mappings":"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"}
@@ -343,6 +343,105 @@ export class BaseComponent {
343
343
  handler(...args);
344
344
  }
345
345
  }
346
+ /* ═════════════════════════════════════════════════════════════════
347
+ * FLUENT EVENT SHORTHANDS
348
+ * ═════════════════════════════════════════════════════════════════ */
349
+ /**
350
+ * Register a click event handler
351
+ */
352
+ click(handler) {
353
+ return this.bind('click', handler);
354
+ }
355
+ /**
356
+ * Register a double-click event handler
357
+ */
358
+ dblclick(handler) {
359
+ return this.bind('dblclick', handler);
360
+ }
361
+ /**
362
+ * Register a change event handler
363
+ */
364
+ change(handler) {
365
+ return this.bind('change', handler);
366
+ }
367
+ /**
368
+ * Register an input event handler
369
+ */
370
+ input(handler) {
371
+ return this.bind('input', handler);
372
+ }
373
+ /**
374
+ * Register a mouseover event handler
375
+ */
376
+ hover(handler) {
377
+ return this.bind('mouseover', handler);
378
+ }
379
+ /**
380
+ * Register a mouseout event handler
381
+ */
382
+ mouseout(handler) {
383
+ return this.bind('mouseout', handler);
384
+ }
385
+ /**
386
+ * Register a mousedown event handler
387
+ */
388
+ mousedown(handler) {
389
+ return this.bind('mousedown', handler);
390
+ }
391
+ /**
392
+ * Register a mouseup event handler
393
+ */
394
+ mouseup(handler) {
395
+ return this.bind('mouseup', handler);
396
+ }
397
+ /**
398
+ * Register a focus event handler (renamed to onFocus to avoid conflict with focus() method)
399
+ */
400
+ onFocus(handler) {
401
+ return this.bind('focus', handler);
402
+ }
403
+ /**
404
+ * Register a blur event handler (renamed to onBlur to avoid conflict with blur() method)
405
+ */
406
+ onBlur(handler) {
407
+ return this.bind('blur', handler);
408
+ }
409
+ /**
410
+ * Register a keydown event handler
411
+ */
412
+ keydown(handler) {
413
+ return this.bind('keydown', handler);
414
+ }
415
+ /**
416
+ * Register a keyup event handler
417
+ */
418
+ keyup(handler) {
419
+ return this.bind('keyup', handler);
420
+ }
421
+ /**
422
+ * Register a keypress event handler
423
+ */
424
+ keypress(handler) {
425
+ return this.bind('keypress', handler);
426
+ }
427
+ /**
428
+ * Register a submit event handler
429
+ */
430
+ submit(handler) {
431
+ return this.bind('submit', handler);
432
+ }
433
+ /**
434
+ * Register a scroll event handler
435
+ */
436
+ scroll(handler) {
437
+ return this.bind('scroll', handler);
438
+ }
439
+ /**
440
+ * Register a contextmenu (right-click) event handler
441
+ */
442
+ contextmenu(handler) {
443
+ return this.bind('contextmenu', handler);
444
+ }
346
445
  /* ═════════════════════════════════════════════════════════════════
347
446
  * TIME-TRAVEL DEBUGGING (PUBLIC API)
348
447
  * ═════════════════════════════════════════════════════════════════ */
@@ -430,6 +430,122 @@ export abstract class BaseComponent<TState extends BaseState = BaseState> {
430
430
  }
431
431
  }
432
432
 
433
+ /* ═════════════════════════════════════════════════════════════════
434
+ * FLUENT EVENT SHORTHANDS
435
+ * ═════════════════════════════════════════════════════════════════ */
436
+
437
+ /**
438
+ * Register a click event handler
439
+ */
440
+ click(handler: (e: MouseEvent) => void): this {
441
+ return this.bind('click', handler);
442
+ }
443
+
444
+ /**
445
+ * Register a double-click event handler
446
+ */
447
+ dblclick(handler: (e: MouseEvent) => void): this {
448
+ return this.bind('dblclick', handler);
449
+ }
450
+
451
+ /**
452
+ * Register a change event handler
453
+ */
454
+ change(handler: (e: Event) => void): this {
455
+ return this.bind('change', handler);
456
+ }
457
+
458
+ /**
459
+ * Register an input event handler
460
+ */
461
+ input(handler: (e: Event) => void): this {
462
+ return this.bind('input', handler);
463
+ }
464
+
465
+ /**
466
+ * Register a mouseover event handler
467
+ */
468
+ hover(handler: (e: MouseEvent) => void): this {
469
+ return this.bind('mouseover', handler);
470
+ }
471
+
472
+ /**
473
+ * Register a mouseout event handler
474
+ */
475
+ mouseout(handler: (e: MouseEvent) => void): this {
476
+ return this.bind('mouseout', handler);
477
+ }
478
+
479
+ /**
480
+ * Register a mousedown event handler
481
+ */
482
+ mousedown(handler: (e: MouseEvent) => void): this {
483
+ return this.bind('mousedown', handler);
484
+ }
485
+
486
+ /**
487
+ * Register a mouseup event handler
488
+ */
489
+ mouseup(handler: (e: MouseEvent) => void): this {
490
+ return this.bind('mouseup', handler);
491
+ }
492
+
493
+ /**
494
+ * Register a focus event handler (renamed to onFocus to avoid conflict with focus() method)
495
+ */
496
+ onFocus(handler: (e: FocusEvent) => void): this {
497
+ return this.bind('focus', handler);
498
+ }
499
+
500
+ /**
501
+ * Register a blur event handler (renamed to onBlur to avoid conflict with blur() method)
502
+ */
503
+ onBlur(handler: (e: FocusEvent) => void): this {
504
+ return this.bind('blur', handler);
505
+ }
506
+
507
+ /**
508
+ * Register a keydown event handler
509
+ */
510
+ keydown(handler: (e: KeyboardEvent) => void): this {
511
+ return this.bind('keydown', handler);
512
+ }
513
+
514
+ /**
515
+ * Register a keyup event handler
516
+ */
517
+ keyup(handler: (e: KeyboardEvent) => void): this {
518
+ return this.bind('keyup', handler);
519
+ }
520
+
521
+ /**
522
+ * Register a keypress event handler
523
+ */
524
+ keypress(handler: (e: KeyboardEvent) => void): this {
525
+ return this.bind('keypress', handler);
526
+ }
527
+
528
+ /**
529
+ * Register a submit event handler
530
+ */
531
+ submit(handler: (e: Event) => void): this {
532
+ return this.bind('submit', handler);
533
+ }
534
+
535
+ /**
536
+ * Register a scroll event handler
537
+ */
538
+ scroll(handler: (e: Event) => void): this {
539
+ return this.bind('scroll', handler);
540
+ }
541
+
542
+ /**
543
+ * Register a contextmenu (right-click) event handler
544
+ */
545
+ contextmenu(handler: (e: MouseEvent) => void): this {
546
+ return this.bind('contextmenu', handler);
547
+ }
548
+
433
549
  /* ═════════════════════════════════════════════════════════════════
434
550
  * TIME-TRAVEL DEBUGGING (PUBLIC API)
435
551
  * ═════════════════════════════════════════════════════════════════ */
@@ -43,14 +43,15 @@
43
43
 
44
44
  /* ═════════════════════════════════════════════════════════════════
45
45
  * 📏 SPACING SCALE (Base units for padding, gap, margins)
46
+ * ✅ MORE GENEROUS - Premium feel
46
47
  * ═════════════════════════════════════════════════════════════════ */
47
- --jux-space-xs: 0.25rem;
48
- --jux-space-sm: 0.5rem;
49
- --jux-space-md: 1rem;
50
- --jux-space-lg: 1.5rem;
51
- --jux-space-xl: 2rem;
52
- --jux-space-2xl: 3rem;
53
- --jux-space-3xl: 4rem;
48
+ --jux-space-xs: 0.375rem; /* 6px */
49
+ --jux-space-sm: 0.75rem; /* 12px */
50
+ --jux-space-md: 1rem; /* 16px - ✅ Increased */
51
+ --jux-space-lg: 1.5rem; /* 24px - ✅ Increased */
52
+ --jux-space-xl: 2.5rem; /* 40px - ✅ Increased */
53
+ --jux-space-2xl: 3.5rem; /* 56px - ✅ Increased */
54
+ --jux-space-3xl: 5rem; /* 80px - ✅ Increased */
54
55
 
55
56
  /* ═════════════════════════════════════════════════════════════════
56
57
  * 🔤 TYPOGRAPHY SCALE
@@ -321,27 +322,32 @@ html {
321
322
  .jux-button {
322
323
  /* Colors */
323
324
  background: var(--jux-brand-bg);
324
- color: #fff;
325
+ color: var(--jux-surface-from);
325
326
  border: var(--jux-stroke) solid var(--jux-border-color);
326
327
 
327
328
  /* Shape */
328
329
  border-radius: var(--jux-radius);
329
330
 
330
- /* Size */
331
- padding: var(--jux-pad, var(--jux-space-md));
331
+ /* Size - ✅ MORE GENEROUS PADDING */
332
+ padding: 0.75rem 1.5rem; /* ✅ 12px 24px - much better */
332
333
  font-size: var(--jux-font-size);
333
- font-weight: var(--jux-weight-medium);
334
+ font-weight: var(--jux-weight-semibold); /* ✅ Bolder */
334
335
  font-family: var(--jux-font-family);
336
+ letter-spacing: 0.025em; /* ✅ Subtle spacing for premium feel */
335
337
 
336
338
  /* Layout */
337
339
  display: inline-flex;
338
340
  align-items: center;
339
341
  gap: var(--jux-space-sm);
340
342
 
343
+ /* ✅ PREMIUM SHADOWS */
344
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08),
345
+ 0 1px 2px rgba(0, 0, 0, 0.06);
346
+
341
347
  /* Interaction */
342
348
  cursor: pointer;
343
349
  user-select: none;
344
- transition: all 0.15s ease;
350
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); /* ✅ Smoother easing */
345
351
  line-height: 1;
346
352
  text-decoration: none;
347
353
  }
@@ -349,20 +355,28 @@ html {
349
355
  /* States use burn calculations */
350
356
  .jux-button:hover:not(:disabled) {
351
357
  background: var(--jux-brand-color-hover);
358
+ transform: translateY(-1px); /* ✅ Subtle lift */
359
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1),
360
+ 0 2px 4px rgba(0, 0, 0, 0.06);
352
361
  }
353
362
 
354
363
  .jux-button:active:not(:disabled) {
355
364
  background: var(--jux-brand-color-active);
365
+ transform: translateY(0); /* ✅ Press down */
366
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
356
367
  }
357
368
 
358
369
  .jux-button:focus {
359
370
  outline: none;
360
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--jux-brand-bg) 30%, transparent 70%);
371
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--jux-brand-bg) 30%, transparent 70%),
372
+ 0 1px 3px rgba(0, 0, 0, 0.08);
361
373
  }
362
374
 
363
375
  .jux-button:disabled {
364
376
  opacity: var(--jux-burn-strong);
365
377
  cursor: not-allowed;
378
+ transform: none;
379
+ box-shadow: none;
366
380
  }
367
381
 
368
382
  /* ══════════════════════════════════════════════════════════════════
@@ -456,7 +470,7 @@ html {
456
470
  ══════════════════════════════════════════════════════════════════ */
457
471
 
458
472
  .jux-button-small {
459
- padding: calc(var(--jux-space-sm) * 0.75) calc(var(--jux-space-md) * 0.75);
473
+ padding: 0.5rem 1rem; /* ✅ 8px 16px */
460
474
  font-size: calc(var(--jux-text-base) * var(--jux-size-sm));
461
475
  }
462
476
 
@@ -465,7 +479,7 @@ html {
465
479
  }
466
480
 
467
481
  .jux-button-large {
468
- padding: calc(var(--jux-space-md) * 1.25) calc(var(--jux-space-lg) * 1.25);
482
+ padding: 1rem 2rem; /* 16px 32px */
469
483
  font-size: calc(var(--jux-text-base) * var(--jux-size-lg));
470
484
  }
471
485
 
@@ -479,11 +493,13 @@ html {
479
493
  font-weight: var(--jux-weight-bold);
480
494
  line-height: var(--jux-leading-tight);
481
495
  color: var(--jux-text-color);
496
+ letter-spacing: -0.025em; /* ✅ Tighter for headings */
482
497
  }
483
498
 
484
499
  .jux-heading-1 {
485
500
  font-size: var(--jux-text-4xl);
486
501
  font-weight: var(--jux-weight-black);
502
+ letter-spacing: -0.04em; /* ✅ Even tighter for h1 */
487
503
  }
488
504
 
489
505
  .jux-heading-2 {
@@ -520,6 +536,7 @@ html {
520
536
  font-family: var(--jux-font-family);
521
537
  font-size: var(--jux-text-base);
522
538
  font-weight: var(--jux-weight-normal);
523
- line-height: var(--jux-leading-normal);
539
+ line-height: var(--jux-leading-relaxed); /* ✅ More breathing room */
524
540
  color: var(--jux-text-color);
541
+ max-width: 65ch; /* ✅ Better readability */
525
542
  }
@@ -1,80 +1,132 @@
1
- /* ═══════════════════════════════════════════════════════════════════
2
- * STACK LAYOUT COMPONENTS
3
- * Pure layout structure - no animations, no modifiers
4
- * ═══════════════════════════════════════════════════════════════════ */
1
+ /* ══════════════════════════════════════════════════════════════════
2
+ JUX STACKS - Layout System
3
+ Uses foundation tokens for spacing, auto-adapts to themes
4
+ ══════════════════════════════════════════════════════════════════ */
5
5
 
6
- /* Vertical Stack */
7
- .jux-vstack {
6
+ /* ═════════════════════════════════════════════════════════════════
7
+ * BASE STACK STYLES
8
+ * ═════════════════════════════════════════════════════════════════ */
9
+
10
+ .jux-vstack,
11
+ .jux-hstack,
12
+ .jux-zstack {
8
13
  display: flex;
14
+
15
+ /* ✅ Use CSS variables from foundation/theme */
16
+ gap: var(--jux-gap);
17
+ padding: var(--jux-pad);
18
+
19
+ /* Default alignment */
20
+ align-items: var(--jux-align, flex-start);
21
+ }
22
+
23
+ /* ═════════════════════════════════════════════════════════════════
24
+ * VERTICAL STACK (Column)
25
+ * ═════════════════════════════════════════════════════════════════ */
26
+
27
+ .jux-vstack {
9
28
  flex-direction: column;
10
29
  }
11
30
 
12
- .jux-vstack-tight { gap: 0.5rem; }
13
- .jux-vstack-loose { gap: 1.5rem; }
14
- .jux-vstack-none { gap: 0; }
31
+ /* ═════════════════════════════════════════════════════════════════
32
+ * HORIZONTAL STACK (Row)
33
+ * ═════════════════════════════════════════════════════════════════ */
15
34
 
16
- /* Horizontal Stack */
17
35
  .jux-hstack {
18
- display: flex;
19
36
  flex-direction: row;
20
- align-items: center;
37
+ flex-wrap: wrap; /* Allow wrapping on mobile */
21
38
  }
22
39
 
23
- .jux-hstack-tight { gap: 0.5rem; }
24
- .jux-hstack-loose { gap: 1.5rem; }
25
- .jux-hstack-none { gap: 0; }
40
+ /* ═════════════════════════════════════════════════════════════════
41
+ * Z-STACK (Layered)
42
+ * ═════════════════════════════════════════════════════════════════ */
26
43
 
27
- /* Z-Stack (Layered/Overlapping) */
28
44
  .jux-zstack {
29
- display: grid;
30
- grid-template-columns: 1fr;
31
- grid-template-rows: 1fr;
32
45
  position: relative;
46
+ flex-direction: column;
33
47
  }
34
48
 
35
49
  .jux-zstack > * {
36
- grid-column: 1;
37
- grid-row: 1;
50
+ position: absolute;
51
+ top: 0;
52
+ left: 0;
38
53
  }
39
54
 
40
- .jux-zstack-tight > * { margin: 0.25rem; }
41
- .jux-zstack-loose > * { margin: 0.75rem; }
42
- .jux-zstack-none > * { margin: 0; }
43
-
44
- /* Stack Alignment Options */
45
- .jux-stack-start { align-items: flex-start; }
46
- .jux-stack-center { align-items: center; }
47
- .jux-stack-end { align-items: flex-end; }
48
- .jux-stack-stretch { align-items: stretch; }
49
-
50
- /* Stack Justification Options */
51
- .jux-stack-justify-start { justify-content: flex-start; }
52
- .jux-stack-justify-center { justify-content: center; }
53
- .jux-stack-justify-end { justify-content: flex-end; }
54
- .jux-stack-justify-between { justify-content: space-between; }
55
- .jux-stack-justify-around { justify-content: space-around; }
56
- .jux-stack-justify-evenly { justify-content: space-evenly; }
57
-
58
- /* Responsive Stacks */
55
+ /* ═════════════════════════════════════════════════════════════════
56
+ * ALIGNMENT UTILITIES (Via CSS Variables)
57
+ * Applied via .align-* descriptor classes
58
+ * ═════════════════════════════════════════════════════════════════ */
59
+
60
+ .align-start { --jux-align: flex-start; }
61
+ .align-center { --jux-align: center; }
62
+ .align-end { --jux-align: flex-end; }
63
+ .align-stretch { --jux-align: stretch; }
64
+ .align-baseline { --jux-align: baseline; }
65
+
66
+ /* ═════════════════════════════════════════════════════════════════
67
+ * JUSTIFY CONTENT (For HStack distribution)
68
+ * ═════════════════════════════════════════════════════════════════ */
69
+
70
+ .justify-start { justify-content: flex-start; }
71
+ .justify-center { justify-content: center; }
72
+ .justify-end { justify-content: flex-end; }
73
+ .justify-between { justify-content: space-between; }
74
+ .justify-around { justify-content: space-around; }
75
+ .justify-evenly { justify-content: space-evenly; }
76
+
77
+ /* ═════════════════════════════════════════════════════════════════
78
+ * RESPONSIVE BEHAVIOR
79
+ * HStack becomes VStack on mobile for better UX
80
+ * ═════════════════════════════════════════════════════════════════ */
81
+
59
82
  @media (max-width: 768px) {
60
- .jux-hstack-responsive {
83
+ .jux-hstack {
61
84
  flex-direction: column;
85
+ /* Gap remains consistent via CSS variables */
86
+ }
87
+
88
+ /* Optional: Force HStack to stay horizontal on mobile */
89
+ .jux-hstack.stay-horizontal {
90
+ flex-direction: row;
62
91
  }
63
92
  }
64
93
 
65
- /* Stack with Dividers */
66
- .jux-vstack-divider > *:not(:last-child) {
67
- padding-bottom: 1rem;
68
- border-bottom: 1px solid #e4e4e7;
69
- margin-bottom: 1rem;
94
+ /* ═════════════════════════════════════════════════════════════════
95
+ * FULL WIDTH/HEIGHT UTILITIES
96
+ * ═════════════════════════════════════════════════════════════════ */
97
+
98
+ .full-width {
99
+ width: 100%;
100
+ }
101
+
102
+ .full-height {
103
+ height: 100%;
104
+ min-height: 100vh;
105
+ }
106
+
107
+ /* ═════════════════════════════════════════════════════════════════
108
+ * CENTERED CONTENT (Common Layout Pattern)
109
+ * ═════════════════════════════════════════════════════════════════ */
110
+
111
+ .center-content {
112
+ justify-content: center;
113
+ align-items: center;
114
+ }
115
+
116
+ /* ═════════════════════════════════════════════════════════════════
117
+ * SCROLL BEHAVIOR
118
+ * ═════════════════════════════════════════════════════════════════ */
119
+
120
+ .scroll-x {
121
+ overflow-x: auto;
122
+ overflow-y: hidden;
70
123
  }
71
124
 
72
- .jux-hstack-divider > *:not(:last-child) {
73
- padding-right: 1rem;
74
- border-right: 1px solid #e4e4e7;
75
- margin-right: 1rem;
125
+ .scroll-y {
126
+ overflow-y: auto;
127
+ overflow-x: hidden;
76
128
  }
77
129
 
78
- .jux-zstack-divider > * {
79
- border: 1px solid #e4e4e7;
130
+ .scroll-both {
131
+ overflow: auto;
80
132
  }
@@ -41,14 +41,14 @@
41
41
  --jux-radius-2xl: 1.5rem;
42
42
  --jux-radius-full: 9999px;
43
43
 
44
- /* Spacing - Generous (Apple loves whitespace) */
45
- --jux-space-xs: 0.5rem;
46
- --jux-space-sm: 0.75rem;
47
- --jux-space-md: 1.25rem;
48
- --jux-space-lg: 2rem;
49
- --jux-space-xl: 3rem;
50
- --jux-space-2xl: 4rem;
51
- --jux-space-3xl: 6rem;
44
+ /* Spacing - MORE GENEROUS */
45
+ --jux-space-xs: 0.5rem; /* 8px */
46
+ --jux-space-sm: 0.75rem; /* 12px */
47
+ --jux-space-md: 1rem; /* 16px */
48
+ --jux-space-lg: 1.75rem; /* 28px - ✅ Increased */
49
+ --jux-space-xl: 2.5rem; /* 40px - ✅ Increased */
50
+ --jux-space-2xl: 3.5rem; /* 56px - ✅ Increased */
51
+ --jux-space-3xl: 5rem; /* 80px - ✅ Increased */
52
52
 
53
53
  /* Typography - San Francisco inspired */
54
54
  --jux-font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", sans-serif;
@@ -63,6 +63,10 @@
63
63
  --jux-burn-active: 0.08;
64
64
  --jux-burn-muted: 0.3;
65
65
  --jux-burn-strong: 0.6;
66
+
67
+ /* ✅ DEFAULT STACK SPACING - More breathing room */
68
+ --jux-gap-token: var(--jux-space-md); /* 16px */
69
+ --jux-pad-token: var(--jux-space-xl); /* 40px */
66
70
  }
67
71
 
68
72
  [data-swag="apple"][data-mode="dark"] {
@@ -80,7 +84,9 @@
80
84
  --jux-border-from: #38383a;
81
85
  --jux-border-to: #545456;
82
86
 
83
- /* Radius, spacing, typography inherited from light mode */
87
+ /* DEFAULT STACK SPACING */
88
+ --jux-gap-token: var(--jux-space-md);
89
+ --jux-pad-token: var(--jux-space-lg);
84
90
  }
85
91
 
86
92
  /* ══════════════════════════════════════════════════════════════════
@@ -88,17 +94,21 @@
88
94
  ══════════════════════════════════════════════════════════════════ */
89
95
 
90
96
  [data-swag="google"][data-mode="light"] {
97
+ /* Brand Colors */
91
98
  --jux-brand-from: #4285f4;
92
99
  --jux-brand-to: #1a73e8;
93
100
  --jux-brand-accent-from: #34a853;
94
101
  --jux-brand-accent-to: #0d652d;
95
102
 
103
+ /* Surfaces */
96
104
  --jux-surface-from: #ffffff;
97
105
  --jux-surface-to: #f8f9fa;
98
106
 
107
+ /* Text */
99
108
  --jux-text-from: #202124;
100
109
  --jux-text-to: #5f6368;
101
110
 
111
+ /* Borders */
102
112
  --jux-border-from: #dadce0;
103
113
  --jux-border-to: #5f6368;
104
114
 
@@ -111,14 +121,14 @@
111
121
  --jux-radius-2xl: 1.25rem;
112
122
  --jux-radius-full: 9999px;
113
123
 
114
- /* Spacing - Standard Material */
115
- --jux-space-xs: 0.25rem;
116
- --jux-space-sm: 0.5rem;
124
+ /* Spacing - MORE GENEROUS */
125
+ --jux-space-xs: 0.5rem;
126
+ --jux-space-sm: 0.75rem;
117
127
  --jux-space-md: 1rem;
118
- --jux-space-lg: 1.5rem;
119
- --jux-space-xl: 2rem;
120
- --jux-space-2xl: 3rem;
121
- --jux-space-3xl: 4rem;
128
+ --jux-space-lg: 1.5rem; /* ✅ Increased */
129
+ --jux-space-xl: 2.5rem; /* ✅ Increased */
130
+ --jux-space-2xl: 3.5rem; /* ✅ Increased */
131
+ --jux-space-3xl: 5rem; /* ✅ Increased */
122
132
 
123
133
  /* Typography - Roboto */
124
134
  --jux-font-sans: "Roboto", "Helvetica", "Arial", sans-serif;
@@ -133,6 +143,10 @@
133
143
  --jux-burn-active: 0.15;
134
144
  --jux-burn-muted: 0.25;
135
145
  --jux-burn-strong: 0.5;
146
+
147
+ /* ✅ DEFAULT STACK SPACING */
148
+ --jux-gap-token: var(--jux-space-md); /* 16px */
149
+ --jux-pad-token: var(--jux-space-lg); /* 24px */
136
150
  }
137
151
 
138
152
  [data-swag="google"][data-mode="dark"] {
@@ -149,6 +163,10 @@
149
163
 
150
164
  --jux-border-from: #3c4043;
151
165
  --jux-border-to: #5f6368;
166
+
167
+ /* ✅ DEFAULT STACK SPACING */
168
+ --jux-gap-token: var(--jux-space-sm);
169
+ --jux-pad-token: var(--jux-space-md);
152
170
  }
153
171
 
154
172
  /* ══════════════════════════════════════════════════════════════════
@@ -156,17 +174,21 @@
156
174
  ══════════════════════════════════════════════════════════════════ */
157
175
 
158
176
  [data-swag="stripe"][data-mode="light"] {
177
+ /* Brand Colors */
159
178
  --jux-brand-from: #635bff;
160
179
  --jux-brand-to: #0a2540;
161
180
  --jux-brand-accent-from: #00d4ff;
162
181
  --jux-brand-accent-to: #0073e6;
163
182
 
183
+ /* Surfaces */
164
184
  --jux-surface-from: #ffffff;
165
185
  --jux-surface-to: #f6f9fc;
166
186
 
187
+ /* Text */
167
188
  --jux-text-from: #0a2540;
168
189
  --jux-text-to: #425466;
169
190
 
191
+ /* Borders */
170
192
  --jux-border-from: #e3e8ee;
171
193
  --jux-border-to: #cbd2d9;
172
194
 
@@ -179,7 +201,7 @@
179
201
  --jux-radius-2xl: 1rem;
180
202
  --jux-radius-full: 9999px;
181
203
 
182
- /* Spacing - Tight, efficient */
204
+ /* Spacing - UNCHANGED (already tight) */
183
205
  --jux-space-xs: 0.25rem;
184
206
  --jux-space-sm: 0.5rem;
185
207
  --jux-space-md: 1rem;
@@ -201,6 +223,10 @@
201
223
  --jux-burn-active: 0.08;
202
224
  --jux-burn-muted: 0.3;
203
225
  --jux-burn-strong: 0.5;
226
+
227
+ /* ✅ DEFAULT STACK SPACING - Reduced */
228
+ --jux-gap-token: var(--jux-space-sm); /* 8px instead of 16px */
229
+ --jux-pad-token: var(--jux-space-md); /* 16px instead of 16px (same) */
204
230
  }
205
231
 
206
232
  [data-swag="stripe"][data-mode="dark"] {
@@ -217,6 +243,10 @@
217
243
 
218
244
  --jux-border-from: #1a365d;
219
245
  --jux-border-to: #2d4a6f;
246
+
247
+ /* ✅ DEFAULT STACK SPACING */
248
+ --jux-gap-token: var(--jux-space-sm);
249
+ --jux-pad-token: var(--jux-space-md);
220
250
  }
221
251
 
222
252
  /* ══════════════════════════════════════════════════════════════════
@@ -224,17 +254,21 @@
224
254
  ══════════════════════════════════════════════════════════════════ */
225
255
 
226
256
  [data-swag="gumroad"][data-mode="light"] {
257
+ /* Brand Colors */
227
258
  --jux-brand-from: #ff90e8;
228
259
  --jux-brand-to: #ff5ac4;
229
260
  --jux-brand-accent-from: #36d9b8;
230
261
  --jux-brand-accent-to: #1ead8a;
231
262
 
263
+ /* Surfaces */
232
264
  --jux-surface-from: #ffffff;
233
265
  --jux-surface-to: #f9f9f9;
234
266
 
267
+ /* Text */
235
268
  --jux-text-from: #000000;
236
269
  --jux-text-to: #999999;
237
270
 
271
+ /* Borders */
238
272
  --jux-border-from: #e6e6e6;
239
273
  --jux-border-to: #cccccc;
240
274
 
@@ -247,28 +281,18 @@
247
281
  --jux-radius-2xl: 2rem;
248
282
  --jux-radius-full: 9999px;
249
283
 
250
- /* Spacing - Generous (creative needs room) */
251
- --jux-space-xs: 0.5rem;
252
- --jux-space-sm: 0.75rem;
253
- --jux-space-md: 1.25rem;
254
- --jux-space-lg: 2rem;
255
- --jux-space-xl: 3rem;
256
- --jux-space-2xl: 4rem;
257
- --jux-space-3xl: 6rem;
258
-
259
- /* Typography - Mabry (fallback to rounded sans) */
260
- --jux-font-sans: "Mabry", "Circular", -apple-system, sans-serif;
261
- --jux-weight-normal: 400;
262
- --jux-weight-medium: 500;
263
- --jux-weight-semibold: 600;
264
- --jux-weight-bold: 700;
265
-
266
- /* Burn Factors - Vibrant transitions */
267
- --jux-burn-subtle: 0.05;
268
- --jux-burn-hover: 0.1;
269
- --jux-burn-active: 0.15;
270
- --jux-burn-muted: 0.25;
271
- --jux-burn-strong: 0.4;
284
+ /* Spacing - REDUCED (was way too generous) */
285
+ --jux-space-xs: 0.25rem; /* 4px */
286
+ --jux-space-sm: 0.5rem; /* 8px */
287
+ --jux-space-md: 0.75rem; /* 12px */
288
+ --jux-space-lg: 1.25rem; /* 20px */
289
+ --jux-space-xl: 2rem; /* 32px */
290
+ --jux-space-2xl: 2.5rem; /* 40px */
291
+ --jux-space-3xl: 4rem; /* 64px */
292
+
293
+ /* DEFAULT STACK SPACING - Much more reasonable */
294
+ --jux-gap-token: var(--jux-space-md); /* 12px instead of 48px */
295
+ --jux-pad-token: var(--jux-space-lg); /* 20px instead of 64px */
272
296
  }
273
297
 
274
298
  [data-swag="gumroad"][data-mode="dark"] {
@@ -285,6 +309,10 @@
285
309
 
286
310
  --jux-border-from: #333333;
287
311
  --jux-border-to: #666666;
312
+
313
+ /* ✅ DEFAULT STACK SPACING */
314
+ --jux-gap-token: var(--jux-space-md);
315
+ --jux-pad-token: var(--jux-space-lg);
288
316
  }
289
317
 
290
318
  /* ══════════════════════════════════════════════════════════════════
@@ -292,17 +320,21 @@
292
320
  ══════════════════════════════════════════════════════════════════ */
293
321
 
294
322
  [data-swag="meta"][data-mode="light"] {
323
+ /* Brand Colors */
295
324
  --jux-brand-from: #0866ff;
296
325
  --jux-brand-to: #0554e5;
297
326
  --jux-brand-accent-from: #0bc15c;
298
327
  --jux-brand-accent-to: #089e48;
299
328
 
329
+ /* Surfaces */
300
330
  --jux-surface-from: #ffffff;
301
331
  --jux-surface-to: #f0f2f5;
302
332
 
333
+ /* Text */
303
334
  --jux-text-from: #050505;
304
335
  --jux-text-to: #65676b;
305
336
 
337
+ /* Borders */
306
338
  --jux-border-from: #ced0d4;
307
339
  --jux-border-to: #bcc0c4;
308
340
 
@@ -315,7 +347,7 @@
315
347
  --jux-radius-2xl: 1.25rem;
316
348
  --jux-radius-full: 9999px;
317
349
 
318
- /* Spacing - Balanced */
350
+ /* Spacing - UNCHANGED (already balanced) */
319
351
  --jux-space-xs: 0.25rem;
320
352
  --jux-space-sm: 0.5rem;
321
353
  --jux-space-md: 1rem;
@@ -337,6 +369,10 @@
337
369
  --jux-burn-active: 0.12;
338
370
  --jux-burn-muted: 0.25;
339
371
  --jux-burn-strong: 0.5;
372
+
373
+ /* ✅ DEFAULT STACK SPACING - Reduced */
374
+ --jux-gap-token: var(--jux-space-sm); /* 8px instead of 16px */
375
+ --jux-pad-token: var(--jux-space-md); /* 16px instead of 24px */
340
376
  }
341
377
 
342
378
  [data-swag="meta"][data-mode="dark"] {
@@ -353,6 +389,10 @@
353
389
 
354
390
  --jux-border-from: #3a3b3c;
355
391
  --jux-border-to: #4e4f50;
392
+
393
+ /* ✅ DEFAULT STACK SPACING */
394
+ --jux-gap-token: var(--jux-space-sm);
395
+ --jux-pad-token: var(--jux-space-md);
356
396
  }
357
397
 
358
398
  /* ══════════════════════════════════════════════════════════════════
@@ -360,17 +400,21 @@
360
400
  ══════════════════════════════════════════════════════════════════ */
361
401
 
362
402
  [data-swag="notion"][data-mode="light"] {
403
+ /* Brand Colors */
363
404
  --jux-brand-from: #000000;
364
405
  --jux-brand-to: #2e2e2e;
365
406
  --jux-brand-accent-from: #0f7b6c;
366
407
  --jux-brand-accent-to: #0a5a4f;
367
408
 
409
+ /* Surfaces */
368
410
  --jux-surface-from: #ffffff;
369
411
  --jux-surface-to: #f7f6f3;
370
412
 
413
+ /* Text */
371
414
  --jux-text-from: #37352f;
372
415
  --jux-text-to: #9b9a97;
373
416
 
417
+ /* Borders */
374
418
  --jux-border-from: #e9e9e7;
375
419
  --jux-border-to: #d3d1cb;
376
420
 
@@ -383,7 +427,7 @@
383
427
  --jux-radius-2xl: 0.75rem;
384
428
  --jux-radius-full: 9999px;
385
429
 
386
- /* Spacing - Compact, efficient */
430
+ /* Spacing - UNCHANGED (already compact) */
387
431
  --jux-space-xs: 0.25rem;
388
432
  --jux-space-sm: 0.5rem;
389
433
  --jux-space-md: 0.75rem;
@@ -405,6 +449,10 @@
405
449
  --jux-burn-active: 0.08;
406
450
  --jux-burn-muted: 0.35;
407
451
  --jux-burn-strong: 0.6;
452
+
453
+ /* ✅ DEFAULT STACK SPACING - Already good */
454
+ --jux-gap-token: var(--jux-space-sm); /* 8px */
455
+ --jux-pad-token: var(--jux-space-md); /* 12px */
408
456
  }
409
457
 
410
458
  [data-swag="notion"][data-mode="dark"] {
@@ -421,6 +469,10 @@
421
469
 
422
470
  --jux-border-from: #373737;
423
471
  --jux-border-to: #4a4a4a;
472
+
473
+ /* ✅ DEFAULT STACK SPACING */
474
+ --jux-gap-token: var(--jux-space-sm);
475
+ --jux-pad-token: var(--jux-space-md);
424
476
  }
425
477
 
426
478
  /* ══════════════════════════════════════════════════════════════════
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "juxscript",
3
- "version": "1.1.144",
3
+ "version": "1.1.147",
4
4
  "type": "module",
5
5
  "description": "A JavaScript UX authorship platform",
6
6
  "main": "index.js",