figspec

Unofficial static Figma frame/file viewer available as HTML CustomElement

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
import type * as figma from "../../../figma.js";

/**
 * @returns Angle in degrees
 */
export function getLinearGradientAngle(
  start: figma.Vector,
  end: figma.Vector,
): number {
  return radToDeg(getAngle(start, end));
}

/**
 * Get angle of the vector in radian
 * @returns Angle in radian
 */
function getAngle(start: figma.Vector, end: figma.Vector): number {
  return Math.atan(((end.y - start.y) / (end.x - start.x)) * -1);
}

export function radToDeg(rad: number): number {
  const deg = ((180 * rad) / Math.PI) | 0;

  return deg < 0 ? 360 + deg : deg;
}