floating-ui – Design & UI skill for AI agents
Web and App implementation guide for Floating UI. Trigger when user wants detached cards, elevated components, and a light, airy feel.
Install the floating-ui skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/floating-ui-32bb4.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /floating-ui – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/floating-ui-32bb4.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $floating-ui – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/floating-ui-32bb4.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /floating-ui – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/floating-ui-32bb4.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /floating-ui – then describe the task you want done.
SKILL.md content
Floating UI
> "Defying gravity. Elements that hover effortlessly above the surface."
When to Use
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.
Core Principles
1. Detachment: UI elements (like nav bars, sidebars, or main content cards) do not touch the edges of the screen. They float with margins on all sides.
2. Soft, Diffuse Shadows: Large, highly blurred shadows directly beneath elements.
3. Pill Shapes & Rounds: Fully rounded corners (pill shapes) enhance the floating, bubble-like aesthetic.
Visual DNA
- Colors: Earth-Grounded Elegance or Minimalist Slate. Use a slightly tinted background (off-white or very light gray) so the floating white elements pop.
- Typography: Clean, airy sans-serifs with generous line height.
- Layout: The "floating island" pattern for navigation (a pill-shaped nav bar centered at the bottom or top of the screen).
Web Implementation
- Focus on large margins and specific shadow styles.
- CSS Example:
body {
background-color: var(--bg-primary); /* e.g., #F4F4F9 */
padding: 24px; /* Ensure nothing touches the edge */
}
.floating-nav {
position: fixed;
bottom: 32px;
left: 50%;
transform: translateX(-50%);
background: white;
border-radius: 50px; /* Pill shape */
padding: 12px 32px;
/* Large, soft shadow */
box-shadow: 0 16px 40px rgba(0,0,0,0.08);
display: flex;
gap: 24px;
}
.floating-card {
background: white;
border-radius: 24px;
padding: 32px;
margin-bottom: 24px;
box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}App Implementation
SwiftUI
struct FloatingUIView: View {
var body: some View {
ZStack {
// Very light background
Color(red: 0.95, green: 0.95, blue: 0.97).ignoresSafeArea()
ScrollView {
VStack(spacing: 24) {
// Floating Content Card
VStack(alignment: .leading, spacing: 12) {
Text("Floating Card")
.font(.title2).fontWeight(.bold)
Text("This card hovers above the background, with massive soft shadows and completely rounded corners.")
.foregroundColor(.secondary)
}
.padding(32)
.frame(maxWidth: .infinity, alignment: .leading)
.background(Color.white)
.cornerRadius(32) // Very large radius
// Large, highly blurred shadow
.shadow(color: Color.black.opacity(0.05), radius: 30, x: 0, y: 15)
.padding(.horizontal, 24) // Keeps it detached from edges
}
.padding(.top, 40)
}
// Floating Pill Navigation
VStack {
Spacer()
HStack(spacing: 40) {
Image(systemName: "house.fill").foregroundColor(.blue)
Image(systemName: "magnifyingglass").foregroundColor(.gray)
Image(systemName: "bell.fill").foregroundColor(.gray)
Image(systemName: "person.fill").foregroundColor(.gray)
}
.padding(.vertical, 16)
.padding(.horizontal, 32)
.background(Color.white)
.clipShape(Capsule()) // Pill shape
.shadow(color: Color.black.opacity(0.1), radius: 25, x: 0, y: 10)
.padding(.bottom, 32) // Detached from bottom edge
}
}
}
}- A
.clipShape(Capsule())with a massive.shadow()creates the perfect floating pill navigation bar. - Push the
.shadow(radius: ...)up to 25 or 30 with a very low opacity (0.05) to get the soft, diffuse hover effect.
Flutter
class FloatingUIScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: const Color(0xFFF4F4F9),
body: Stack(
children: [
ListView(
padding: const EdgeInsets.all(24),
children: [
// Floating Content Card
Container(
margin: const EdgeInsets.only(bottom: 24),
padding: const EdgeInsets.all(32),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(32), // Large radius
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.05),
blurRadius: 30,
offset: const Offset(0, 15),
)
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: const [
Text('Floating Card', style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold)),
SizedBox(height: 12),
Text('This card hovers above the background.', style: TextStyle(color: Colors.grey)),
],
),
),
],
),
// Floating Bottom Nav
Align(
alignment: Alignment.bottomCenter,
child: Container(
margin: const EdgeInsets.only(bottom: 32),
padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(50), // Pill shape
boxShadow: [
BoxShadow(color: Colors.black.withOpacity(0.1), blurRadius: 25, offset: const Offset(0, 10))
],
),
child: Row(
mainAxisSize: MainAxisSize.min, // Wrap content
children: const [
Icon(Icons.home, color: Colors.blue),
SizedBox(width: 40),
Icon(Icons.search, color: Colors.grey),
SizedBox(width: 40),
Icon(Icons.person, color: Colors.grey),
],
),
),
),
],
),
);
}
}- Prefer a semantic navigation component where possible. A custom floating menu needs actual labeled buttons, selection state, safe-area insets and reserved scroll-content space so it does not cover content.
- Use
blurRadius: 30inBoxShadowfor the diffuse look.
React Native
const FloatingUIScreen = () => {
return (
<View style={{ flex: 1, backgroundColor: '#F4F4F9' }}>
<ScrollView contentContainerStyle={{ padding: 24 }}>
{/* Floating Card */}
<View style={styles.floatingCard}>
<Text style={{ fontSize: 24, fontWeight: 'bold', marginBottom: 12 }}>Floating Card</Text>
<Text style={{ color: '#666' }}>This card hovers above the background, detached from all edges.</Text>
</View>
</ScrollView>
{/* Floating Pill Nav */}
<View style={styles.floatingNav}>
<Text style={{ fontSize: 20 }}>🏠</Text>
<Text style={{ fontSize: 20, opacity: 0.5 }}>🔍</Text>
<Text style={{ fontSize: 20, opacity: 0.5 }}>👤</Text>
</View>
</View>
);
};
const styles = StyleSheet.create({
floatingCard: {
backgroundColor: '#FFF',
borderRadius: 32,
padding: 32,
marginBottom: 24,
// iOS shadow
shadowColor: '#000',
shadowOffset: { width: 0, height: 15 },
shadowOpacity: 0.05,
shadowRadius: 30,
// Android shadow
elevation: 8,
},
floatingNav: {
position: 'absolute',
bottom: 40,
alignSelf: 'center',
flexDirection: 'row',
backgroundColor: '#FFF',
borderRadius: 50,
paddingVertical: 16,
paddingHorizontal: 32,
gap: 40, // Needs RN 0.71+
shadowColor: '#000',
shadowOffset: { width: 0, height: 10 },
shadowOpacity: 0.1,
shadowRadius: 25,
elevation: 10,
}
});position: 'absolute'withalignSelf: 'center'is the easiest way to place the pill nav in React Native.- Android's
elevationdoesn't support massive blur radii very well, so the effect is stronger and softer on iOS.
Jetpack Compose
@Composable
fun FloatingUIScreen() {
Box(modifier = Modifier.fillMaxSize().background(Color(0xFFF4F4F9))) {
Column(
modifier = Modifier
.fillMaxSize()
.padding(24.dp)
) {
// Floating Card
Box(
modifier = Modifier
.fillMaxWidth()
.shadow(15.dp, RoundedCornerShape(32.dp), spotColor = Color.Black.copy(alpha = 0.05f))
.background(Color.White, RoundedCornerShape(32.dp))
… (full content is in the download package)
Related skills
- free-design-resources – Design resource register: resource and provider, licence type, commercial-use and…
- free-tier-strategy – Design free tiers that convert to paid without creating resentment or abuse. Trigger…
- frontend-api-integration-patterns – Production-ready patterns for integrating frontend applications with backend APIs…
- frontend-data-contracts – A portable, framework-agnostic discipline for type safety at the network edge of any…
- frontend-design – Design and implement a distinctive frontend within the product’s existing brand…
- frontend-dev-guidelines – You are a senior frontend engineer operating under strict architectural and performance…
- frontend-lighthouse – Add a portable Lighthouse CI gate for production frontend builds with Core Web Vitals…
- frontend-mobile-development-component-scaffold – Scaffold React and React Native components with TypeScript, accessibility, tests…