openpencil/packages/core/src/lint/rules/consistent-radius.ts
2026-05-18 18:58:30 +03:00

19 lines
598 B
TypeScript

import { defineRule } from '#core/lint/rule'
const SCALE = new Set([0, 2, 4, 6, 8, 12, 16, 20, 24, 32, 9999])
export default defineRule({
meta: {
id: 'consistent-radius',
category: 'layout',
description: 'Corner radius should follow the radius scale'
},
match: ['RECTANGLE', 'FRAME', 'COMPONENT', 'INSTANCE'],
check(node, context) {
if (node.cornerRadius > 0 && !SCALE.has(node.cornerRadius))
context.report({
node,
message: `Corner radius ${node.cornerRadius}px is not in scale`,
suggest: 'Use a radius token or a scale value'
})
}
})