Skip to content

Resolve functional blur lengths in retained filters #489

Closed

Description

@wieslawsoltes

Problem

Unchanged Code OSS uses filter: blur(max(4px, calc(8px * var(--vg-size)))) for voice glow rendering. WebScene's retained filter parser stops at the first nested ) and only accepts literal px, so the valid computed filter is exposed but never painted.

Scope

  • Scan filter functions with balanced parentheses and retain the existing 16-function bound.
  • Resolve blur lengths through WebScene's existing computed length/calc/min/max and custom-property pipeline.
  • Support non-negative absolute/font/viewport/container computed lengths while rejecting percentages and unresolved/invalid values fail-closed.
  • Clamp retained blur to the existing 256 CSS-pixel safety bound.
  • Preserve compound ordering, saturation, opacity, transforms, clips, descendants, and backend parity.
  • Add native retained-radius and browser computed-value regression coverage using the Code OSS-shaped max(..., calc(...)) case.

Validation debt

Browser/native pixels, damage expansion, performance, memory, lifecycle, exact package, and CI gates remain required before release promotion but are deferred under the current implementation-throughput directive.

Parent: #256. Coordination: #235/#241/#243.

Activity

  1. wieslawsoltes commented on Sep 18, 2026

    @wieslawsoltes
    CollaboratorAuthor

    Implemented and merged by PR #490 at b98ebc98af93cd6a0569b6f1f930aa62773cb6e2. Balanced filter scanning and the existing computed length/custom-property resolver now cover the Code OSS-shaped nested max(..., calc(...)) blur. CI tails were canceled; authored coverage and cumulative visual/performance/memory/package validation remain debt under #256/#235.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions