Token导航 LogoToken导航

Agent Skill · 前端设计

domo-app-theme(多莫应用程序主题)

domo-app-theme 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

domo-app-theme 是前端设计类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在前端设计类的 10,216 个 Skill 里排第 3,983。

总安装 1,038周安装 42GitHub Stars 14下载 326核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:domo-app-theme(多莫应用程序主题)
来源仓库:https://github.com/stahura/domo-ai-vibe-rules
仓库路径:skills/domo-app-theme
安装命令:
npx skills add https://github.com/stahura/domo-ai-vibe-rules --skill domo-app-theme
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/stahura/domo-ai-vibe-rules --skill domo-app-theme

这个 Skill 是做什么的

前端设计类 Skill 关注页面结构、视觉规范和组件写法,输出通常是可运行的界面代码。

该技能提供 Domo 平台原生风格的专业仪表板主题。适用于开发 Domo 自定义应用时保持视觉一致性和用户体验连贯性。包含完整的设计系统和色彩规范,支持企业级应用需求。可直接应用于 App Studio 主题配置,无需额外样式覆盖。domo-app-theme 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/domo-app-theme

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/stahura/domo-ai-vibe-rules --skill domo-app-th…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

domo-app-theme 怎么安装?

在终端执行 npx skills add https://github.com/stahura/domo-ai-vibe-rules --skill domo-app-theme。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

domo-app-theme 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

domo-app-theme 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

domo-app-theme 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

domo-app-theme 用的人多吗?

公开数据是累计安装 1,038 次,近一周安装 42 次,下载 326 次,GitHub 14 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

domo-app-theme 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理前端设计类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

前端设计类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
frontend-design

前端设计 · Codex、Claude

8,823,360126,072只读MIT通过
vercel-composition-patterns

Vercel 组合模式 · Codex、Claude

3,858,81625,893需要联网MIT通过
vercel-react-native-skills

Vercel React native skills 前端 · Codex、Claude

2,468,66425,878只读MIT通过
adapt

adapt 搜索 · Codex、Claude

2,027,04023,125操作浏览器未明确通过
bolder

bolder 分析 · Codex、Claude

2,004,28823,130只读未明确通过
domo-app-theme

多莫应用程序主题 · 本页

1,03814需要联网未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Domo Custom App Theme

A clean, professional dashboard theme used across Domo custom apps. Designed to feel native to the Domo platform while being modern and readable. Corporate but not sterile — hierarchy comes from font weight and subtle shadows rather than color. Feels Domo-native / Salesforce-adjacent.

Author: David Johnson

Themed Design System (DESIGN.md)

This skill operates across three styling layers that must stay coherent:

  1. Design Intent — mood, palette, typography, component recipes (the "what it should feel like")
  2. App Studio Theme JSON — native Domo schema with c1–c60 color slots, f1–f8 fonts, ca1–ca8 card styles
  3. Pro-Code CSS — custom properties, inline styles, Recharts/Chart.js colors

Each curated theme has a dedicated DESIGN.md file in references/themes/ that serves as the single source of truth for all three layers. A DESIGN.md contains:

  • Visual Theme and Atmosphere — mood, density, philosophy (prevents generic output)
  • Color System with Slot Mapping Table — every color has a semantic role, hex, OKLCH, theme slot (c number), and CSS variable in one row. This is the Rosetta Stone between native JSON and pro-code CSS.
  • Typography with Font Slot Mapping — type scale mapped to f1–f8 theme slots
  • Card and Component Styles — cards, buttons, inputs, nav, tables with ca/b slot references
  • Chart Palette — series colors with colorRange index mapping
  • Do's and Don'ts — theme-specific guardrails (e.g., c60 dark mode fix)
  • Agent Quick Reference — copy-paste CSS block, COLORS object, example prompts
  • Importable Theme JSON — complete JSON that can be imported directly into App Studio

Available Themes

ThemeFileModeAccentBest for
Core Themes
Charcoal Ember Darkcharcoal-ember-dark.DESIGN.mdDarkWarm orangeBenchmarks, performance, technical
Emerald Darkemerald-dark.DESIGN.mdDarkBright emeraldSaaS, analytics, dev tools
Neon Magenta Darkneon-magenta-dark.DESIGN.mdDarkHot pink / magentaCRM, engagement, consumer
Corporate Lightcorporate-light.DESIGN.mdLightCool blue-grayExecutive, corporate, general
Punk Subgenre Themes
Cyberpunkcyberpunk.DESIGN.mdDarkNeon cyanTech monitoring, cybersecurity, real-time
Steampunksteampunk.DESIGN.mdDarkPolished brassManufacturing, logistics, heritage
Solarpunksolarpunk.DESIGN.mdLightLeaf greenSustainability, ESG, wellness
Dieselpunkdieselpunk.DESIGN.mdDarkRust orangeMilitary, industrial, supply chain
Biopunkbiopunk.DESIGN.mdDarkBioluminescent greenBiotech, pharma, genomics, lab
Dreadpunkdreadpunk.DESIGN.mdDarkDeep crimsonRisk, security, audit, compliance
Dungeonpunkdungeonpunk.DESIGN.mdDarkArcane amberGaming, fantasy, creative, inventory
Atompunkatompunk.DESIGN.mdLightAtomic orangeEnergy, aerospace, innovation, R&D

For the 50 light chart palettes (which share the Corporate Light structural base but vary chart series colors), see palette-overlays.md.

When to Use a DESIGN.md

  • Building a new App Studio app: Start from a DESIGN.md. Use its Slot Mapping Table to configure the native theme AND its CSS block for pro-code components.
  • Applying a dark theme: Use the DESIGN.md instead of the generic dark mode guidance below. The DESIGN.md includes the exact c58/c60 fix, component colors, and importable JSON.
  • Debugging visual inconsistency: Check the Slot Mapping Table — if a semantic role maps to different values in the theme JSON vs. pro-code CSS, they're out of sync.

Relationship to This Skill

The content below defines the default light theme — structural colors, typography rules, component recipes, spacing, shadows, transitions, and design principles. These are theme-agnostic patterns that apply regardless of which DESIGN.md is active. The DESIGN.md files override the color system and component color values but inherit the layout, spacing, typography philosophy, shadow structure, transition timing, and micro-interaction patterns documented here.

App Studio Theme API Format (Critical)

DESIGN.md import blocks and App Studio API payloads are not the same schema.

  • DESIGN/import style (index-based): {"index": 1, "value": "#F0F4F8", "tag": "PRIMARY"}
  • API PUT style (id + wrapped value): {"id": "c1", "value": {"value": "#F0F4F8", "type": "RGB_HEX"}, "tags": ["THEME", "PRIMARY"]}

Use references/theme_transform.py to convert DESIGN-style color/font arrays into API-compatible updates.

API-side gotchas (validated)

  • dropShadow valid values: null, "FLOATING", "STANDARD" (not "NONE").
  • Fonts: style must be "Regular" (string), and size must be an integer (not "22px").
  • Card padding must be an object: {"left": 0, "right": 0, "top": 0, "bottom": 0} (not a single int).
  • Large mixed updates can 400 with no detail. Safer order:

1. colors PUT 2. fonts PUT 3. cards/navigation/components PUT

CSS Custom Properties

:root {
  /* Typography — system sans stack for modern, minimal feel */
  --font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  /* Core Colors (OKLCH primary, hex fallback in comments) */
  --text-primary: oklch(0.374 0.014 256);    /* #3F454D */
  --text-secondary: oklch(0.510 0.016 249);  /* #68737F */
  --bg: oklch(0.962 0.011 240);              /* #F1F6FA */
  --surface: oklch(1 0 0);                   /* #FFFFFF */
  --border: oklch(0.800 0.015 240);          /* #B7C1CB */
  --border-light: oklch(0.908 0.009 240);    /* #DCE4EA */
  --hover-bg: oklch(0.908 0.009 240);        /* #DCE4EA */
  --subtle-hover: oklch(0.979 0.004 240);    /* #F8FAFC */
  --accent-hover: oklch(0.816 0.065 230);    /* #99CCEE */

  /* Status Colors */
  --on-track: oklch(0.835 0.065 155);        /* #ADD4C1 */
  --on-track-bg: oklch(0.943 0.025 155);     /* #e8f3ec */
  --on-track-text: oklch(0.520 0.060 155);   /* #4a7a5a */
  --at-risk: oklch(0.740 0.155 60);          /* #FF9922 */
  --at-risk-bg: oklch(0.960 0.035 75);       /* #fff0dd */
  --at-risk-text: oklch(0.580 0.110 60);     /* #c47a10 */
  --behind: oklch(0.545 0.100 290);          /* #776CB0 */
  --behind-bg: oklch(0.930 0.025 290);       /* #eae7f3 */
  --behind-text: oklch(0.440 0.080 290);     /* #5a5094 */
  --complete: oklch(0.816 0.065 230);        /* #99CCEE */
  --complete-bg: oklch(0.940 0.025 230);     /* #e0f0fa */
  --complete-text: oklch(0.660 0.060 230);   /* #5a9abe */

  /* Summary Card Values */
  --on-track-value: oklch(0.620 0.070 155);  /* #6a9f7a */
  --at-risk-value: oklch(0.740 0.155 60);    /* #FF9922 */
  --behind-value: oklch(0.545 0.100 290);    /* #776CB0 */
  --complete-value: oklch(0.816 0.065 230);  /* #99CCEE */
  --total-value: oklch(0.374 0.014 256);     /* #3F454D */

  /* Accent / Highlight */
  --alert: oklch(0.590 0.160 20);            /* #e45f5f */
  --avatar-bg: oklch(0.374 0.014 256);       /* #3F454D */
  --avatar-text: oklch(1 0 0);               /* #FFFFFF */

  /* Shadows — three-layer depth for natural lift */
  --shadow:
    0px 0px 0px 1px oklch(0.374 0.014 256 / 0.06),
    0px 1px 2px -1px oklch(0.374 0.014 256 / 0.06),
    0px 2px 4px 0px oklch(0.374 0.014 256 / 0.04);
  --shadow-hover:
    0px 0px 0px 1px oklch(0.374 0.014 256 / 0.08),
    0px 2px 4px -1px oklch(0.374 0.014 256 / 0.08),
    0px 4px 12px 0px oklch(0.374 0.014 256 / 0.06);

  /* Border Radius — concentric: outer = inner + padding */
  --radius-card: 10px;   /* outer: card surface */
  --radius-btn: 6px;     /* inner: with 4px card padding clearance */
  --radius-badge: 4px;
  --radius-bar: 4px;

  /* Spacing */
  --page-padding: 24px;
  --max-width: 1400px;
  --grid-gap: 16px;
  --card-padding: 20px;
}

Reset & Baseline

* { box-sizing: border-box; margin: 0; padding: 0; }

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

Typography

Philosophy: Weight Does the Work

Modern, minimal typography relies on weight contrast — not size explosion — for hierarchy. The scale uses only 5 sizes (11, 12, 13, 16, 22). Headings feel authoritative through SemiBold (600), while body text stays light and airy at Regular (400). Light (300) is used for secondary/caption text to create breathing room between the data and its labels.

Never use Bold (700) or Black (900) for UI text — they overpower the minimal feel. Reserve SemiBold for headings, KPI values, and active button labels only. Everything else stays Regular or Light.

Type Scale

RoleSizeWeightExtra
Page title22px600text-wrap: balance
Card / section titles16px600text-wrap: balance
Body text / descriptions13px400line-height 1.5, text-wrap: pretty
Labels / captions11px400uppercase, letter-spacing 0.04em
Chart axis text11px400fill color, not CSS color
Badges / status text11px600only place small text gets weight
KPI / summary numbers28px600font-variant-numeric: tabular-nums
KPI labels11px300uppercase, letter-spacing 0.04em — fades behind the number
Micro text (avatar initials)9px600letter-spacing 0.5px
Dynamic numbersany—font-variant-numeric: tabular-nums

Font Stack

The font family is a design decision set in the project's DESIGN.md. Domo App Studio supports three font families:

Domo familyPro-code CSS font-familyFeel
Sans (default)-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serifClean, modern, tech-forward (GitHub, Stripe, Linear)
SerifGeorgia, "Times New Roman", "Palatino Linotype", serifEditorial, warm, premium (NYT, Medium)
Slab"Roboto Slab", "Rockwell", "Courier New", serifBold, structured, industrial

CRITICAL: The App Studio theme fonts[].family and all pro-code CSS font-family must use the same family. Mixing Sans native cards with Serif pro-code components (or vice versa) breaks visual cohesion. When a DESIGN.md specifies a font family, apply it everywhere.

App Studio Native Font Settings

Configure the App Studio theme editor font slots. Replace {family} with the chosen family from the table above:

SlotStyle presetFont familyWeightSize
Card TitleHeading 4{family}SemiBold16px
Card DescriptionBody{family}Regular13px
TimeframeParagraph{family}Light11px
Chart textBody{family}Regular11px
Summary numberHeading 5{family}SemiBold28px
Summary number labelParagraph{family}Light11px

This creates a consistent look between native cards and pro-code cards on the same page. The key choices:

  • Card Title at SemiBold — authoritative without being heavy
  • Timeframe at Light — barely-there, unobtrusive, lets the data breathe
  • Summary number label at Light — the label recedes so the number dominates
  • Chart text at Regular 11px — clean axis labels that don't compete with data

Weight Map (Domo App Studio ↔ CSS)

App Studio weightCSS font-weightWhen to use
Extra Light200Never in standard UI — too faint for readability
Light300KPI labels, timeframe text, secondary captions
Regular400Body text, descriptions, chart axis, table cells
SemiBold600Headings, KPI values, active buttons, badges
Bold700Avoid — breaks the minimal feel
Black900Never — too heavy for any dashboard context

Rules

  • Apply text-wrap: balance to headings (6 lines or fewer). Apply text-wrap: pretty to body paragraphs to prevent orphans.
  • Apply font-variant-numeric: tabular-nums to any number that updates dynamically — counters, KPI values, prices, timers, table columns. Prevents layout shift as digits change.
  • Use letter-spacing: 0.04em on uppercase labels (11px). At larger sizes, reduce to 0.02em or remove entirely.
  • Line height: 1.5 for body text, 1.2 for headings, 1 for KPI numbers.

Color Palette

For curated chart and data visualization palettes (50 palettes across 9 harmony types), see color-palettes.md. The palettes below define the theme's structural colors — backgrounds, surfaces, text, and status indicators.

Core Colors

RoleHexUsage
Text primary#3F454DHeadings, card titles, meta labels, active buttons
Text secondary#68737FDescriptions, captions, filter labels
Background#F1F6FAPage background
Surface#FFFFFFCards, containers, inputs
Border#B7C1CBInput borders, button borders
Border light#DCE4EADividers, progress bar tracks, row borders
Hover background#DCE4EAButton/row hover
Subtle hover bg#F8FAFCTable/list row hover
Accent hover#99CCEEBorder highlight on hover (inputs, buttons)

Status Colors

StatusPrimaryBackgroundTextUsage
On Track#ADD4C1#e8f3ec#4a7a5aBars, borders, badges
At Risk#FF9922#fff0dd#c47a10Bars, borders, badges
Behind#776CB0#eae7f3#5a5094Bars, borders, badges
Complete#99CCEE#e0f0fa#5a9abeBars, borders, badges

Summary Card Values

CategoryColor
On Track#6a9f7a
At Risk#FF9922
Behind#776CB0
Complete#99CCEE
Total#3F454D

Accent / Highlight

RoleHexUsage
Alert/today#e45f5fToday marker line, alert color
Avatar bg#3F454DInitials fallback avatar
Avatar text#FFFFFFInitials text

Spacing & Layout

  • Page padding: 24px
  • Max width: 1400px, centered
  • Grid gap: 16px
  • Card grid: repeat(auto-fill, minmax(320px, 1fr))
  • Section gap: 16px–24px vertical between sections
  • Card padding: 20px
  • Input/button padding: 6px 12px (inputs), 6px 14px (filter buttons), 8px 20px (tab buttons)

Shadows

Three-layer shadows for natural depth. Layer 1 acts as a 1px border ring, layer 2 adds subtle lift, layer 3 provides ambient depth. Shadow color derives from --text-primary at low opacity so it stays cohesive on any background.

For buttons, cards, and containers that need depth, prefer box-shadow over solid borders. Shadows adapt to any background via transparency; solid borders don't. Keep solid borders for layout dividers (border-b, border-t) and form input outlines (for accessibility).

.card {
  box-shadow: var(--shadow);
  transition-property: box-shadow;
  transition-duration: 150ms;
  transition-timing-function: ease-out;
}
.card:hover {
  box-shadow: var(--shadow-hover);
}

Components

Buttons (Filter / Tab)

StateBackgroundBorderText
Default#FFFFFF#B7C1CB#68737F
Hover#DCE4EA#99CCEE#3F454D
Active#3F454D#3F454D#FFFFFF
  • Ghost/outline style throughout — no fills on default buttons
  • Border radius: 6px
  • Transition: transition-property: scale, background-color, border-color, box-shadow; transition-duration: 150ms; transition-timing-function: ease-out;
  • Press feedback: scale(0.96) on :active — never below 0.95

Cards

  • White background, 10px radius, subtle shadow
  • 4px left border colored by status
  • Hover lifts shadow
  • Padding: 20px

Status Badges

  • 11px uppercase text, weight 600, letter-spacing 0.5px
  • Padding: 3px 8px, 4px radius
  • Tinted background with darker matching text (see status colors table)

Progress Bars

  • Track: #DCE4EA, 8px height, 4px radius
  • Fill: status-colored, width transition 0.3s ease

Owner Avatars

  • Default size: 22px circle (cards), 18px circle (compact/gantt contexts)
  • Image: border-radius: 50%, object-fit: cover
  • Fallback: #3F454D circle with white initials (9px default, 8px compact)
  • Always flex-shrink: 0 to prevent squishing
  • Paired with name in a flex row with 6px gap

Select Inputs

  • White bg, #B7C1CB border, 6px radius
  • 13px text, weight 600, #3F454D text color
  • Hover: #99CCEE border

Summary Cards

  • White bg, 10px radius, subtle shadow
  • flex: 1, min-width 140px
  • Label: 12px uppercase secondary text
  • Value: 28px weight 700, color per status (see summary card values table)

Gantt Chart

  • Container: white bg, 10px radius, subtle shadow
  • Row height: 40px min
  • Row dividers: 1px solid #F1F6FA
  • Row hover: #F8FAFC
  • Header divider: 2px solid #DCE4EA
  • Bars: 24px height, 4px radius, status-colored with darker fill layer for progress
  • Today line: 2px #e45f5f dashed, with 10px label above

Transitions

Never use transition: all or transition-property: all. Always specify exact properties — all forces the browser to watch every property and causes unexpected transitions on colors, padding, or shadows you didn't intend to animate.

ElementTransition
Buttons/controlstransition-property: scale, background-color, border-color, box-shadow 150ms ease-out
Progress barstransition-property: width 300ms ease
Card hover shadowtransition-property: box-shadow 150ms ease-out
Gantt barstransition-property: opacity 150ms ease (hover to 0.85)

Use CSS transitions for interactive state changes (hover, toggle, open/close) — they can be interrupted mid-animation. Reserve CSS keyframe animations for one-shot sequences (loading spinners, enter animations).

Micro-Interactions

Scale on Press

.button {
  transition-property: scale, background-color, border-color, box-shadow;
  transition-duration: 150ms;
  transition-timing-function: ease-out;
}
.button:active { scale: 0.96; }

Always use 0.96. Never below 0.95 — anything smaller feels exaggerated. Add a data-static attribute to disable the effect on buttons where motion would distract (e.g., submit buttons in forms).

Image Outlines

Add a subtle 1px inset outline to images for consistent depth:

img {
  outline: 1px solid oklch(0.374 0.014 256 / 0.1);
  outline-offset: -1px;
}

outline doesn't affect layout (no added width/height) and -1px offset keeps it inset.

Concentric Border Radius

When nesting rounded elements, the outer radius must equal the inner radius plus the gap between them: outerRadius = innerRadius + padding.

With this theme: card radius is 10px, card padding is 20px. Since padding (20px) exceeds the outer radius (10px), inner elements are treated as independent surfaces — use --radius-btn (6px) or --radius-badge (4px) independently. Concentric math matters most when padding is small (under 24px) and the nested elements are visually close to the outer boundary.

Dark Mode

The light theme above is the default. For dark mode apps, prefer a themed DESIGN.md file from references/themes/ — it provides the complete visual contract including slot mappings, importable JSON, and agent-ready prompts. Currently available: Charcoal Ember Dark.

For palettes without a full DESIGN.md, use one of the three curated dark themes defined in color-palettes.md (D1 Emerald Dark, D2 Neon Magenta Dark, D3 Charcoal Ember Dark). Each includes structural variables (backgrounds, surfaces, text, borders, shadows) and chart series colors.

Key adaptations when switching to dark mode:

PropertyLight modeDark mode
Page backgroundoklch(0.96 0.01 H)oklch(0.12–0.16 0.005–0.025 H)
Card surfaceoklch(1 0 0) (white)oklch(0.18–0.22 0.01–0.035 H)
Text primaryoklch(0.37 0.014 256) (dark)oklch(0.93–0.97 0.003–0.008 H) (near-white)
Text secondaryoklch(0.51 0.016 249)oklch(0.65–0.75 0.01–0.025 H)
Bordersoklch(0.80 0.015 H)oklch(0.25–0.35 0.01–0.035 H)
Shadowsoklch(text / 0.04–0.08)oklch(0 0 0 / 0.20–0.35) (higher opacity)
Chart series L0.55–0.680.70–0.80 (brighter on dark)
Chart series C0.09–0.130.07–0.11 (slightly reduced)
Status badge bglight tint oklch(0.93+...)dark tint oklch(0.20–0.25...)

Component adjustments:

  • Buttons: invert — default bg becomes surface color, text becomes near-white, hover lightens the surface
  • Cards: no white background — use --surface from the dark palette. Shadow opacity increases
  • Status badges: swap to dark-tinted backgrounds with brighter text (L 0.75+)
  • Progress bar track: use --border instead of --border-light
  • Avatars: use the theme's accent color instead of --text-primary for the circle fill

Applying in pro-code apps: Set the dark palette's --bg on html, body (or use background: transparent if the App Studio card frame provides the dark surface). Override color to --text-primary from the dark palette.

CRITICAL — App Studio native elements on dark mode:

When embedding dark mode apps in App Studio, Domo's native elements (hero cards, filter dropdowns, section headers, navigation text) use the theme's c60 AUTOMATIC_COLOR for font color. c60 does NOT reliably detect dark backgrounds — it defaults to dark text, making native text invisible on dark card/page surfaces.

Mandatory fix: After setting dark mode colors, replace ALL c60 font color references in the App Studio theme with c58 (the light text color). This affects cards[].fontColor, navigation[].titleFontColor, navigation[].linkFontColor, headers[].fontColor, and every *FontColor property in components[]. See app-studio skill's "Dark Mode Theme" section for the full code pattern.

Without this fix, the left nav, hero card labels, filter labels, and section headers will be invisible.

Design Principles

  • All colors are derived from a cool-gray palette anchored on --text-primary (oklch 0.374 0.014 256)
  • OKLCH is used for all color values. Hex equivalents are documented as comments. OKLCH enables perceptually uniform palette extension — adjust L for contrast, keep C and H constant
  • Status colors are intentionally muted/pastel for bars and borders, with saturated variants only in small text badges
  • The theme avoids pure black (oklch(0 0 0)) and pure white borders — everything has a slight blue-gray tint
  • No bold primary color — soft blue (--accent-hover) is used sparingly for accents
  • Hierarchy comes from font weight and subtle shadows rather than color
  • Shadows use three-layer compositing for natural depth instead of single-layer flat shadows
  • Interactive elements have at least 40x40px hit area. Extend with a pseudo-element if the visible element is smaller

平台分布

Codex

37.07%
按下载量换算121

Claude

28.03%
按下载量换算91

Cursor

20.02%
按下载量换算65

Gemini CLI

9.97%
按下载量换算33

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills