npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

react-native-glassmorphic

v1.0.2

Published

A high-performance, zero-dependency, hybrid native and CSS blur glassmorphism library for React Native and Expo.

Readme

react-native-glassmorphic 🔮

A high-performance, responsive, hybrid native & CSS Glassmorphism layout library for React Native and Expo (iOS, Android, and Web).

This package delivers beautiful frosted glass UI components (Cards, Inputs, Buttons) that automatically tap into high-fidelity native system blur on iOS (expo-blur / @react-native-community/blur) while utilizing optimized, zero-overhead CSS gradients and highlights as fallbacks on Android and Web to prevent UI stutter.


Features

  • Hybrid Engine: Uses ultra-smooth native blur effects on iOS and CSS translucent layered masks as fallbacks on Android & Web.
  • Liquid 60FPS: Designed specifically for high-performance layout rendering without screen redraw lag.
  • Fully Responsive: Adapts fluidly to all mobile device viewports and standard styles.
  • Expo Ready: Installs with zero native modules or linking required for managed Expo environments.
  • Pre-Built Elements: Ready-to-use frosted elements: GlassmorphicCard, GlassmorphicInput, and GlassmorphicButton.

Installation

npm install react-native-glassmorphic

(Optional) For native hardware blur on iOS, you can also install expo-blur:

npx expo install expo-blur

Usage

1. Glassmorphic Card Container

Create beautiful backdrop layouts, custom menus, or profile grids:

import React from 'react';
import { StyleSheet, Text } from 'react-native';
import { GlassmorphicCard } from 'react-native-glassmorphic';

export default function ProfileCard() {
  return (
    <GlassmorphicCard 
      intensity={30} 
      tint="light" 
      borderRadius={20}
      style={styles.card}
    >
      <Text style={styles.title}>Welcome Back</Text>
      <Text style={styles.subtitle}>Premium Membership Active</Text>
    </GlassmorphicCard>
  );
}

const styles = StyleSheet.create({
  card: {
    padding: 24,
    width: 320,
    alignItems: 'center',
  },
  title: {
    fontSize: 20,
    fontWeight: 'bold',
    color: '#0F172A',
  },
  subtitle: {
    fontSize: 14,
    color: 'rgba(15, 23, 42, 0.7)',
    marginTop: 6,
  },
});

2. Glassmorphic Text Input

Create gorgeous, modern search fields and form items:

import React, { useState } from 'react';
import { GlassmorphicInput } from 'react-native-glassmorphic';

export default function SearchField() {
  const [query, setQuery] = useState('');

  return (
    <GlassmorphicInput
      value={query}
      onChangeText={setQuery}
      placeholder="Search transaction history..."
      tint="light"
      intensity={20}
    />
  );
}

3. Glassmorphic Button

Interactive, frosted buttons with dynamic loading indicators:

import React from 'react';
import { GlassmorphicButton } from 'react-native-glassmorphic';

export default function ActionButton() {
  return (
    <GlassmorphicButton
      title="Unlock Premium Pack"
      tint="dark"
      intensity={40}
      onPress={() => console.log('Unlocked!')}
    />
  );
}

Component API Reference

GlassmorphicCard Props

| Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | children | React.ReactNode | undefined | The child elements inside the card. | | intensity | number | 20 | Blur amount (0 to 100) mapped to iOS Blur and Android opacity. | | tint | 'light' \| 'dark' \| 'none' | 'light' | Theme color styling. | | borderRadius | number | 16 | Border radius of the card. | | borderWidth | number | 1 | Border width of the card. | | borderColor | string | Computed | Semi-translucent custom border color. | | shadowOpacity | number | 0.1 | Shadow strength baseline. | | elevation | number | 4 (or 0 if tint="none") | Android-specific elevation shadow. | | style | StyleProp<ViewStyle> | undefined | Style overrides for the outer container. |


GlassmorphicInput Props

Extends standard React Native TextInputProps.

| Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | intensity | number | 15 | Blur amount (0 to 100) mapped to iOS Blur and Android opacity. | | tint | 'light' \| 'dark' \| 'none' | 'light' | Theme color styling. | | borderRadius | number | 12 | Border radius of the input container. | | containerStyle | StyleProp<ViewStyle> | undefined | Style overrides for the wrapping card/container. | | inputStyle | StyleProp<TextStyle> | undefined | Style overrides for the inner TextInput component. |


GlassmorphicButton Props

| Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | title | string | Required | Button display text. | | onPress | () => void | undefined | Callback fired when the button is pressed. | | intensity | number | 30 | Blur amount (0 to 100) mapped to iOS Blur and Android opacity. | | tint | 'light' \| 'dark' \| 'none' | 'light' | Theme color styling. | | borderRadius | number | 12 | Border radius of the button. | | loading | boolean | false | When true, renders an ActivityIndicator in place of the text. | | disabled | boolean | false | When true, disables interactions and reduces opacity. | | containerStyle | StyleProp<ViewStyle> | undefined | Style overrides for the button card/container. | | textStyle | StyleProp<TextStyle> | undefined | Style overrides for the button text label. |


Strategic Styling Advice

For optimal visual glass effects:

  1. Bright Backgrounds: Place Glassmorphic elements on top of rich gradient, colorful, or busy photo backgrounds. Frosted effects are more pronounced when there are strong color transitions underneath.
  2. Double Highlights: Combine bright background layers with custom shadowColor properties to increase visual depth.

License

This package is licensed under the MIT License.