[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-design-handoff-contract-en":3,"blog-adjacent-design-handoff-contract-en":29,"blog-related-design-handoff-contract-en":65},{"id":4,"slug":5,"title":6,"excerpt":7,"content":8,"cover":9,"tone":10,"author":11,"publishedAt":12,"updatedAt":13,"readingMinutes":14,"featured":15,"tags":16,"category":19,"seoSettings":28},6,"design-handoff-contract","From Design File to Design System: Three Agreements with Engineering","Inconsistent spacing, missing states and duplicated components are rarely attitude problems. They usually mean the team never wrote down shared agreements before handoff.","\u003Cp>After a design file is handed off, the real collaboration begins. Inconsistent spacing, uncovered states and duplicated component implementations are rarely attitude problems. They usually mean both sides never wrote down shared agreements before handoff.\u003C\u002Fp>\u003Ch2>Agreement one: tokens first\u003C\u002Fh2>\u003Cp>Color, type scale, spacing, radius and shadow should be defined as tokens first. Every value in a design file should map to an entry in the token table. Engineering then does not need to guess during implementation, and future adjustments take effect in one place.\u003C\u002Fp>\u003Ch2>Agreement two: states and boundaries delivered together\u003C\u002Fh2>\u003Cp>A button is not only its default state; it also has hover, disabled, loading and error. A list is not only the case with data; it also has an empty state, overly long text and pagination boundaries. Explaining these states at handoff prevents a large amount of rework.\u003C\u002Fp>\u003Ch2>Agreement three: changes go through one entry point\u003C\u002Fh2>\u003Cul>\u003Cli>Design changes are recorded in one place with their scope of impact;\u003C\u002Fli>\u003Cli>When implementation differs from the design file, confirm whether it is an omission or an intentional adjustment;\u003C\u002Fli>\u003Cli>Every new component must ship with usage guidance and accessibility requirements.\u003C\u002Fli>\u003C\u002Ful>\u003Cblockquote>The real output of a design system is not a set of components, but a collaboration habit that avoids re-discussing the same thing next time.\u003C\u002Fblockquote>\u003Cp>When agreements are written down and consistently followed, the relationship between design and engineering shifts from handoff and acceptance to shared responsibility for the experience.\u003C\u002Fp>","","indigo","佳益方圆团队","2026-08-28T10:00:00+08:00","2026-10-18T15:58:14.717+08:00",1,false,[17,18],"Design Systems","Team Collaboration",{"id":14,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},0,"engineering","Engineering","Hands-on engineering practices in architecture, performance optimization, AI integration and cross-platform delivery from our R and D team.","cpu","blue","article",60,{},{"previous":30,"next":48},{"id":31,"slug":32,"title":33,"excerpt":34,"content":9,"cover":9,"tone":35,"author":11,"publishedAt":36,"updatedAt":36,"readingMinutes":14,"featured":15,"tags":37,"category":41},54,"permissions-are-product-design","Permission Design Is Product Design","Permissions are not a technical appendix. They decide what each person in the organisation can see and do.","slate","2026-08-28T13:52:00+08:00",[38,39,40],"Permissions","Product Design","Organisation",{"id":42,"parentId":20,"slug":43,"name":44,"description":45,"icon":46,"cover":9,"tone":25,"kind":26,"sortOrder":47,"count":20},2,"product-thinking","Product Thinking","Requirement analysis, user experience and product design methods, plus the thinking from business problems to product solutions.","lightbulb",50,{"id":49,"slug":50,"title":51,"excerpt":52,"content":9,"cover":9,"tone":35,"author":11,"publishedAt":53,"updatedAt":53,"readingMinutes":14,"featured":15,"tags":54,"category":58},74,"multi-vendor-integration","Retrospective: Three Vendors, One Project","In multi-party projects the most expensive cost is waiting and arguing, not development.","2026-08-26T13:52:00+08:00",[55,56,57],"Retrospective","Integration","Collaboration",{"id":59,"parentId":20,"slug":60,"name":61,"description":62,"icon":63,"cover":9,"tone":25,"kind":26,"sortOrder":64,"count":20},3,"project-retrospective","Project Retrospectives","Real project records from zero to one, covering problems, solutions, lessons learned and final outcomes.","clipboard-check",40,[66,76,87],{"id":67,"slug":68,"title":69,"excerpt":70,"content":9,"cover":9,"tone":71,"author":11,"publishedAt":72,"updatedAt":72,"readingMinutes":14,"featured":15,"tags":73,"category":75},30,"integration-api-pitfalls","Five Traps in Enterprise System Integration","However complete the API documentation is, integration usually stalls on field semantics, timeouts and repeated pushes.","cyan","2026-10-17T09:00:00+08:00",[56,74,22],"APIs",{"id":14,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},{"id":14,"slug":77,"title":78,"excerpt":79,"content":9,"cover":9,"tone":71,"author":11,"publishedAt":80,"updatedAt":81,"readingMinutes":42,"featured":82,"tags":83,"category":86},"why-enterprise-systems-age","Why Enterprise Systems Start to Age After Three Years","A system can pass acceptance with every feature checked, then feel awkward three years later. The problem is rarely the code — it is the changes that were never considered at delivery.","2026-10-16T09:30:00+08:00","2026-10-18T15:58:14.648+08:00",true,[84,85],"System Evolution","Architecture",{"id":14,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},{"id":88,"slug":89,"title":90,"excerpt":91,"content":9,"cover":9,"tone":25,"author":11,"publishedAt":92,"updatedAt":92,"readingMinutes":14,"featured":15,"tags":93,"category":97},31,"idempotent-design-basics","Idempotency: Duplicate Submissions Are Not Just Double Clicks","Retries, redelivery and impatient users all send the same request more than once. Idempotency belongs in the API design.","2026-10-05T10:13:00+08:00",[94,95,96],"API Design","Idempotency","Reliability",{"id":14,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20}]