- From: Noam Rosenthal via GitHub <sysbot+gh@w3.org>
- Date: Mon, 10 Feb 2025 10:44:08 +0000
- To: public-css-archive@w3.org
I've experimented with trying to create some options using canvas, and created this partially working demo: https://noamr.github.io/border-shape-testbed/index.html I think this model works pretty well for NONZERO shapes. It's inspired by the model suggested before by @LeaVerou and @tabatkins, but adjusted to not having to rely on a point-after-point computation of stroke width and interpolating a bezier's stroke, which can be too computationally expensive. 1. Divide the path into closed subpaths 2. divide each closed subpath into segments 3. If counter-clockwise, reverse 4. For each subpath: 4.1. Choose the stroke width and color by which border is to the left of the vector created by the segment. e.g. a segment that points to the right would receive the top border. 4.2. Expand each subpath by the chosen stroke width, as if it was a line, creating an inner and outer subpath 5. Trim/expand the outer and inner subpath start/end points to intersect with its respective adjoining segments 6. for each segment, create a path between the join points and the stroke boundary 7. Fill that path with the chosen color @fserb @tabatkins @nt1m @fantasai @smfr @LeaVerou WDYT? -- GitHub Notification of comment by noamr Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/11662#issuecomment-2647604426 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Monday, 10 February 2025 10:44:09 UTC