gomponents
gomponents 是一个纯 Go 的 HTML 组件库,把 HTML 元素当作可组合的 Go 值,基于 Node 接口实现类型安全的服务端 HTML 构建与渲染,适合在 Go 应用中编写可复用的 HTML 组件和视图。
找到适合任务的 Agent Skill,阅读介绍并复制安装命令。
更新于 10-26 00:15
11,100 个结果
gomponents 是一个纯 Go 的 HTML 组件库,把 HTML 元素当作可组合的 Go 值,基于 Node 接口实现类型安全的服务端 HTML 构建与渲染,适合在 Go 应用中编写可复用的 HTML 组件和视图。
Frontend Blueprint 是一个面向全栈开发者的 AI 前端设计与咨询技能。它把自己定位为资深前端设计顾问,而不是代码生成器:在写任何代码之前,先通过结构化流程理解用户真正想要什么。核心原则包括:没有上下文绝不生成代码、必须先收集视觉参考、采用原子化交付、给出有主见的建议、以及对还原度的重视高于速度。工作流程分为七个阶段:需求简报、参考收集、设计方向确认、可选的 Stitch 原型、执行计划、原子化构建、以及最终审查与打磨。
面向 Next.js 15 交付物的部署前质量门禁清单,覆盖编译、Lint、测试、功能、性能、可访问性、SEO、安全、移动端、兼容性、错误处理、监控与部署等维度,供交付评估时逐项核对。
这是一个可复用的顶部光晕层,用于为没有配图的扁平页面(如设置、通知页)提供与图片背景页面一致的色调底色。它以倾斜的双色渐变从一种色调过渡到页面背景色,并限制在固定高度内。该层作为页面内容的第一个同级元素绘制,无需包裹容器,并随列表滚动在绘制阶段移出屏幕。
这是一个 Kotlin Compose 的 Modifier 扩展,用于在任意角度绘制线性渐变背景。由于 Brush.linearGradient 只接受两个端点而非角度,该方案在 drawBehind 绘制修饰符内根据盒子尺寸计算端点位置,使渐变两端恰好落在盒子边缘。核心是逐象限的三角函数公式:先求盒子对角线的角度 γ = atan2(h, w),再按角度所在区间判断射线从垂直边还是水平边离开,从而得到正确的渐变长度与端点偏移。资料还列出了若干陷阱,包括旋转对角线会超出边界、角度需先归一化、退化盒子、when 表达式必须保留 else 分支、屏幕坐标 y 向下导致角度顺时针、以及单色需提前拦截等。
这是一个用于 Compose 的自定义绘制技能,可在卡片、芯片或按钮周围生成旋转的扫掠渐变光环。它不使用描边,也不用蒙版:先用 clip 限定轮廓,再在整块控件上绘制渐变,最后用不透明的内嵌表面盖住中间,露出的边缘就是光环。该技能强调修饰符顺序(drawBehind 必须在 padding 之前)、内表面必须不透明、内外形状必须一致,并指出无限动画、LaunchedEffect(true)、RepeatMode.Reverse 与扫掠渐变接缝等常见陷阱。
这是一个 Jetpack Compose 折叠视差工具栏的实现方案,用五个同级组件放在同一个 Box 中构建折叠头部:四个共享同一个 ScrollState,第五个由布尔值驱动。头部通过 graphicsLayer 实现视差与淡出,只有 Body 可滚动并用 Spacer 预留头部空间。资料还详细列出了若干实现陷阱,包括无 key 的 remember 导致翻转点冻结、两个返回入口的交接、标题二次贝塞尔路径的共享中点、缩放标题的起始内边距补偿、自测量尺寸首帧为零、可读性依赖渐变遮罩与绘制顺序、alpha 未做钳制,以及应使用 graphicsLayer 而非 offset/padding。
这是一个用于 Kotlin Multiplatform / Compose 的技能,把可组合项(composable)离屏渲染为 ImageBitmap,从而让按钮能够将其保存或分享为图片。它提供 capturable() 修饰符与 CaptureController,在公共代码中记录 composable 自身的绘制过程并返回 ImageBitmap;同时提供 ImageBitmap.toPngByteArray() 生成 PNG 字节,以及 saveImageToDevice() / shareImage() 在 Android 上通过 MediaStore 与分享面板、在 Desktop 上写入下载目录并打开所在文件夹。资料还详细说明了捕获请求使用 Channel 而非热 Flow、固定像素尺寸的误区、图片需预先解码、只捕获卡片本身、PNG 与 JPEG 的区别、保存与分享的权限边界,以及 Desktop 无分享面板时的替代方案和验证方法。
该技能针对 Jetpack Compose 中 Crossfade 的容器尺寸问题:Crossfade 会把两个子项放进一个默认对齐(top-start)的 Box,容器尺寸取当前已组合子项中的最大者。因此当淡入淡出的两个子项高度不同时,较矮的子项会被顶到容器顶部,等较高的子项退出组合后容器收缩、父级重新居中,画面在淡入淡出结束后出现几像素的“下沉”或跳动,容易被误判为布局故障。技能给出的做法是:不要靠给 Crossfade 传 Alignment 来修,而是给它一个固定高度的父容器,并让每个分支填满该容器,使容器在所有状态下测量结果一致。文中还提醒:不要用 Crossfade 叠加两个测量方式不同的渲染器(如进度条与滑块);不要对用户正在触摸的控件做淡入淡出,因为淡出中的旧副本仍可命中测试;相同尺寸的子项是安全场景;Crossfade 以状态值为键,若分支由其他条件决定需把该条件作为状态传入;过渡期间两个分支都存活,副作用会重复执行;把两个分支框进同一框架还能让宽度与圆角对齐。验证方式包括用 javap 查看 CrossfadeKt 的测量策略与对齐、统计代码库中 Crossfade 的数量及其中做了框架约束的比例,并手动在过渡结束时刻观察是否发生位移。
这是一个面向 Kotlin / Jetpack Compose 的界面实现技能,围绕 Material3 的 ModalBottomSheet 建立统一的“自定义底部弹层”家族样式。它保留平台弹层在屏幕之外的行为(拖拽关闭、遮罩、返回键处理、键盘上方显示),但整体替换其视觉表现:容器与内容颜色设为透明、去掉拖拽手柄,由调用方自己提供 Card 表面、圆角、颜色与手柄。窗口内边距被清零后,需在内容末尾显式补回底部导航栏内边距,全高变体还需补顶部状态栏内边距。技能还给出统一的关闭辅助函数(先 hide() 动画收起,再 onDismiss() 移出组合,最后执行导航或打开下一个弹层),并列出常见陷阱与 grep 验证方式。
该技能介绍如何在 Compose Desktop 应用内新增一个始终置顶、无边框的播放控制迷你窗口,并让它与主窗口共享同一份状态对象。核心做法是把窗口是否显示记录为一个位于 composition 之外的布尔值,任何入口(托盘菜单、应用内按钮、窗口关闭按钮)都能直接修改它,无需持有窗口句柄或传递消息。资料还列出多个易错点:不要在迷你窗口里另建依赖图和播放器引擎;关闭主窗口应改为隐藏而非退出进程;透明无边框窗口需与主窗口保持一致的回退策略;无边框窗口需自行实现拖动,且应基于操作系统指针绝对坐标计算以避免漂移;拖动区域要避开缩放边角;最小尺寸需按显示缩放换算成设备像素;持久化几何位置需处理绝对坐标、未保存哨兵值和最小值钳制;布局按实际尺寸分支,悬停只作反馈;快捷键仅在窗口内消费已处理的事件。验证部分给出若干 grep 命令和手工测试步骤。
这是一个关于 Jetpack Compose 绘制修饰符(draw modifier)的技术技能条目,讲解如何用 drawWithContent 在宿主控件边界之外绘制粒子庆祝效果。核心要点是:绘制修饰符默认不被裁剪,因此可以画出控件范围;但修饰符链的顺序决定效果是否存在,clip 放在前面会裁掉后续绘制。内容涵盖修饰符顺序陷阱、祖先裁剪、按 size 而非 dp 缩放距离、在 remember 中构建 Path、随机性应在粒子创建时确定、从 draw scope 读取实时尺寸、不改变布局测量、每个爆发独立 Animatable、避免引入动画库,以及用 javap 和 grep 验证裁剪默认关闭等。
这是 Jetpack Compose 中实现可展开文本和内嵌点击链接的实践说明。核心是用 onTextLayout 回调返回的 hasVisualOverflow 判断文本是否溢出,据此决定是否显示“更多/收起”入口,而不是按字符数猜测;点击链接部分则用 buildAnnotatedString 配合 pushStringAnnotation 标记时间戳或 URL,再在点击时按字符偏移做命中测试并回调。文档同时给出代码示例、需要手动裁剪尾部字符的细节,以及标志位跨文本复用、同一组件上两套点击手势冲突等常见陷阱。
该技能针对 Jetpack Compose 中“浮动控件不参与布局测量”的问题,说明浮动在滚动列之上的控件是同级节点,不会为自身预留空间,因此滚动内容必须手动留出被覆盖的条带。技能给出 BoxWithConstraints + Column + 浮动按钮的代码示例,解释条带常量应为控件尺寸加偏移量、且通常不含系统内边距,并列出常见陷阱:容器上加 padding 会连带移动控件、条带常量重复计算 inset、多滚动分支各自预留、标题行需成对宽度 Spacer、居中标题的两种错误写法、内容从控件下方穿过、控件需自带 windowInsetsPadding、滚动后需自带背景、声明顺序与无障碍遍历顺序不同。最后提供 grep 验证命令与手动检查步骤。
该技能用于在 Jetpack Compose 应用中,让某个界面子树强制保持深色渲染,而应用其余部分仍跟随用户的浅色主题。适用于那些绘制在全幅深色艺术图之上、必须忽略浅色主题的界面。核心做法是仅为该子树重新提供主题:在应用主题处一次性解析出强制深色配色方案,通过 CompositionLocal 发布,并在导航目的地处包裹 ForceDarkContent。资料还说明了常见陷阱(仅改文字颜色标志不够、需在主题处解析而非逐屏解析、应在导航目的地而非屏幕内部包裹)、弹窗与对话框会继承该上下文、非后代(自建 composition 根或导航宿主兄弟节点)不会继承,以及验证方法。
介绍 Glance 小部件布局的词汇与限制:Glance 组件虽然看起来像 Compose,但最终会编译成 RemoteViews 树,因此部分修饰符(Modifier)并不存在。内容围绕三类常见缺失(没有 aspectRatio、defaultWeight 无参数且只作用于单一维度、多余高度如何处理)展开,并给出用加权占位符维持瓦片方形、在两行之间分配富余高度等具体写法。同时列出 cornerRadius 在 API 31 以下无效、加权占位符在只有一个条目时不可见、固定尺寸瓦片下方文字需单独指定宽度、所有文字和图标颜色都要显式指定 ColorProvider、读取实际尺寸需配合 SizeMode.Exact 等注意点,并提供 grep 检查命令,以及在启动器中按不同单元格尺寸和列表长度进行验证的方法。
本技能介绍在 Android 上使用 Glance 构建主屏幕小组件的方法:小组件不另建一套状态,而是通过依赖注入复用应用已有的状态对象,作为同一状态的第二个渲染器。内容涵盖声明式组件注入、跨进程显式更新循环、长生命周期协程作用域、点击目标与 Intent 标志、硬件位图禁用、多实例更新以及常见陷阱与验证步骤。
这是一条关于 Kotlin/Jetpack Compose 动画架构的实践条目:主张由外壳(shell)只对外发布驱动显隐的布尔状态(flag),而不是把已经补间(tween)过的透明度值或动画曲线一并上提共享;每个外观(look)根据该布尔值自行派生动画。条目指出,使用对称线性淡入淡出会产生较长的半透明混合阶段,在明亮背景上,带填充容器的控件会显得像“变浅的按钮”,容易被误报为颜色缺陷;解决方案是在单一 animateFloatAsState 中根据目标值选用非对称时长(如淡入 180ms、淡出 500ms),而不是拆成两个动画或修改共享曲线。条目还说明壳可以持有自动隐藏计时、点击切换、滚动取消等状态机逻辑,因为这部分行为需与渲染外观无关;并给出用 grep 核查消费者数量、以及并排观察过渡中段的验证方法。
该技能介绍 Jetpack Compose 惰性列表(LazyColumn/LazyRow)中分组间距的布局陷阱:Arrangement.spacedBy 只作用于相邻 item 之间,且会与各 item 自身的 padding 叠加,导致需要作为一个整体阅读的块被拆成多个 item 后出现无法在源码中直接找到的合成间距。技能给出正确做法——把需要整体呈现的块合并进同一个 item 内部,由内部 Column 的 arrangement 管理块内间距,并说明每次合并 item 会同时合并 key,需为合并后的块提供稳定 key。
实现 Compose 懒加载列表的拖拽重排方案,包含拖拽状态容器、逐项包装器与列表级手势检测,处理可见窗口内的目标索引计算、交换动画、自动滚动与放置提交时机。
lazy-scroll-helper-kit 是一组用于 Jetpack Compose Lazy 列表的 Kotlin 小工具,来自 maxrave-dev/kotlin-footguns。它包含四项工具:以派生状态获取滚动方向、等待一帧后将条目居中滚动、计算条目可见百分比,以及按绝对索引查询可见条目信息。资料同时说明每项工具在真实列表中的失效情形,例如追加数据被误判为滚动、layoutInfo 滞后一帧、空列表访问可见条目会抛异常、可见窗口连续性假设等,并给出用 grep 定位相关调用与手动验证的步骤。
该技能面向使用 Compose 与 backdrop 库构建折射式“液态玻璃”表面的开发场景,重点介绍玻璃效果中光源、表面与边缘高光三者的关系,并梳理三个最易耗时的失败点:方向性边缘高光在圆形控件上几乎不可见、backdrop 源与玻璃表面不能构成父子循环、默认色调在浅色主题下导致图标与背景同色而消失。内容按问题成因、修复手段、诊断实验与验证命令展开,适合排查玻璃控件显示异常的开发者参考。
这是一个面向 Kotlin/Android 开发者的代码审查与防错技能条目,主题是“导航标签注册漂移”。所谓漂移,指同一个顶层标签需要被注册到多个导航界面(如底部栏、侧边栏、样式化胶囊栏)时,各界面各自维护一份标签列表,容易出现漏注册、列表不一致、序号与位置混用、条件标签关闭后没有兜底等问题。该条目以密封类和 data object 声明的 ordinal 为例,说明为什么保存的选择值应使用稳定标识而非由源码顺序推导的位置;还给出四类 grep 校验命令,用于查找漏注册、序号与位置混用、状态入口不一致等情况,并建议在窄、宽两种窗口形态下实际验证。内容属于经验性陷阱说明,未提供安装命令、版本要求或独立工具。
这是一个 Jetpack Compose 界面实现说明:构建一张浏览卡片(browse tile)——封面图按小角度倾斜并从卡片一角溢出,再经父容器的圆角裁切形成斜切边缘,而不是贴上去的方形图。文档以 Kotlin/Compose 代码示例说明实现该效果的两个关键决策:父级负责裁切、子元素先移出边缘再旋转;并讲解修饰符(Modifier)顺序对裁切结果的影响、旋转后实际占位与测量尺寸的差异、留白空间的计算方式、RTL 布局中 offset 的镜像行为,以及用 grep 命令批量核查代码中旋转与裁切次序的方法。适合使用 Compose 开发卡片式 UI 的开发者参考。