Mathsframe -

canvas.renderAll(); return () => canvas.dispose(); , [numerator, denominator]);

useEffect(() => if (!canvasRef.current) return; const canvas = new fabric.Canvas(canvasRef.current); const width = 400; const height = 80; const sliceWidth = width / denominator; mathsframe

export const FractionWall: React.FC<FractionWallProps> = ( numerator, denominator, onSliceClick ) => const canvasRef = useRef<HTMLCanvasElement>(null); canvas

for (let i = 0; i < denominator; i++) const rect = new fabric.Rect( left: i * sliceWidth, top: 0, width: sliceWidth - 2, height: height, fill: i < numerator ? '#3b82f6' : '#e2e8f0', stroke: '#1e293b', strokeWidth: 1, selectable: true, hasControls: false, hasBorders: true, data: index: i ); Its core mission is to reduce math anxiety,

rect.on('mousedown', () => onSliceClick(i)); canvas.add(rect);

1. Concept & Mission Mathsframe is an interactive mathematics platform designed to transform abstract mathematical concepts into tangible, visual, and gamified learning experiences. Its core mission is to reduce math anxiety, increase fluency, and provide real-time feedback to learners through a clean, accessible interface.

Support the arts in your community!
A tax-deductible donation is a great way to ensure the future of the arts and art education!
Support the arts in your community!
A great way to ensure the future of the arts and art education!