Safe Mode Feature Demo

What is Safe Mode?
Safe Mode (enabled by default) ensures that functional QR patterns (finder patterns, timing patterns, alignment patterns, etc.) are always rendered as simple squares, regardless of your chosen shape style. This protects QR code scannability while allowing creative styling for data modules.

Circle Shape Example

Safe Mode ON (Default)

Circles with safe mode on

Functional patterns: Squares
Data modules: Circles

✅ Optimal for scanning

Safe Mode OFF

Circles with safe mode off

All modules: Circles

⚠️ May affect scannability

Extra Rounded Shape Example

Safe Mode ON

Extra rounded with safe mode on

Functional patterns protected

Shape Preview

The extra rounded style creates soft, organic shapes with large corner radii.

With safe mode ON, only data modules get this treatment.

Diamond Shape Example

Safe Mode ON

Diamonds with safe mode on

Artistic style with reliable scanning

Safe Mode OFF

Diamonds with safe mode off

Full artistic effect (use with caution)

Usage Example

# Safe mode is ON by default
write(qr, "output.svg", shape="circle", safe_mode=True)

# To disable safe mode (use with caution)
write(qr, "output.svg", shape="circle", safe_mode=False)

Protected Module Types