Soft Utility
柔和工具风
stylekitMITProfessional · professionalLight · lightMedium · mediumCyan · cyanMedium · mediumSerif · serifGeneral · generalLanding · landing
面向高频使用的手机工具 App,使用浅色背景、清晰状态色和柔和层级,在效率与亲和力之间取得平衡。
NNorthwind
Product · PricingSpecimen
Make the work feel finished
One interface, dressed in this style. Compare type, color, radius, and density.
128
Active
4.8
Score
12ms
Edge
Attribution
"Soft Utility" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/soft-utility @ bfa7da909e86.
https://github.com/AnxForever/stylekit · api/styles/soft-utility · bfa7da909e86 · © AnxForever
Do
- 使用深青色作为主行动色,保证按钮和正文可读
- 用薄荷、杏色、蓝色区分状态和模块,而不是装饰性铺色
- 在移动端采用底部操作栏和清晰的返回路径
- 所有输入控件提供 focus、error、success 和 disabled 状态
- 使用 rounded-xl 到 rounded-2xl,保持密度而不过度可爱
- 为常用操作提供一键完成和可撤销反馈
Don't
- 不要用低对比度文字承载关键任务信息
- 不要为了柔和而移除边界、分隔和状态反馈
- 不要把工具型页面做成纯展示卡片墙
- 不要使用过度弹跳或影响效率的动画
- 不要让主操作在不同页面随意改变位置
Prompt
Design a user interface in the "Soft Utility" style (柔和工具风). 面向高频使用的手机工具 App,使用浅色背景、清晰状态色和柔和层级,在效率与亲和力之间取得平衡。 Apply these tokens to every surface. Do not invent a second palette. - Background #f4f8f6, foreground #2d5b63 - Primary #2d5b63 on #fafaf9 - Accent #a9d8cc, muted #e5e9e7, border #d2d5d4 - Radius 0.5rem, type ui-sans-serif, system-ui, sans-serif - Shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04) Direction: Soft Utility 面向每天都会打开的工具型 App。它保留柔和色彩和圆润触感,但让状态、输入、筛选和确认拥有比装饰更高的权重。 核心原则: - 先让用户完成任务,再表达风格 - 颜色承担状态,不用颜色替代文字 - 控件有明确的默认、聚焦、完成和错误状态 - 主要动作固定在拇指容易到达的位置 - 信息密度适中,避免空洞的装饰 Do: - 使用深青色作为主行动色,保证按钮和正文可读 - 用薄荷、杏色、蓝色区分状态和模块,而不是装饰性铺色 - 在移动端采用底部操作栏和清晰的返回路径 - 所有输入控件提供 focus、error、success 和 disabled 状态 - 使用 rounded-xl 到 rounded-2xl,保持密度而不过度可爱 - 为常用操作提供一键完成和可撤销反馈 Don't: - 不要用低对比度文字承载关键任务信息 - 不要为了柔和而移除边界、分隔和状态反馈 - 不要把工具型页面做成纯展示卡片墙 - 不要使用过度弹跳或影响效率的动画 - 不要让主操作在不同页面随意改变位置 "Soft Utility" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/soft-utility @ bfa7da909e86. powered by Styledex — https://styledex.dev
Tokens
DTCG
{
"$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
"$description": "Soft Utility. \"Soft Utility\" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/soft-utility @ bfa7da909e86.",
"$extensions": {
"dev.styledex": {
"id": "stylekit-soft-utility",
"license": "MIT",
"attribution": "\"Soft Utility\" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/soft-utility @ bfa7da909e86.",
"banner": "powered by Styledex — https://styledex.dev"
}
},
"color": {
"background": {
"$type": "color",
"$value": "#f4f8f6"
},
"foreground": {
"$type": "color",
"$value": "#2d5b63"
},
"card": {
"$type": "color",
"$value": "#f4f8f6"
},
"card-foreground": {
"$type": "color",
"$value": "#2d5b63"
},
"primary": {
"$type": "color",
"$value": "#2d5b63"
},
"primary-foreground": {
"$type": "color",
"$value": "#fafaf9"
},
"secondary": {
"$type": "color",
"$value": "#f4f8f6"
},
"secondary-foreground": {
"$type": "color",
"$value": "#2d5b63"
},
"accent": {
"$type": "color",
"$value": "#a9d8cc"
},
"accent-foreground": {
"$type": "color",
"$value": "#1c1917"
},
"muted": {
"$type": "color",
"$value": "#e5e9e7"
},
"muted-foreground": {
"$type": "color",
"$value": "#77949a"
},
"border": {
"$type": "color",
"$value": "#d2d5d4"
},
"destructive": {
"$type": "color",
"$value": "#dc2626"
},
"ring": {
"$type": "color",
"$value": "#2d5b63"
}
},
"font": {
"sans": {
"$type": "fontFamily",
"$value": [
"ui-sans-serif",
"system-ui",
"sans-serif"
]
},
"serif": {
"$type": "fontFamily",
"$value": [
"ui-serif",
"Georgia",
"serif"
]
},
"mono": {
"$type": "fontFamily",
"$value": [
"ui-monospace",
"SFMono-Regular",
"Menlo",
"monospace"
]
}
},
"radius": {
"base": {
"$type": "dimension",
"$value": "0.5rem"
}
},
"spacing": {
"base": {
"$type": "dimension",
"$value": "1rem"
}
},
"shadow": {
"base": {
"$type": "shadow",
"$value": "0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04)"
}
}
}
CSS
/* powered by Styledex — https://styledex.dev */
/* "Soft Utility" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/soft-utility @ bfa7da909e86. */
:root {
--background: #f4f8f6;
--foreground: #2d5b63;
--card: #f4f8f6;
--card-foreground: #2d5b63;
--primary: #2d5b63;
--primary-foreground: #fafaf9;
--secondary: #f4f8f6;
--secondary-foreground: #2d5b63;
--accent: #a9d8cc;
--accent-foreground: #1c1917;
--muted: #e5e9e7;
--muted-foreground: #77949a;
--border: #d2d5d4;
--destructive: #dc2626;
--ring: #2d5b63;
--radius: 0.5rem;
--font-sans: ui-sans-serif, system-ui, sans-serif;
--font-serif: ui-serif, Georgia, serif;
--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
--spacing: 1rem;
--shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04);
}
Tailwind
/* powered by Styledex — https://styledex.dev */
/* "Soft Utility" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/soft-utility @ bfa7da909e86. */
/** Tailwind theme extend for Soft Utility (stylekit-soft-utility) */
module.exports = {
"theme": {
"extend": {
"colors": {
"background": "#f4f8f6",
"foreground": "#2d5b63",
"card": "#f4f8f6",
"primary": "#2d5b63",
"primary-foreground": "#fafaf9",
"secondary": "#f4f8f6",
"accent": "#a9d8cc",
"muted": "#e5e9e7",
"border": "#d2d5d4",
"destructive": "#dc2626",
"ring": "#2d5b63"
},
"borderRadius": {
"lg": "0.5rem"
},
"fontFamily": {
"sans": [
"ui-sans-serif",
"system-ui",
"sans-serif"
],
"serif": [
"ui-serif",
"Georgia",
"serif"
],
"mono": [
"ui-monospace",
"SFMono-Regular",
"Menlo",
"monospace"
]
},
"boxShadow": {
"styledex": "0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04)"
}
}
}
};
shadcn
/* powered by Styledex — https://styledex.dev */
/* "Soft Utility" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/soft-utility @ bfa7da909e86. */
@layer base {
:root {
--background: #f4f8f6;
--foreground: #2d5b63;
--card: #f4f8f6;
--card-foreground: #2d5b63;
--primary: #2d5b63;
--primary-foreground: #fafaf9;
--secondary: #f4f8f6;
--secondary-foreground: #2d5b63;
--accent: #a9d8cc;
--accent-foreground: #1c1917;
--muted: #e5e9e7;
--muted-foreground: #77949a;
--border: #d2d5d4;
--destructive: #dc2626;
--ring: #2d5b63;
--radius: 0.5rem;
--font-sans: ui-sans-serif, system-ui, sans-serif;
--font-serif: ui-serif, Georgia, serif;
--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
--spacing: 1rem;
--shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04);
}
}