Skip to main content

Overview

The Service interface represents a product or service offering in the VENCOL catalog. It provides comprehensive data for displaying solutions in both listing and detail views, including descriptions, features, images, and icons.

Type Definition

Source: source/types.ts:19-33

Properties

string
required
Unique identifier for the service. Used for React keys and data lookups.
string
required
URL-friendly identifier for routing (e.g., "bolsas-termoencogibles-cryovac" becomes /soluciones/bolsas-termoencogibles-cryovac).
string
required
Full display title of the service shown in detail pages and cards.
string
required
Short description displayed in listing cards and previews. Keep concise (1-2 sentences).
string
required
Extended description with detailed information about the service, displayed on the detail page.
string
required
First section subtitle in the detail view for organizing content into themed sections.
string
required
Content for the first subtitle section, providing detailed information about that aspect.
string
required
Second section subtitle in the detail view for additional content organization.
string
required
Content for the second subtitle section with complementary information.
LucideIcon
required
React component reference from lucide-react library. Used for visual representation in cards and menus.Common icons: Package, Layers, Droplets, Tag, PenTool
string[]
required
Array of key features or benefits. Each string represents one bullet point.
string[]
required
Array of image URLs for the service. First image typically used as hero, others in gallery.
string
required
Shortened title for dropdown menus and navigation where space is limited.

Usage Examples

Complete Service Definition

Here’s a real example of a service object from the VENCOL application:
Source: source/data/data.tsx:276-299

Service Array for Solutions Catalog

Source: source/data/solutions.tsx:4-85

Rendering Service in Dropdown Menu

Source: source/components/Navbar.tsx:78-87

Using Icon Component

Icon Reference

Common Lucide icons used in the VENCOL services:
  • Package - Bolsas termoencogibles
  • Layers - Film de empaque termoformado
  • Droplets - Absorbentes tipo almohadilla
  • Tag - Foils para etiquetas
  • PenTool - Foils de marcación
Import from lucide-react:

Content Strategy

  • description: 1-2 sentences, focusing on key benefits (shown in cards)
  • longDescription: 2-3 paragraphs with technical details and use cases (shown on detail page)
Use subtitle sections to break down complex product information:
  • subtitle1: Often focuses on technical capabilities
  • subtitle2: Often focuses on business benefits or applications
  • Keep each feature to one line if possible
  • Lead with benefit, follow with technical detail
  • Use 4-6 features for optimal readability
  • Format consistently (e.g., all start with action verbs)
  • First image in array is typically the hero/primary image
  • Include 2-4 images total
  • Use high-quality product photography
  • Ensure images are web-optimized (WebP format recommended)
  • NavLink - Used for simple navigation items
  • BlogPost - Similar content structure for blog articles

TypeScript Notes

  • All fields are required (no optional properties)
  • The icon property requires a React component type from lucide-react
  • Arrays (features, images) can be empty but should be defined
  • The LucideIcon type is imported from "lucide-react"