원클릭으로
whisk-theme
Analyze repository branding and generate custom documentation theme with branded components.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Analyze repository branding and generate custom documentation theme with branded components.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Analyze documentation for duplicates, outdated content, and discrepancies with codebase
Expert-level documentation bootstrap using Diátaxis framework and audience-driven planning.
Quick health check for documentation issues. Verifies content against actual source files.
Commit documentation changes to git after reviewing and confirming.
Create new documentation pages interactively. Searches codebase to ensure accuracy.
Delete documentation pages interactively with confirmation.
| name | whisk-theme |
| description | Analyze repository branding and generate custom documentation theme with branded components. |
When asked to "whisk theme", "generate theme", "customize theme", or "match branding":
Search repository for brand colors in priority order:
Tailwind Config (tailwind.config.js/ts):
theme: { colors: { primary: '#xxx', brand: '#xxx' } }
CSS Variables (globals.css, variables.css, app.css):
:root { --primary: #xxx; --brand-color: #xxx; }
UI Frameworks:
colors.brand.500palette.primary.main--primary: H S% L%Logo: public/logo.svg, assets/logo.*, favicon.svg
Fonts: Tailwind fontFamily, CSS font-family, Next.js font imports
🎨 Brand Analysis Complete!
COLORS:
Primary: #3B82F6 ████ (from tailwind.config.js)
LOGO: ✓ public/logo.svg
FONT: Inter
Apply to docs? (yes/customize/cancel)
{
"$schema": "https://devdoc.sh/theme.json",
"name": "{ProductName} Docs",
"colors": {
"primary": "{primary}",
"primaryLight": "{lighten_15%}",
"primaryDark": "{darken_15%}"
},
"typography": {
"fontFamily": "{font}, system-ui, sans-serif"
}
}
:root {
--devdoc-primary: {primary};
--devdoc-primary-light: {primaryLight};
--devdoc-primary-dark: {primaryDark};
--devdoc-font-family: '{font}', system-ui, sans-serif;
}
Generate component overrides based on brand colors and product type.
/* Branded callouts */
.callout-info {
background: linear-gradient(135deg, var(--devdoc-primary-light) 0%, transparent 100%);
border-left: 4px solid var(--devdoc-primary);
}
.callout-tip {
border-left-color: var(--devdoc-primary);
}
.callout-warning {
border-left-color: #f59e0b;
}
.callout-danger {
border-left-color: #ef4444;
}
/* Branded cards */
.card {
border: 1px solid var(--border);
border-radius: 0.5rem;
transition: border-color 0.2s, box-shadow 0.2s;
}
.card:hover {
border-color: var(--devdoc-primary);
box-shadow: 0 4px 12px rgba(var(--devdoc-primary-rgb), 0.15);
}
.card-icon {
color: var(--devdoc-primary);
}
/* Branded tabs */
.tabs-trigger[data-state="active"] {
color: var(--devdoc-primary);
border-bottom-color: var(--devdoc-primary);
}
.tabs-trigger:hover {
color: var(--devdoc-primary-dark);
}
/* Branded accordions */
.accordion-trigger:hover {
color: var(--devdoc-primary);
}
.accordion-trigger[data-state="open"] {
color: var(--devdoc-primary);
}
.accordion-trigger[data-state="open"] svg {
color: var(--devdoc-primary);
}
/* Primary button */
.btn-primary {
background-color: var(--devdoc-primary);
color: white;
}
.btn-primary:hover {
background-color: var(--devdoc-primary-dark);
}
/* Secondary/outline button */
.btn-secondary {
border: 1px solid var(--devdoc-primary);
color: var(--devdoc-primary);
background: transparent;
}
.btn-secondary:hover {
background-color: var(--devdoc-primary);
color: white;
}
/* Branded code blocks */
.code-block {
border: 1px solid var(--border);
border-radius: 0.5rem;
}
.code-block-header {
background: var(--muted);
border-bottom: 1px solid var(--border);
}
.code-block .copy-button:hover {
color: var(--devdoc-primary);
}
/* Syntax highlighting accent */
.token.function,
.token.class-name {
color: var(--devdoc-primary);
}
/* API playground branding */
.api-method-get {
background-color: #10b981;
}
.api-method-post {
background-color: var(--devdoc-primary);
}
.api-method-put {
background-color: #f59e0b;
}
.api-method-delete {
background-color: #ef4444;
}
.try-it-button {
background-color: var(--devdoc-primary);
}
.try-it-button:hover {
background-color: var(--devdoc-primary-dark);
}
/* Sidebar navigation */
.nav-link {
color: var(--foreground);
transition: color 0.2s;
}
.nav-link:hover {
color: var(--devdoc-primary);
}
.nav-link.active {
color: var(--devdoc-primary);
font-weight: 500;
}
.nav-group-title {
color: var(--muted-foreground);
font-weight: 600;
}
/* Tab navigation */
.nav-tab.active {
color: var(--devdoc-primary);
border-bottom: 2px solid var(--devdoc-primary);
}
/* Search styling */
.search-input:focus {
border-color: var(--devdoc-primary);
box-shadow: 0 0 0 2px rgba(var(--devdoc-primary-rgb), 0.2);
}
.search-result:hover {
background-color: var(--muted);
}
.search-result-title mark {
background-color: rgba(var(--devdoc-primary-rgb), 0.2);
color: var(--devdoc-primary-dark);
}
/* TOC styling */
.toc-link {
color: var(--muted-foreground);
}
.toc-link:hover {
color: var(--devdoc-primary);
}
.toc-link.active {
color: var(--devdoc-primary);
font-weight: 500;
}
.toc-indicator {
background-color: var(--devdoc-primary);
}
/* Steps styling */
.step-number {
background-color: var(--devdoc-primary);
color: white;
border-radius: 50%;
}
.step-connector {
background-color: var(--border);
}
.step-completed .step-number {
background-color: var(--devdoc-primary);
}
.step-completed .step-connector {
background-color: var(--devdoc-primary);
}
/* Tooltip styling */
.tooltip {
background-color: var(--foreground);
color: var(--background);
border-radius: 0.375rem;
}
.tooltip-arrow {
fill: var(--foreground);
}
Based on detected project type, add specific styles:
/* API-specific styles */
.endpoint-badge {
font-family: var(--devdoc-code-font-family);
font-weight: 600;
}
.response-status.success {
color: #10b981;
}
.response-status.error {
color: #ef4444;
}
.schema-property {
border-left: 2px solid var(--border);
}
.schema-property:hover {
border-left-color: var(--devdoc-primary);
}
/* SDK-specific styles */
.language-selector {
border: 1px solid var(--border);
}
.language-selector button.active {
background-color: var(--devdoc-primary);
color: white;
}
.install-command {
background: var(--muted);
border-radius: 0.5rem;
font-family: var(--devdoc-code-font-family);
}
/* Product-specific styles */
.feature-card {
border: 1px solid var(--border);
border-radius: 0.75rem;
}
.feature-card:hover {
border-color: var(--devdoc-primary);
}
.feature-icon {
color: var(--devdoc-primary);
font-size: 2rem;
}
.screenshot {
border: 1px solid var(--border);
border-radius: 0.5rem;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
Generate the full custom.css with all branded components:
/* {ProductName} Documentation Theme */
/* Generated by DevDoc whisk-theme */
/* ============================================
1. CSS Variables
============================================ */
:root {
/* Brand Colors */
--devdoc-primary: {primary};
--devdoc-primary-light: {primaryLight};
--devdoc-primary-dark: {primaryDark};
--devdoc-primary-rgb: {primaryRGB};
/* Typography */
--devdoc-font-family: '{font}', system-ui, sans-serif;
--devdoc-heading-font-family: '{font}', system-ui, sans-serif;
--devdoc-code-font-family: 'JetBrains Mono', 'Fira Code', monospace;
/* Layout */
--devdoc-sidebar-width: 280px;
--devdoc-content-max-width: 768px;
}
/* ============================================
2. Base Styles
============================================ */
* {
transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
::selection {
background-color: var(--devdoc-primary);
color: white;
}
/* ============================================
3. Links
============================================ */
.docs-content a:not([class]) {
color: var(--devdoc-primary);
text-decoration: underline;
text-underline-offset: 2px;
}
.docs-content a:not([class]):hover {
color: var(--devdoc-primary-dark);
}
/* ============================================
4. Navigation
============================================ */
.nav-link:hover { color: var(--devdoc-primary); }
.nav-link.active { color: var(--devdoc-primary); font-weight: 500; }
.nav-tab.active { color: var(--devdoc-primary); border-bottom: 2px solid var(--devdoc-primary); }
/* ============================================
5. Components
============================================ */
/* Buttons */
.btn-primary { background-color: var(--devdoc-primary); color: white; }
.btn-primary:hover { background-color: var(--devdoc-primary-dark); }
/* Cards */
.card:hover { border-color: var(--devdoc-primary); }
.card-icon { color: var(--devdoc-primary); }
/* Callouts */
.callout { border-left: 4px solid var(--devdoc-primary); }
/* Tabs */
.tabs-trigger[data-state="active"] { color: var(--devdoc-primary); border-bottom-color: var(--devdoc-primary); }
/* Accordions */
.accordion-trigger[data-state="open"] { color: var(--devdoc-primary); }
/* Steps */
.step-number { background-color: var(--devdoc-primary); color: white; }
/* Search */
.search-input:focus { border-color: var(--devdoc-primary); }
.search-result-title mark { background-color: rgba(var(--devdoc-primary-rgb), 0.2); }
/* TOC */
.toc-link.active { color: var(--devdoc-primary); }
.toc-indicator { background-color: var(--devdoc-primary); }
/* ============================================
6. Code
============================================ */
pre code {
font-family: var(--devdoc-code-font-family);
font-size: 0.875rem;
line-height: 1.7;
}
:not(pre) > code {
background-color: var(--muted);
padding: 0.125rem 0.375rem;
border-radius: 0.25rem;
font-size: 0.875em;
}
.code-block .copy-button:hover { color: var(--devdoc-primary); }
/* ============================================
7. API Reference
============================================ */
.api-method-post { background-color: var(--devdoc-primary); }
.try-it-button { background-color: var(--devdoc-primary); }
.try-it-button:hover { background-color: var(--devdoc-primary-dark); }
✅ Theme & Components Updated!
Files modified:
✓ theme.json - brand colors, typography
✓ custom.css - variables, components, styles
✓ docs.json - logo paths
✓ public/logo.svg - copied
Components branded:
• Navigation (sidebar, tabs, TOC)
• Buttons (primary, secondary)
• Cards & Card groups
• Callouts & Notices
• Tabs & Accordions
• Code blocks
• Search
• API playground
• Steps component
Run `devdoc dev` to preview!