anentrypoint-design 0.0.220 → 0.0.221

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.220",
3
+ "version": "0.0.221",
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",
@@ -129,15 +129,32 @@ export function Section({ title, eyebrow, children, id }) {
129
129
  }
130
130
 
131
131
  export function Hero({ eyebrow, title, body, accent, badge, badgeCount, actions }) {
132
+ // Eyebrow + title share the title grid-area so the named-area layout stays
133
+ // intact; body and actions occupy the offset lower columns.
132
134
  return h('div', { class: 'ds-hero' },
133
- eyebrow ? h('span', { class: 'eyebrow' }, eyebrow) : null,
134
- h('h1', { class: 'ds-hero-title' }, title),
135
+ h('div', { class: 'ds-hero-head' },
136
+ eyebrow ? h('span', { class: 'eyebrow' }, eyebrow) : null,
137
+ h('h1', { class: 'ds-hero-title' }, title)
138
+ ),
135
139
  body ? h('p', { class: 'ds-hero-body' },
136
140
  body,
137
141
  accent ? h('span', { class: 'ds-hero-accent' }, ' ' + accent) : null
138
142
  ) : null,
139
143
  actions ? h('div', { class: 'ds-hero-actions' }, ...(Array.isArray(actions) ? actions : [actions])) : null,
140
- badge ? Panel({ title: badge, count: badgeCount, kind: 'inline', children: [] }) : null
144
+ badge ? h('div', { class: 'ds-hero-badge' }, Panel({ title: badge, count: badgeCount, kind: 'inline', children: [] })) : null
145
+ );
146
+ }
147
+
148
+ export function Marquee({ items = [], sep = '/' }) {
149
+ // Two identical runs make the -50% translate loop seamless. Each text and
150
+ // separator is a keyed span so webjsx applyDiff never sees a primitive
151
+ // sibling beside a keyed VElement.
152
+ const run = (runKey) => items.flatMap((it, i) => [
153
+ h('span', { class: 'ds-marquee-item', key: `${runKey}-i${i}` }, it),
154
+ h('span', { class: 'ds-marquee-sep', key: `${runKey}-s${i}`, 'aria-hidden': 'true' }, sep),
155
+ ]);
156
+ return h('div', { class: 'ds-marquee', role: 'marquee' },
157
+ h('div', { class: 'ds-marquee-track' }, ...run('a'), ...run('b'))
141
158
  );
142
159
  }
143
160
 
package/src/components.js CHANGED
@@ -12,7 +12,7 @@ export {
12
12
 
13
13
  export {
14
14
  Panel, Card, Row, RowLink,
15
- Hero, Install, Receipt, Changelog,
15
+ Hero, Marquee, Install, Receipt, Changelog,
16
16
  WorksList, WritingList, Manifesto, Section, PageHeader,
17
17
  Kpi, Table, SearchInput, TextField, Select, EventList,
18
18
  HomeView, ProjectView, Form,
@@ -13,7 +13,12 @@
13
13
  and --ff-mono are already canonical (colors_and_type.css), referenced
14
14
  directly below — do not self-redefine them here (cycle). */
15
15
  --ff-ui: var(--ff-body);
16
- --os-accent: var(--accent);
16
+ /* --os-accent is used predominantly as TEXT/icon/border in the OS chrome,
17
+ so it tracks the readable --accent-ink tone (the electric lead is too
18
+ light for text on paper). --os-accent-fill is the saturated lead for the
19
+ rare solid fill; --os-accent-soft is the tint. */
20
+ --os-accent: var(--accent-ink);
21
+ --os-accent-fill: var(--accent);
17
22
  --os-accent-2: var(--accent-bright, var(--accent));
18
23
  --os-accent-soft: var(--accent-tint);
19
24
  --os-bg-0: var(--bg);
package/src/motion.js CHANGED
@@ -11,8 +11,10 @@ export function installMotion() {
11
11
  style.textContent = `
12
12
  @media (prefers-reduced-motion: no-preference) {
13
13
  .ds-247420 [data-anim="in"] {
14
- opacity: 0; transform: translateY(8px);
15
- transition: opacity 320ms cubic-bezier(.2,0,0,1), transform 320ms cubic-bezier(.2,0,0,1);
14
+ opacity: 0; transform: translateY(14px);
15
+ /* Physical signature reveal — a slight spring landing, not a flat fade. */
16
+ transition: opacity var(--dur-reveal, 560ms) var(--ease, cubic-bezier(.2,0,0,1)),
17
+ transform var(--dur-reveal, 560ms) var(--ease-spring, cubic-bezier(0.34,1.56,0.64,1));
16
18
  }
17
19
  .ds-247420 [data-anim="ready"] {
18
20
  opacity: 1; transform: translateY(0);