Penpot 迁移 WebGL 渲染遇“三线问题”,多格式多描边处理揭秘!
描边基础与跨格式呈现在 Penpot 迁移到 WebGL 渲染 时遇到了“三线问题”。当三种描边相互交织设计系统易混乱。2026 年 7 月 21 日发布的文章提到物理学三体问题表述与“三线问题”有类比性。描边即围绕图层的线可更新属性定制样式、大小和颜色[1]。在 CSS 中对应 border 属性有相关使用方式和独立属性[3]文章给出代码示例。在 SVG 中Penpot 正用 WebGL 渲染器取代原始渲染器也有样式对应写法示例[2]。三线问题详解描边根据位置分内描边、居中描边和外描边[7]。内描边完全在形状内宽度从边缘向内延伸居中描边一半在形状内一半在外外描边完全在形状外宽度从边缘向外延伸。不同格式处理方式有分歧CSS 默认内边框实现外边框或居中边框需用 outline 和 outline-offset 属性SVG 中居中描边默认实现内、外描边需裁剪和遮罩文章给出 SVG 代码示例。WebGL 渲染器中的实现Penpot 使用 Skia 库实现描边Skia 提供 SkPaint 类[4]绘制类型有 Fill、Stroke 或 StrokeFillPenpot 使用不同 Paint 及其描边方法组合[5]。正方形形状的描边实现内描边将矩形向内缩进宽度一半使描边在形状内文章给出 C 代码及示例图居中描边是 Skia 原生行为直接在矩形上绘制给出代码及示例图外描边将矩形向外扩展宽度一半使描边在形状外也有对应代码及示例图。复杂形状路径的描边实现设计中引入复杂形状如路径时内、外描边需用 Skia 其他函数默认 Skia 描边居中无需特殊处理。文章以三角形路径为例给出内、中、外描边代码实现及示例图。虚线和点线样式处理处理虚线或点线描边需用 SkPathEffect文章给出代码实现及示例图。多条描边的挑战与应对形状描边数量增加使情况复杂。Penpot 支持多边框使用 SVG 或 WebGL 渲染器时按顺序添加边框文章给出代码及示例图。CSS 无法用 border 属性支持多描边常用 box-shadow 属性变通文章给出代码及示例图还提到可能很快能在 CSS 中声明式添加多边框https://bsky.app/profile/lea.verou.me/post/3mdjbojsf6s2h。总结与展望文章面对的系统如相互环绕的天体易混乱三种描边类型、三种格式对“默认”描边定义不同且变量增加。但得益于 WebGL 渲染实现边框相关视觉元素更灵活。Penpot 还有很大空间挖掘描边功能如描边转路径、每边单独设描边三线问题探索还在继续。

相关新闻

终极指南:如何用Mayavi快速实现Python 3D科学数据可视化

终极指南:如何用Mayavi快速实现Python 3D科学数据可视化

终极指南:如何用Mayavi快速实现Python 3D科学数据可视化 【免费下载链接】mayavi 3D visualization of scientific data in Python 项目地址: https://gitcode.com/gh_mirrors/ma/mayavi Mayavi是一个强大的Python 3D科学数据可视化库,专为科研人…

2026/8/13 17:07:05 阅读更多 →
基于Flink的CEP(复杂事件处理)引擎在金融风控场景的应用——Python大数据分析实战

基于Flink的CEP(复杂事件处理)引擎在金融风控场景的应用——Python大数据分析实战

在当今的金融体系中,风险控制已从传统的“事后监督”演变为“事中拦截”乃至“事前预警”。随着移动支付、在线信贷、量化交易等业务的爆发式增长,金融机构面临的欺诈模式、市场波动和操作风险呈现出高频、多变、隐蔽的特点。例如,信用卡盗刷可能发生在几秒钟内完成多笔小额…

2026/8/13 17:07:05 阅读更多 →
深入解析CRI工具:Kubernetes容器运行时管理的终极武器

深入解析CRI工具:Kubernetes容器运行时管理的终极武器

深入解析CRI工具:Kubernetes容器运行时管理的终极武器 【免费下载链接】cri-tools CLI and validation tools for Kubelet Container Runtime Interface (CRI) . 项目地址: https://gitcode.com/gh_mirrors/cr/cri-tools 你是否曾经在Kubernetes集群故障排查…

2026/8/13 17:06:05 阅读更多 →

最新新闻

从0到1开发flutter_chat_box插件:构建你的专属AI聊天功能

从0到1开发flutter_chat_box插件:构建你的专属AI聊天功能

从0到1开发flutter_chat_box插件:构建你的专属AI聊天功能 【免费下载链接】flutter_chat_box Flutter开发的和ChatGPT聊天的App,全平台支持 项目地址: https://gitcode.com/gh_mirrors/fl/flutter_chat_box flutter_chat_box是一款基于Flutter开发…

2026/8/13 18:12:48 阅读更多 →
matrix-nio未来路线图:即将推出的令人兴奋的功能

matrix-nio未来路线图:即将推出的令人兴奋的功能

matrix-nio未来路线图:即将推出的令人兴奋的功能 【免费下载链接】matrix-nio A Python Matrix client library, designed according to sans I/O (http://sans-io.readthedocs.io/) principles 项目地址: https://gitcode.com/gh_mirrors/ma/matrix-nio mat…

2026/8/13 18:12:48 阅读更多 →
终极指南:如何用Mousecape免费定制Mac鼠标指针,告别单调光标

终极指南:如何用Mousecape免费定制Mac鼠标指针,告别单调光标

终极指南:如何用Mousecape免费定制Mac鼠标指针,告别单调光标 【免费下载链接】Mousecape Cursor Manager for OSX 项目地址: https://gitcode.com/gh_mirrors/mo/Mousecape Mousecape是一款专为macOS设计的免费光标管理器,通过调用苹果…

2026/8/13 18:12:48 阅读更多 →
JVS-Rules 实践指南:三步实现风控与营销规则的自主配置(附可操作闭环)

JVS-Rules 实践指南:三步实现风控与营销规则的自主配置(附可操作闭环)

本文以技术实践视角,拆解 JVS-Rules 如何通过数据源接入、函数加工、规则表达三大能力支撑业务人员独立完成规则配置。提供分步操作逻辑、典型配置路径与关键注意事项,适用于需快速响应策略变更的金融、电商类系统运维与低代码实施人员。引言&#xff1a…

2026/8/13 18:12:48 阅读更多 →
springboot 社区志愿时长统计系统

springboot 社区志愿时长统计系统

一、关键词社区志愿时长统计系统、社区志愿时长统计、社区志愿时长统计信息管理、社区志愿时长统计后台管理二、作品包含源码数据库万字设计文档全套环境和工具资源本地部署教程三、项目技术前端技术: Html、Css、Js、Vue3.4、Element-Plus后端技术:Java…

2026/8/13 18:12:48 阅读更多 →
解决Kafka消费者延迟问题:Kafka Lag Exporter高级使用技巧

解决Kafka消费者延迟问题:Kafka Lag Exporter高级使用技巧

解决Kafka消费者延迟问题:Kafka Lag Exporter高级使用技巧 【免费下载链接】kafka-lag-exporter Monitor Kafka Consumer Group Latency with Kafka Lag Exporter 项目地址: https://gitcode.com/gh_mirrors/ka/kafka-lag-exporter Kafka Lag Exporter是一款…

2026/8/13 18:11:48 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/13 10:41:50 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/13 10:41:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →