LunarCSS

Effects

Opacity and shadow utilities.

Opacity

opacity-0      → opacity: 0
opacity-5      → opacity: 0.05
opacity-10     → opacity: 0.10
opacity-20     → opacity: 0.20
opacity-25     → opacity: 0.25
opacity-30     → opacity: 0.30
opacity-40     → opacity: 0.40
opacity-50     → opacity: 0.50
opacity-60     → opacity: 0.60
opacity-70     → opacity: 0.70
opacity-75     → opacity: 0.75
opacity-80     → opacity: 0.80
opacity-90     → opacity: 0.90
opacity-95     → opacity: 0.95
opacity-100    → opacity: 1
opacity-[0.42] → opacity: 0.42  (arbitrary)

Shadow

Named scale

shadow-none  → clears all shadow props
shadow-sm    → subtle shadow
shadow       → default shadow
shadow-md    → medium shadow
shadow-lg    → large shadow
shadow-xl    → extra large shadow
shadow-2xl   → 2x extra large shadow

React Native output

Each shadow-* class emits all required React Native shadow props together:

{
  shadowColor: '#000',
  shadowOffset: { width: 0, height: Y },
  shadowOpacity: O,
  shadowRadius: R,
  elevation: E,          // Android
}

The elevation value is set alongside the iOS shadow props — you don't need separate elevation classes.

Shadow scale values

Classheightopacityradiuselevation
shadow-sm10.0511
shadow20.1022
shadow-md40.1244
shadow-lg80.1488
shadow-xl120.161212
shadow-2xl160.201616

Examples

// Dimmed overlay
<View className="absolute inset-0 bg-black opacity-50" />

// Fade a disabled button
<TouchableOpacity className="opacity-50" disabled>
  <Text>Disabled</Text>
</TouchableOpacity>

// Card shadow
<View className="rounded-card p-card bg-white shadow-lg">
  <Text>Card with shadow</Text>
</View>

// Subtle input shadow
<TextInput className="rounded-lg bg-zinc-900 px-4 py-3 shadow-sm" />

On this page