Skill

Generate Mission-Control UI Components with Dark Themes

Build mission-control UIs with dark themes, glowing alerts, and real-time data visualization for web, SwiftUI, Flutter, and React Native.


73
Spark score
out of 100
Updated 27 days ago
Version 13.5.0

Add to Favorites

Why it matters

Create high-stakes command center interfaces with dark backgrounds, glowing data visualizations, and real-time alert systems that mimic NOC (Network Operations Center) aesthetics for web and mobile applications.

Outcomes

What it gets done

01

Build dark-mode panels with glowing cyan borders and gradient headers

02

Implement pulsing red alert animations for critical warnings

03

Generate map-centered layouts with radar sweeps and network topologies

04

Create hierarchical color systems that keep 90% calm and flash amber/red on alerts

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-command-center-ui | bash

Overview

Command Center UI

Command Center UI is a design sub-style within the design-it skill that provides code implementations for mission-control interface aesthetics across web and native platforms. Use this sub-style when the user's request matches the mission-control aesthetic with dark backgrounds, maps or topologies, and hierarchical alert systems. It is a child reference not meant to be triggered directly.

What it does

Command Center UI is a sub-style child reference of the design-it skill that provides implementation patterns for mission-control aesthetics. It supplies dark-themed interface code with geographical maps or network topologies as central elements, and alert systems using color hierarchy. The source material includes CSS, SwiftUI, Flutter, and React Native implementations with specific color values: pure black (#000000) or deep navy (#0B132B), electric cyan (#00FFFF), amber (#FFBF00), and critical red (#FF0000).

When to use - and when NOT to

Use this sub-style when the user's request matches the aesthetic described in the source material. This is a child reference of the design-it skill and is not meant to be triggered directly. The source material specifies core principles: dark/black backgrounds essential for rooms full of glowing monitors (NOCs), maps and topologies at the center of the UI, and alert hierarchy where 90% of the screen is calm blue/grey with bright amber or red flashes for warnings.

Inputs and outputs

The source material provides implementation code across multiple platforms. For web, a CSS example includes:

body {
  background-color: #030a16;
  color: #8ab4f8;
  font-family: 'Roboto', sans-serif;
  margin: 0;
  display: grid;
  grid-template-columns: 300px 1fr 300px;
  height: 100vh;
}

.panel {
  background-color: rgba(13, 27, 42, 0.8);
  border: 1px solid #1c355e;
  box-shadow: inset 0 0 20px rgba(0, 255, 255, 0.05);
  margin: 10px;
  display: flex;
  flex-direction: column;
}

.alert-critical {
  background-color: rgba(255, 0, 0, 0.1);
  border: 1px solid #ff0000;
  color: #ff0000;
  box-shadow: 0 0 10px rgba(255, 0, 0, 0.5);
  animation: pulse-red 2s infinite;
}

@keyframes pulse-red {
  0% { box-shadow: 0 0 5px rgba(255, 0, 0, 0.2); }
  50% { box-shadow: 0 0 20px rgba(255, 0, 0, 0.8); }
  100% { box-shadow: 0 0 5px rgba(255, 0, 0, 0.2); }
}

Typography uses clean, tech-focused sans-serifs: Orbitron, Roboto, and Share Tech. Styling includes glowing borders, radar sweeps, and data-driven charts.

Integrations

The source material includes code examples for CSS (with grid layouts, glowing borders, and keyframe animations), SwiftUI (using .border(), .strokeBorder() with gradients, and animated .shadow() for pulse alerts), Flutter (with AnimatedBuilder manipulating BoxShadow blur radius and opacity), and React Native (using Animated.loop with interpolated shadow opacity).

Who it's for

This sub-style provides implementation patterns for interfaces matching the mission-control aesthetic described in the source material. The visual DNA includes dark backgrounds to make data pop and reduce glare, central map or network topology views, and alert hierarchy using the specified color palette.

Source README

Command Center UI

"Mission Control. Global monitoring, real-time alerts, and high-stakes data visualization."

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. Dark/Black Backgrounds: Essential for a room full of glowing monitors (NOCs). It makes the data pop and reduces glare.
  2. Maps & Topologies: The center of the UI is almost always a dark-mode geographical map or a node-based network topology.
  3. Alert Hierarchy: 90% of the screen is calm and blue/grey. When a warning happens, it flashes bright amber or red to immediately draw the eye.

Visual DNA

  • Colors: Pure black (#000000) or deep navy (#0B132B). Accents are electric cyan (#00FFFF), amber (#FFBF00), and critical red (#FF0000).
  • Typography: Clean, tech-focused sans-serifs (Orbitron, Roboto, Share Tech).
  • Styling: Glowing borders, radar sweeps, and stark, data-driven charts.

Web Implementation

  • CSS Example:
body {
  background-color: #030a16;
  color: #8ab4f8;
  font-family: 'Roboto', sans-serif;
  margin: 0;
  display: grid;
  grid-template-columns: 300px 1fr 300px;
  height: 100vh;
}

.panel {
  background-color: rgba(13, 27, 42, 0.8);
  border: 1px solid #1c355e;
  box-shadow: inset 0 0 20px rgba(0, 255, 255, 0.05);
  margin: 10px;
  display: flex;
  flex-direction: column;
}

.panel-header {
  background: linear-gradient(90deg, #1c355e, transparent);
  color: #00ffff;
  padding: 8px 16px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 2px;
  border-bottom: 1px solid #00ffff;
}

/* The Map/Center view */
.main-view {
  /* Placeholder for a massive globe or map */
  background: radial-gradient(circle, #0d1b2a 0%, #030a16 100%);
  position: relative;
}

/* Critical Alert */
.alert-critical {
  background-color: rgba(255, 0, 0, 0.1);
  border: 1px solid #ff0000;
  color: #ff0000;
  box-shadow: 0 0 10px rgba(255, 0, 0, 0.5);
  animation: pulse-red 2s infinite;
}

@keyframes pulse-red {
  0% { box-shadow: 0 0 5px rgba(255, 0, 0, 0.2); }
  50% { box-shadow: 0 0 20px rgba(255, 0, 0, 0.8); }
  100% { box-shadow: 0 0 5px rgba(255, 0, 0, 0.2); }
}

App Implementation

SwiftUI

struct CommandCenterView: View {
    @State private var isAlerting = false
    
    var body: some View {
        VStack(spacing: 16) {
            // Header
            HStack {
                Text("GLOBAL_OPS // ALPHA")
                    .font(.custom("Orbitron", size: 20))
                    .foregroundColor(Color(red: 0.0, green: 1.0, blue: 1.0)) // Cyan
                Spacer()
                Text(Date(), style: .time).foregroundColor(.gray)
            }
            .padding()
            .border(Color(red: 0.0, green: 1.0, blue: 1.0), width: 1)
            
            // Map or main visual placeholder
            Circle()
                .strokeBorder(
                    LinearGradient(colors: [.cyan, .blue], startPoint: .top, endPoint: .bottom),
                    lineWidth: 2
                )
                .frame(height: 250)
                .overlay(Text("TOPOLOGY SCAN").foregroundColor(.cyan.opacity(0.5)))
            
            // Critical Alert Panel
            VStack(alignment: .leading) {
                Text("WARNING: SECTOR 7G")
                    .font(.headline)
                    .foregroundColor(.red)
                Text("Anomalous activity detected.")
                    .font(.subheadline)
                    .foregroundColor(.white)
            }
            .padding()
            .frame(maxWidth: .infinity, alignment: .leading)
            .background(Color.red.opacity(0.1))
            .border(Color.red, width: 2)
            .shadow(color: isAlerting ? .red : .clear, radius: 10)
        }
        .padding()
        .frame(maxWidth: .infinity, maxHeight: .infinity)
        .background(Color(red: 0.01, green: 0.04, blue: 0.09)) // Very dark navy
        .onAppear {
            withAnimation(.easeInOut(duration: 1.0).repeatForever()) {
                isAlerting.toggle()
            }
        }
    }
}
  • Rely heavily on .border() and .strokeBorder() combined with gradients to create technical, glowing wireframes.
  • Use .shadow() animated continuously for pulse alerts.

Flutter

class CommandCenterScreen extends StatefulWidget {
  @override
  State<CommandCenterScreen> createState() => _CommandCenterScreenState();
}

class _CommandCenterScreenState extends State<CommandCenterScreen> with SingleTickerProviderStateMixin {
  late AnimationController _pulseController;

  @override
  void initState() {
    super.initState();
    _pulseController = AnimationController(vsync: this, duration: const Duration(seconds: 1))..repeat(reverse: true);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: const Color(0xFF030A16), // Dark NOC background
      body: SafeArea(
        child: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: [
              // Panel Header
              Container(
                padding: const EdgeInsets.all(12),
                decoration: const BoxDecoration(
                  border: Border(bottom: BorderSide(color: Colors.cyan)),
                  gradient: LinearGradient(colors: [Color(0xFF1C355E), Colors.transparent]),
                ),
                child: const Text('GLOBAL_OPS // ALPHA', 
                  style: TextStyle(color: Colors.cyan, fontFamily: 'Orbitron', letterSpacing: 2)),
              ),
              const SizedBox(height: 24),
              // Map Placeholder
              Expanded(
                child: Container(
                  decoration: BoxDecoration(
                    shape: BoxShape.circle,
                    border: Border.all(color: Colors.cyan.withOpacity(0.5), width: 2),
                  ),
                  child: const Center(child: Text('RADAR ACTIVE', style: TextStyle(color: Colors.cyan))),
                ),
              ),
              const SizedBox(height: 24),
              // Animated Critical Alert
              AnimatedBuilder(
                animation: _pulseController,
                builder: (context, child) {
                  return Container(
                    padding: const EdgeInsets.all(16),
                    decoration: BoxDecoration(
                      color: Colors.red.withOpacity(0.1),
                      border: Border.all(color: Colors.red),
                      boxShadow: [
                        BoxShadow(color: Colors.red.withOpacity(_pulseController.value * 0.8), blurRadius: 20)
                      ],
                    ),
                    child: const Text('WARNING: SECTOR 7G', style: TextStyle(color: Colors.red, fontWeight: FontWeight.bold)),
                  );
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}
  • A Container with a LinearGradient that fades to Colors.transparent is excellent for high-tech headers.
  • Use AnimatedBuilder to manipulate the blurRadius and opacity of BoxShadow to create flashing alert panels.

React Native

const CommandCenterScreen = () => {
  const pulseAnim = useRef(new Animated.Value(0)).current;

  useEffect(() => {
    Animated.loop(
      Animated.sequence([
        Animated.timing(pulseAnim, { toValue: 1, duration: 1000, useNativeDriver: false }),
        Animated.timing(pulseAnim, { toValue: 0, duration: 1000, useNativeDriver: false })
      ])
    ).start();
  }, []);

  const shadowOpacity = pulseAnim.interpolate({ inputRange: [0, 1], outputRange: [0.2, 1] });

  return (
    <View style={{ flex: 1, backgroundColor: '#030A16', padding: 16 }}>
      {/* Header Panel */}
      <View style={{
        borderBottomWidth: 1, borderColor: '#00FFFF', padding: 12, backgroundColor: '#1C355E'
      }}>
        <Text style={{ color: '#00FFFF', fontFamily: 'monospace', letterSpacing: 2 }}>
          GLOBAL_OPS // ALPHA
        </Text>
      </View>

      <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
        <View style={{
          width: 250, height: 250, borderRadius: 125, borderWidth: 2, borderColor: '#00FFFF',
          justifyContent: 'center', alignItems: 'center'
        }}>
          <Text style={{ color: '#00FFFF', opacity: 0.5 }}>SCANNING...</Text>
        </View>
      </View>

      {/* Critical Alert */}
      <Animated.View style={{
        backgroundColor: 'rgba(255,0,0,0.1)',
        borderWidth: 2, borderColor: '#FF0000', padding: 16,
        shadowColor: '#FF0000', shadowRadius: 15, shadowOpacity, elevation: 10
      }}>
        <Text style={{ color: '#FF0000', fontWeight: 'bold', fontSize: 18 }}>WARNING: SECTOR 7G</Text>
        <Text style={{ color: '#FFF' }}>Anomalous activity detected.</Text>
      </Animated.View>
    </View>
  );
};
  • Rely on sharp 1px or 2px borders with bright hex values (#00FFFF, #FF0000) instead of border radii.
  • Keep backgrounds extremely dark navy (#030A16) rather than pure black to avoid OLED smearing while maintaining the NOC feel.

Jetpack Compose

@Composable
fun CommandCenterScreen() {
    val infiniteTransition = rememberInfiniteTransition()
    val pulseAlpha by infiniteTransition.animateFloat(
        initialValue = 0.2f,
        targetValue = 1.0f,
        animationSpec = infiniteRepeatable(
            animation = tween(1000, easing = LinearEasing),
            repeatMode = RepeatMode.Reverse
        )
    )

    Column(
        modifier = Modifier
            .fillMaxSize()
            .background(Color(0xFF030A16))
            .padding(16.dp)
    ) {
        // Header
        Box(
            modifier = Modifier
                .fillMaxWidth()
                .background(Brush.horizontalGradient(listOf(Color(0xFF1C355E), Color.Transparent)))
                .border(width = 1.dp, color = Color.Cyan) // Simplified border
                .padding(12.dp)
        ) {
            Text("GLOBAL_OPS // ALPHA", color = Color.Cyan, fontFamily = FontFamily.Monospace, letterSpacing = 2.sp)
        }
        
        Spacer(Modifier.height(32.dp))
        
        // Main Visual
        Box(
            modifier = Modifier
                .weight(1f)
                .fillMaxWidth(),
            contentAlignment = Alignment.Center
        ) {
            Box(
                modifier = Modifier
                    .size(250.dp)
                    .border(2.dp, Color.Cyan.copy(alpha = 0.5f), CircleShape),
                contentAlignment = Alignment.Center
            ) {
                Text("SCANNING...", color = Color.Cyan.copy(alpha = 0.5f))
            }
        }
        
        Spacer(Modifier.height(32.dp))
        
        // Critical Alert
        Column(
            modifier = Modifier
                .fillMaxWidth()
                .shadow(20.dp, spotColor = Color.Red.copy(alpha = pulseAlpha), ambientColor = Color.Red.copy(alpha = pulseAlpha))
                .background(Color.Red.copy(alpha = 0.1f))
                .border(2.dp, Color.Red)
                .padding(16.dp)
        ) {
            Text("WARNING: SECTOR 7G", color = Color.Red, fontWeight = FontWeight.Bold, fontSize = 18.sp)
            Text("Anomalous activity detected.", color = Color.White)
        }
    }
}
  • Compose handles neon interfaces very well. Use Modifier.border(..., CircleShape) for radar rings.
  • To make a container glow in Compose, you must use Modifier.shadow with the spotColor and ambientColor set to your neon color, bypassing the default black shadow.

Do's and Don'ts

  • DO: Create a distinct visual rhythm. The screen should feel calm until a specific alert requires attention.
  • DON'T: Fill the screen with bright, solid white panels. A command center should glow softly, not blind the user.

Limitations

  • This is a styling reference and does not replace environment-specific validation, accessibility testing, or expert review.
  • Ensure appropriate contrast ratios and responsive behaviors are verified separately.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.