WFP logoDesign System

WFP UI-Kit substitutes

How to replicate some WFP UI-Kit components using WFP Design System.

Hero

A hero section is often unique to each application, so there isn’t a one-size-fits-all component for it. However, you can easily create hero sections using a combination of layout components, typography, and media elements.

Here are a few variations that can be built using these WFP UI-Kit components:

WFP humanitarian response operations
Emergency Food Assistance in Crisis Areas

Supporting families with food, nutrition, and resilience programmes where needs are highest.


WFP humanitarian response operations
Building Resilience Through Food Security

Communities are supported to overcome food insecurity through emergency assistance during crises and long-term resilience programmes.This approach combines immediate relief with sustainable solutions, helping people recover and thrive.


Making a difference together

Join the mission to eliminate hunger and deliver hope to communities facing food insecurity worldwide.Every contribution, big or small, helps reach families in their darkest moments and build a more resilient future.


NumberInput

Numeric inputs can be implemented in multiple ways. The first example demonstrates a basic number input, while the second implements manual increment/decrement controls. Both approaches are valid and can be chosen based on your application’s requirements.

For additional features such as validation, error handling, or custom styling, integrate the input with the <Field/> component to create a more reliable and user-friendly number input experience.

Enter the quantity you wish to order (1-10)

Enter the price per unit in dollars


ReadMore

The Collapsible component provides the same show/hide functionality as a dedicated ReadMore component. It allows content to be toggled based on user interaction, which is the core behaviour needed for read-more patterns.

A well designed toolkit reduces repetitive work and keeps teams aligned on patterns. It helps designers and engineers speak the same language, makes handoff smoother, and keeps visual decisions consistent across screens. New contributors can move faster because they start from battle-tested building blocks instead of rebuilding common UI from scratch. Over time, this creates momentum, improves delivery speed, and lowers the cost of maintaining and evolving the product.

This pattern can be implemented by chunking text based on character or word count, and conditionally rendering the "Read more" button based on content length. This approach achieves a similar user experience without needing a dedicated ReadMore component.

Search functionality illustrates <InputGroup> usage, combining input fields with icons, buttons, and other addons.

K

InputGroup is flexible and supports various configurations. Explore additional examples in the documentation.

StepNavigation

Step-by-step workflows can be built using Stepperize, a lightweight, type-safe stepper library. Below are horizontal and vertical layout variations.

  1. Details

    Provide your information

  2. Review

    Verify your details

  3. Payment

    Complete the payment

  4. Complete

    Order confirmed

Content for details


  1. Create Account

    Current

    Set up your credentials and profile information.

  2. Content for account

  3. Set Preferences

    Choose your notification and display preferences.

  4. Verification

    Verify your identity through email or phone.

  5. Get Started

    You're all set! Start exploring the platform.


For sub-level page navigation, use NavigationMenu to compose a horizontal list of related links with active-state support.

NavigationMenu gives you the same core behaviour as a dedicated subnavigation component while keeping implementation flexible and composable.

See Navigation Menu for the full documentation.

Unit

See Numbers and units.

User

The User component is essentially a combination of an avatar and text content. <Item> provides a structured way to display an image alongside content, making it an ideal fit for user profiles.

LS
Luke Skywalker

A legendary Jedi Master

LO
Leia Organa
  • Princess of Alderaan
  • Rebel Alliance Leader
  • General of the Resistance
  • Senator of the Galactic Empire

For more details, check the documentation for each component:

Wrapper

Instead of a dedicated WFP UI-Kit Wrapper component, use Tailwind’s container utility for responsive page-width constraints.

export function PageSection() {
  return (
    <section className="container mx-auto px-4 md:px-6 lg:px-8">
      <h2 className="text-xl font-semibold">Section title</h2>
      <p className="text-muted-foreground">Section content goes here.</p>
    </section>
  );
}