editorial-design – Design & UI skill for AI agents
Web and App implementation guide for Editorial Design. Trigger when user wants a magazine-inspired layout, large headlines, and elegant typography pairing.
Install the editorial-design 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/editorial-design-dc96f.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /editorial-design – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/editorial-design-dc96f.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $editorial-design – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/editorial-design-dc96f.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /editorial-design – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/editorial-design-dc96f.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /editorial-design – then describe the task you want done.
SKILL.md content
Editorial Design
> "The digital magazine. Sophisticated typography pairings and deliberate, elegant pacing."
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. Serif & Sans-Serif Pairing: The hallmark of editorial design. A beautiful, high-contrast serif for headings, paired with a clean sans-serif for body copy.
2. Large Drop Caps & Pull Quotes: Typographic flourishes that guide the eye and break up long blocks of text.
3. Columnar Layouts: Content flows in distinct columns, often with fine lines (rules) separating them.
Visual DNA
- Colors: Modern Editorial or Yacht Club. Warm, paper-like backgrounds with deep, ink-like blacks or navy blues.
- Typography:
- Headlines:
Playfair Display,Merriweather,Bodoni. - Body:
Lato,Open Sans,Source Sans Pro. - Borders: Thin, elegant horizontal lines (hairlines) used to separate sections.
Web Implementation
- CSS Example:
body {
background-color: #F9F9F9; /* Paper white */
color: #121212; /* Ink black */
}
/* Typography Pairing */
.editorial-headline {
font-family: 'Playfair Display', serif;
font-size: 4rem;
font-weight: 700;
font-style: italic;
margin-bottom: 24px;
border-bottom: 1px solid #121212;
padding-bottom: 24px;
}
.editorial-body {
font-family: 'Lato', sans-serif;
font-size: 1.1rem;
line-height: 1.8;
column-width: 24rem; /* Collapse to one column when space is limited. */
column-gap: 40px;
}
/* Drop Cap */
.editorial-body::first-letter {
font-family: 'Playfair Display', serif;
font-size: 4rem;
float: left;
line-height: 0.8;
padding-right: 12px;
color: var(--cta-highlight, #8b0000);
}
.pull-quote {
font-family: 'Playfair Display', serif;
font-size: 2rem;
text-align: center;
margin: 48px 0;
padding: 24px 0;
border-top: 2px solid #121212;
border-bottom: 2px solid #121212;
}App Implementation
SwiftUI
struct EditorialView: View {
var body: some View {
ScrollView {
VStack(alignment: .leading, spacing: 24) {
// Editorial Headline
Text("The Digital\nMagazine")
.font(.custom("Playfair Display", size: 48))
.fontWeight(.bold)
.italic()
.foregroundColor(Color(white: 0.05))
.padding(.bottom, 16)
Divider().background(Color.black)
// Drop Cap and Body
HStack(alignment: .top, spacing: 8) {
Text("I")
.font(.custom("Playfair Display", size: 64))
.foregroundColor(Color(red: 0.7, green: 0.2, blue: 0.2))
// Negative padding to pull the body text tighter to the drop cap
.padding(.top, -10)
Text("n an era of sterile, flat interfaces, the return to elegant typography feels like a breath of fresh air. The interplay of serif and sans-serif...")
.font(.custom("Lato", size: 16))
.lineSpacing(6)
.foregroundColor(Color(white: 0.1))
}
// Pull Quote
VStack {
Divider().background(Color.black)
Text("“Sophistication is in the spacing.”")
.font(.custom("Playfair Display", size: 28))
.italic()
.multilineTextAlignment(.center)
.padding(.vertical, 24)
Divider().background(Color.black)
}
.padding(.vertical, 24)
}
.padding(24)
}
.background(Color(red: 0.98, green: 0.98, blue: 0.96)) // Warm paper white
}
}- Custom fonts are optional and require licensed, registered assets. System serif and sans-serif fonts are valid fallbacks. Preserve text scaling and expose a split drop-cap paragraph as one complete spoken sentence.
- Use
Divider()to create the hairlines that are so common in print design. - A fake "drop cap" can be achieved with an
HStackaligning top.
Flutter
class EditorialScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: const Color(0xFFF9F9F8), // Paper background
body: SingleChildScrollView(
padding: const EdgeInsets.all(24.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const SizedBox(height: 40),
const Text(
'The Digital\nMagazine',
style: TextStyle(fontFamily: 'PlayfairDisplay', fontSize: 48, fontWeight: FontWeight.bold, fontStyle: FontStyle.italic, height: 1.1),
),
const SizedBox(height: 24),
const Divider(color: Colors.black, thickness: 1),
const SizedBox(height: 24),
// Body with Drop Cap simulation using RichText is complex,
// a simpler Row approach works well enough for mobile.
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
'I',
style: TextStyle(fontFamily: 'PlayfairDisplay', fontSize: 72, height: 1.0, color: Color(0xFF8B0000)),
),
const SizedBox(width: 8),
Expanded(
child: const Text(
'n an era of sterile, flat interfaces, the return to elegant typography feels like a breath of fresh air. The interplay of serif and sans-serif brings humanity back to the screen.',
style: TextStyle(fontFamily: 'Lato', fontSize: 16, height: 1.6, color: Colors.black87),
),
),
],
),
const SizedBox(height: 48),
// Pull Quote
const Divider(color: Colors.black, thickness: 2),
const Padding(
padding: EdgeInsets.symmetric(vertical: 32.0),
child: Center(
child: Text(
'“Sophistication is in the spacing.”',
textAlign: TextAlign.center,
style: TextStyle(fontFamily: 'PlayfairDisplay', fontSize: 28, fontStyle: FontStyle.italic),
),
),
),
const Divider(color: Colors.black, thickness: 2),
],
),
),
);
}
}- Set
heightparameters inTextStyle(line-height).1.6is a good editorial body height. - Use
Dividerwiththickness: 2for the heavy rules around pull quotes.
React Native
const EditorialScreen = () => {
return (
<ScrollView style={{ flex: 1, backgroundColor: '#F9F9F8', padding: 24 }}>
<Text style={{
fontFamily: 'PlayfairDisplay-BoldItalic',
fontSize: 48,
color: '#121212',
lineHeight: 52,
marginTop: 40,
marginBottom: 24
}}>
The Digital{'\n'}Magazine
</Text>
<View style={{ height: 1, backgroundColor: '#121212', marginBottom: 24 }} />
<View style={{ flexDirection: 'row' }}>
<Text style={{
fontFamily: 'PlayfairDisplay-Bold',
fontSize: 72,
color: '#8B0000',
lineHeight: 80,
marginTop: -10, // Adjust alignment
marginRight: 8
}}>
I
</Text>
<Text style={{
flex: 1,
fontFamily: 'Lato-Regular',
fontSize: 16,
lineHeight: 26,
color: '#333'
}}>
n an era of sterile, flat interfaces, the return to elegant typography feels like a breath of fresh air. The interplay of serif and sans-serif brings humanity.
</Text>
</View>
{/* Pull Quote */}
<View style={{
borderTopWidth: 2, borderBottomWidth: 2, borderColor: '#121212',
marginTop: 48, paddingVertical: 32
}}>
<Text style={{
fontFamily: 'PlayfairDisplay-Italic',
fontSize: 28,
textAlign: 'center',
color: '#121212'
}}>
“Sophistication is in the spacing.”
</Text>
</View>
</ScrollView>
);
};- Line heights and fonts are everything. You must have custom fonts linked in your React Native project for this style to work.
- Use
borderTopWidthandborderBottomWidthon a containerViewto create the pull quote styling.
Jetpack Compose
@Composable
fun EditorialScreen() {
// Assuming Playfair and Lato are defined in FontFamily
val playfair = FontFamily.Serif
val lato… (full content is in the download package)
Related skills
- electron-drive-skill – Launch the project's Electron app on a scratch profile and drive it: click, type…
- emil-design-eng – Use when designing or reviewing polished product UI with Emil Kowalski-inspired…
- engine-selection – Selects game engines and frameworks by platform, genre, and architecture (full canvas…
- quality-manager-qms-iso13485 – ISO 13485 Quality Management System implementation and maintenance for medical device…
- enhance-prompt – Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity…
- rag-architect – Use when the user asks to design a RAG pipeline, choose a chunking strategy or embedding…
- event-sourcing-architect – Expert in event sourcing, CQRS, and event-driven architecture patterns. Masters event…
- event-store-design – Design and implement event stores for event-sourced systems. Use when building event…