Backpack UI
Components
List

List

The List component is a flexible list container that supports both unordered (ul) and ordered (ol) lists, and comes with a few built-in styles. The ListItem component is the ideal child for the List component, and represents an individual item in the list.


  • This is item 1
  • This is item 2
  • This is item 3

Import


_10
import { List, ListItem } from '@ef-global/backpack/List';

List Props

NameTypeDescription
variantListVariantsThe list style variant.
inversebooleanA boolean to indicate whether the list should be displayed in inverse mode. Defaults to false.
asListAsValuesThe list type. Either 'ul' for unordered list or 'ol' for ordered list. Defaults to 'ul'.

ListItem Props

NameTypeDescription
childrenReact.ReactNodeThe content of the list item.

Examples

In these examples, ListItem is the ideal child for the List component, which allows you to create a well-structured and organized list of items. By using ListItem as a child of List, you ensure that each item is properly styled and rendered within the list.

Default Unordered List

  • This is item 1
  • This is item 2
  • This is item 3

_10
const DefaultExample = () => (
_10
<List>
_10
<ListItem>This is item 1</ListItem>
_10
<ListItem>This is item 2</ListItem>
_10
<ListItem>This is item 3</ListItem>
_10
</List>
_10
);

Default Ordered List

  1. This is item 1
  2. This is item 2
  3. This is item 3

_10
const DefaultOrderedExample = () => (
_10
<List as="ol" />
_10
);

List with Marker Variant

  • This is item 1
  • This is item 2
  • This is item 3

_10
const MarkerVariantExample = () => (
_10
<List variant="marker">
_10
<ListItem>This is item 1</ListItem>
_10
<ListItem>This is item 2</ListItem>
_10
<ListItem>This is item 3</ListItem>
_10
</List>
_10
);

List with Border Variant and Spacing

  • This is item 1
  • This is item 2
  • This is item 3

_10
const BorderVariantExample = () => (
_10
<List variant="border">
_10
<ListItem className={'u-pt-s u-pb-s'}>This is item 1</ListItem>
_10
<ListItem className={'u-pt-s u-pb-s'}>This is item 2</ListItem>
_10
<ListItem className={'u-pt-s u-pb-s'}>This is item 3</ListItem>
_10
</List>
_10
);

List with Flex Layout

  • This is item 1

  • This is item 2


_17
const FlexLayoutExample = () => (
_17
<List variant="border">
_17
<ListItem className={'u-pt-s u-pb-s'}>
_17
<Flex direction={'row'} gap={'s'} align={'center'}>
_17
<FlexItem>
_17
<IconArrowRight />
_17
</FlexItem>
_17
<FlexItem>
_17
<Text as={'p'} variant={'body'}>
_17
This is item 1
_17
</Text>
_17
</FlexItem>
_17
</Flex>
_17
</ListItem>
_17
// ... more ListItem components
_17
</List>
_17
);

List with Definitions

The following example demonstrates how to create a list with definitions using the List and ListItem components. This is achieved by wrapping the Text components inside Flex and FlexItem components to properly align and space the content.


  • This is title 1

    This is item 1

  • This is title 2

    This is item 2

  • This is title 3

    This is item 3


_35
import { List, ListItem } from '@/src/components/List';
_35
import { Flex, FlexItem } from '@/src/components/Flex';
_35
import { Text } from '@/src/components/Text';
_35
<List>
_35
<ListItem>
_35
<Flex direction={'row'} gap={'s'} align={'center'} justify={'space-between'}>
_35
<FlexItem>
_35
<Text as={'p'} variant={'uiLabelBold'}>This is title 1</Text>
_35
</FlexItem>
_35
<FlexItem>
_35
<Text as={'p'} variant={'body'}>This is item 1</Text>
_35
</FlexItem>
_35
</Flex>
_35
</ListItem>
_35
<ListItem>
_35
<Flex direction={'row'} gap={'s'} align={'center'} justify={'space-between'}>
_35
<FlexItem>
_35
<Text as={'p'} variant={'uiLabelBold'}>This is title 2</Text>
_35
</FlexItem>
_35
<FlexItem>
_35
<Text as={'p'} variant={'body'}>This is item 2</Text>
_35
</FlexItem>
_35
</Flex>
_35
</ListItem>
_35
<ListItem>
_35
<Flex direction={'row'} gap={'s'} align={'center'} justify={'space-between'}>
_35
<FlexItem>
_35
<Text as={'p'} variant={'uiLabelBold'}>This is title 3</Text>
_35
</FlexItem>
_35
<FlexItem>
_35
<Text as={'p'} variant={'body'}>This is item 3</Text>
_35
</FlexItem>
_35
</Flex>
_35
</ListItem>
_35
</List>