Skip to main content

esther-design-system

AI-driven personal brand design system that converts content into consistent, brand-aligned HTML pages with predefined colors, fonts, layouts, and components

الانتقال إلى التثبيت

معلومات المصدر

المستودع
reason-machines/design-skills
آخر نشاط في المصدر
١٦ يونيو ٢٠٢٦ في ٠٥:١٧
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
esther-design-system
description
AI-driven personal brand design system that converts content into consistent, brand-aligned HTML pages with predefined colors, fonts, layouts, and components
triggers
["create a landing page using esther design system","generate a tutorial page with my brand style","build an app interface with esther components","design a xiaohongshu card using brand guidelines","convert this content into a branded HTML page","apply esther design system to this layout","make a page following brand DNA rules","use the personal IP design system"]
# Esther Design System > Skill by [ara.so](https://ara.so) — Design Skills collection. Esther Design System is a constraint-based design system for AI agents that transforms content into brand-consistent HTML pages. It enforces strict visual rules (colors, fonts, layouts, components) to ensure every AI-generated page looks cohesive and "not like generic AI output." ## What It Does - **Converts content → branded HTML pages** for 4 scenarios: tutorials, landing pages, apps, social media cards - **Constrains AI creativity** via predefined layouts, components, and strict brand rules - **Enforces quality** through a mandatory 7-step workflow + P0/P1/P2 checklist - **Prevents "AI look"** by banning common patterns (glassmorphism, gradients, default HTML styles) ## Core Philosophy ``` Strict constraints = consistent quality Limited options = faster decisions Explicit rules = predictable output ``` AI can only use pre-approved layouts, colors, fonts, and components. No improvisation allowed. ## Installation 1. **Clone or reference** this repository in your AI agent's context: ```bash git clone https://github.com/esthersjw/esther-design-system.git ``` 2. **Load into AI agent**: - **Cola Skill**: Place in `~/Cola/skills/esther-design-system/` - **Claude Projects**: Upload entire folder - **Cursor**: Add to workspace root and reference in `.cursorrules` 3. **Initialize workflow**: Tell your AI agent to read `SKILL.md` before any design task ## File Structure ``` esther-design-system/ ├── SKILL.md # 7-step workflow (this file) ├── brand-dna.md # Brand colors, fonts, tone, forbidden patterns ├── assets/ │ ├── template-tutorial.html # Starting point for tutorials │ ├── template-landing.html # Starting point for landing pages │ ├── template-app.html # Starting point for app UIs │ ├── template-cards.html # Starting point for social cards │ └── avatar.jpg # Brand avatar └── references/ ├── layouts.md # 15 approved layout patterns with code ├── components.md # 2988-line component library ├── checklist.md # Quality gates (P0/P1/P2) ├── scene-tutorial.md # Tutorial-specific rules ├── scene-landing.md # Landing page rules ├── scene-app.md # App UI rules └── scene-cards.md # Social card rules ``` ## 7-Step Workflow Every design task MUST follow this sequence: ### Step 1: Gather Requirements Ask the user 5 questions before starting: ``` 1. 页面类型?(tutorial/landing/app/cards) 2. 目标受众? 3. 几屏内容? 4. 现有素材?(文字/图片/视频) 5. 特殊约束?(截止日期/技术限制) ``` ### Step 2: Load Brand Rules Read in this order: 1. `brand-dna.md` (global rules) 2. Corresponding scene file (`scene-{type}.md`) 3. `layouts.md` (layout options) 4. `components.md` (component library) ### Step 3: Copy Base Template ```bash # Start from template, NEVER from scratch cp assets/template-{type}.html output.html ``` ### Step 4: Select 3-5 Layouts From `layouts.md`, choose layouts ensuring: - **No two sections use same layout** - Mix alignment (left/right/center) - At least one full-width section - At least one asymmetric section Example selection: ``` Section 1: Hero (Center Dominant) Section 2: Feature Grid (Offset Triple Card) Section 3: Quote (Left Text + Right Visual) Section 4: Process (Timeline Vertical) Section 5: CTA (Split Half) ``` ### Step 5: Build with Components From `components.md`, use ONLY pre-built components: ```html <!-- WRONG: Default HTML --> <blockquote>Some quote</blockquote> <!-- RIGHT: Use brand component --> <div class="quote-block-simple"> <div class="quote-line"></div> <blockquote>Some quote</blockquote> <cite>— Author</cite> </div> ``` ### Step 6: Self-Check Against Checklist Run through `checklist.md`: **P0 (Must Pass All)**: - [ ] Brand color ratio: Blue 60% / Yellow 30% / Red 10% - [ ] Zero forbidden elements (glassmorphism, neon, bounce animations) - [ ] Zero default HTML styles - [ ] Warm background (`#FFFCF5` or similar) - [ ] Serif + sans-serif mix - [ ] Responsive (mobile-first) - [ ] All sections use different layouts - [ ] Fluid sizing with `clamp()` - [ ] Doesn't look "AI-generated" **P1 (Should Pass)**: - [ ] At least one "wow" visual section - [ ] Extreme font size contrast (h1 vs body ≥ 3:1) - [ ] Scroll reveal animations - [ ] Large decorative numbers/English text ### Step 7: Deliver Output a single `.html` file that: - Opens directly in browser (no build step) - Includes all CSS inline or in `<style>` tags - Uses CDN fonts (Google Fonts, etc.) - Has no external dependencies except fonts ## Brand DNA Reference ### Colors ```css /* Primary Palette */ --brand-blue: #2B7FD8; /* 60% usage */ --brand-yellow: #F4D758; /* 30% usage */ --brand-red: #E84A5F; /* 10% usage - accents only */ /* Neutrals */ --warm-bg: #FFFCF5; --text-dark: #1A1A1A; --text-gray: #666666; /* Extension Rules */ /* OK: Tints/shades of brand colors */ --blue-light: rgba(43, 127, 216, 0.1); --yellow-bg: rgba(244, 215, 88, 0.2); /* FORBIDDEN: Purple, neon, black backgrounds */ ``` ### Fonts ```html <!-- Load in <head> --> <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;700&family=Noto+Sans+SC:wght@400;500;700&family=Fraunces:ital,wght@1,400&family=Caveat&family=Fira+Code&display=swap" rel="stylesheet"> ``` ```css /* Usage */ h1, h2, h3 { font-family: 'Noto Serif SC', serif; } body, p { font-family: 'Noto Sans SC', sans-serif; } .decorative-english { font-family: 'Fraunces', serif; font-style: italic; } .handwritten { font-family: 'Caveat', cursive; } code, pre { font-family: 'Fira Code', monospace; } ``` ### Forbidden Patterns ``` ❌ Blue-purple gradients ❌ Glassmorphism (backdrop-filter: blur) ❌ Neon colors ❌ animation: bounce ❌ Inter/Roboto fonts ❌ All sections centered ❌ Default <blockquote>, <ul>, <table> styles ❌ Generic AI templates ``` ## Key Components ### Magazine-Style Card ```html <div class="card-magazine"> <div class="card-eyebrow" style="background: var(--brand-yellow);"> Category </div> <h3>Card Title</h3> <p>Description text here...</p> <a href="#" class="card-link">Learn more →</a> </div> <style> .card-magazine { background: white; padding: 2rem; border-left: 4px solid var(--brand-blue); position: relative; } .card-eyebrow { display: inline-block; padding: 0.25rem 0.75rem; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 1rem; } </style> ``` ### Terminal Code Block ```html <div class="code-terminal"> <div class="terminal-header"> <span class="terminal-dot" style="background: #E84A5F;"></span> <span class="terminal-dot" style="background: #F4D758;"></span> <span class="terminal-dot" style="background: #2B7FD8;"></span> <span class="terminal-title">bash</span> </div> <pre><code>npm install esther-design-system</code></pre> </div> <style> .code-terminal { background: #1A1A1A; border-radius: 8px; overflow: hidden; font-family: 'Fira Code', monospace; } .terminal-header { background: #2A2A2A; padding: 0.75rem 1rem; display: flex; align-items: center; gap: 0.5rem; } .terminal-dot { width: 12px; height: 12px; border-radius: 50%; } .terminal-title { margin-left: auto; color: #999; font-size: 0.875rem; } .code-terminal pre { padding: 1.5rem; margin: 0; color: #00FF00; } </style> ``` ### Quote Block with Hand-Written Badge ```html <div class="quote-handwritten"> <span class="handwritten-badge">💡 Insight</span> <blockquote> The best design systems are the ones that constrain creativity just enough to ensure consistency. </blockquote> <cite>— Design Principle #3</cite> </div> <style> .quote-handwritten { background: rgba(244, 215, 88, 0.1); border-left: 4px solid var(--brand-yellow); padding: 2rem; position: relative; } .handwritten-badge { position: absolute; top: -0.75rem; left: 2rem; background: white; padding: 0.25rem 0.75rem; font-family: 'Caveat', cursive; font-size: 1.25rem; border: 2px solid var(--brand-yellow); transform: rotate(-2deg); } blockquote { font-size: 1.25rem; line-height: 1.6; margin: 1rem 0 0.5rem; font-style: italic; } cite { font-size: 0.875rem; color: #666; } </style> ``` ## Common Patterns ### Fluid Typography ```css /* Always use clamp() for responsive sizing */ h1 { font-size: clamp(2rem, 5vw + 1rem, 4rem); } p { font-size: clamp(1rem, 2vw + 0.5rem, 1.125rem); } ``` ### Layout Grid ```css .section-container { max-width: 1200px; margin: 0 auto; padding: clamp(2rem, 5vw, 6rem) clamp(1rem, 3vw, 2rem); } /* Three-column grid with gap */ .grid-3col { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; } ``` ### Scroll Reveal Animation ```html <div class="reveal-on-scroll">Content</div> <style> .reveal-on-scroll { opacity: 0; transform: translateY(30px); transition: opacity 0.6s ease, transform 0.6s ease; } .reveal-on-scroll.revealed { opacity: 1; transform: translateY(0); } </style> <script> const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('revealed'); } }); }, { threshold: 0.1 }); document.querySelectorAll('.reveal-on-scroll').forEach(el => { observer.observe(el); }); </script> ``` ## Troubleshooting ### "Output looks too generic" - **Check**: Did you use 3+ different layouts from `layouts.md`? - **Check**: Did you include at least one decorative English/number element? - **Check**: Is there extreme font size contrast (hero vs body)? - **Fix**: Add asymmetry, use `transform: rotate()` on decorative elements ### "Colors feel off" - **Check**: Measure color usage — Blue should dominate (60%), Yellow accents (30%), Red sparingly (10%) - **Fix**: Replace overused yellow with blue tints, reserve red for CTAs only ### "Fails P0 checklist" - **Most common**: Using default `<blockquote>` or `<ul>` styles - **Fix**: Replace ALL default HTML elements with components from `components.md` - **Example**: ```html <!-- WRONG --> <ul> <li>Item 1</li> </ul> <!-- RIGHT --> <div class="custom-list"> <div class="list-item"> <span class="bullet" style="background: var(--brand-blue);"></span> <span>Item 1</span> </div> </div> ``` ### "Not responsive on mobile"
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub