cosine - 前端人の日常频道


Channel's geo and language: China, Chinese
Category: Technologies


呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat

Related channels  |  Similar channels

Channel's geo and language
China, Chinese
Statistics
Posts filter


Video is unavailable for watching
Show in Telegram
#折腾 #demo #动画 #视图转换
试了试手搓这个知名昼夜模式切换动画,感觉怪带劲的~~
inspired by https://codepen.io/aaroniker/pen/raaMMGx
虽然还有点问题w不过这个效果我喜欢,应该会留着
view transition 真好啊!


#优质博文 #前端 #动画 #node #新动态 #javascript
📉 JavaScript Weekly Issue #734

AI 摘要:本期 JavaScript Weekly 涵盖多个技术动态:GSAP 动画库全面免费化、V8 编译优化、Node.js 版本更新、React 指令解析等。同时介绍了 Deno、Prisma 等工具更新,以及 PWA 离线应用、PDF 处理等实用教程。

1. GSAP v3.13 免费发布
Webflow 收购后,GSAP(GreenSock)动画库及其付费插件(如 MorphSVG)完全免费,含商业授权(包括以前付费的插件,如 MorphSVG 和 SplitText
• 提供演示案例和详细文档,但需注意其非开源许可(禁止与 Webflow 直接竞争)

2. 工具与框架更新
• Node.js:v18 终止支持,v24 即将发布。
• Deno 2.3:支持 FFI 和 Node 原生插件。
• Koa 3.0:现代化 HTTP 中间件框架,对标 Express。
• PDFSlick 3.0:基于 PDF.js 的 PDF 查看工具,支持多文档和注释。 #react #pdf #组件库

3. 教程与文章
What Does "use client" Do?:Dan Abramov 解析 use client 和 use server 的跨环境协作。
通过 Apps Script 将 Google Analytics 数据导出到 Google 表格Google Apps Script是一个基于 JavaScript 的平台,用于动态自动化各种 Google 应用程序中的任务。以下是如何使用它将 Google Analytics 数据导入 Google 表格。
• 字符串转换:Dr. Axel 探讨 JavaScript 中值到字符串转换的复杂性
• V8 优化:Chrome 136 引入显式编译提示,加速启动性能。

4. 其他动态
• Redis 8 重新开源(AGPL 许可)。
• jQuery 20 周年活动预告(2026 年)。
Tiny Emus 展示了近 200 个在浏览器中运行的模拟器,主要用于 8 位平台、游戏,甚至一些视觉 CPU 演示。




#美食
发现照片忘发了
精致小店不打卡怎么回本 😡😡


#碎碎念
忍一时越想越气:原来烧烤改个名叫烧鸟就可以这么贵了吗 ´_>` 😡

就算是不怎么在意价格的我也越想越气,那几串小小的串怎么卖这么贵的。

拉黑烧鸟了 qwq 是我的错,对不起我之前好奇我有罪,怎么能这个分量连我这小鸟胃都吃不饱的?

下次聚餐还是火锅吧……(怎么有人聚餐天天踩坑啊喂!)

好吃是好吃的……但是嘛……一个小小串十几块钱也太坑了,有点好奇有无好吃的自助烧鸟之类的

ps:之前真没吃过烧鸟,第一次被刺客了(xs)
点了新疆烧烤压压惊!还得是大串得劲!


#碎碎念
这几天的出门已经耗光了所有社交能量,没电了!终于搞定一切瘫在床上啦!又幸福了~
但是我的手环还没活,算了明天再说😭

ps:广州东地铁站人流量好可怕


#碎碎念
雷军!金凡!!


#优质博文 #前端 #css
NB,radial-gradient 还能这么用。
Curved Box Cutouts in CSS

AI 摘要:本文介绍了一种 CSS 技巧,通过嵌套元素、轮廓(outline)和径向渐变(radial-gradient)的组合,模拟出带有弧形切角和间隙的视觉元素拼接效果,适用于卡片模块中的辅助内容或控件设计。

1. 基础布局
• 使用嵌套的 结构(.outer 和 .inner ),通过共享相同的 border-radius 值实现圆角一致性。
• 关键点:小盒子(.inner)需重叠在大盒子(.outer)上。

2. 小盒子设计
• 为 .inner 添加与页面背景同色的 outline,形成视觉间隙效果。
• 示例代码:outline: 8px solid white;。

3. 大盒子背景处理
• 使用两个 radial-gradient() 作为背景图像,定位在小盒子与大盒子重叠的角落。
• 计算逻辑:渐变尺寸 = 圆角半径(12px) + 轮廓宽度(8px)。
• 透明圆形部分匹配圆角半径,其余部分填充白色以模拟切角。

4. CSS 变量优化
• 将长度值(如圆角半径、轮廓宽度)转换为 CSS 变量(--r, --o 等),提升代码可维护性。
• 分离背景属性声明,增强可读性。

5. 四角定位扩展
• 通过调整 radial-gradient 的圆心位置(--cnr)和背景定位,支持小盒子在任意角落的布局。
• 示例:--cnr: right top; 配合动态计算的 background-position。

6. 应用场景与限制
• 适用场景:简单视觉分隔设计,无需额外 DOM 结构。
• 限制:无法实现阴影等需要真实切角的效果,仅影响背景层。
• 扩展用法:轮廓色可自定义(如 outline: var(--outline) solid navy;)。


author Preethi Sam


#优质博文 #前端 #权限控制 #全栈
好文。
Choosing the best access control model for your frontend

AI 摘要:本文探讨了前端应用中最佳访问控制模型的选择,重点分析了 RBAC(基于角色的访问控制)、ABAC(基于属性的访问控制)、ACL(访问控制列表)和 PBAC(基于策略的访问控制)的优缺点。作者指出,虽然不同模型各有适用场景,但 RBAC 因其简单性、可扩展性和与前端框架(如 React/Next.js)的良好兼容性,成为大多数前端应用的首选方案。文章还通过 Next.js 示例演示了 RBAC 的具体实现,并讨论了混合模型的潜在应用场景。

1. 访问控制的核心作用
• 前端访问控制的核心目标是优化用户体验(而非安全 enforcement),通过动态显示可交互的 UI 元素减少用户困惑。

2. 主流访问控制模型对比
• RBAC(基于角色的访问控制 role-based)
• 通过用户角色分配权限,适合大多数前端应用
• 优势:易于维护、性能良好、与前端框架集成度高
• 局限:缺乏细粒度控制(如无法处理动态条件)
• ABAC(基于属性的访问控制 attributes-based)
• 根据用户/环境属性动态决策
• 适用场景:需要实时权限变更的复杂系统
• 前端缺陷:性能开销大、状态管理复杂
• 简单解释一下,这就像说,“如果用户的部门是 X,文档是 Y 分类的,并且是在工作时间,那么允许访问。
• ACL(访问控制列表 access control list)
• 用于在单个资源级别定义权限。这意味着访问权限直接分配给特定用户或组
• 前端痛点:权限列表扫描导致性能下降,难以扩展
• PBAC(基于策略的访问控制 policy-based)
• 依赖中央策略引擎(如 OPA)动态评估规则
• 建议仅限后端使用,前端实现会导致界面延迟和闪烁
• 它在后端服务中大放异彩,尤其是在微服务架构中,您希望跨 API 实现集中、一致的策略实施。

3. RBAC 的 Next.js 实现示例
• 演示项目结构:角色配置(roles.js)、自定义钩子(useRBAC)、动态仪表盘(Dashboard.js)
• 关键功能:
• 基于角色的 UI 元素显隐控制
• 受保护路由(如 /admin)的权限验证
• 无权限用户的 403 重定向

4. 混合模型的应用
• RBAC + ABAC:角色基础规则 + 属性动态补充(如部门限定访问)
• RBAC + ACL:角色为主,ACL 处理特殊例外(需谨慎使用)
• PBAC 应严格限于后端 API 层

5. 结论与建议
• 前端访问控制的本质是用户体验优化
• RBAC 是大多数场景的最佳平衡选择
• 复杂场景可谨慎组合模型(如 RBAC+ABAC)
• 强调:前端控制需与后端安全验证配合


author Temitope Oyedele


#优质博文 #svg #css #前端 #设计
好棒,什么复古现代前端魔法~
Revisiting Image Maps | CSS-Tricks

AI 摘要:本文探讨了在现代化网页设计中重新审视图像映射(Image Maps)技术的可行性。作者通过为艾美奖作曲家 Mike Worth 设计复古风格网站的项目,对比了传统图像映射与 SVG 结合现代 CSS/HTML 技术的优劣,最终提出了一种更灵活、可访问且响应式的替代方案。

1. 项目背景与设计挑战
• 为作曲家 Mike Worth 设计具有 90 年代复古风格的网站,需兼顾现代技术标准(可访问性、响应式等)。
• 目标:避免简单模仿,而是通过现代代码实现复古的“表达性设计”(expressive design)。

2. 90 年代网页设计回顾
• 典型案例:华纳兄弟《空中大灌篮》(1996)网站,任天堂、Cheestrings 等品牌的主页设计。
• 特点:图形化导航、品牌与内容融合,但依赖表格切片或图像映射技术。

3. 图像映射技术分析
• 基础语法:通过 和 定义图像可点击区域,支持圆形、矩形、多边形坐标。
• 优点:轻量、无需 JavaScript、语义化(配合 ARIA)、跨浏览器兼容。
• 缺点:绝对坐标难以响应式适配,缺乏视觉反馈,维护成本高。

4. 实际应用尝试
• 为 Mike 的网站设计交互式地图,初期尝试图像映射:
• 使用工具生成坐标(如 PathToPoints 转换 SVG 路径)。
• 通过 JavaScript 动态缩放坐标以实现响应式。
• 局限性:无法实现不规则形状悬停效果,代码冗余。

5. 现代替代方案:SVG 内联锚点
• 在 SVG 中创建透明路径作为可点击区域。
• 内嵌 标签包裹路径,支持悬停动画和丰富内容(如图片、文字预览)。
• 优势:原生响应式(基于 viewBox)、视觉反馈灵活、易于维护。

6. 设计哲学总结
• 图像映射虽曾重要,但现代项目需权衡工具适用性。
• 核心目标:用当代技术(SVG/CSS)复现 90 年代设计的表达力,同时保障性能与可访问性。


author Andy Clarke(知名网页设计师,Stuff & Nonsense 工作室创始人,著有《Hardboiled Web Design》等书籍)


#面基
昨晚又面了 🥹 今天回广州!


#视频更新 #无限暖暖 #碎碎念
把某人很久没用的油管频道据为己有了(这次传了 YouTube,后边可能把之前的一些视频都传上去也)
频道 @nahida0721
YouTube 5090D 画质拉满带鱼屏下的无限暖暖打水漂
B 站又压我画质,没爱了
https://www.bilibili.com/video/BV1ufGBz6Ema




#tools #npm #开源 #工程化 #可视化

Announcing @Tan_Stack NPM Stats (Beta)

AI 摘要:Tanner Linsley 宣布推出 Tan_Stack NPM Stats (Beta),这是一个用于分析和可视化 NPM 软件包统计数据的工具。该工具提供了丰富的功能,包括可共享的深度链接、软件包分组、多种时间范围的统计数据查看、增长趋势分析、自定义显示选项以及开源支持,旨在帮助开发者更直观地了解和比较 NPM 软件包的表现。

1. 可共享的深度链接:用户可以生成并分享特定的统计数据视图链接,方便协作与交流。
2. 软件包分组:支持将相关软件包组合在一起,便于管理和比较。
3. 时间分箱选项:提供每日、每周、每月、每年的数据统计分箱,灵活查看不同时间段的表现。
4. 增长趋势分析:用户可以选择查看绝对增长或相对增长数据,了解软件包的增长趋势。
5. 比较基线设置:支持设置基线数据,用于与其他软件包或时间段进行对比。


示例链接

author Tanner Linsley


#优质博文 #前端 #持续学习
偶然看到的老文,但是很棒。
如果你觉得自己是房间里最聪明的人,那你就在错误的房间。


Yashints | How do I keep up with frontend world

AI 摘要:本文作者分享了如何在前端开发领域跟上快速变化的技术潮流,通过与业内领先者的交流和自身实践,总结出一系列学习方法和资源。作者强调了阅读、社交媒体、会议、实践项目和自我纪律的重要性,同时提醒读者避免过度压力和 burnout,保持学习的热情和持续性。

• 引言:前端技术快速变化的挑战
• 描述了作者在前端开发多年后感受到技术更新速度加快的压力。
• 提到经常在会议、同事交流或网络浏览中发现自己不了解的新技术(如 Angular、React、Vue 等),感到不安。
• 决定通过与行业领先者交流,寻找跟上技术发展的方法,并分享自己的经验。
• 学习方法 1:阅读
• 阅读是作者学习的核心,注重了解技术背景和故事,不必一开始就深入。
• 阅读时间:利用通勤时间(如公交车上)、睡前或清晨。
• 阅读资源:定制的 RSS 订阅(基于 Paul Irish 的资源)、Twitter、LinkedIn(每天 45 分钟到 1 小时,快速浏览并保存到 Instapaper)。
• 深入学习时依赖官方文档,80% 的问题都能解决。
• 技术书籍仅作为参考,不完整阅读,因技术更新速度快于书籍完成时间。
• 学习方法 2:订阅与社交媒体
• 每周通讯和订阅源是获取新资讯的重要途径,作者赞扬维护者的研究和分享。
• 在社交媒体上关注精心挑选的活跃人士(约 800 人),按类别关注以了解不同领域的动态。
• 强调“如果你觉得自己是房间里最聪明的人,那你就在错误的房间”,鼓励通过社交媒体发现自身知识差距并制定学习计划。
• 学习方法 3:会议与演讲
• 会议是结识聪明人、了解行业趋势并拓展知识广度(有时甚至深度)的绝佳场所。
• 除了参加会议,作者也通过演讲学习,认为演讲需要深入理解主题。
• 提供查找会议信息的网站资源,并分享个人演讲日程。
• 学习方法 4:视频与播客
• 视频和在线课程不是作者主要学习方式,但仍会偶尔使用,尤其是会议演讲录像。
• 推荐了一些 YouTube 频道和在线课程资源。
• 播客适合通勤时收听,用于了解最新新闻或技术。
• 学习方法 5:实践与副项目
• 强调“做中学”的重要性,作者通过编码学习新技术、库或 API。
• 副项目(pet projects)是个人和职业成长的好方式,能让人走出舒适区、学习新技能并锻炼创造力。
• 挑战在于平衡工作、家庭和其他事务,作者建议每天花一点时间在副项目上,避免厌倦或遗忘。
• 建议不要为副项目设截止日期或压力,以轻松的心态完成每周一到两个任务,享受过程。
• 随着新技术出现,建议切换副项目使用的语言或技术,保持多样性。
• 完成项目后启动新项目,使用想熟悉的新技术,同时关注其他领域(如安全、Azure、IoT 等)。
• 学习方法 6:分享与写作
• 将副项目用于内部讨论、meetups 或会议演讲,帮助发现薄弱环节和挑战,同时便于展示内容。
• 写作文章有助于将知识存入长期记忆,作者建议为自己写作,记录未来所需细节,间接帮助他人。
• 学习心态:自律与平衡
• 自律如肌肉,越训练越享受成果,强调养成日常习惯的重要性,否则其他方法无效。
• 提供了一些自律小贴士,提醒读者坚持计划,避免半途而废。
• 当感到挫折或无法跟上他人时,可能是 burnout 的信号,建议休息、度假或调整方向。
• 世界不会停止,追逐不应无止境,学会适时放松。
• 结语与互动
• 总结了作者用于跟上前沿技术的多种方法,邀请读者在评论中分享自己的想法,并计划更新文章。
• 强调这些方法不仅适用于前端开发者,对其他领域也有帮助。


author Yashints


#碎碎念 #AI
我是 xsai 小粉丝,写插件特轻量特好用喵~


Forward from: 祈りのメモ ~ plonii
Vercel AI SDK 平替 xsAI 发布了 v0.2 版本!我们本次也撰写了 Blog!

xsAI 0.2 已发布,发布代号为 "over the reality"


前瞻:
- 适用于 DeepSeek R1 这类推理模型的 thinking 工具
- 介绍可以在浏览器里直接跑模型推理的 xsai-transformers
- 介绍 unspeech 新集成的语音提供商

https://blog.moeru.ai/xsai-0.2/


#优质博文 #前端 #javascript #新特性
未广泛......吗(
6 hidden gems in the JavaScript API you should be using

AI 摘要:本文介绍了 6 个未被广泛使用但功能强大的原生 JavaScript API,包括 structuredClone、EyeDropper、AbortController、Intersection Observer、ResizeObserver 和 Clipboard API,详细解释了它们解决的问题、适用场景及实现方法,帮助开发者无需依赖外部库即可构建高效动态的 Web 应用。

1. structuredClone
• 功能:深度克隆复杂对象(支持日期、Map 等类型),替代 JSON.parse(JSON.stringify()) 的局限性。
• 示例:克隆包含嵌套对象、数组和特殊类型的原始数据,保持独立性且无需手动类型转换。

2. EyeDropper API
• 功能:原生实现颜色选择器,适用于图片编辑或绘图类应用。
• 限制:目前仅支持 Chrome、Edge 和 Opera。
• 示例:通过按钮触发颜色选择,动态更新页面背景色。

2. AbortController
• 功能:取消已发送的异步请求(如搜索输入防抖场景),避免陈旧响应。
• 示例:结合 fetch 和 useEffect,在组件卸载或查询变化时中止请求。

3. Intersection Observer
• 功能:监听元素进入视口的时机,实现懒加载图片或无限滚动。
• 示例:通过 data-src 延迟加载图片,仅在可见时替换为 src 属性。

4. ResizeObserver
• 功能:监听元素尺寸变化,适用于响应式图表或动态调整文本大小。
• 示例:根据父容器宽度自动缩放文本字体。

5. Clipboard API
• 功能:替代已废弃的 document.execCommand,支持文本和图像的复制/粘贴操作。
• 安全限制:需 HTTPS 环境及用户授权。
• 示例:复制文本到剪贴板,以及通过 Blob 处理图像粘贴。


author Rahul Padalkar


#优质博文 #前端 #react #course
很棒的初学者友好的 React Fiber 架构说明。
React Internals: Which useEffect runs first?

AI 摘要:本文深入探讨了 React 中 useEffect 的执行顺序问题,通过示例代码和 React 内部机制(如 Fiber 架构和遍历算法)解释了为何子组件的 useEffect 会先于父组件执行。文章分为渲染阶段和提交阶段,详细解析了 React 的生命周期和遍历逻辑,帮助开发者理解并避免潜在的执行顺序问题。

1. 问题引入
• 通过一个父子组件的 useEffect 执行顺序测试题引入主题,展示大多数开发者对执行顺序的误解。
• 示例代码显示子组件的 useEffect 先于父组件执行,但官方文档未明确解释这一行为。
2. React 生命周期概述
• 触发阶段(Trigger):初始渲染或状态更新(如 setState)。
• 渲染阶段(Render):调用组件函数,生成虚拟 DOM,标记需更新的节点。
• 提交阶段(Commit):更新真实 DOM 并执行副作用(如 useEffect)。
3. React Fiber 架构
• Fiber 树是 React 内部用于管理组件层级和更新的数据结构,包含节点类型(如 HostComponent)、子节点、兄弟节点和父节点指针。
• 图示展示了 Fiber 树与 DOM 树的差异,强调其优化渲染效率的特性。
4. Fiber 树的遍历算法
• 深度优先遍历:每个节点被访问两次(向下和向上),优先处理子节点,再处理兄弟节点。
• 动画演示了遍历过程,解释了为何子组件的 useEffect 会先执行。
5. 渲染阶段(Render Phase)
• beginWork():调用组件函数,执行 console.log,标记需更新的节点。
• completeWork():生成新的 DOM 节点,但未提交到真实 DOM。
6. 提交阶段(Commit Phase)
• 副作用提交:通过 recursivelyTraversePassiveMountEffect 函数深度优先遍历,先提交子组件的 useEffect,再提交父组件的。
• 动画和代码示例进一步验证了这一行为,解释了同级组件的执行顺序逻辑。


author Teng Wei Herr


#碎碎念 #美食 #面基
回深圳的吃 & 面基!真正的社恐面基:大家面对面的情况下还是手机聊天聊的最来劲(xs)

20 last posts shown.