Logo

dev-resources.site

for different kinds of informations.

Ship mobile apps faster with React-Native-Blossom-UI

Published at
1/12/2025
Categories
reactnative
uidesign
typescript
opensource
Author
deepak_kumar_dk
Author
15 person written this
deepak_kumar_dk
open
Ship mobile apps faster with React-Native-Blossom-UI

React-Native open-source community provides very few UI library which is also great, customizable and up to date. And I faced the same problem and so I decided to make a new one which will be rich in components and also provides a full customizability, that's where the blossom-ui comes in.

You can skip this article and directly run to the Documentation website.

Blossom UI helps you to create an awesome UI on mobile and web platform. It's based on custom design system and it's totally configurable.Main features that it provides -

Base components - This contains all the basic components that react-native provides.
Theme Support - Out of the box Theme support with dark theme.
Customizability - You can customize all the components to match to your UI need.
Icons Support - react-native-vector-icons support out of the box.

Installation

Start with installing the components library.

npm install @react-native-blossom-ui/components
Enter fullscreen mode Exit fullscreen mode

Next install the react-native-vector-icons as it's a peer dependency of the library.

Now wrap your Root Component (Navigation Container) into the BlossomThemeProvider in your App.ts file

import React, { useState } from "react";
import { BlossomThemeProvider } from "@react-native-blossom-ui/components";

import lightTheme from "../lightTheme.json";
import darkTheme from "../darkTheme.json";
import options from "../options.json";
import { MyAppContainer } from "src/navigation";

export default function App() {
  const [isDark, setIsDark] = useState(false);

  return (
    <BlossomThemeProvider
      theme={isDark ? darkTheme : lightTheme}
      isDark={isDark}
      options={options}
    >
      <MyAppContainer />
    </BlossomThemeProvider>
  );
}
Enter fullscreen mode Exit fullscreen mode

Now, from here you can use all the 20+ components (as of now) to build and awesome blossom UI.
Let's make a login form real quick.

import React, { useCallback, useState } from "react";

import {
  Button,
  Checkbox,
  Text,
  TextInput,
  View,
} from "@react-native-blossom-ui/components";

export function Login() {
  const [isLoading, setIsLoading] = useState(false);
  const [email, setEmail] = useState("");
  const [password, setPassword] = useState("");

  const [isEmailError, setIsEmailError] = useState(false);
  const [isPasswordError, setIsPasswordError] = useState(false);

  const onLoginPress = useCallback(() => {
    if (!email) {
      setIsEmailError(true);
      return;
    }

    if (!password) {
      setIsPasswordError(true);
      return;
    }

    setIsEmailError(false);
    setIsPasswordError(false);
    // Call the api
    setIsLoading(true);
    setTimeout(() => {
      setIsLoading(false);
    }, 1500);
  }, []);

  return (
    <View style={{ margin: 16 }}>
      <Text typography="h4">Login</Text>
      <TextInput
        label="Email"
        placeholder="[email protected]"
        value={email}
        onChangeText={setEmail}
        containerStyle={{ marginVertical: 8 }}
        error={isEmailError ? "Please enter your email" : ""}
      />
      <TextInput
        label="Password"
        placeholder="Password"
        value={password}
        onChangeText={setPassword}
        containerStyle={{ marginVertical: 8 }}
        secureTextEntry
        error={isPasswordError ? "Please enter a valid password" : ""}
      />
      <Checkbox status="primary" size="small" label="Remember Me" />
      <Button
        isLoading={isLoading}
        title="Login"
        style={{ width: "100%", marginVertical: 16 }}
        onPress={onLoginPress}
      />
    </View>
  );
}
Enter fullscreen mode Exit fullscreen mode

Here's the result of it.

Image description

Bonus Component

You can also use the in-built Select/MultiSelect component which come out of the box with theme support too. For example -


export function SelectClearable() {
  const [selectedValue, setSelectedValue] = useState<number | undefined>(-1)

  return (
    <Select
      options={OPTIONS}
      value={selectedValue}
      clearable
      onValueChange={(value) => setSelectedValue(value)}
    />
  )
}
Enter fullscreen mode Exit fullscreen mode

Thanks for reading, please star this repository if it looks awesome and a good step in react-native community.

reactnative Article's
30 articles in total
Favicon
Using Direct Line botframework in a React Native Application to connect to Copilot Studio Agent
Favicon
[Video]Build a Full-Stack Mobile App with React Native Expo and Payload CMS in 2025!
Favicon
Introducing EAS Hosting: Simplified deployment for modern React apps
Favicon
Auto Resize multiline TextInput in React Native
Favicon
Read Text Asset File in Expo
Favicon
Flat list horizontal all Items perfectly visible in iOS not in android ContentContainerStyle
Favicon
Building High-Performance React Native Apps[Tips for Developers]
Favicon
React Native With TypeScript: Everything You Need To Know
Favicon
Building the 'One of a Kind' Ultimate Mobile App Framework. Seeking exceptional engineers to join the journey.
Favicon
Ship mobile apps faster with React-Native-Blossom-UI
Favicon
Encryption in React Native apps enhances data security, protecting user information and ensuring privacy. However, it also presents challenges, such as performance overhead and complex implementation
Favicon
How to Integrate Stack, Bottom Tab, and Drawer Navigator in React Native
Favicon
🌎 Seamless Multi-Language Support in React Native
Favicon
Mastering React Native with TypeScript: From Basics to Brilliance - Part 1
Favicon
Building "Where Am I?": A GeoGuessr Alternative for Mobile
Favicon
React Native is powerful modern technology
Favicon
How to Build a Centered Input Field for Amounts in React Native
Favicon
Compound Component pattern in react
Favicon
Pop Quiz: Is There a Bug in This React Native Component?
Favicon
The Unlikely Fix: How a Simple Folder Change Saved My React Native Journey
Favicon
How to Integrate Stack and Bottom Tab Navigator in React Native
Favicon
How to make a view expand downwards in an inverted FlatList?
Favicon
Building a Custom Star Rating Component in React Native with Sliding and Press Interactions
Favicon
Choosing the Right Compiler for React Native Development in 2025
Favicon
Simple remove transition animation in react native
Favicon
How to Hire Dedicated React Native Developers for Customizable Features
Favicon
React Native’s New Architecture: Sync and async rendering
Favicon
Top Mobile App Development Company in Bangalore | Hyena IT
Favicon
Mastering Import Order in React: A Deep Dive Into Best Practices and Tools
Favicon
Creating Custom Inputs for Regex Validation in React and React Native

Featured ones: