mit einem Klick
customer-story
// Scaffold a customer use-case page under src/pages/customers/ from CustomerStory module.
// Scaffold a customer use-case page under src/pages/customers/ from CustomerStory module.
| name | customer-story |
| description | Scaffold a customer use-case page under src/pages/customers/ from CustomerStory module. |
Build a customer page at src/pages/customers/<slug>.js.
src/components/patterns/CustomerStory/index.js โ barrel exports.src/pages/customers/luckynote.js โ reference page. Mirror its structure..cursor/skills/customer-story/references/template.md โ template with {{TOKEN}} placeholders..cursor/skills/customer-story/references/cta-routing.md โ use-case โ CTA href mapping.All primitives live in src/components/patterns/CustomerStory/. Import by name. Never re-declare locally.
| Export | Notes |
|---|---|
ACCENT | Shared accent object (text: 'link'). Imported, never defined locally. |
CUSTOMERS | Registry of all customer metadata (slug, name, blurb, icon, quote, author, role, avatar, initials). |
Section, SectionInner, Caption, Figure, FigureImage | Layout primitives. |
DashedGridOverlay | Decorative background. |
Eyebrow | Accent-aware label. Pass accent={ACCENT}. |
Testimonial | Props: accent, quote, author, role, company, initials, optional avatar, maxWidth. |
MoreCustomers | Filters out currentSlug. Self-omits when < 2 siblings. |
CtaSection | CTA panel. Uses colors.link for background tint internally. Props: accent, headlinePrefix, headlineAccent, body, href, label, optional mt. |
WhyCard | Props: accent, number, kicker, title, body. |
FlowDiagram | Props: accent, nodes array ({ label, sub, active? }). |
<Text as='p'> โ uses Text defaults (fontSize: [1,1,2,2], lineHeight: 3).<Text as='h2'> โ same base component.BodyText, no SubheadBase. Just Text with the appropriate as prop.The hero shows logo + company name (not a "Customer story" tag):
<Flex css={theme({ alignItems: 'center', gap: 2, pb: [3, 3, 4, 4] })}>
<img src='/images/clients/{{ICON}}' alt='' width='40' height='40'
css={theme({ display: 'block', borderRadius: 2, width: '40px', height: '40px' })}
style={{ objectFit: 'cover' }} decoding='async' />
<Text css={theme({ color: 'black', fontSize: 2, fontWeight: 'bold', lineHeight: 1 })}>
{{CUSTOMER_NAME}}
</Text>
</Flex>
Hero (logo + name, h1, intro paragraph, ArrowLink CTA)
AboutCustomer (Eyebrow, h2, paragraphs, external link, Testimonial)
HowTheyUseIt (Eyebrow, h2, paragraphs, FlowDiagram or image)
WhyMicrolink (Eyebrow, h2, lead paragraph, 3ร WhyCard)
CtaSection (shared)
MoreCustomers (shared)
ThanksSection (logo + acknowledgement)
When adding a customer, append to src/components/patterns/CustomerStory/customers.js:
{
slug: '<slug>',
name: '<name>',
blurb: '<~10 words, period>',
icon: '/images/clients/<icon>',
category: '<product> API',
quote: '<short quote for index page>',
author: '<name>',
role: '<role>',
avatar: '/images/clients/<avatar>.jpeg',
initials: '<XX>'
}
pink/secondary/pinky/pinkest accent โ reserved for feature pages.<Text as='a' target='_blank' rel='noopener'>, NOT the repo Link component (which adds noreferrer, killing SEO backlink value).See how to integrate <product>. Must differ from bottom CTA label.<h1> must include scrollMarginTop: 4.<name>: <use case> (no brand suffix โ Meta appends โ Microlink).cdnUrl('banner/screenshot.jpeg').npx standard src/pages/customers/<slug>.js.Ask one question at a time:
src/pages/customers/.references/cta-routing.md. Propose and confirm.customers.js.npx standard src/pages/customers/<slug>.js โ fix until clean.{{ โ no placeholders remaining.customers.js.Read the file, identify what needs changing, run only relevant steps, re-lint.
Generate concise, user-facing changelog entries for Microlink by inspecting git commits across relevant repositories.
Make designs responsive across screen sizes, devices, and platforms.
Add animations, micro-interactions, and motion effects to a feature.
Fix layout, spacing, visual rhythm, and hierarchy.
Audit interface accessibility, performance, theming, and responsiveness.
Amplify safe or boring designs to increase visual impact.