Design rich, intentional UI with controlled maximalism
Design-style skill for Controlled Maximalism: dense, ornate, museum-curated UI held together by a strict underlying grid.
Maintainer of this project? Claim this page to edit the listing.
13.6.1Add to Favorites
Why it matters
Help designers and developers create visually bold, information-dense interfaces that balance maximalist aesthetics with usability, ensuring every element serves a purpose while maintaining hierarchy and user comprehension.
Outcomes
What it gets done
Apply maximalist design principles with intentional layering, color, and typography
Balance visual richness with clear information hierarchy and readability
Ensure decorative elements enhance rather than obscure core functionality
Translate maximalist design concepts into implementable UI code and components
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-maximalism | bash Overview
Controlled Maximalism
A design-style skill for Controlled Maximalism - dense, ornate, museum-curated UI held together by a strict underlying grid, with decorative double-border feature treatments - with matching Web CSS and SwiftUI implementations. Use it for archives, luxury catalogs, or content-rich editorial sites that want dense richness without sprawling into unstructured visual chaos.
What it does
Controlled Maximalism is a design-style child skill ('dense and rich, but deeply intentional - like an exquisitely curated museum of artifacts'), part of the design-it family and not meant to be triggered directly. Three core principles: High Density (the screen is packed with information, imagery, and interactive elements), Ornate Detailing (decorative borders, intricate textures, and classic design flourishes), and Structured Chaos (unlike Vibrant Maximalism, this style's layout sits on a strict underlying grid that holds the dense content together rather than letting it sprawl freely).
When to use - and when NOT to
Use it when the user's request matches this dense-but-curated, museum-catalog aesthetic - archives, luxury brand catalogs, or content-rich editorial sites that want richness without visual chaos. As a design sub-style, it's selected by the parent design-it skill's routing rather than invoked on its own.
Inputs and outputs
Visual DNA uses Monochromatic Brown, Yacht Club, or rich jewel tones (emerald, ruby, sapphire, gold), ornate serifs (Cinzel, Playfair Display) paired with dense, highly legible sans-serif body copy, and extensive thin elegant dividing lines between every piece of content. The web implementation packs a dense 6-column CSS Grid with a subtle damask background pattern behind semi-transparent content tiles, and a "feature" tile spanning 3 columns gets an ornate double-border treatment: a solid gold outer border plus a dashed gold inner border offset by 4px via a ::before pseudo-element, mimicking a museum placard or gallery frame rather than a plain digital card. Section titles use the Cinzel ornate serif in gold, centered, with a divider rule beneath.
.max-feature { border: 2px solid #D4AF37; }
.max-feature::before {
top: 4px; left: 4px; right: 4px; bottom: 4px;
border: 1px dashed #D4AF37;
}
Integrations
SwiftUI reproduces the same dense-but-structured grid with a multi-column LazyVGrid at tight 4pt spacing, mixing a spanning "feature" item with smaller dense data blocks (catalog-style labels like "1892", "Vol. II", "Arch", "Index") - the same museum-catalog density and grid discipline as the web version, composed natively rather than via CSS Grid, with each label kept short and legible even at the reduced density a mobile screen forces.
Who it's for
Designers and developers building an archive, luxury catalog, or content-rich editorial site that wants dense, ornate richness held together by a strict grid - controlled abundance rather than either minimalist sparseness or unstructured visual chaos - the grid is doing the disciplining work that the density alone can't.
Source README
Controlled Maximalism
"Dense and rich, but deeply intentional. Like an exquisitely curated museum of artifacts."
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
- High Density: The screen is packed with information, imagery, and interactive elements.
- Ornate Detailing: Use of decorative borders, intricate textures, and classic design flourishes.
- Structured Chaos: Unlike Vibrant Maximalism, the layout here is based on a strict underlying grid that holds the massive amount of content together.
Visual DNA
- Colors: Monochromatic Brown, Yacht Club, or rich jewel tones (emerald, ruby, sapphire, gold).
- Typography: Ornate serifs (like
CinzelorPlayfair Display) paired with dense, highly legible sans-serif body copy. - Borders & Dividers: Extensive use of thin, elegant lines separating every piece of content.
Web Implementation
- Use dense CSS Grid layouts.
- CSS Example:
body {
background-color: #0F172A; /* Deep slate */
color: #E2E8F0;
background-image: url('subtle-damask-pattern.png');
}
.max-grid {
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 16px;
padding: 16px;
}
.max-item {
background-color: rgba(30, 41, 59, 0.9); /* Semi-transparent over pattern */
border: 1px solid #475569;
padding: 24px;
}
/* Ornate decorative borders */
.max-feature {
grid-column: span 3;
border: 2px solid #D4AF37; /* Gold */
position: relative;
}
.max-feature::before {
content: '';
position: absolute;
top: 4px; left: 4px; right: 4px; bottom: 4px;
border: 1px dashed #D4AF37;
}
.max-title {
font-family: 'Cinzel', serif;
color: #D4AF37;
font-size: 2.5rem;
text-align: center;
border-bottom: 1px solid #475569;
padding-bottom: 16px;
margin-bottom: 16px;
}
App Implementation
SwiftUI
struct MaximalismView: View {
let columns = [
GridItem(.flexible(), spacing: 4),
GridItem(.flexible(), spacing: 4),
GridItem(.flexible(), spacing: 4)
]
var body: some View {
ScrollView {
LazyVGrid(columns: columns, spacing: 4) {
// Feature span
MaxItem(title: "MUSEUM", isFeature: true)
// Dense data blocks
MaxItem(title: "1892")
MaxItem(title: "Vol. II")
MaxItem(title: "Arch")
MaxItem(title: "Index")
}
.padding(16)
}
.background(Color(hex: "0F172A")) // Deep slate
}
}
struct MaxItem: View {
let title: String
var isFeature: Bool = false
var body: some View {
VStack {
Text(title)
.font(.custom("Cinzel", size: isFeature ? 28 : 14))
.foregroundColor(Color(hex: "D4AF37")) // Gold
.padding()
}
.frame(maxWidth: .infinity, minHeight: isFeature ? 150 : 80)
.background(Color(hex: "1E293B").opacity(0.9))
.border(Color(hex: "475569"), width: 1)
.overlay(
// Ornate internal dashed border for the feature item
Group {
if isFeature {
Rectangle()
.stroke(style: StrokeStyle(lineWidth: 1, dash: [4]))
.foregroundColor(Color(hex: "D4AF37"))
.padding(4)
}
}
)
}
}
- A
LazyVGridwith very tightspacing(e.g.,4) creates the necessary density. - Extensive use of
.borderand.overlay(Rectangle().stroke(...))to box in every piece of data, mimicking ornate framing.
Flutter
class MaximalismScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: const Color(0xFF0F172A),
body: GridView.count(
crossAxisCount: 3,
padding: const EdgeInsets.all(16),
mainAxisSpacing: 4,
crossAxisSpacing: 4,
children: [
// Flutter's standard GridView doesn't span columns easily.
// In a real app, use the `flutter_staggered_grid_view` package.
_buildItem('1892'),
_buildItem('Vol. II'),
_buildItem('Arch'),
_buildItem('Index', isOrnate: true),
_buildItem('04'),
_buildItem('XII'),
],
),
);
}
Widget _buildItem(String title, {bool isOrnate = false}) {
return Container(
decoration: BoxDecoration(
color: const Color(0xFF1E293B).withOpacity(0.9),
border: Border.all(color: const Color(0xFF475569), width: 1),
),
child: Stack(
children: [
if (isOrnate)
Positioned.fill(
child: Padding(
padding: const EdgeInsets.all(4.0),
// Requires path_drawing or custom painter for dashed borders natively
child: Container(
decoration: BoxDecoration(border: Border.all(color: const Color(0xFFD4AF37), width: 1)),
),
),
),
Center(
child: Text(
title,
style: const TextStyle(fontFamily: 'Cinzel', color: Color(0xFFD4AF37), fontSize: 16),
),
),
],
),
);
}
}
- Use
flutter_staggered_grid_viewto create the complex, spanning "masonry" or architectural grid layouts typical of maximalism. - Use
StackwithPositioned.fillandPaddingto create double-bordered framing effects.
React Native
const MaximalismScreen = () => {
return (
<ScrollView style={{ flex: 1, backgroundColor: '#0F172A' }}>
<View style={{ padding: 16, flexDirection: 'row', flexWrap: 'wrap', gap: 4 }}>
{/* Feature Item spanning full width */}
<View style={[styles.item, styles.featureItem]}>
<View style={styles.ornateInnerBorder}>
<Text style={[styles.text, { fontSize: 32 }]}>MUSEUM</Text>
</View>
</View>
{/* Small Dense Items */}
<View style={[styles.item, { width: '32%' }]}><Text style={styles.text}>1892</Text></View>
<View style={[styles.item, { width: '32%' }]}><Text style={styles.text}>Vol. II</Text></View>
<View style={[styles.item, { width: '32%' }]}><Text style={styles.text}>Arch</Text></View>
</View>
</ScrollView>
);
};
const styles = StyleSheet.create({
item: {
backgroundColor: 'rgba(30, 41, 59, 0.9)',
borderColor: '#475569', borderWidth: 1,
height: 100, justifyContent: 'center', alignItems: 'center'
},
featureItem: {
width: '100%', height: 200, padding: 4,
},
ornateInnerBorder: {
flex: 1, width: '100%',
borderColor: '#D4AF37', borderWidth: 1, borderStyle: 'dashed',
justifyContent: 'center', alignItems: 'center'
},
text: {
fontFamily: 'Cinzel-Regular', color: '#D4AF37', fontSize: 16
}
});
- A
flexWrap: 'wrap'container with percentage widths (e.g.,32%for 3 columns) is the easiest way to build complex, dense grids in React Native. - Use
borderStyle: 'dashed'combined with a solid outer border to create ornate framing.
Jetpack Compose
@Composable
fun MaximalismScreen() {
LazyVerticalGrid(
columns = GridCells.Fixed(3),
modifier = Modifier.fillMaxSize().background(Color(0xFF0F172A)).padding(16.dp),
horizontalArrangement = Arrangement.spacedBy(4.dp),
verticalArrangement = Arrangement.spacedBy(4.dp)
) {
// Feature spanning all 3 columns
item(span = { GridItemSpan(3) }) {
MaxItem("MUSEUM", isFeature = true)
}
// Dense items
items(6) { index ->
MaxItem("Item $index")
}
}
}
@Composable
fun MaxItem(title: String, isFeature: Boolean = false) {
Box(
modifier = Modifier
.height(if (isFeature) 200.dp else 100.dp)
.background(Color(0xFF1E293B).copy(alpha = 0.9f))
.border(1.dp, Color(0xFF475569))
.padding(4.dp),
contentAlignment = Alignment.Center
) {
if (isFeature) {
// Ornate inner border
Box(
modifier = Modifier
.fillMaxSize()
.border(1.dp, Color(0xFFD4AF37), shape = RoundedCornerShape(0.dp))
// Note: Dashed borders require a custom drawBehind modifier in Compose
)
}
Text(
text = title,
color = Color(0xFFD4AF37),
fontFamily = FontFamily.Serif, // Replace with custom Cinzel font
fontSize = if (isFeature) 32.sp else 16.sp
)
}
}
LazyVerticalGridwithGridCells.Fixed(3)is perfect.- Use
GridItemSpan(3)for the hero elements to make them span the full width, mimicking editorial or museum layouts.
Do's and Don'ts
- DO: Treat every pixel as valuable real estate. Frame everything.
- DON'T: Let it become unreadable. The contrast between text and background must remain high despite the density.
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.