# Tests various blend modes using the blend filter primitive.
---
root:
  items:
    - type: stacking-context
      bounds: [0, 0, 50, 250]
      filter-primitives:
      - type: flood
        color: [255, 255, 255, 1]
        color-space: srgb
      - type: blend
        in1: original
        in2: 0
        color-space: srgb
        blend-mode: difference
      items:
        - type: rect
          bounds: [0, 0, 50, 50]
          color: [255, 0, 255, 1]

    - type: stacking-context
      bounds: [0, 0, 50, 250]
      filter-primitives:
      - type: flood
        color: [51, 51, 51, 1]
        color-space: srgb
      - type: blend
        in1: original
        in2: 0
        color-space: srgb
        blend-mode: multiply
      items:
        - type: rect
          bounds: [0, 50, 50, 50]
          color: [200, 100, 10, 1]

    - type: stacking-context
      bounds: [0, 0, 50, 250]
      filter-primitives:
      - type: flood
        color: [255, 10, 156, 1]
        color-space: srgb
      - type: blend
        in1: original
        in2: 0
        color-space: srgb
        blend-mode: darken
      items:
        - type: rect
          bounds: [0, 100, 50, 50]
          color: [20, 222, 155, 1]

    - type: stacking-context
      bounds: [0, 0, 50, 250]
      filter-primitives:
      - type: flood
        color: [255, 10, 156, 1]
        color-space: srgb
      - type: blend
        in1: original
        in2: 0
        color-space: srgb
        blend-mode: lighten
      items:
        - type: rect
          bounds: [0, 150, 50, 50]
          color: [20, 222, 155, 1]

    - type: stacking-context
      bounds: [0, 0, 50, 250]
      filter-primitives:
      - type: flood
        color: [255, 10, 156, 1]
        color-space: srgb
      - type: blend
        in1: original
        in2: 0
        color-space: srgb
        blend-mode: exclusion
      items:
        - type: rect
          bounds: [0, 200, 50, 50]
          color: [0, 255, 24, 1]
