{ "schemaVersion": 2, "generatedAt": "2026-05-14T09:14:00Z", "title": "Design System: 自助洗车运营管理系统", "extensions": { "colorMeta": { "brand-red": { "role": "primary", "displayName": "Brand Red", "canonical": "oklch(52% 0.16 25)", "tonalRamp": [ "oklch(15% 0.04 25)", "oklch(25% 0.08 25)", "oklch(35% 0.12 25)", "oklch(45% 0.16 25)", "oklch(52% 0.16 25)", "oklch(65% 0.12 25)", "oklch(78% 0.08 25)", "oklch(92% 0.03 25)" ] }, "surface-white": { "role": "neutral", "displayName": "Surface White", "canonical": "oklch(99% 0.002 25)", "tonalRamp": [ "oklch(96% 0.001 25)", "oklch(97% 0.001 25)", "oklch(98% 0.002 25)", "oklch(99% 0.002 25)", "oklch(99.5% 0.001 25)", "oklch(99% 0.003 25)", "oklch(98% 0.004 25)", "oklch(97% 0.005 25)" ] }, "content-bg": { "role": "neutral", "displayName": "Content Background", "canonical": "oklch(95% 0.005 255)", "tonalRamp": [ "oklch(90% 0.003 255)", "oklch(92% 0.004 255)", "oklch(94% 0.005 255)", "oklch(95% 0.005 255)", "oklch(96% 0.004 255)", "oklch(97% 0.003 255)", "oklch(98% 0.002 255)", "oklch(99% 0.001 255)" ] }, "text-primary": { "role": "neutral", "displayName": "Text Primary", "canonical": "oklch(27% 0.005 255)" }, "text-regular": { "role": "neutral", "displayName": "Text Regular", "canonical": "oklch(45% 0.005 255)" }, "text-secondary": { "role": "neutral", "displayName": "Text Secondary", "canonical": "oklch(62% 0.005 255)" }, "sidebar-bg": { "role": "neutral", "displayName": "Sidebar Background", "canonical": "oklch(14% 0.03 255)" } }, "typographyMeta": { "headline": { "displayName": "Headline", "purpose": "Page-level headings. At most one per page." }, "title": { "displayName": "Title", "purpose": "Section headers, card titles, dialog titles." }, "body": { "displayName": "Body", "purpose": "Body text, table content, descriptions. Max 75ch line width." }, "label": { "displayName": "Label", "purpose": "Form labels and field names. Weight carries hierarchy, not color." }, "caption": { "displayName": "Caption", "purpose": "Helper text, timestamps, secondary metadata." } }, "shadows": [ { "name": "message-float", "value": "0 3px 6px -4px rgba(0,0,0,0.12), 0 6px 16px rgba(0,0,0,0.08), 0 9px 28px 8px rgba(0,0,0,0.05)", "purpose": "Message toasts and notification popups." }, { "name": "dialog-footer", "value": "0 -1px 0 0 #e0e3e8, 0 -3px 6px 0 rgb(69 98 155 / 12%)", "purpose": "Bottom divider shadow for dialogs and search overlays." }, { "name": "table-fixed-column", "value": "8px 0 10px -5px rgba(0,0,0,0.06)", "purpose": "Horizontal scroll hint for fixed table columns." } ], "motion": [ { "name": "ease-standard", "value": "cubic-bezier(0.4, 0, 0.2, 1)", "purpose": "Default transition for hover states and UI element changes." }, { "name": "sidebar-transition", "value": "var(--pure-transition-duration, 0.3s)", "purpose": "Sidebar expand/collapse and layout width transitions." } ], "breakpoints": [ { "name": "mobile", "value": "760px" }, { "name": "collapsed-sidebar", "value": "990px" } ] }, "components": [ { "name": "Primary Button", "kind": "button", "refersTo": "button-primary", "description": "Main action button: confirm, submit, create. Brand red with white text.", "html": "", "css": ".ds-btn-primary { background: #C83A35; color: #fff; border: none; border-radius: 4px; padding: 8px 15px; font-size: 14px; font-family: \"Helvetica Neue\", Helvetica, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif; cursor: pointer; transition: background-color 0.2s ease; } .ds-btn-primary:hover { background: oklch(45% 0.16 25); } .ds-btn-primary:focus-visible { outline: 2px solid #C83A35; outline-offset: 2px; } .ds-btn-primary:active { background: oklch(38% 0.15 25); }" }, { "name": "Secondary Button", "kind": "button", "refersTo": "button-default", "description": "Secondary actions: cancel, back, batch operations.", "html": "", "css": ".ds-btn-secondary { background: #FEFEFE; color: #303133; border: 1px solid rgb(5 5 5 / 6%); border-radius: 4px; padding: 8px 15px; font-size: 14px; font-family: \"Helvetica Neue\", Helvetica, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif; cursor: pointer; transition: background-color 0.2s ease; } .ds-btn-secondary:hover { background: #f5f5f5; }" }, { "name": "Text Link Button", "kind": "button", "refersTo": "button-text", "description": "Inline table row actions: edit, view, delete.", "html": "", "css": ".ds-btn-text { background: transparent; color: #C83A35; border: none; padding: 0; font-size: 14px; cursor: pointer; transition: opacity 0.2s ease; } .ds-btn-text:hover { opacity: 0.8; }" }, { "name": "Active Menu Item", "kind": "nav", "refersTo": "menu-item-active", "description": "Currently active sidebar menu item with brand red background pill.", "html": "
", "css": ".ds-menu-item-active { position: relative; display: flex; align-items: center; height: 50px; padding: 0 20px; color: #fff; font-size: 14px; font-family: \"Helvetica Neue\", Helvetica, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif; cursor: pointer; z-index: 1; } .ds-menu-item-active::before { position: absolute; inset: 0 8px; margin: 4px 0; content: \"\"; background: #C83A35; border-radius: 3px; z-index: -1; } .ds-menu-icon { display: flex; align-items: center; margin-right: 5px; width: 18px; height: 18px; }" }, { "name": "Content Card", "kind": "card", "refersTo": "card", "description": "Standard page content container with subtle hover shadow feedback.", "html": "