"Less is more. Remove until nothing is left but the essential."
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.
Inter, Helvetica Neue, SF Pro). Use extreme contrast in weights (Thin vs Black).gap properties..minimal-container {
max-width: 800px;
margin: 0 auto;
padding: 120px 24px;
background-color: var(--bg-primary);
}
.minimal-title {
font-size: 3rem;
font-weight: 300;
letter-spacing: -0.02em;
margin-bottom: 48px;
}
.minimal-btn {
background: transparent;
border: 1px solid var(--text-primary);
padding: 16px 32px;
text-transform: uppercase;
letter-spacing: 0.1em;
transition: all 0.3s ease;
}
struct MinimalView: View {
var body: some View {
ScrollView {
VStack(alignment: .leading, spacing: 48) {
Text("Headline")
.font(.system(size: 34, weight: .light))
.tracking(-0.5)
Text("Body text sits quietly with generous space around it. Let the content breathe.")
.font(.system(size: 17, weight: .regular))
.foregroundColor(.secondary)
.lineSpacing(6)
// Minimal button — just a thin border, no fill
Button(action: {}) {
Text("Continue")
.font(.system(size: 14, weight: .medium))
.tracking(1.5)
.textCase(.uppercase)
.padding(.horizontal, 32)
.padding(.vertical, 16)
.overlay(
RoundedRectangle(cornerRadius: 0)
.stroke(Color.primary, lineWidth: 1)
)
}
}
.padding(.horizontal, 24)
.padding(.vertical, 80)
}
.background(Color(.systemBackground))
}
}
VStack(spacing: 40...64) for generous separation between elements..shadow() or Card-like containers. Let whitespace define grouping.Divider() sparingly — only when two adjacent sections need separation.class MinimalScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: SingleChildScrollView(
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 80),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Headline',
style: TextStyle(
fontSize: 34,
fontWeight: FontWeight.w300,
letterSpacing: -0.5,
color: Colors.black87,
),
),
const SizedBox(height: 48),
Text(
'Body text sits quietly with generous space around it.',
style: TextStyle(
fontSize: 17,
fontWeight: FontWeight.w400,
height: 1.6,
color: Colors.black54,
),
),
const SizedBox(height: 48),
// Minimal button — outlined, no elevation
OutlinedButton(
onPressed: () {},
style: OutlinedButton.styleFrom(
side: const BorderSide(color: Colors.black87, width: 1),
shape: const RoundedRectangleBorder(borderRadius: BorderRadius.zero),
padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16),
),
child: Text(
'CONTINUE',
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w500,
letterSpacing: 1.5,
color: Colors.black87,
),
),
),
],
),
),
);
}
}
elevation: 0 on all Material widgets (AppBar, Card, FloatingActionButton).SizedBox(height: 48) or larger for vertical spacing. Avoid tight layouts.ThemeData to remove all default shadows: cardTheme: CardTheme(elevation: 0).const MinimalScreen = () => (
<ScrollView
style={{ flex: 1, backgroundColor: '#FFFFFF' }}
contentContainerStyle={{ paddingHorizontal: 24, paddingVertical: 80 }}
>
<Text style={{
fontSize: 34,
fontWeight: '300',
letterSpacing: -0.5,
color: '#1A1A1A',
marginBottom: 48,
}}>
Headline
</Text>
<Text style={{
fontSize: 17,
fontWeight: '400',
lineHeight: 28,
color: '#666666',
marginBottom: 48,
}}>
Body text sits quietly with generous space around it.
</Text>
<TouchableOpacity
style={{
borderWidth: 1,
borderColor: '#1A1A1A',
paddingHorizontal: 32,
paddingVertical: 16,
alignSelf: 'flex-start',
}}
activeOpacity={0.6}
>
<Text style={{
fontSize: 14,
fontWeight: '500',
letterSpacing: 1.5,
color: '#1A1A1A',
textTransform: 'uppercase',
}}>
Continue
</Text>
</TouchableOpacity>
</ScrollView>
);
paddingVertical: 80 for screen-level spacing. Double what feels natural.elevation and shadowColor properties. No borderRadius on cards.@Composable
fun MinimalScreen() {
Column(
modifier = Modifier
.fillMaxSize()
.background(Color.White)
.verticalScroll(rememberScrollState())
.padding(horizontal = 24.dp, vertical = 80.dp)
) {
Text(
text = "Headline",
fontSize = 34.sp,
fontWeight = FontWeight.Light,
letterSpacing = (-0.5).sp,
color = Color(0xFF1A1A1A),
)
Spacer(modifier = Modifier.height(48.dp))
Text(
text = "Body text sits quietly with generous space around it.",
fontSize = 17.sp,
fontWeight = FontWeight.Normal,
lineHeight = 28.sp,
color = Color(0xFF666666),
)
Spacer(modifier = Modifier.height(48.dp))
// Minimal outlined button
OutlinedButton(
onClick = {},
shape = RectangleShape,
border = BorderStroke(1.dp, Color(0xFF1A1A1A)),
colors = ButtonDefaults.outlinedButtonColors(containerColor = Color.Transparent),
contentPadding = PaddingValues(horizontal = 32.dp, vertical = 16.dp),
) {
Text(
text = "CONTINUE",
fontSize = 14.sp,
fontWeight = FontWeight.Medium,
letterSpacing = 1.5.sp,
color = Color(0xFF1A1A1A),
)
}
}
}
elevation = 0.dp on all Card, TopAppBar, and FloatingActionButton composables.Spacer(modifier = Modifier.height(48.dp)) consistently for generous vertical gaps.MaterialTheme shape and shadow defaults to remove all depth cues.