juxscript 1.0.116 → 1.0.118

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.
@@ -1,102 +1,229 @@
1
- .jux-element {
2
- /* Minimal layout defaults to behave like a standard block/inline element */
3
- box-sizing: border-box;
4
- /* Allow text properties to inherit naturally */
5
- color: inherit;
6
- font-family: inherit;
1
+ /**
2
+ * Base
3
+ */
4
+
5
+ :root {
6
+ /* Typography */
7
+ --font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', sans-serif;
8
+ --font-size-sm: 0.875rem;
9
+ --font-size-base: 1rem;
10
+ --font-size-lg: 1.125rem;
11
+ --font-size-xl: 1.5rem;
12
+ --font-size-2xl: 2rem;
13
+ --font-size-3xl: 2.25rem; /* Added for H1 default */
14
+ --font-size-4xl: 4rem;
15
+ --line-height-normal: 1.6;
16
+ --line-height-tight: 1.2;
17
+
18
+ /* Spacing Scale */
19
+ --space-xs: 0.25rem;
20
+ --space-sm: 0.5rem;
21
+ --space-md: 1rem;
22
+ --space-lg: 1.5rem;
23
+ --space-xl: 2rem;
24
+ --space-2xl: 3rem;
25
+
26
+ /* Layout */
27
+ --radius-sm: 6px;
28
+ --radius-md: 10px;
29
+ --radius-lg: 12px;
30
+ --radius-round: 50px;
31
+ --border-width: 1px;
32
+ --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.05);
33
+
34
+ /* Animation */
35
+ --transition-fast: 150ms ease;
36
+ --transition-normal: 300ms ease;
37
+
38
+ /* Color Palette - RxTrail Brand Colors */
39
+ --color-brand: #e57373;
40
+ --color-brand-contrast: #000000;
41
+ --color-brand-hover: #ef5350;
42
+ --color-brand-subtle: rgba(229, 115, 115, 0.08);
43
+
44
+ --color-text-primary: #2c2f3e;
45
+ --color-text-secondary: #666666;
46
+ --color-text-inverse: #ffffff;
47
+
48
+ --color-background: #fafbfc;
49
+ --color-background-alt: #f8f9fa;
50
+ --color-background-inverse: #111111;
51
+
52
+ --color-surface-base: #ffffff;
53
+ --color-surface-hover: #fef5f5;
54
+ --color-surface-active: #fce8e8;
55
+
56
+ --color-border: #e5e7eb;
57
+ --color-border-hover: #d1d5db;
58
+
59
+ /* Accent colors for clinical data */
60
+ --color-success: #00a878;
61
+ --color-warning: #f39c12;
62
+ --color-danger: #e74c3c;
7
63
  }
8
64
 
9
- /* Optional helper for hidden state toggling via engine */
10
- .jux-element[hidden] {
11
- display: none !important;
65
+ /* Dark Mode Overrides */
66
+ [data-theme="dark"] {
67
+ --color-text-primary: #e8edf3;
68
+ --color-text-secondary: #9aa6b5;
69
+ --color-background: #0f1419;
70
+ --color-surface-base: #1a2332;
71
+ --color-surface-hover: #243447;
72
+ --color-border: #384456;
12
73
  }
13
74
 
14
- .jux-element:hover {
15
- background-color: transparent; /* Reset unless specific */
75
+ /* --- Primitives & Reset --- */
76
+
77
+ *, *::before, *::after {
78
+ box-sizing: border-box;
16
79
  }
17
80
 
18
- /* --- Layout Primitives --- */
81
+ html, body {
82
+ height: 100%;
83
+ margin: 0;
84
+ padding: 0;
85
+ }
19
86
 
20
- .jux-section-center {
21
- display: flex;
22
- flex-direction: column;
23
- justify-content: center;
24
- align-items: center;
25
- height: 100%;
26
- text-align: center;
27
- background-color: var(--color-background-alt);
87
+ body {
88
+ font-family: var(--font-family-base);
89
+ font-size: var(--font-size-base);
90
+ line-height: var(--line-height-normal);
91
+ color: var(--color-text-primary);
92
+ background-color: var(--color-background);
93
+ -webkit-font-smoothing: antialiased;
94
+ -moz-osx-font-smoothing: grayscale;
28
95
  }
29
96
 
30
- .jux-grid-responsive {
31
- display: grid;
32
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
33
- gap: 40px;
34
- max-width: 1000px;
35
- margin: 60px auto;
36
- padding: 0 20px;
97
+ h1, h2, h3, h4, h5, h6 {
98
+ margin-top: 0;
99
+ margin-bottom: var(--space-md);
100
+ font-weight: 700;
101
+ line-height: var(--line-height-tight);
102
+ color: var(--color-text-primary);
37
103
  }
38
104
 
39
- .jux-layout-footer {
40
- display: flex;
41
- align-items: center;
42
- justify-content: center;
43
- height: 100%;
44
- background: var(--color-background-inverse);
45
- color: var(--color-text-secondary);
105
+ h1 { font-size: var(--font-size-3xl); letter-spacing: -0.02em; }
106
+ h2 { font-size: var(--font-size-2xl); letter-spacing: -0.01em; }
107
+ h3 { font-size: var(--font-size-xl); }
108
+ h4 { font-size: var(--font-size-lg); }
109
+ h5 { font-size: var(--font-size-base); }
110
+ h6 { font-size: var(--font-size-sm); text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-secondary); }
111
+
112
+ p {
113
+ margin-top: 0;
114
+ margin-bottom: var(--space-md);
115
+ max-width: 70ch; /* Optimal reading width */
46
116
  }
47
117
 
48
- /* --- Typography Primitives --- */
118
+ a {
119
+ color: var(--color-brand);
120
+ text-decoration: none;
121
+ font-weight: 500;
122
+ transition: color var(--transition-fast);
123
+ }
49
124
 
50
- .jux-typo-brand {
51
- margin: 0;
52
- padding: 25px 40px;
53
- font-weight: 800;
54
- letter-spacing: -1px;
55
- display: flex;
56
- align-items: center;
125
+ a:hover {
126
+ color: var(--color-brand-hover);
127
+ text-decoration: underline;
57
128
  }
58
129
 
59
- .jux-typo-display {
60
- font-size: var(--font-size-4xl);
61
- margin: 0 0 20px 0;
62
- font-weight: 900;
63
- background: linear-gradient(45deg, #111, #555);
64
- -webkit-background-clip: text;
65
- -webkit-text-fill-color: transparent;
66
- line-height: var(--line-height-tight);
130
+ strong, b {
131
+ font-weight: 700;
67
132
  }
68
133
 
69
- .jux-typo-lead {
70
- font-size: var(--font-size-xl);
71
- color: var(--color-text-secondary);
72
- max-width: 600px;
73
- line-height: var(--line-height-normal);
134
+ em, i {
135
+ font-style: italic;
74
136
  }
75
137
 
76
- /* --- Visual Primitives --- */
138
+ ul, ol {
139
+ margin-top: 0;
140
+ margin-bottom: var(--space-md);
141
+ padding-left: var(--space-xl);
142
+ }
77
143
 
78
- .jux-card {
79
- background: var(--color-surface-base);
80
- padding: 30px;
81
- border-radius: var(--radius-lg);
82
- box-shadow: var(--shadow-lg);
83
- border: 1px solid var(--color-border);
144
+ li {
145
+ margin-bottom: var(--space-xs);
84
146
  }
85
147
 
86
- .jux-btn-primary {
87
- display: inline-block;
88
- margin-top: 30px;
89
- padding: 15px 40px;
90
- font-size: 1.2rem;
91
- background: var(--color-brand-contrast);
92
- color: var(--color-text-inverse);
93
- border: none;
94
- border-radius: var(--radius-round);
95
- cursor: pointer;
96
- transition: transform 0.2s;
148
+ code, kbd, samp {
149
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
150
+ font-size: 0.9em;
151
+ padding: 0.2em 0.4em;
152
+ border-radius: var(--radius-sm);
153
+ background-color: var(--color-surface-hover);
154
+ color: var(--color-text-primary);
155
+ }
156
+
157
+ pre {
158
+ display: block;
159
+ overflow-x: auto;
160
+ padding: var(--space-md);
161
+ background-color: var(--color-surface-hover);
162
+ border: 1px solid var(--color-border);
163
+ border-radius: var(--radius-md);
164
+ margin-bottom: var(--space-lg);
165
+ }
166
+
167
+ pre code {
168
+ background-color: transparent;
169
+ padding: 0;
170
+ color: inherit;
171
+ font-size: var(--font-size-sm);
172
+ }
173
+
174
+ blockquote {
175
+ margin: var(--space-lg) 0;
176
+ padding-left: var(--space-lg);
177
+ border-left: 4px solid var(--color-brand-subtle);
178
+ color: var(--color-text-secondary);
179
+ font-style: italic;
180
+ }
181
+
182
+ img, video {
183
+ max-width: 100%;
184
+ height: auto;
185
+ display: block;
186
+ }
187
+
188
+ hr {
189
+ border: 0;
190
+ border-top: var(--border-width) solid var(--color-border);
191
+ margin: var(--space-xl) 0;
192
+ }
193
+
194
+ button, input, select, textarea {
195
+ font-family: inherit;
196
+ font-size: inherit;
97
197
  }
98
198
 
99
199
  .jux-btn-primary:hover {
100
200
  transform: translateY(-2px);
101
201
  background-color: var(--color-brand-contrast);
102
202
  }
203
+
204
+ /* --- Global Layout Container --- */
205
+
206
+ #jux-layout {
207
+ position: fixed;
208
+ inset: 0;
209
+ width: 100vw;
210
+ height: 100vh;
211
+ margin: 0;
212
+ padding: 0;
213
+ overflow: hidden;
214
+ display: flex;
215
+ flex-direction: column;
216
+ background-color: var(--color-background);
217
+ }
218
+
219
+ #jux-layout > #app {
220
+ flex: 1;
221
+ width: 100%;
222
+ height: 100%;
223
+ overflow-y: auto;
224
+ overflow-x: hidden;
225
+ position: relative;
226
+ /* Ensure child layouts can take full height */
227
+ display: flex;
228
+ flex-direction: column;
229
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "juxscript",
3
- "version": "1.0.116",
3
+ "version": "1.0.118",
4
4
  "type": "module",
5
5
  "description": "A JavaScript UX authorship platform",
6
6
  "main": "./index.js",