Skip to content

RegistrationSection

The RegistrationSection component displays a grid of official registration entries for FiNAN organizations in the Nordic region, including the local agency name, registration number, and logo.

  • Type: Content Component
  • Category: Trust and compliance
  • Complexity: Moderate
  • File: src/components/RegistrationSection.astro
  • Data config: src/data/registrationSectionConfig.ts
  • Configuration-driven - All content comes from registrationSectionConfig
  • Logo handling - Uses Astro image optimization via Image component
  • Responsive grid - 1 to 4 columns depending on viewport
  • Consistent typography - Local organization names and registration labels are styled uniformly

This component has no props. All content is loaded from registrationSectionConfig.

  1. Import the component in a page:

    ---
    import RegistrationSection from '../components/RegistrationSection.astro';
    ---
  2. Render the section where the registration grid should appear:

    <RegistrationSection />
  3. Update the content by editing src/data/registrationSectionConfig.ts.

export interface RegistrationEntity {
id: string;
country: string;
organizationName: string;
organizationNameLocal: string;
registrationNumber: string;
registrationLabel: string;
image: {
src: ImageMetadata;
alt: string;
width: number;
loading: 'lazy' | 'eager';
format: 'webp' | 'png' | 'jpg' | 'jpeg';
};
}
export interface RegistrationSectionContent {
title: {
highlight: string;
normal: string;
};
description: string;
entities: RegistrationEntity[];
}
{
id: 'finland-prh',
country: 'Finland',
organizationName: 'Finnish Patent and Registration Office',
organizationNameLocal: 'Patentti- ja rekisterihallitus',
registrationNumber: '3084026-2',
registrationLabel: 'Y-tunnus',
image: {
src: finlandPrhImg,
alt: 'Finnish Patent and Registration Office (PRH)',
width: 360,
loading: 'lazy',
format: 'webp',
},
}
  1. Add the organization logo in src/assets/images/registrations/.
  2. Import the image in src/data/registrationSectionConfig.ts.
  3. Add or edit the entity in the entities array.
  • The highlighted title text uses title.highlight followed by title.normal.
  • Each card renders a logo, local name, and registration number.
  • A special case reduces the Iceland logo max height.
  • Section spacing: py-16 with centered max width
  • Grid: grid-cols-1 up to lg:grid-cols-4
  • Card: rounded-lg bg-gray-50 with centered content
  • Logo: object-contain with max height variants
  • Every logo uses descriptive alt text from the config.
  • Registration labels are plain text for screen readers.
  • src/pages/index.astro
  • src/pages/about.astro
  • src/pages/contact.astro
  • src/pages/membership.astro
  • Representation pages under src/pages/representation/

View the complete implementation:

https://github.com/poncardasm/finan-website/blob/main/src/components/RegistrationSection.astro
https://github.com/poncardasm/finan-website/blob/main/src/data/registrationSectionConfig.ts