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

nim-glass

v1.1.4

Published

React Native glass/blur effects and inset shadows that actually work on Android and iOS

Readme

nim-glass 🔮

A customizable React Native package for glass/blur effects and inset shadows that actually work on both iOS and Android.

npm version License: MIT

Why nim-glass?

Existing blur libraries (expo-blur, @react-native-community/blur) have well-known issues:

  • ❌ Android blur often doesn't work or is slow
  • ❌ Limited customization options
  • ❌ No inset shadow support
  • ❌ Complex setup requirements

nim-glass solves these problems:

  • ✅ Native Android blur using RenderEffect (Android 12+) with fallbacks
  • ✅ Native iOS blur using UIVisualEffectView
  • Inset shadow component (missing from React Native)
  • ✅ Highly customizable glass effects
  • ✅ Simple CLI for easy installation

Installation

# npm
npm install nim-glass

# yarn
yarn add nim-glass

# pnpm
pnpm add nim-glass

iOS Setup

cd ios && pod install

Android Setup

No additional setup required! Auto-linking handles everything for React Native 0.60+.


Quick Start

import { GlassView, GlassCard, InsetShadow } from 'nim-glass';

// Simple glass blur effect
<GlassView blurIntensity="medium" tint="light" borderRadius={20}>
  <Text style={{ color: 'white' }}>Blurred content</Text>
</GlassView>

// Pre-styled glass card
<GlassCard variant="dark" elevation={3}>
  <Text style={{ color: 'white' }}>Glass card content</Text>
</GlassCard>

// Inset shadow effect
<InsetShadow shadowColor="rgba(0,0,0,0.5)" shadowBlur={10}>
  <View style={{ padding: 20 }}>
    <Text>Content with inset shadow</Text>
  </View>
</InsetShadow>

Components

GlassView

The core blur/glass effect component.

<GlassView
  blurIntensity="medium"    // 'light' | 'medium' | 'heavy' | 'ultra' | number (1-100)
  tint="light"              // 'light' | 'dark' | 'extraLight' | 'chromeMaterial' | 'custom'
  tintColor="rgba(255,255,255,0.2)"  // Custom tint color (when tint='custom')
  tintOpacity={0.1}         // Tint overlay opacity (0-1)
  borderRadius={16}         // Corner radius
  borderWidth={1}           // Border width
  borderColor="rgba(255,255,255,0.2)"  // Border color
>
  {children}
</GlassView>

GlassCard

Pre-styled glass card with variants and elevation levels.

<GlassCard
  variant="light"           // 'light' | 'dark' | 'frosted' | 'neon'
  elevation={2}             // 1 | 2 | 3 | 4 | 5 (affects blur/shadow intensity)
  showInsetShadow={true}    // Enable inset shadow effect
  borderRadius={20}         // Corner radius
  padding={16}              // Inner padding
>
  {children}
</GlassCard>

Variants

| Variant | Description | |---------|-------------| | light | Light glass with white tint | | dark | Dark glass with black tint | | frosted | Subtle frosted glass effect | | neon | Purple/violet neon glass |

InsetShadow

Simulates inset shadows (not natively supported by React Native).

<InsetShadow
  shadowColor="rgba(0,0,0,0.3)"   // Shadow color
  shadowOffset={{ top: 4, left: 4, right: 0, bottom: 0 }}  // Shadow offset per side
  shadowBlur={8}                   // Blur radius
  shadowSpread={0}                 // Spread amount
  borderRadius={16}                // Match container radius
>
  {children}
</InsetShadow>

CLI Commands

# Initialize nim-glass in your project
npx nim-glass init

# Check installation status
npx nim-glass doctor

# Link native modules (for React Native < 0.60)
npx nim-glass link

Platform Support

| Feature | iOS | Android 12+ | Android < 12 | |---------|-----|-------------|--------------| | Blur Effect | ✅ | ✅ (RenderEffect) | ✅ (RenderScript) | | Tint Overlay | ✅ | ✅ | ✅ | | Inset Shadow | ✅ | ✅ | ✅ | | Hardware Acceleration | ✅ | ✅ | ⚠️ Software |


TypeScript

Full TypeScript support included:

import { 
  GlassView, 
  GlassCard, 
  InsetShadow,
  GlassViewProps,
  GlassCardProps,
  InsetShadowProps,
  BlurIntensity,
  GlassCardVariant
} from 'nim-glass';

Examples

Glassmorphism Card

<View style={{ backgroundColor: '#1a1a2e', flex: 1 }}>
  <Image source={backgroundImage} style={StyleSheet.absoluteFill} />
  
  <GlassCard variant="light" elevation={3} style={{ margin: 20 }}>
    <Text style={{ color: 'white', fontSize: 24 }}>
      Premium Glass Card
    </Text>
    <Text style={{ color: 'rgba(255,255,255,0.7)' }}>
      Beautiful blur effect that works everywhere
    </Text>
  </GlassCard>
</View>

Dark Theme Tab Bar

<GlassView
  blurIntensity="heavy"
  tint="dark"
  tintColor="rgba(0, 0, 0, 0.5)"
  borderRadius={30}
  style={{ 
    position: 'absolute', 
    bottom: 20, 
    left: 20, 
    right: 20,
    height: 80 
  }}
>
  {/* Tab bar content */}
</GlassView>

Inset Button

<InsetShadow
  shadowColor="rgba(0,0,0,0.4)"
  shadowOffset={{ top: 3, left: 3, right: 0, bottom: 0 }}
  shadowBlur={6}
  borderRadius={12}
>
  <TouchableOpacity style={{ padding: 16, alignItems: 'center' }}>
    <Text>Pressed Button Effect</Text>
  </TouchableOpacity>
</InsetShadow>

License

MIT © ZaYn Miraj


Author

ZaYn Miraj
📧 [email protected]
🌐 zaynmiraj.com


Contributing

Contributions are welcome! Please read our contributing guide for details.