{ "id": "accent-contrast", "name": "NodeDcAccentContrast", "kind": "utility", "status": "draft-stable", "summary": "Shared contrast helper that derives readable text color from a component accent color.", "sourceRefs": [ { "project": "nodedc_launcher", "file": "src/shared/lib/accentContrast.ts", "exports": [ "getReadableNodedcTextRgb", "createNodedcAccentStyleVars", "getNodedcRelativeLuminance" ] }, { "project": "nodedc_taskmanager", "file": "plane-src/packages/utils/src/theme/nodedc-accent.ts", "exports": [ "getReadableNodedcTextRgb", "applyNodedcAccent" ] } ], "visualContract": { "darkTextRgb": [11, 17, 23], "lightTextRgb": [245, 247, 251], "luminanceThreshold": 0.52, "cssVars": [ "--nodedc-component-accent-rgb", "--nodedc-component-on-accent-rgb" ] }, "rules": [ "Any filled accent button or active accent chip must use the computed on-accent text color.", "Do not hardcode black or white text on an accent fill unless the accent contrast helper owns that decision.", "Component-local accent variables are allowed when global --nodedc-accent-rgb is not the intended color for that component." ] }