anentrypoint-design 0.0.59 → 0.0.60

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anentrypoint-design",
3
- "version": "0.0.59",
3
+ "version": "0.0.60",
4
4
  "description": "247420 design system SDK — webjsx + modified ripple-ui, single-file ESM bundle for reproducible use of the AnEntrypoint design.",
5
5
  "type": "module",
6
6
  "main": "./dist/247420.js",
@@ -13,4 +13,5 @@ export const icons = {
13
13
  close: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6l-12 12"/></svg>',
14
14
  chat: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16v11H8l-4 4z"/><path d="M8 9h8M8 12h6"/></svg>',
15
15
  tools: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14 7l3-3 3 3-3 3-3-3zM7 14l3 3-7 7-3-3 7-7zM5 7l3-3M14 14l6 6"/></svg>',
16
+ freddie: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2M8 12a4 4 0 008 0"/></svg>',
16
17
  };
@@ -1,13 +1,14 @@
1
1
  /* ============================================================
2
2
  Launcher dock — paired with createLauncher() (validation harness path)
3
+ Bible: tonal step from canvas, no borders, pill controls, lowercase.
3
4
  ============================================================ */
4
5
 
5
6
  .launcher-dock {
6
7
  position: fixed;
7
8
  left: 0; top: 0; bottom: 0;
8
9
  width: 56px;
9
- background: var(--os-bg-1);
10
- border-right: 1px solid var(--os-bg-3);
10
+ background: var(--os-bg-2);
11
+ border: none;
11
12
  display: flex;
12
13
  flex-direction: column;
13
14
  align-items: center;
@@ -30,10 +31,14 @@
30
31
  justify-content: center;
31
32
  padding: 0;
32
33
  font: inherit;
33
- transition: background 80ms ease, color 80ms ease;
34
+ transition: background 80ms ease, color 80ms ease, box-shadow 80ms ease;
35
+ }
36
+ .launcher-btn:hover { background: var(--panel-hover, var(--os-bg-1)); color: var(--os-fg); }
37
+ .launcher-btn.active {
38
+ background: var(--panel-select, var(--os-accent-soft));
39
+ color: var(--os-fg);
40
+ box-shadow: inset 4px 0 0 var(--os-accent);
34
41
  }
35
- .launcher-btn:hover { background: var(--os-accent); color: var(--panel-accent-fg, #000); }
36
- .launcher-btn.active { background: var(--os-accent); color: var(--panel-accent-fg, #000); }
37
42
  .launcher-add { font-size: 20px; }
38
43
 
39
44
  .launcher-dock + .wm-root { left: 56px !important; }
@@ -18,9 +18,9 @@
18
18
  --os-bar-h-mobile: 52px;
19
19
  --os-rail-w: 64px;
20
20
  --os-tap: 44px;
21
- --os-font: var(--ff-ui, 'Nunito', 'Inter', system-ui, sans-serif);
22
- --os-display: var(--ff-display, 'Archivo Black', 'Archivo', 'Nunito', system-ui, sans-serif);
23
- --os-mono: var(--ff-mono, 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace);
21
+ --os-font: var(--ff-ui, 'Nunito', sans-serif);
22
+ --os-display: var(--ff-display, 'Archivo Black', 'Archivo', sans-serif);
23
+ --os-mono: var(--ff-mono, 'JetBrains Mono', ui-monospace, monospace);
24
24
  }
25
25
 
26
26
  html, body {
@@ -32,7 +32,7 @@ html, body {
32
32
  }
33
33
 
34
34
  .os-menubar, .os-taskbar {
35
- background: var(--os-bg-1);
35
+ background: var(--os-bg-2);
36
36
  border: none;
37
37
  color: var(--os-fg);
38
38
  font: 13px var(--os-font);
@@ -41,8 +41,6 @@ html, body {
41
41
  gap: 6px;
42
42
  box-shadow: none;
43
43
  }
44
- .os-menubar { border-bottom: 1px solid var(--os-bg-3); }
45
- .os-taskbar { border-top: 1px solid var(--os-bg-3); }
46
44
 
47
45
  .os-brand {
48
46
  color: var(--os-fg);
@@ -54,6 +52,7 @@ html, body {
54
52
  display: inline-flex;
55
53
  align-items: center;
56
54
  gap: 8px;
55
+ text-transform: lowercase;
57
56
  }
58
57
  .os-brand::before {
59
58
  content: '';
@@ -70,6 +69,7 @@ html, body {
70
69
  padding: 7px 14px;
71
70
  cursor: pointer;
72
71
  font: inherit;
72
+ font-family: var(--os-font);
73
73
  font-size: 13px;
74
74
  border-radius: 999px;
75
75
  transition: background 80ms ease, color 80ms ease;
@@ -77,9 +77,10 @@ html, body {
77
77
  align-items: center;
78
78
  gap: 6px;
79
79
  outline: none;
80
+ text-transform: lowercase;
80
81
  }
81
82
  .os-btn:hover { background: var(--panel-hover, var(--os-bg-2)); color: var(--os-fg); }
82
- .os-btn.active, .os-btn[aria-pressed="true"] { background: var(--os-accent); color: var(--panel-accent-fg, #fff); }
83
+ .os-btn.active, .os-btn[aria-pressed="true"] { background: var(--panel-select, var(--os-accent-soft)); color: var(--os-fg); }
83
84
  .os-btn:focus-visible { background: var(--panel-hover, var(--os-bg-2)); }
84
85
  .os-btn .ic { color: var(--os-accent); display: inline-flex; width: 16px; height: 16px; }
85
86
  .os-btn .ic svg { width: 16px; height: 16px; display: block; fill: none; stroke: currentColor; }
@@ -87,9 +88,9 @@ html, body {
87
88
  .os-menu {
88
89
  position: absolute;
89
90
  background: var(--os-bg-1);
90
- border: 1px solid var(--os-bg-3);
91
- border-radius: var(--os-radius);
92
- padding: 6px;
91
+ border: none;
92
+ border-radius: var(--r-3, 18px);
93
+ padding: 8px;
93
94
  min-width: 220px;
94
95
  top: calc(var(--os-bar-h) + 4px);
95
96
  left: 8px;
@@ -108,53 +109,56 @@ html, body {
108
109
  color: var(--os-fg);
109
110
  justify-content: flex-start;
110
111
  }
111
- .os-menu .os-btn:hover { background: var(--os-bg-2); color: var(--os-accent-2); }
112
+ .os-menu .os-btn:hover { background: var(--panel-hover, var(--os-bg-2)); color: var(--os-fg); }
112
113
 
113
114
  .os-clock {
114
115
  color: var(--os-fg-2);
115
116
  font-variant-numeric: tabular-nums;
117
+ font-family: var(--os-mono);
116
118
  padding: 0 10px;
117
119
  font-size: 12px;
118
120
  }
119
121
 
120
122
  .os-task {
121
123
  border: none;
122
- background: var(--os-bg-2);
124
+ background: var(--os-bg-1);
123
125
  color: var(--os-fg-2);
124
126
  border-radius: 999px;
125
127
  padding: 6px 14px;
126
128
  font-size: 12px;
127
129
  font-family: var(--os-font);
128
- transition: background 80ms ease, color 80ms ease;
130
+ transition: background 80ms ease, color 80ms ease, box-shadow 80ms ease;
129
131
  max-width: 200px;
130
132
  cursor: pointer;
131
133
  outline: none;
132
134
  white-space: nowrap;
133
135
  overflow: hidden;
134
136
  text-overflow: ellipsis;
137
+ text-transform: lowercase;
135
138
  }
136
- .os-task:hover { background: var(--panel-hover, var(--os-bg-3)); color: var(--os-fg); }
139
+ .os-task:hover { background: var(--panel-hover, var(--os-bg-2)); color: var(--os-fg); }
137
140
  .os-task.focused {
138
- background: var(--os-accent);
139
- color: var(--panel-accent-fg, #fff);
140
- font-weight: 500;
141
+ background: var(--panel-select, var(--os-accent-soft));
142
+ color: var(--os-fg);
143
+ font-weight: 600;
144
+ box-shadow: inset 4px 0 0 var(--os-accent);
141
145
  }
142
146
 
143
147
  .wm-win {
144
148
  background: var(--os-bg-1) !important;
145
- border: 1px solid var(--os-bg-3) !important;
146
- border-radius: var(--os-radius) !important;
149
+ border: none !important;
150
+ border-radius: var(--r-3, 18px) !important;
147
151
  box-shadow: none !important;
148
152
  overflow: hidden;
149
153
  }
150
154
  .wm-win.wm-focused {
151
- border-color: var(--os-accent) !important;
152
- box-shadow: none !important;
155
+ border: none !important;
156
+ box-shadow: inset 4px 0 0 var(--os-accent) !important;
153
157
  }
154
158
 
155
159
  .wm-bar {
156
160
  background: var(--os-bg-2) !important;
157
- border-bottom: 1px solid var(--os-bg-3) !important;
161
+ border: none !important;
158
162
  padding: 8px 12px !important;
159
163
  gap: 10px !important;
160
164
  }
@@ -163,38 +167,49 @@ html, body {
163
167
  color: var(--os-fg-2) !important;
164
168
  letter-spacing: 0.005em;
165
169
  text-align: center;
166
- font-weight: 500;
170
+ font-weight: 600;
171
+ text-transform: lowercase;
167
172
  }
168
173
  .wm-btns { gap: 6px !important; order: -1; }
169
174
  .wm-btn {
170
- width: 12px !important;
171
- height: 12px !important;
172
- border-radius: 50% !important;
175
+ width: 22px !important;
176
+ height: 22px !important;
177
+ border-radius: var(--r-1, 6px) !important;
173
178
  border: none !important;
179
+ background: var(--os-bg-3) !important;
180
+ color: var(--os-fg-2) !important;
174
181
  padding: 0 !important;
175
182
  cursor: pointer;
176
- font-size: 0 !important;
177
- transition: opacity 100ms ease;
183
+ font: 600 12px var(--os-mono) !important;
184
+ line-height: 1 !important;
185
+ display: inline-flex !important;
186
+ align-items: center;
187
+ justify-content: center;
188
+ transition: background 100ms ease, color 100ms ease;
178
189
  }
179
- .wm-btn:hover { opacity: 0.75; }
180
- .wm-btns .wm-btn:nth-child(1) { background: var(--os-amber) !important; }
181
- .wm-btns .wm-btn:nth-child(2) { background: var(--os-green) !important; }
182
- .wm-btns .wm-btn:nth-child(3) { background: var(--os-red) !important; }
190
+ .wm-btn:hover { background: var(--panel-hover, var(--os-bg-2)) !important; color: var(--os-fg) !important; }
183
191
 
184
192
  .wm-resize {
185
- background: var(--os-bg-3) !important;
193
+ background: transparent !important;
186
194
  width: 14px !important;
187
195
  height: 14px !important;
188
- clip-path: polygon(100% 0, 100% 100%, 0 100%);
196
+ color: var(--os-fg-3);
197
+ opacity: 0.4;
198
+ font: 10px var(--os-mono);
199
+ display: flex;
200
+ align-items: flex-end;
201
+ justify-content: flex-end;
202
+ line-height: 1;
189
203
  }
204
+ .wm-resize::after { content: '\25E2'; }
190
205
  .wm-body { background: var(--os-bg-1) !important; }
191
206
 
192
207
  .os-side-rail {
193
208
  position: fixed;
194
209
  left: 0; top: 0; bottom: 0;
195
210
  width: var(--os-rail-w);
196
- background: var(--os-bg-1);
197
- border-right: 1px solid var(--os-bg-3);
211
+ background: var(--os-bg-2);
212
+ border: none;
198
213
  display: none;
199
214
  flex-direction: column;
200
215
  align-items: center;
@@ -215,8 +230,8 @@ html, body {
215
230
  padding: 0;
216
231
  outline: none;
217
232
  }
218
- .os-rail-btn:hover { background: var(--os-bg-2); }
219
- .os-rail-btn:active { background: var(--os-bg-3); }
233
+ .os-rail-btn:hover { background: var(--panel-hover, var(--os-bg-1)); }
234
+ .os-rail-btn:active { background: var(--panel-select, var(--os-accent-soft)); }
220
235
  .os-rail-btn .ic { color: var(--os-accent); display: inline-flex; }
221
236
  .os-rail-btn .ic svg { width: 22px; height: 22px; fill: none; stroke: currentColor; }
222
237
 
@@ -238,11 +253,12 @@ html, body {
238
253
  .os-drawer-head {
239
254
  display: flex; align-items: center; justify-content: space-between;
240
255
  padding: 12px 16px;
241
- border-bottom: 1px solid var(--os-bg-3);
256
+ border: none;
242
257
  height: 56px;
243
258
  box-sizing: border-box;
259
+ background: var(--os-bg-2);
244
260
  }
245
- .os-drawer-title { color: var(--os-fg); font-family: var(--os-display); font-size: 22px; font-weight: 700; letter-spacing: -0.01em; }
261
+ .os-drawer-title { color: var(--os-fg); font-family: var(--os-display); font-size: 22px; font-weight: 700; letter-spacing: -0.01em; text-transform: lowercase; }
246
262
  .os-drawer-close {
247
263
  width: 44px; height: 44px;
248
264
  border: none; background: transparent;
@@ -252,7 +268,7 @@ html, body {
252
268
  border-radius: var(--os-radius-sm);
253
269
  outline: none;
254
270
  }
255
- .os-drawer-close:hover { background: var(--os-bg-2); color: var(--os-fg); }
271
+ .os-drawer-close:hover { background: var(--panel-hover, var(--os-bg-2)); color: var(--os-fg); }
256
272
  .os-drawer-close .ic svg { width: 22px; height: 22px; fill: none; stroke: currentColor; }
257
273
  .os-drawer-grid {
258
274
  display: grid;
@@ -275,12 +291,13 @@ html, body {
275
291
  transition: background 80ms ease;
276
292
  outline: none;
277
293
  border-radius: var(--r-3, 18px);
294
+ text-transform: lowercase;
278
295
  }
279
296
  .os-drawer-tile:hover { background: var(--panel-hover, var(--os-bg-2)); }
280
- .os-drawer-tile:active { background: var(--panel-select, var(--os-bg-3)); }
297
+ .os-drawer-tile:active, .os-drawer-tile.active { background: var(--panel-select, var(--os-accent-soft)); }
281
298
  .os-drawer-tile .ic { color: var(--os-accent); display: inline-flex; }
282
299
  .os-drawer-tile .ic svg { width: 32px; height: 32px; fill: none; stroke: currentColor; }
283
- .os-drawer-tile .lbl { color: var(--os-fg); font-weight: 500; }
300
+ .os-drawer-tile .lbl { color: var(--os-fg); font-weight: 600; }
284
301
 
285
302
  .os-spacer { flex: 1 1 auto; }
286
303
  .os-tray { display: flex; align-items: center; gap: 6px; }
@@ -350,10 +367,9 @@ html, body {
350
367
  max-width: none;
351
368
  padding: 10px 14px;
352
369
  scroll-snap-align: start;
353
- border-left: 3px solid transparent;
354
370
  font-size: 13px;
355
371
  }
356
- .os-task.focused { border-left-color: var(--os-accent); background: var(--os-bg-2); }
372
+ .os-task.focused { background: var(--panel-select, var(--os-accent-soft)); box-shadow: inset 4px 0 0 var(--os-accent); }
357
373
  .os-side-rail { display: none !important; }
358
374
  .os-menu { left: 8px; right: 8px; min-width: 0; top: calc(var(--os-bar-h) + env(safe-area-inset-top, 0) + 4px); }
359
375
  .wm-root {
@@ -380,6 +396,6 @@ html, body {
380
396
  .wm-bar .wm-title { pointer-events: auto; font-size: 13px !important; }
381
397
  .wm-bar .wm-btns { pointer-events: auto; }
382
398
  .wm-btns .wm-btn:nth-child(1), .wm-btns .wm-btn:nth-child(2) { display: none !important; }
383
- .wm-btns .wm-btn:nth-child(3) { width: 44px !important; height: 44px !important; border-radius: 50% !important; }
399
+ .wm-btns .wm-btn:nth-child(3) { width: 44px !important; height: 44px !important; border-radius: var(--r-1, 6px) !important; background: var(--os-bg-3) !important; color: var(--os-fg) !important; }
384
400
  .wm-resize { display: none !important; }
385
401
  }
@@ -1,6 +1,7 @@
1
1
  /* ============================================================
2
2
  Window Manager visuals — paired with createWM() behavior
3
3
  Tokens: --os-* (defined by desktop/theme.css)
4
+ Bible: tonal surfaces, no borders for chrome, inset rail for focus.
4
5
  ============================================================ */
5
6
 
6
7
  .wm-root {
@@ -16,24 +17,25 @@
16
17
  min-height: 120px;
17
18
  background: var(--os-bg-1);
18
19
  color: var(--os-fg);
19
- border: 1px solid var(--os-bg-3);
20
- border-radius: var(--os-radius);
20
+ border: none;
21
+ border-radius: var(--r-3, 18px);
21
22
  display: flex;
22
23
  flex-direction: column;
23
24
  pointer-events: auto;
24
25
  overflow: hidden;
25
26
  }
26
- .wm-win.wm-focused { border-color: var(--os-accent); }
27
+ .wm-win.wm-focused { box-shadow: inset 4px 0 0 var(--os-accent); }
27
28
 
28
29
  .wm-bar {
29
30
  display: flex;
30
31
  align-items: center;
31
- padding: 4px 8px;
32
+ padding: 6px 10px;
32
33
  background: var(--os-bg-2);
33
34
  cursor: move;
34
35
  user-select: none;
35
36
  gap: 8px;
36
37
  touch-action: none;
38
+ border: none;
37
39
  }
38
40
  .wm-title {
39
41
  flex: 1;
@@ -41,23 +43,27 @@
41
43
  white-space: nowrap;
42
44
  overflow: hidden;
43
45
  text-overflow: ellipsis;
46
+ text-transform: lowercase;
44
47
  }
45
48
 
46
49
  .wm-btns { display: flex; gap: 4px; }
47
50
  .wm-btn {
48
- width: 14px;
49
- height: 14px;
50
- border: 1px solid currentColor;
51
- background: transparent;
51
+ width: 22px;
52
+ height: 22px;
53
+ border: none;
54
+ background: var(--os-bg-3);
55
+ color: var(--os-fg-2);
52
56
  cursor: pointer;
53
57
  padding: 0;
54
- font: 9px var(--os-font);
55
- display: flex;
58
+ font: 600 12px var(--os-mono);
59
+ line-height: 1;
60
+ display: inline-flex;
56
61
  align-items: center;
57
62
  justify-content: center;
58
- color: inherit;
63
+ border-radius: var(--r-1, 6px);
64
+ transition: background 100ms ease, color 100ms ease;
59
65
  }
60
- .wm-btn:hover { background: var(--os-accent); color: var(--panel-accent-fg, #000); }
66
+ .wm-btn:hover { background: var(--panel-hover, var(--os-bg-2)); color: var(--os-fg); }
61
67
 
62
68
  .wm-body {
63
69
  flex: 1;
@@ -70,13 +76,20 @@
70
76
  position: absolute;
71
77
  right: 0;
72
78
  bottom: 0;
73
- width: 18px;
74
- height: 18px;
79
+ width: 14px;
80
+ height: 14px;
75
81
  cursor: nwse-resize;
76
- background: var(--os-bg-3);
77
- clip-path: polygon(100% 0, 100% 100%, 0 100%);
82
+ background: transparent;
83
+ color: var(--os-fg-3);
84
+ opacity: 0.4;
85
+ font: 10px var(--os-mono);
86
+ line-height: 1;
87
+ display: flex;
88
+ align-items: flex-end;
89
+ justify-content: flex-end;
78
90
  touch-action: none;
79
91
  }
92
+ .wm-resize::after { content: '\25E2'; }
80
93
 
81
94
  .wm-win.wm-min .wm-body,
82
95
  .wm-win.wm-min .wm-resize { display: none; }