everkit-ui
v0.6.0
Published
A reusable, theme-agnostic React Native / Expo UI component library. Components own structure, behavior, and layout geometry; each consuming app injects its own colors + fonts via a theme.
Downloads
783
Maintainers
Readme
everkit-ui
everkit-ui is a shared toolbox of ready-made screen pieces for our mobile apps. Buttons, cards, text fields, pop-up sheets, chat bubbles and whole screen layouts are built once here and reused by every app
The problem it solves
Our apps (a tea journal, an espresso helper and a matcha companion) need many of the same pieces. Without a shared toolbox, each app builds its own button, its own card and its own sign-in screen, and they slowly drift apart. A fix made in one app never reaches the others
everkit-ui builds each piece once. Every app gets the same behaviour, and each app still keeps its own look
What an app gets
- Ready-made pieces - buttons, cards, text fields, sheets, empty and error screens, all built and checked in one place
- Its own look - the app hands over its colours and fonts, and every piece dresses in them, in light and dark mode
- Shared fixes - when a piece is fixed or improved here, every app picks it up with its next update
- Faster new screens - form, detail and sign-in screens arrive with the header, background and keyboard handling already done
An everyday analogy
Think of a furniture maker that supplies the same sofa frame to several shops. The frame, springs and cushions follow one standard. Each shop picks its own fabric and colour, so the sofas look different in every showroom but sit exactly the same. everkit-ui is the frame, and each app chooses the fabric
What it is not
It holds no app data, no accounts and no business rules. It only draws the pieces on screen. Signing in, saved data and each app's own features live in other packages and in the apps themselves
What an app has to install
everkit-ui leans on a handful of other building blocks that each app installs for itself. All of the pieces come through one front door, so an app needs almost every building block even when it only uses a button. Four are truly optional, and the pieces that use them quietly do without
| Building block | Needed? | What happens without it |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------- |
| react, react-native, nativewind, react-native-keyboard-controller | Always | The app does not build |
| react-native-reanimated, react-native-safe-area-context, react-native-gesture-handler, react-native-svg, lucide-react-native, expo-linear-gradient, expo-image | Always | The app does not build, even though the package lists them as optional |
| expo-glass-effect | Optional | Floating controls use a plain surface instead of iOS Liquid Glass |
| expo-haptics | Optional | Buttons that ask for a tap vibration stay silent |
| react-native-image-viewing | Optional | The full-screen photo viewer does not open |
| @react-native-community/datetimepicker | Optional | The date field shows its value but cannot be changed |
For developers: see ARCHITECTURE.md
