diff --git a/src/components/demos/PhotoGalleryDemo.astro b/src/components/demos/PhotoGalleryDemo.astro index 52f2c38..bd9b5db 100644 --- a/src/components/demos/PhotoGalleryDemo.astro +++ b/src/components/demos/PhotoGalleryDemo.astro @@ -24,7 +24,7 @@ const p = (file: string, alt: string, category: string, caption?: string) => ({ height: 800, }); const photos = [ - p('gallery-roofs.svg', 'Rooftops of a town centre from above, with the main road crossing it', 'Buildings', 'Roof survey, town centre'), + p('gallery-roofs.svg', 'Rooftops of a town center from above, with the main road crossing it', 'Buildings', 'Roof survey, town center'), p('gallery-tower.svg', 'A telecom mast seen from directly above, its three guy lines spread out', 'Structures'), p('gallery-pylons.svg', 'Power lines crossing green fields between three pylons', 'Power lines', 'Line inspection, after the storm'), p('gallery-coast.svg', 'A sandy coastline with surf breaking along it', 'Scenic'), diff --git a/src/data/catalog.ts b/src/data/catalog.ts index e83525f..ba7e34c 100644 --- a/src/data/catalog.ts +++ b/src/data/catalog.ts @@ -978,7 +978,7 @@ const faqs: AccordionItem[] = [ // vertical timeline 500/mo, difficulty 21 (rising); icon list 660/45; timeline design website // 170/25 (SE Ranking US, 2026-09-23). search: { query: 'vertical timeline', alsoRanks: ['icon list', 'timeline design website'] }, - replaces: ['PowerPack “Info List” module (Beaver Builder)', 'UABB “Info List”', 'Elementor Icon List widget', 'hand-written icon lists', 'UABB and PowerPack “Info Box” modules (boxed and centred)'], + replaces: ['PowerPack “Info List” module (Beaver Builder)', 'UABB “Info List”', 'Elementor Icon List widget', 'hand-written icon lists', 'UABB and PowerPack “Info Box” modules (boxed and centered)'], goodFor: 'Services, “how it works”, process steps, milestones and feature lists.', notFor: 'Navigation (that is a menu) and long prose (write paragraphs).', asks: [ @@ -3389,7 +3389,7 @@ const { product, currency } = Astro.props; name: 'Logo grid', aka: ['PowerPack Logo Grid', 'PowerPack Logos Carousel', 'pp-logos-grid', 'UABB logo carousel', 'Elementor logo carousel', 'client logos', 'partner logos', 'logo carousel', 'logo marquee', 'as featured in', 'trust badges'], summary: - 'Client, partner, certification or press logos in an even grid, each fitted into the same box so a wide wordmark and a square badge read as equals; or scrolling past in a slow marquee with a pause button. Optionally grey until pointed at. A named list; every logo’s alt is the organisation’s name.', + 'Client, partner, certification or press logos in an even grid, each fitted into the same box so a wide wordmark and a square badge read as equals; or scrolling past in a slow marquee with a pause button. Optionally gray until pointed at. A named list; every logo’s alt is the organization’s name.', pitch: 'Show who already trusts you, in a tidy row of their logos.', // Not measured: SE Ranking timed out on 2026-10-30. Measure before the page goes live. search: { query: 'logo carousel', alsoRanks: ['logo grid', 'client logos', 'logo slider'] }, @@ -3398,12 +3398,12 @@ const { product, currency } = Astro.props; notFor: 'Logos the client has no permission to show, or more than about twelve (the strip becomes noise). Not for products or photos: those are product-list or photo-gallery. The marquee is not for a page that already has a moving hero or carousel.', asks: [ - { key: 'logos', label: 'Each logo, as SVG or a transparent PNG', hint: 'Only organisations that have agreed to be shown.', required: true }, + { key: 'logos', label: 'Each logo, as SVG or a transparent PNG', hint: 'Only organizations that have agreed to be shown.', required: true }, { key: 'links', label: 'Where each logo should link, if anywhere' }, { key: 'heading', label: 'What the row is: clients, partners, accreditations, press', required: true }, ], props: [ - { name: 'logos', type: '{ src, alt, href?, width?, height? }[]', note: '`alt` is the organisation’s name, required (the build refuses a file name or URL, which is what PowerPack writes). `href` makes it a link named by that alt. width / height reserve the box.' }, + { name: 'logos', type: '{ src, alt, href?, width?, height? }[]', note: '`alt` is the organization’s name, required (the build refuses a file name or URL, which is what PowerPack writes). `href` makes it a link named by that alt. width / height reserve the box.' }, { name: 'label', type: 'string', note: 'Required: names the list (“Clients we have flown for”).' }, { name: 'layout', type: "'grid' | 'marquee'", default: "'grid'", note: 'marquee scrolls one row on a loop, with a pause button; it is the grid under reduced motion, without JavaScript, or when the logos fit.' }, { name: 'columns', type: '{ base?, md?, lg? }', note: 'Fixed columns per breakpoint (md ≥ 48rem, lg ≥ 64rem). Default: as many as fit at --lg-min.' }, @@ -3430,11 +3430,11 @@ const { product, currency } = Astro.props; { name: '--lg-fade', fallback: '3rem', note: 'The marquee’s edge fade.' }, ], a11y: [ - 'A