skills/design-it-spatial-design/SKILL.md
Web and App implementation guide for Spatial Design. Trigger when user wants environment-aware layouts, Apple Vision Pro inspiration, and mixed reality aesthetics.
npx skillsauth add ranbot-ai/awesome-skills spatial-designInstall 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.
"UI that belongs in the room with you. Transparent, glass-like panels that react to the lighting of the physical space."
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.
rgba() white or black. The actual color comes entirely from the background environment.SF Pro is the gold standard here.body {
/* Needs a complex background to look right */
background: url('room-environment.jpg') cover;
}
.spatial-panel {
/* The core material */
background: rgba(255, 255, 255, 0.2); /* Very sheer */
backdrop-filter: blur(40px) saturate(150%);
-webkit-backdrop-filter: blur(40px) saturate(150%);
border-radius: 32px;
padding: 40px;
/* The specular rim light */
box-shadow:
inset 0 1px 1px rgba(255,255,255,0.6),
inset 0 0 1px 1px rgba(255,255,255,0.2),
0 24px 48px rgba(0,0,0,0.1);
}
.spatial-btn {
background: rgba(0,0,0,0.1);
color: white;
border-radius: 20px;
padding: 12px 24px;
backdrop-filter: blur(10px);
transition: all 0.2s;
}
.spatial-btn:hover {
background: rgba(255,255,255,0.2);
/* Highlight effect */
box-shadow: inset 0 0 20px rgba(255,255,255,0.4);
}
struct SpatialDesignView: View {
var body: some View {
ZStack {
// Environment background
Image("room-environment")
.resizable()
.aspectRatio(contentMode: .fill)
.ignoresSafeArea()
// Spatial Panel
VStack(spacing: 24) {
Text("Environmental UI")
.font(.title).fontWeight(.bold)
.foregroundColor(.white)
Button(action: {}) {
Text("Interact")
.foregroundColor(.white)
.padding(.horizontal, 32)
.padding(.vertical, 16)
}
.background(.ultraThinMaterial)
.clipShape(Capsule())
.overlay(Capsule().stroke(Color.white.opacity(0.3), lineWidth: 1))
}
.padding(40)
.background(.ultraThinMaterial) // The core spatial material
.cornerRadius(32)
// Specular rim light
.overlay(
RoundedRectangle(cornerRadius: 32)
.stroke(
LinearGradient(
colors: [.white.opacity(0.6), .white.opacity(0.1)],
startPoint: .topLeading, endPoint: .bottomTrailing
),
lineWidth: 1
)
)
// Very soft, diffuse shadow
.shadow(color: .black.opacity(0.1), radius: 40, y: 20)
}
}
}
.background(.ultraThinMaterial) is exactly what Apple uses for this aesthetic..overlay with a LinearGradient stroke to simulate a light source hitting the top-left edge of the glass.import 'dart:ui';
class SpatialDesignScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
fit: StackFit.expand,
children: [
Image.asset('assets/room-environment.jpg', fit: BoxFit.cover),
Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(32),
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 30.0, sigmaY: 30.0),
child: Container(
width: 350,
padding: const EdgeInsets.all(40),
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.1),
borderRadius: BorderRadius.circular(32),
// Specular rim light
border: Border.all(color: Colors.white.withOpacity(0.4), width: 1),
),
child: Column(
mainAxisSize: MainAxisSize.min,
child
tools
Use when a user asks to mine or update a private, evidence-backed work profile from local Claude Code, Codex, Copilot CLI, or OpenCode sessions.
data-ai
Use when diagnosing Android overheating, idle heat, thermal throttling, charging or radio heat, or abnormal battery drain with read-only ADB evidence and approval gates.
research
Research public competitor ads, analyze creative patterns and landing pages, and produce an evidence-labeled strategic teardown.
tools
Compiled CLI covering all 52 endpoints of the Anytype local API — objects, properties, tags, search, chat, files — one binary, no MCP server needed.