suiss/uim · Block

Settings Device

A device settings home screen with search, an account row and grouped rows with icons, toggles and details.

Settings Device is an open-source mobile screen from suiss/uim for React Native and Expo, with SwiftUI and Jetpack Compose versions built from the same design tokens. The @esuiss/uim CLI copies its source into your project, so you own the code.

iOS
Settings Device on iOS in light mode

A large-title Header sits over an InputGroup search field, an account Item with an Avatar, and inset ItemGroup lists of rows with tinted icons. Airplane Mode, Wi-Fi, Bluetooth and Focus use a Switch, and other rows show a detail value and a chevron. Typing filters the rows and shows a message when nothing matches.

Installation

$ pnpm dlx @esuiss/uim@latest add settings-device

The CLI also adds what it builds on: Avatar, Header, Icon, Input Group, Item, Screen, Switch, Text.

Manual

  1. Install the dependencies:
npx expo install cn phosphor-react-native react-native-svg
  1. Add the pieces it builds on: Avatar, Header, Icon, Input Group, Item, Screen, Switch, Text.

  2. Copy the source into components/blocks/settings-device.tsx:

uniwind/components/blocks/settings-device.tsx
import { cn } from "cn"
import {
  AirplaneIcon,
  BellIcon,
  BluetoothIcon,
  CaretRightIcon,
  CellSignalFullIcon,
  GearIcon,
  HourglassIcon,
  MagnifyingGlassIcon,
  MoonIcon,
  type Icon as PhosphorIcon,
  SpeakerHighIcon,
  SunIcon,
  WifiHighIcon,
} from "phosphor-react-native"
  1. Update the import paths to match your project.

Usage

import { SettingsDevice } from "@/components/blocks/settings-device"
<SettingsDevice />

Replace GROUPS with your rows and the account details with your user. Use onAccountPress and onRowPress, which receives the row label, to navigate.