Customization

Slot styles, render props, and theme tokens.

Style through slot styles, render props, and theme tokens — without forking the selection logic.

Slot styles

<Dropdown
  styles={{
    trigger: { borderRadius: 12 },
    content: { backgroundColor: '#111' },
    itemSelected: { backgroundColor: '#222' },
  }}
  ...
/>

Slots include trigger, triggerText, content, item, itemSelected, itemText, itemTextSelected, backdrop, handle, searchInput, chip, chipText, empty, emptyText, header, and footer.

Render props

<Dropdown
  data={users}
  value={user}
  onChange={setUser}
  searchable
  renderItem={({ item, selected, onPress }) => (
    <Pressable onPress={onPress}>
      <Text style={selected ? styles.selected : undefined}>
        {item.label}
        {item.group ? ` · ${item.group}` : ''}
      </Text>
    </Pressable>
  )}
/>

Also available: renderTrigger, renderChip, renderEmpty, renderHeader, renderFooter.

Theme provider

import {
  DropdownProvider,
  darkTokens,
} from 'react-native-silk-dropdown';

<DropdownProvider tokens={darkTokens}>
  <App />
</DropdownProvider>

Pass a partial tokens object to override colors, spacing, radii, typography, or elevation. See DropdownProvider.