editorial-design – skill Thiết kế & UI cho agent AI
Hướng dẫn triển khai Web và App cho Editorial Design. Kích hoạt khi người dùng muốn bố cục lấy cảm hứng từ tạp chí, tiêu đề lớn và cách phối chữ thanh lịch.
Cài skill editorial-design bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/editorial-design-dc96f.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /editorial-design – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/editorial-design-dc96f.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $editorial-design – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/editorial-design-dc96f.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /editorial-design – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/editorial-design-dc96f.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /editorial-design – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
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… (nội dung đầy đủ có trong gói tải về)
Skill liên quan
- electron-drive-skill – Khởi chạy ứng dụng Electron của dự án trên profile tạm và thao tác: click, nhập liệu…
- emil-design-eng – Dùng khi thiết kế hoặc đánh giá giao diện sản phẩm tinh tế, lấy cảm hứng từ hoạt ảnh…
- engine-selection – Chọn game engine và framework theo nền tảng, thể loại và kiến trúc (canvas toàn màn hình…
- quality-manager-qms-iso13485 – Triển khai và duy trì hệ thống quản lý chất lượng ISO 13485 cho tổ chức thiết bị y tế…
- enhance-prompt – Biến ý tưởng UI còn mơ hồ thành prompt hoàn chỉnh, tối ưu cho Stitch. Tăng độ cụ thể…
- rag-architect – Dùng khi người dùng yêu cầu thiết kế pipeline RAG, chọn chiến lược chunking hoặc…
- event-sourcing-architect – Chuyên gia về event sourcing, CQRS và kiến trúc hướng sự kiện. Thành thạo thiết kế event…
- event-store-design – Thiết kế và triển khai event store cho hệ thống event-sourced. Dùng khi xây dựng hạ tầng…