canvas directive