Files
dlStack/data/links.example.json
Joel Brock c16ee37096 Cosmos: aurora cursor, card tilt, comets, ripples, turtle; headless sections
Pushed the cosmos theme further:

- Cursor aurora — 600px soft cyan/violet/magenta halo follows the
  pointer with lag (mix-blend-mode: screen, blur 8px). Fades in on
  first move, fades out on pointerleave.
- Card 3D tilt — every cosmos card rotates up to ~6deg toward the
  cursor on hover via custom-property-driven rotateX/rotateY, with a
  cursor-tracking radial shimmer painted inside via mix-blend-mode:
  screen. RAF-throttled. Skipped for testimonial + client tiles since
  they have no chrome.
- Hero parallax — name, tagline, and drift-orb all shift relative to
  cursor position via --cm-x / --cm-y custom properties set globally
  from the pointer move handler.
- Shader: doubled the gravity-well strength (0.03 -> 0.06) and added
  a click-driven ripple — pointerdown sets u_ripple_pos/u_ripple_age
  uniforms; the shader propagates a cyan/magenta luminous ring of
  displacement that decays over ~2s.
- Comets — 3 CSS-only streaks crossing the page on staggered 14/22/
  19s loops with cyan/violet drop-shadow trails.
- Turtle — new .cosmos-turtle img auto-loads if assets/img/turtle.png
  resolves (or theme.turtle URL is set). Floats in from the left,
  arcs across, fades out off the right; pulses its aurora glow on a
  4s bob. Reduced-motion users see it positioned statically.
- All new chrome respects prefers-reduced-motion: halo/comets hidden,
  card tilt + parallax disabled, turtle pinned static.

Also adds section.headless = true (per user request): renders the
section body with no header/kicker chrome and a tighter top margin so
the contents read as nested under the prior section. Example JSON now
uses this to slide the testimonials carousel under the clients wall.
2026-05-16 09:26:11 -07:00

130 lines
4.7 KiB
JSON

{
"profile": {
"name": "Ada Lovelace",
"handle": "@ada",
"tagline": "Mathematician · Programmer · Visionary",
"bio": "Short, one-line introduction sits here. Replace everything in this file with your own content, save as data/links.json, and re-upload.",
"location": "London"
},
"theme": {
"accent": "#E8482C",
"template": "editorial"
},
"sections": [
{
"id": "sites",
"label": "Sites",
"kicker": "Where I live online",
"items": [
{ "type": "link", "title": "Personal site", "url": "https://example.com", "description": "What I do, who I am" },
{ "type": "link", "title": "Notes", "url": "https://notes.example.com", "description": "Long-form writing", "date": "2025-09" },
{ "type": "link", "title": "Lab", "url": "https://lab.example.com", "description": "Experiments & sketches", "date": "2024" }
]
},
{
"id": "projects",
"label": "Projects",
"kicker": "Things I'm building",
"items": [
{
"type": "card",
"featured": true,
"title": "Analytical Engine",
"url": "https://example.com/projects/engine",
"description": "An early proposal for a general-purpose computing machine, with looping and conditional branching.",
"tags": ["computing", "research"],
"date": "1837"
},
{
"type": "card",
"title": "Bernoulli Numbers",
"url": "https://example.com/projects/bernoulli",
"description": "Method for computing Bernoulli numbers using the Engine.",
"tags": ["mathematics"],
"date": "1843-07"
}
]
},
{
"id": "showcase",
"label": "Showcase",
"kicker": "Selected work",
"items": [
{
"type": "portfolio",
"title": "Notes G — diagrams for publication",
"url": "https://example.com/showcase/notes-g",
"image": "https://images.unsplash.com/photo-1518770660439-4636190af475?w=1600&q=80",
"description": "Tables and diagrams prepared for the 1843 translation.",
"date": "1843-10-15"
}
]
},
{
"id": "watch",
"label": "Watch",
"kicker": "Video",
"items": [
{ "type": "youtube", "id": "dQw4w9WgXcQ", "title": "Replace this video ID with your own" }
]
},
{
"id": "clients",
"label": "Clients",
"kicker": "Who I work with",
"layout": "clients",
"items": [
{ "type": "client", "title": "Example Co.", "url": "https://example.com" },
{ "type": "client", "title": "Another Org", "url": "https://another.example.com" },
{ "type": "client", "title": "Third Party", "url": "https://third.example.com" },
{ "type": "client", "title": "Fourth Group", "url": "https://fourth.example.com" },
{ "type": "client", "title": "Fifth Cooperative","url": "https://fifth.example.coop" },
{ "type": "client", "title": "Sixth Studio", "url": "https://sixth.example.com" }
]
},
{
"id": "writing",
"label": "Writing",
"kicker": "Notes & long-form",
"items": [
{ "type": "link", "title": "An essay title goes here", "url": "#", "description": "Essay · 8 min read" },
{ "type": "link", "title": "Another piece of writing", "url": "#", "description": "Field notes" }
]
},
{
"id": "praise",
"label": "Testimonials",
"kicker": "What people say",
"layout": "testimonials",
"headless": true,
"items": [
{
"type": "testimonial",
"quote": "Ada's notes on the Engine are the most penetrating remarks anyone has yet made on the subject of mechanical computation.",
"name": "Charles Babbage",
"role": "Mathematician",
"org": "Royal Society",
"date": "1843"
},
{
"type": "testimonial",
"quote": "She has thrown her thoughts into the form of a mathematical poem — an analytical instrument set in motion by the human mind.",
"name": "Michael Faraday",
"role": "Natural Philosopher",
"url": "https://example.com/faraday"
}
]
}
],
"social": [
{ "label": "GitHub", "url": "https://github.com/example", "icon": "github" },
{ "label": "LinkedIn", "url": "https://www.linkedin.com/in/example", "icon": "linkedin" },
{ "label": "Email", "url": "mailto:hello@example.com", "icon": "mail" },
{ "label": "RSS", "url": "/feed.xml", "icon": "rss" }
],
"footer": {
"copy": "Hand-built. No trackers.",
"year": "auto"
}
}