bundled-skills/design-it/glassmorphism/SKILL.md
Web and App implementation guide for Glassmorphism. Trigger when user wants a frosted glass effect, blurred backgrounds, transparency, or a sleek MacOS-like feel.
npx skillsauth add FrancoStino/opencode-skills-antigravity glassmorphismInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
"Looking through a frosted window. Interfaces that blend seamlessly with vibrant backgrounds."
Use this sub-style when the user's request matches the aesthetic described above. This is a child reference of the design-it skill and is not meant to be triggered directly.
backdrop-filter: blur().body {
/* Requires a complex background to see the glass effect */
background: url('abstract-mesh.jpg') cover;
}
.glass-panel {
background: rgba(255, 255, 255, 0.15); /* Light glass */
/* OR background: rgba(0, 0, 0, 0.25); for Dark glass */
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid rgba(255, 255, 255, 0.3); /* The glass edge */
border-radius: 16px;
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
padding: 32px;
}
struct GlassCard: View {
var body: some View {
ZStack {
// Vibrant background required for glass to show
LinearGradient(
colors: [.purple, .blue, .cyan],
startPoint: .topLeading,
endPoint: .bottomTrailing
)
.ignoresSafeArea()
// Glass panel
VStack(alignment: .leading, spacing: 16) {
Text("Glass Panel")
.font(.system(size: 22, weight: .semibold))
.foregroundColor(.white)
Text("Content floating on frosted glass.")
.font(.system(size: 15))
.foregroundColor(.white.opacity(0.8))
Button(action: {}) {
Text("Continue")
.font(.system(size: 15, weight: .semibold))
.foregroundColor(.white)
.padding(.horizontal, 24)
.padding(.vertical, 12)
.background(.ultraThinMaterial)
.cornerRadius(8)
}
}
.padding(24)
.background(.ultraThinMaterial) // Built-in frosted glass
.cornerRadius(16)
.overlay(
RoundedRectangle(cornerRadius: 16)
.stroke(.white.opacity(0.3), lineWidth: 1) // Glass edge highlight
)
.shadow(color: .black.opacity(0.1), radius: 20, x: 0, y: 10)
.padding(24)
}
}
}
.ultraThinMaterial, .thinMaterial, .regularMaterial, .thickMaterial — Apple built glassmorphism natively..overlay(RoundedRectangle().stroke(.white.opacity(0.3))) for the light edge catch.class GlassCard extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Stack(
children: [
// Vibrant background
Container(
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: [Colors.purple, Colors.blue, Colors.cyan],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
),
),
),
// Glass panel
Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(16),
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 16, sigmaY: 16),
child: Container(
padding: const EdgeInsets.all(24),
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.15),
borderRadius: BorderRadius.circular(16),
border: Border.all(
color: Colors.white.withOpacity(0.3),
width: 1,
),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.1),
blurRadius: 20,
offset: const Offset(0, 10),
),
],
),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text('Glass Panel',
style: TextStyle(fontSize: 22, fontWeight: FontWeight.w600,
color: Colors.white)),
const SizedBox(height: 16),
Text('Content floating on frosted glass.',
style: TextStyle(fontSize: 15,
color: Colors.white.withOpacity(0.8))),
],
),
),
),
),
),
],
);
}
}
BackdropFilter MUST be wrapped in ClipRRect — without clipping, the blur applies to the entire screen.ImageFilter.blur(sigmaX: 10...20, sigmaY: 10...20) for the frosted effect.Colors.white.withOpacity(0.1...0.2) — too opaque kills the glass look.import { BlurView } from '@react-native-community/blur';
const GlassCard = () => (
<View style={{ flex: 1 }}>
{/* Vibrant background */}
<LinearGradient
colors={['#9B59B6', '#3498DB', '#1ABC9C']}
style={StyleSheet.absoluteFill}
/>
{/* Glass panel */}
<View style={{
margin: 24,
borderRadius: 16,
overflow: 'hidden', // Required for blur clipping
}}>
<BlurView
blurType="light"
blurAmount={16}
style={{ padding: 24 }}
>
<View style={{
// Glass border overlay
borderRadius: 16,
borderWidth: 1,
borderColor: 'rgba(255,255,255,0.3)',
}}>
<Text style={{
fontSize: 22, fontWeight: '600', color: '#FFF',
marginBottom: 16,
}}>
Glass Panel
</Text>
<Text style={{
fontSize: 15, color: 'rgba(255,255,255,0.8)',
}}>
Content floating on frosted glass.
</Text>
</View>
</BlurView>
</View>
</View>
);
@react-native-community/blur — React Native has NO native blur support.BlurView parent in a View with overflow: 'hidden' and borderRadius to clip the blur.blurType: 'light' for light glass, 'dark' for dark glass, 'chromeMaterial' for iOS Chrome effect.BlurView performance varies on Android. Test thoroughly.@Composable
fun GlassCard() {
Box(modifier = Modifier.fillMaxSize()) {
// Vibrant background
Box(modifier = Modifier
.fillMaxSize()
.background(Brush.linearGradient(
colors = listOf(Color(0xFF9B59B6), Color(0xFF3498DB), Color(0xFF1ABC9C)),
start = Offset.Zero,
end = Offset.Infinite,
))
)
// Glass panel — Compose lacks native backdrop-filter,
// so use a semi-transparent surface with blur via Modifier.blur()
Card(
modifier = Modifier
.padding(24.dp)
.align(Alignment.Center),
shape = RoundedCornerShape(16.dp),
colors = CardDefaults.cardColors(
containerColor = Color.White.copy(alpha = 0.15f),
),
border = BorderStroke(1.dp, Color.White.copy(alpha = 0.3f)),
elevation = CardDefaults.cardElevation(defaultElevation = 0.dp),
) {
Column(modifier = Modifier.padding(24.dp)) {
Text("Glass Panel",
fontSize = 22.sp,
fontWeight = FontWeight.SemiBold,
color = Color.White)
Spacer(Modifier.height(16.dp))
Text("Content floating on frosted glass.",
fontSize = 15.sp,
color = Color.White.copy(alpha = 0.8f))
}
}
}
}
backdrop-filter blur doesn't exist natively. Use Modifier.blur() (API 31+) on the background, or use RenderEffect.createBlurEffect() for lower APIs.haze library (dev.chrisbanes.haze) for proper glassmorphism in Compose — it provides Modifier.haze() and Modifier.hazeChild().Color.White.copy(alpha = 0.15f) with a strong border to simulate the glass edge.data-ai
Snapshot a site's SEO state and detect ranking, indexation, metadata, canonical, robots, schema, and on-page regressions over time.
development
Coordinate focused subagents on substantial work, keep their ownership non-overlapping, and integrate verified results. Use for large-scope Codex tasks; keep trivial work with the coordinator.
data-ai
Use when an owner asks to find a cofounder or project partner. Assess only that agent's own owner and rank only approved profiles other agents posted for their own owners.
devops
Install, configure, verify, repair, update, and uninstall Hyprland on Fedora Linux with GPU-aware detection (NVIDIA/AMD/Intel).