Quick answer: Godot 4 CanvasLayer with follow_viewport_enabled blurring pixel art? Sub-pixel positioning bypasses snap settings - manually quantize the layer's transform.

Pixel-art UI on a CanvasLayer that follows the camera. UI elements visibly soften at fractional camera positions.

Quantize the transform

func _process(_):
    transform.origin = transform.origin.round()

Per-frame snap. Sub-pixel positions disappear.

Or disable follow

If the UI doesn't need to track the world, set follow_viewport_enabled = false. Stays in screen space; pixel-perfect by default.

Use integer-only camera positions

If the world camera quantizes, the follow layer inherits. Often the cleanest fix.

“Sub-pixel positions blur pixel art. Quantization is the contract.”

Pixel-art games should establish a single source of truth for quantization. Document; enforce in code review.

Related reading