<< All versions
Skill v1.0.1
currentAutomated scan100/100sickn33/agentic-awesome-skills/editorial-design
+4 new
──Details
PublishedOctober 29, 2026 at 10:52 PM
Content Hashsha256:ee430b61306cf2f7...
Git SHA753c5f7bb646
Bump Typepatch
──Files
Files (1 file, 11.5 KB)
SKILL.md11.5 KBactive
SKILL.md · 331 lines · 11.5 KB
name: editorial-design description: Web and App implementation guide for Editorial Design. Trigger when user wants a magazine-inspired layout, large headlines, and elegant typography pairing. date_added: "2026-06-17" risk: safe source: self source_type: self metadata: version: "1.0.1"
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
- 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.
- Large Drop Caps & Pull Quotes: Typographic flourishes that guide the eye and break up long blocks of text.
- 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:
css
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
swift
struct EditorialView: View {var body: some View {ScrollView {VStack(alignment: .leading, spacing: 24) {// Editorial HeadlineText("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 BodyHStack(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 QuoteVStack {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
dart
class EditorialScreen extends StatelessWidget {@overrideWidget build(BuildContext context) {return Scaffold(backgroundColor: const Color(0xFFF9F9F8), // Paper backgroundbody: 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 Quoteconst 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
jsx
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 alignmentmarginRight: 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
kotlin
@Composablefun EditorialScreen() {// Assuming Playfair and Lato are defined in FontFamilyval playfair = FontFamily.Serifval lato = FontFamily.SansSerifColumn(modifier = Modifier.fillMaxSize().background(Color(0xFFF9F9F8)).verticalScroll(rememberScrollState()).padding(24.dp)) {Spacer(Modifier.height(40.dp))Text(text = "The Digital\nMagazine",fontFamily = playfair,fontSize = 48.sp,fontWeight = FontWeight.Bold,fontStyle = FontStyle.Italic,lineHeight = 52.sp,color = Color(0xFF121212))Spacer(Modifier.height(24.dp))Divider(color = Color(0xFF121212), thickness = 1.dp)Spacer(Modifier.height(24.dp))Row(verticalAlignment = Alignment.Top) {Text(text = "I",fontFamily = playfair,fontSize = 72.sp,color = Color(0xFF8B0000),modifier = Modifier.offset(y = (-10).dp).padding(end = 8.dp))Text(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.",fontFamily = lato,fontSize = 16.sp,lineHeight = 26.sp,color = Color(0xFF333333))}Spacer(Modifier.height(48.dp))// Pull QuoteDivider(color = Color(0xFF121212), thickness = 2.dp)Text(text = "“Sophistication is in the spacing.”",fontFamily = playfair,fontSize = 28.sp,fontStyle = FontStyle.Italic,textAlign = TextAlign.Center,modifier = Modifier.fillMaxWidth().padding(vertical = 32.dp))Divider(color = Color(0xFF121212), thickness = 2.dp)}}
- Compose handles custom fonts and line heights (
26.sp) very elegantly. - Use
Divider()for the hairlines. Adjust thickness as needed for headers vs pull quotes.
Do's and Don'ts
- DO: Treat the interface like a printed page. Margins should be generous.
- DON'T: Clutter the UI with typical app components like floating action buttons or heavy navigation bars. Keep it clean.
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.