163 lines
7.2 KiB
JSON
163 lines
7.2 KiB
JSON
{
|
|
"schemaVersion": 2,
|
|
"generatedAt": "2026-06-12T00:00:00+08:00",
|
|
"title": "Design System: ForgeFlow ERP",
|
|
"extensions": {
|
|
"colorMeta": {
|
|
"canvas": {
|
|
"role": "neutral",
|
|
"displayName": "ERP Canvas",
|
|
"canonical": "#f0f2f5",
|
|
"tonalRamp": ["#ffffff", "#f5f7fb", "#f0f2f5", "#e9edf3"]
|
|
},
|
|
"surface": {
|
|
"role": "neutral",
|
|
"displayName": "Work Surface",
|
|
"canonical": "#ffffff",
|
|
"tonalRamp": ["#ffffff", "#fbfdff", "#f8fafc"]
|
|
},
|
|
"primary": {
|
|
"role": "primary",
|
|
"displayName": "Operational Blue",
|
|
"canonical": "#409eff",
|
|
"tonalRamp": ["#ecf5ff", "#d9ecff", "#409eff", "#2563eb"]
|
|
},
|
|
"success": {
|
|
"role": "semantic",
|
|
"displayName": "Pass Green",
|
|
"canonical": "#67c23a",
|
|
"tonalRamp": ["#f0f9eb", "#e1f3d8", "#67c23a"]
|
|
},
|
|
"warning": {
|
|
"role": "semantic",
|
|
"displayName": "Review Amber",
|
|
"canonical": "#e6a23c",
|
|
"tonalRamp": ["#fdf6ec", "#faecd8", "#e6a23c"]
|
|
},
|
|
"danger": {
|
|
"role": "semantic",
|
|
"displayName": "Stop Red",
|
|
"canonical": "#f56c6c",
|
|
"tonalRamp": ["#fef0f0", "#fde2e2", "#f56c6c"]
|
|
}
|
|
},
|
|
"typographyMeta": {
|
|
"title": {
|
|
"displayName": "Title",
|
|
"purpose": "Panel and drawer titles inside authenticated product screens."
|
|
},
|
|
"body": {
|
|
"displayName": "Body",
|
|
"purpose": "Chinese-first operational UI text, descriptions, and table cells."
|
|
},
|
|
"label": {
|
|
"displayName": "Label",
|
|
"purpose": "Field labels, chips, table headers, and compact metadata."
|
|
}
|
|
},
|
|
"shadows": [
|
|
{
|
|
"name": "low-surface",
|
|
"value": "0 6px 16px rgba(31, 45, 61, 0.08), 0 1px 2px rgba(31, 45, 61, 0.06)",
|
|
"purpose": "Tables, compact repeated cards, and low emphasis containers."
|
|
},
|
|
{
|
|
"name": "panel-surface",
|
|
"value": "0 12px 28px rgba(31, 45, 61, 0.12), 0 3px 8px rgba(31, 45, 61, 0.08)",
|
|
"purpose": "Main panels and large workflow containers."
|
|
},
|
|
{
|
|
"name": "floating-surface",
|
|
"value": "0 20px 46px rgba(31, 45, 61, 0.16), 0 8px 18px rgba(31, 45, 61, 0.1)",
|
|
"purpose": "Drawers, dropdowns, popovers, and overlays."
|
|
}
|
|
],
|
|
"motion": [
|
|
{
|
|
"name": "fast-state",
|
|
"value": "140ms ease",
|
|
"purpose": "Small button, link, and row hover feedback."
|
|
},
|
|
{
|
|
"name": "normal-state",
|
|
"value": "220ms cubic-bezier(0.2, 0.8, 0.2, 1)",
|
|
"purpose": "Drawer and panel state transitions."
|
|
}
|
|
],
|
|
"breakpoints": [
|
|
{
|
|
"name": "tablet",
|
|
"value": "860px"
|
|
},
|
|
{
|
|
"name": "desktop-collapse",
|
|
"value": "1180px"
|
|
}
|
|
]
|
|
},
|
|
"components": [
|
|
{
|
|
"name": "Primary Button",
|
|
"kind": "button",
|
|
"refersTo": "button-primary",
|
|
"description": "Main action button for saving, creating, and confirming high-value ERP actions.",
|
|
"html": "<button class=\"ds-btn-primary\">Save document</button>",
|
|
"css": ".ds-btn-primary { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 14px; border: 1px solid #409eff; border-radius: 12px; background: #409eff; color: #ffffff; font: 700 13px/1 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif; cursor: pointer; transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease; } .ds-btn-primary:hover { background: #2563eb; border-color: #2563eb; } .ds-btn-primary:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18); }"
|
|
},
|
|
{
|
|
"name": "Status Badge",
|
|
"kind": "chip",
|
|
"refersTo": "status-primary",
|
|
"description": "Compact semantic status label used across tables and detail drawers.",
|
|
"html": "<span class=\"ds-status\"><span></span>Approved</span>",
|
|
"css": ".ds-status { display: inline-flex; align-items: center; gap: 6px; min-height: 24px; padding: 2px 8px; border: 1px solid #d9ecff; border-radius: 4px; background: #ecf5ff; color: #409eff; font: 600 12px/1.45 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif; white-space: nowrap; } .ds-status span { width: 6px; height: 6px; border-radius: 999px; background: currentColor; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 16%, transparent); }"
|
|
},
|
|
{
|
|
"name": "Data Table Container",
|
|
"kind": "custom",
|
|
"refersTo": "table-container",
|
|
"description": "Scrollable table frame with sticky headers for dense ERP records.",
|
|
"html": "<div class=\"ds-table\"><table><thead><tr><th>Document</th><th>Status</th></tr></thead><tbody><tr><td>PO-001</td><td>Pending</td></tr></tbody></table></div>",
|
|
"css": ".ds-table { overflow: auto; border: 1px solid rgba(209, 218, 232, 0.96); border-radius: 16px; background: #ffffff; box-shadow: 0 6px 16px rgba(31, 45, 61, 0.08), 0 1px 2px rgba(31, 45, 61, 0.06); } .ds-table table { width: 100%; border-collapse: separate; border-spacing: 0; font: 14px/1.45 'Helvetica Neue', Helvetica, 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif; } .ds-table th { position: sticky; top: 0; background: #f8fbff; color: #334155; font-size: 12px; font-weight: 750; text-align: left; } .ds-table th, .ds-table td { padding: 12px; border-bottom: 1px solid #ebeef5; } .ds-table td { color: #42526b; }"
|
|
}
|
|
],
|
|
"narrative": {
|
|
"northStar": "The Clear Production Desk",
|
|
"overview": "ForgeFlow ERP is a clear, light, high-density operational interface for a hardware manufacturing company. It should help users trace orders, materials, batches, operations, documents, and costs without visual noise.",
|
|
"keyCharacteristics": [
|
|
"Light routine ERP surfaces",
|
|
"Restrained blue action and selection language",
|
|
"Chinese-first practical product typography",
|
|
"Tables, drawers, forms, and status badges as core vocabulary",
|
|
"Formal document visuals only for business documents"
|
|
],
|
|
"rules": [
|
|
{
|
|
"name": "The Blue Rarity Rule",
|
|
"body": "Blue identifies current position and next action; it is not broad decoration.",
|
|
"section": "colors"
|
|
},
|
|
{
|
|
"name": "The Fixed Scale Rule",
|
|
"body": "Product screens use fixed UI type sizes, not fluid hero headings.",
|
|
"section": "typography"
|
|
},
|
|
{
|
|
"name": "The One Depth Signal Rule",
|
|
"body": "Do not stack thick borders, large radius, glossy gradients, and heavy shadow on one element.",
|
|
"section": "elevation"
|
|
}
|
|
],
|
|
"dos": [
|
|
"Do keep routine ERP screens light, restrained, and table-first.",
|
|
"Do standardize table, drawer, form, status badge, pagination, and action button behavior before styling individual pages.",
|
|
"Do provide loading, empty, error, no-permission, disabled, saving, and archive-failed states for critical flows."
|
|
],
|
|
"donts": [
|
|
"Don't make screens look obviously AI-generated through generic card grids, decorative gradients, glass effects, or ornamental animation.",
|
|
"Don't use side accent borders greater than 1px on cards or callouts.",
|
|
"Don't let old dark industrial styling bleed into everyday ERP work screens."
|
|
]
|
|
}
|
|
}
|