multipass: true

plugins:
  # Set <path> precision to 3 decimal places
  - convertPathData:
      floatPrecision: 3
      noSpaceAfterFlags: false

  # Sort attributes on the <SVG>
  - sortAttrs:
      order:
        - role
        - viewBox
      xmlnsOrder: end

  # Convert basic shapes (such as <circle>) to <path>, including <arc>
  - convertShapeToPath:
      convertArcs: true

  # Compound all <path>s into one
  - mergePaths:
      force: true
      noSpaceAfterFlags: false

  # Keep the <title>
  - removeTitle: false

  # Don't remove the role="img" attribute and automatically
  # add it to the SVG if it's not
  - addAttributesToSVGElement:
      attributes:
        - role: img

  # remove any unnecessary attributes
  - removeUnknownsAndDefaults:
      keepRoleAttr: true
  - removeAttrs:
      attrs:
        - baseProfile
        - version
        - fill-rule

  # remove paths with fill="none"
  - removeUselessStrokeAndFill:
      removeNone: true

  # Enable everything else
  - removeDoctype
  - removeXMLProcInst
  - removeComments
  - removeMetadata
  - removeXMLNS
  - removeEditorsNSData
  - cleanupAttrs
  - inlineStyles
  - minifyStyles
  - convertStyleToAttrs
  - cleanupIDs
  - prefixIds
  - removeRasterImages
  - removeUselessDefs
  - cleanupNumericValues
  - cleanupListOfValues
  - convertColors
  - removeNonInheritableGroupAttrs
  - removeViewBox
  - cleanupEnableBackground
  - removeHiddenElems
  - removeEmptyText
  - moveElemsAttrsToGroup
  - moveGroupAttrsToElems
  - collapseGroups
  - convertTransform
  - removeEmptyAttrs
  - removeEmptyContainers
  - removeUnusedNS
  - removeDesc
  - removeDimensions
  - removeAttributesBySelector
  - removeElementsByAttr
  - addClassesToSVGElement
  - removeStyleElement
  - removeScriptElement
  - removeOffCanvasPaths
  - reusePaths