Communitygithub.com

cool-style

如何让网站变得酷——从数百个独立网站(个人网站、网络艺术、字体铸造厂、档案馆、工作室、小型工具、出版物)中提炼而成。在设计、构建、改版或评审个人网站、作品集、工作室或活动网站、档案馆、在线出版物、网络艺术作品或小型网络工具时使用。

cool-style 是什么?

cool-style 是一个 AI 代理技能,旨在帮助开发者、设计师和创作者摆脱模板化,打造具有独特个性、手工感、诗意和“小型网络”美学的网站。该技能由对数百个独立网站的深入研究提炼而来,提供了 12 条基本原则、14 种网站原型、7 个可立即使用的单文件启动站点、一个包含代码实现的动作库、一个可搜索的示例目录,以及一个可用于审计的脚本和 GitHub Action。其核心理念是让网站的形式忠实地表达其主题内容,而非套用通用模板。技能支持 Claude Code、Cursor 等主流 AI 编码代理,通过结构化的工作流程引导用户从构思、选型、内容准备到样式设计,最终交付一个既酷又具包容性的网站。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/magholmes/cool-style/tree/main/skills/cool-style

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

cool-style 是做什么的?

从对数百个独立网站(个人网站、网络艺术、字体铸造厂、档案馆、工作室、小型工具、期刊)的仔细观察中提炼而成——这些网站由那些收藏网络最佳角落的人们所保存(references/method.md)。这里没有任何趋势报告。它是对那些网站实际所做之事的统计。

一个模板回答的是“一个网站看起来像什么?”而这里的每个网站回答的是“这个网站是关于什么的?”——然后让答案决定布局、字体、颜色和那唯一一个动起来的东西。

这个经典列表从粗糙到严谨——一个带有平铺 GIF 背景的 Neocities 神龛和一个精确到像素的字体铸造厂都位列其中。两者都很酷。缺失的正是中间地带:那个可以关于任何事情的网站。

开始之前

  1. 先找到想法(下一节)。在能用一句话说出这个想法之前,不要考虑布局、调色板或字体。
  2. 从下面的表格中选择一个原型,对于全新的构建,从它的启动器开始:node ${CLAUDE_SKILL_DIR}/scripts/new.mjs <archetype> <dir>。
  3. 看看真实的案例。 node ${CLAUDE_SKILL_DIR}/scripts/examples.mjs <tag or word> 会打印出经过研究的、使用了某个招数的网站,最佳结果优先(--tags 列出词汇表;--random 5 获取随机灵感)。
  4. 如果其他内部风格(例如 magnus-style)已经生效,那么在令牌(字体、颜色、时序)方面以该风格为准。使用本技能来获取想法、结构和招数。

找到想法

问(问自己,或问他人——一次一个问题):

  1. 它是什么,用一句简单的话说? 不是它的用途。“一根灯柱上的麦克风听到的每一首歌的日志。”“来自一个太阳能杂志的笔记。”
  2. 它像什么? 它已经很像的物体、场所或系统:一本日历、一个有营业时间的商店、一个电子表格、一个花园、一个收音机、一本书的衬页、一个戒指、一张书桌。这将成为容器(法则 1)。
  3. 关于它,有什么是模板会隐藏的真相? 它的重量、它的年龄、它的营业时间、它的数据、它制作时的天气、它里面东西的数量、谁制作了它。
  4. 那个唯一会移动或变化的东西是什么? 选择一个。时间、一次读数、访问者的指针、偶然性、其他访问者。
  5. 什么会让人把这个链接发给朋友? 那就是标志性的一招。其他所有东西都变得更安静,以便它能被看到。

将答案写在项目的顶部(在 index.html 中添加注释也可以)。如果某个答案是“无”,那么这个网站还没准备好进行设计——它需要内容。

十二条法则

  1. 让形式演绎主题。 最强的网站使用其主题本身的形态作为容器。一篇关于波浪的文章无限滚动,每个段落起伏然后回归(#214)。一份机器学习数据集指南以电子表格形式呈现(#481)。一部界面史坐落在一个重建的 1984 年 Mac 窗口里(#501)。一份监控音乐日志是一块双色 LCD 屏(#76)。一个每日漫画档案是一个年历(#21)。测试:这个布局能否不加改变地容纳一个不同的主题?如果可以,那它就是一个模板。
  2. 一个想法,贯彻每一层。 隐喻渗透到导航、标题、图片,甚至页面体积。Our Networks(#232)将其站点地图打印为 tree 命令,用 ASCII 绘制其笔记本电脑,体积仅为 39 KB。通常整个想法就是一个廉价但贯彻到底的机制:36 个隐藏着一首诗的 CSS 瓷砖(#228),由一天的风力数据驱动的字间距(#669)。
  3. 一个网站是一个地方,而不是一本宣传册。 房间、书桌、城镇、花园、书架、有营业时间的咖啡馆(#828)、收音机、报刊亭。导航变成了家具:一个路标(#197)、一个指环(#203)、一个书架(#652)、一个需要剥开的洋葱(#789)。甚至域名也是一个地名——大约六分之一的网站使用了富有表现力的 TLD(.world .garden .cafe .town .computer .zone)。
  4. 只用一种墨水。 一种颜色放在一个背景上,作品本身提供所有其他颜色。四分之一的网站使用三种或更少的十六进制颜色;在灰色之后,整个经典列表中使用最多的颜色是纯 #ffff00、#ff0000 和 #0000ff。从主题中提取强调色——比如正在被归档的书封的红色(#3)。→ colour.md
  5. 有理由地使用字体——或者有意地使用浏览器默认字体。 69% 的网站自行托管字体(领先的是 Neue Haas、ABC Diatype、Monument Grotesk、Space Mono);23% 仅使用系统字体,9% 未声明任何字体——使用 Times 和默认蓝色成了一种姿态。等宽字体出现在 55% 的网站中。模板字体几乎不见踪影(Inter 或 Geist 约占 4%)。案例中最常声明的字体是 Arial、Times 和 Helvetica。字号对比是关键:一半网站使用小至 11px 或更小的字号,四分之一使用超过 100px 的大字号,三分之一使用四种或更少的字号。→ type.md
  6. 索引即是首页。 列表、表格、日历和计数胜过英雄区域和卡片。使用细线、点状线代替方框;每个项目占据相同的槽位;将真实元数据作为列;在类别旁边显示计数;时间戳;文件大小。一个建筑事务所的网站看起来像电子表格(#535),排放数据每行带有一条天空色带(#522),乐谱被表现为画框文字(#288)。
  7. 用一句话说清楚。 将界面写成散文:描述就是导航(#316, #282, #530),用 Logo 代替名字的个人简介(#856),用图画代替名词的谜语(#547),整个页面是一句话,注册是它的最后一个子句(#783)。语气是具体的、人性的、常使用小写、有时风趣、总是诚实——一条被划掉的打烊时间(#828),一个警告你页面加载慢的标题(#504)。→ voice.md
  8. 让一样东西活起来。 大多数被研究的网站(86%)都做了点什么——但通常只做一件事:小时数改变了背景色,天气设置了一个渐变(#832),网络摄像头的帧被像乐器一样评分(#12),字母随风飘动(#669),访问者以匿名动物的形式出现(#95),网站在夜间关闭。一个时钟需要一个理由(谁的时间?直到什么时候?)。→ recipes.md
  9. 默认值和借用物体是原材料。 原生表单控件作为诗歌的段落(#123),框架集作为布局(#616),2000 年代的 ISP 门户网站作为专辑页面(#631),2005 年的媒体播放器作为乐队页面(#116),Clippy 作为 Cookie 横幅(#179)。引用一种体裁可以免费赋予网站一种声音。只有当想法足够锐利时,粗糙才读作意图。
  10. 奖励好奇者。 为鼠标指针、有耐心的和查看源代码的人群准备一些东西:悬停时显示的内容、触摸才显现的文字(#360)、一个球池滤镜(#479)、一个可拖动的放大镜(#254)、HTML 注释中的笔记(#283)、每次访问显示不同的页面。绝不在那里隐藏必要内容。
  11. 小巧、静态、链接丰富——为长久而建。 大约三分之一的收藏网站已经死亡、重新设计或被围起来。纯粹的独立页面(通常在 GitHub Pages 上)存活了下来;JavaScript Shell、已退役的主机和过期的域名最先消亡。首方内容的中位数大小约为 250 KB,四分之一低于 50 KB。链接出去:四分之一的网站首页上有十个或更多出站链接——朋友、网站环、目录、来源。
  12. 酷,且善良。 经典列表的盲点:只有 17% 尊重减少动效偏好,中位数 Alt 文本覆盖率为 17%,56% 移除了焦点轮廓,18% 阻止了缩放,一半网站将文本设置为 11px 或更小。请始终在设置每个变化时配上其防护栏(never.md、recipes.md)。排斥他人的酷只是喧嚣。

选择一个原型

容器是第一个决定。完整描述、定义性招数、示例和陷阱:references/archetypes.md。

原型网站是……适用于启动器看看
notebook一个公开记录的笔记本散文、日记、研究日志、杂志notebook#34 #124 #214 #362
index一个目录、一个分类账、一个数据库作品集、档案、收藏index#3 #522 #535 #288
sentence一个可以点击的句子工作室、个人简介、宣言、小型组织sentence#316 #282 #530 #783 #856
poster一个屏幕、一个词、一种墨水工作室、厂牌、活动、发布poster#7 #776 #201 #599
room一个里面有东西的地方个人网站、商店、收藏room#9 #277 #92 #793
almanac一本日历、一个时钟、一个季节日记、日程安排、有日期的工作almanac#21 #128 #243 #718
atlas一张地图、一个花园、一个网络链接页面、目录、研究atlas#81 #139 #578 #284
instrument一个你可以演奏的东西字体样本、玩具、工具、生成器poster + recipes#254 #615 #622 #353
broadcast世界的实时信息流网络摄像头、收音机、数据、传感器almanac + recipes#12 #76 #51 #832
costume一个借用自其他时代的界面音乐、档案、恶搞、产品发布—#501 #116 #631 #61
exhibition一个期刊、一个展览、一个可翻转的对象期刊、毕业展、目录index#263 #838 #677 #865
specimen字体本身就是界面铸造厂、刻字、字体项目poster#776 #195 #254 #352
commons由其访客共同创造留言簿、选集、社区notebook#654 #423 #92 #249
shrine一封献给旧网络的情书粉丝网站、拼贴画、个人页面room#586 #265 #441 #751

原型可以组合(一个同时是 commons 的 almanac),但由一个主导。

创造招数,而非装饰

一个招数是一个你可以命名的决定(“导航就是那个句子”、“背景色跟随小时变化”)。装饰是你无法命名的任何东西。references/moves.md 按维度列出了 70 多个招数——想法、结构、字体、颜色、图像、交互、时间、声音、细节——每个招数都附有执行它的网站。

  • 一个标志性招数,贯彻到底(法则 2)。两到三个辅助招数,更安静一些。其他一切保持简洁。 被研究的网站很少叠加更多的招数。
  • 优先选择来自内容本身的招数(你所在位置的天气、事物的数量、主题的形状),而不是来自某个库的招数。
  • 一个在任何网站上效果都完全相同的招数就是装饰。

工作流程

  1. 想法。 回答那五个问题。在 index.html 顶部写下那一句话。
  2. 容器。 选择原型;如果是从头开始,使用 scripts/new.mjs。先用纯 HTML 构建结构——启动器展示了标记的水平(真实的列表、表格、<time>、<details>)。
  3. 先有内容,后有样式。 放入真实的文字、真实的图片(现在就要写好 Alt 文本)、真实的计数和日期。酷网站 80% 是内容。
  4. 字体和墨水。 选择一个有理由的字体(或者有意使用系统默认),选择一种墨水放在一个背景上。四种或更少的字号,如果原型需要,其中一种可以非常大。type.md、colour.md。
  5. 标志性招数。 从 recipes.md 正确地构建它——包括键盘路径、触摸路径和减少动效的变体。
  6. 细节。 Favicon、标题、选中颜色、版权页、最后更新日期、出站链接、一个保持角色设定的 404 页面。moves.md § 细节。
  7. 审计。 node ${CLAUDE_SKILL_DIR}/scripts/audit.mjs <dir>——修复每一个错误;将警告视为问题。在 CI 中:使用 cool-check GitHub Action(README)。
  8. 查看它。 在桌面端、390px 宽度的手机、仅键盘模式、开启减少动效、慢速网络下查看。然后问那个重要的问题:有人会把这个链接发给朋友吗?他们会说它是什么?

检查清单

  • 想法能用一句话说清楚,并且布局不能不加改变地容纳一个不同的主题。
  • 一个标志性招数,贯彻到底;辅助招数更安静;没有无法命名的装饰。
  • 一种墨水放在一个背景上(或者是内容提供的调色板);颜色有含义。
  • 字体:有理由地选择字体,或有意使用系统默认;≤ 4 种字号;小号文字仍保持完全清晰。
  • 文字是真实的、具体的、并且是人的语气;没有宣传册式的动词,没有占位符标题。
  • 有些东西是真实且鲜活的(时间、数据、计数、地点)——或者静止是刻意为之。
  • 链接出去。拥有自己的 Favicon。有一个听起来像真人的版权页或关于页面。
  • 键盘:所有招数可到达;焦点可见。触控:没有任何操作依赖悬停。减少动效:存在一个静止变体。
  • 每张图片都有 Alt 文本(如果是装饰则用 alt="")。缩放功能正常。lang 已设置。
  • 轻量:除非想法需要更多,否则首方 HTML+CSS+JS 应低于 ~250 KB;在不使用 JavaScript 的情况下也能工作(或传达某些信息)。
  • audit.mjs 通过,无错误。

参考资料

文件何时阅读
references/canon.md当你想要证据时:这些网站的共同点,以数字呈现
references/archetypes.md选择或开发容器时
references/moves.md选择标志性和辅助招数时
references/recipes.md构建一个招数时——30 个可直接复制使用的代码片段及其防护栏
references/type.md选择字体、字号和字体的职责时
references/colour.md选择墨水、背景,以及颜色何时动态变化
references/voice.md编写标题、导航、个人简介、关于页面、版权页、错误信息时
references/never.md评审时:模板特征,以及经典列表本身的不良习惯
references/catalogue.md按原型浏览最强的网站时
references/method.md了解这些结论的来源以及可信程度
data/sites.json每个网站的笔记(使用 scripts/examples.mjs 查询)

相关技能