contrib-aquarium 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,41 +1,61 @@
1
1
  # contrib-aquarium
2
2
 
3
3
  <p align="center">
4
- <img src="docs/aquarium.svg" width="860" alt="Living SVG aquarium generated from webywz's GitHub contributions" />
4
+ <img src="docs/aquarium.svg" width="860" alt="Living SVG aquarium from webywz GitHub contributions" />
5
5
  </p>
6
6
 
7
7
  <p align="center">
8
8
  <a href="https://github.com/webywz/contrib-aquarium/actions/workflows/ci.yml"><img src="https://github.com/webywz/contrib-aquarium/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
9
9
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-c4a35a?labelColor=1b2a2e" alt="MIT" /></a>
10
+ <a href="https://www.npmjs.com/package/contrib-aquarium"><img src="https://img.shields.io/npm/v/contrib-aquarium?color=2a7a5c&labelColor=1b2a2e" alt="npm version" /></a>
10
11
  <a href="https://www.npmjs.com/package/contrib-aquarium"><img src="https://img.shields.io/badge/npx-contrib--aquarium-2a7a5c?labelColor=1b2a2e" alt="npx contrib-aquarium" /></a>
11
12
  </p>
12
13
 
13
14
  <p align="center">
14
15
  <strong>A living SVG aquarium driven by a GitHub contribution graph.</strong><br/>
15
- Drop one image URL into a profile README. Activity becomes fish, kelp, bubbles, and water.
16
+ Drop one image into a profile README. Activity becomes fish, kelp, bubbles, and water.
16
17
  </p>
17
18
 
18
19
  <p align="center">
19
- 由 GitHub 贡献日历驱动的活体 SVG 鱼缸。把一张图放进 README,提交就变成鱼、海藻、气泡和水纹。
20
+ <strong>由 GitHub 贡献日历驱动的活体 SVG 鱼缸。</strong><br/>
21
+ 把一张图放进 README,提交就变成鱼、海藻、气泡和水纹。
20
22
  </p>
21
23
 
22
- The tank is pure SVG (CSS + SMIL). No JavaScript in the embed, so GitHub READMEs can host it as a regular image. Dark water, brass rim — readable on both GitHub light and dark.
24
+ Self-contained SVG (CSS + SMIL) — no JavaScript in the embed, so GitHub can host it as a normal image. Dark water, brass rim; readable on light and dark themes.
23
25
 
24
- 鱼缸是自包含 SVG(CSS + SMIL),嵌入时不需要 JS,可当普通图片用。暗水色 + 铜框,在 GitHub 浅色 / 深色主题下都站得住。
26
+ 自包含 SVG(CSS + SMIL),嵌入不需要 JS,可当普通图片用。暗水色 + 铜框,浅色 / 深色主题都站得住。
25
27
 
26
- > v0.1.0 is the first cut. `npx contrib-aquarium` is the published entry; until the package is on npm, clone this repo and run `npm run generate`.
27
- >
28
- > v0.1.0 是第一版。发布到 npm 之前请 clone 本仓库,用 `npm run generate`。
28
+ `npx contrib-aquarium` · package `contrib-aquarium` · v0.1.1 · Node.js 18.18+
29
29
 
30
30
  ---
31
31
 
32
- ## Quick start · 快速开始
32
+ ## Features · 特性
33
+
34
+ | | EN | 中文 |
35
+ | --- | --- | --- |
36
+ | Mapping | Year total → fish count; streaks → kelp; last 14 days → bubbles | 全年总数 → 鱼数;连续打卡 → 海藻;近两周 → 气泡 |
37
+ | Sources | GraphQL calendar, public events, or deterministic mock | GraphQL 日历 / 公开 Events / 确定性 mock |
38
+ | Themes | `deep` · `reef` · `midnight` (palette only) | 三种配色,布局与映射不变 |
39
+ | Embed | Commit SVG, or refresh daily via composite Action | 提交 SVG,或用 Action 每日重画 |
40
+ | API | CLI + TypeScript library | CLI + 库 |
41
+
42
+ ---
43
+
44
+ ## Install · 安装
33
45
 
34
46
  ```bash
35
47
  npx contrib-aquarium generate --user YOUR_LOGIN --out aquarium.svg
48
+
49
+ # or globally
50
+ npm i -g contrib-aquarium
51
+ contrib-aquarium generate --user YOUR_LOGIN --out aquarium.svg
36
52
  ```
37
53
 
38
- From this repo (until the package is published):
54
+ Token optional. Without one, public events or a username-hash mock still render — demos never go blank.
55
+
56
+ 没有 token 也能跑:公开 Events 或按用户名哈希的演示日历会顶上,预览不会空。
57
+
58
+ From source:
39
59
 
40
60
  ```bash
41
61
  git clone https://github.com/webywz/contrib-aquarium.git
@@ -44,97 +64,95 @@ npm install
44
64
  npm run generate -- --user YOUR_LOGIN --out aquarium.svg
45
65
  ```
46
66
 
47
- Then in a README:
67
+ ---
68
+
69
+ ## Quick start · 快速开始
70
+
71
+ ```bash
72
+ # real calendar (needs token)
73
+ export GITHUB_TOKEN=ghp_...
74
+ npx contrib-aquarium generate --user webywz --out aquarium.svg
75
+
76
+ # recent public events only
77
+ npx contrib-aquarium generate --user webywz --source events --out aquarium.svg
78
+
79
+ # offline demo (byte-stable for a given UTC day)
80
+ npx contrib-aquarium generate --user webywz --source mock --out aquarium.svg
81
+
82
+ # theme
83
+ npx contrib-aquarium generate --user webywz --theme reef --out aquarium.svg
84
+ ```
85
+
86
+ In a README:
48
87
 
49
88
  ```markdown
50
- ![contrib-aquarium](aquarium.svg)
89
+ <p align="center">
90
+ <img src="aquarium.svg" width="860" alt="My contribution aquarium" />
91
+ </p>
51
92
  ```
52
93
 
53
- A GitHub token is optional. Without one, generation still succeeds via public events or a deterministic mock — demos never go blank.
94
+ Or a raw URL from another repo:
54
95
 
55
- 没有 token 也能跑:公开 Events 或按用户名哈希生成的演示日历会顶上,预览不会空。
96
+ ```markdown
97
+ ![aquarium](https://raw.githubusercontent.com/USER/REPO/main/aquarium.svg)
98
+ ```
56
99
 
57
100
  ---
58
101
 
59
102
  ## Data sources · 数据来源
60
103
 
61
- `--source auto` (default) tries the following in order:
104
+ `--source auto` (default) tries in order:
62
105
 
63
- | Priority | Source | Needs token | What you get |
106
+ | Priority | Source | Token | Result |
64
107
  | --- | --- | --- | --- |
65
- | 1 | **GraphQL** `contributionsCollection` | yes (`--token`, `GITHUB_TOKEN`, or `GH_TOKEN`) | Full last-year calendar — this is the real heatmap |
66
- | 2 | **Public events** `GET /users/{login}/events/public` | no | Recent activity only (GitHub keeps ~90 days of events) |
67
- | 3 | **Mock** from the username hash | no | A stable, contribution-like year so CI, demos, and offline use always render |
68
-
69
- `--source graphql|events|mock` pins a single path.
70
-
71
- `--source auto` 默认按上表回退。GraphQL 需要 token,拿到的是完整贡献日历;公开 Events 不需要 token,但只有最近活动;mock 用用户名哈希生成确定的假日历,离线 / CI / 演示保证出图。
72
-
73
- ```bash
74
- # real calendar
75
- export GITHUB_TOKEN=ghp_...
76
- npx contrib-aquarium generate --user webywz --out docs/aquarium.svg
108
+ | 1 | GraphQL `contributionsCollection` | yes (`--token`, `GITHUB_TOKEN`, or `GH_TOKEN`) | Full last-year calendar |
109
+ | 2 | Public events `GET /users/{login}/events/public` | no | Recent activity (~90 days retained) |
110
+ | 3 | Mock from username hash | no | Stable fake year for CI / demos / offline |
77
111
 
78
- # recent public events only
79
- npx contrib-aquarium generate --user webywz --source events --out aquarium.svg
112
+ Pin a path with `--source graphql|events|mock`.
80
113
 
81
- # offline demo (byte-stable for a given UTC day)
82
- npx contrib-aquarium generate --user webywz --source mock --out aquarium.svg
83
- ```
114
+ `--source auto` 按上表回退。GraphQL 要 token,拿完整贡献日历;公开 Events 不要 token,只有最近活动;mock 用用户名哈希生成确定假日历,保证离线 / CI / 演示出图。
84
115
 
85
- GraphQL is a fine-grained or classic PAT with permission to read public user data. In GitHub Actions, `secrets.GITHUB_TOKEN` is enough for public calendars.
116
+ Fine-grained or classic PAT that can read public user data is enough. In Actions, `secrets.GITHUB_TOKEN` covers public calendars.
86
117
 
87
118
  ---
88
119
 
89
120
  ## How activity becomes an aquarium · 贡献如何变成鱼缸
90
121
 
91
- | Signal | Becomes |
122
+ | Signal | Becomes · 变成 |
92
123
  | --- | --- |
93
- | Yearly contribution total | School size (3–18 fish). `round(3 + sqrt(total) × 0.48)` |
94
- | Busiest weeks | Larger koi / a centerpiece angelfish |
95
- | Current streak | Kelp height and count |
96
- | Last 14 days | Bubble density |
97
- | Each week's total | Pebble / reef bed along the sand |
98
- | Activity density | How much the water and plants move |
124
+ | Yearly contribution total | School size 3–18 fish · 鱼数量 `round(3 + sqrt(total) × 0.48)` |
125
+ | Busiest weeks | Larger koi / centerpiece angelfish · 更大锦鲤 / 主鱼 |
126
+ | Current streak | Kelp height and count · 海藻高度与簇数 |
127
+ | Last 14 days | Bubble density · 气泡密度 |
128
+ | Each week's total | Pebble / reef bed · 沙地礁石起伏 |
129
+ | Activity density | Water and plant motion · 水纹与海藻摆动 |
99
130
 
100
- Empty years still get a few wanderers. The same username + calendar snapshot always draws the same tank.
131
+ Empty years still get a few wanderers. Same username + calendar snapshot → same tank.
101
132
 
102
- | 信号 | 变成 |
103
- | --- | --- |
104
- | 全年贡献总数 | 鱼的数量(3–18)。`round(3 + sqrt(total) × 0.48)` |
105
- | 最忙的几周 | 更大的锦鲤 / 一条主鱼(神仙鱼) |
106
- | 当前连续提交 | 海藻高度与簇数 |
107
- | 近 14 天 | 气泡密度 |
108
- | 每周合计 | 沙地上的礁石起伏 |
109
- | 活跃密度 | 水纹与海藻摆动幅度 |
133
+ 空年份仍有几条游鱼。同一用户名 + 同一日历快照,画出同一座缸。
110
134
 
111
135
  ---
112
136
 
113
- ## Embed in a README · 嵌入 README
114
-
115
- ### 1. Commit a raw SVG
137
+ ## Themes · 主题
116
138
 
117
- Generate once, commit `aquarium.svg`, reference it:
139
+ `--theme` changes palette only — layout and activity mapping stay the same.
118
140
 
119
- ```markdown
120
- <p align="center">
121
- <img src="aquarium.svg" width="860" alt="My contribution aquarium" />
122
- </p>
123
- ```
124
-
125
- Same-repo relative paths work. For another repo use the raw URL:
141
+ | Name | Feel · 观感 |
142
+ | --- | --- |
143
+ | `deep` (default) | Classic dark teal · 默认深青 |
144
+ | `reef` | Warmer tropical water · 暖色珊瑚 |
145
+ | `midnight` | Violet night, neon accents · 午夜紫 |
126
146
 
127
- ```markdown
128
- ![aquarium](https://raw.githubusercontent.com/USER/REPO/main/aquarium.svg)
147
+ ```bash
148
+ npx contrib-aquarium generate --user YOUR_LOGIN --theme midnight --out aquarium.svg
129
149
  ```
130
150
 
131
- ### 2. Regenerate daily with GitHub Actions
151
+ ---
132
152
 
133
- Copy [`examples/github-action.yml`](examples/github-action.yml) into your **profile repository** (the `USER/USER` repo) as `.github/workflows/aquarium.yml`. It:
153
+ ## Embed daily · 每日嵌入
134
154
 
135
- 1. Runs on a daily cron and `workflow_dispatch`
136
- 2. Uses this repo as a composite action
137
- 3. Commits `aquarium.svg` when the tank actually changed
155
+ Copy [`examples/github-action.yml`](examples/github-action.yml) into your **profile** repo (`USER/USER`) as `.github/workflows/aquarium.yml`. It runs on a daily cron + `workflow_dispatch`, uses this repo as a composite action, and commits `aquarium.svg` when the tank changed.
138
156
 
139
157
  ```yaml
140
158
  - uses: webywz/contrib-aquarium@main
@@ -143,13 +161,11 @@ Copy [`examples/github-action.yml`](examples/github-action.yml) into your **prof
143
161
  out: aquarium.svg
144
162
  ```
145
163
 
146
- This project's own demo is refreshed the same way: [`.github/workflows/daily-aquarium.yml`](.github/workflows/daily-aquarium.yml) generates [`docs/aquarium.svg`](docs/aquarium.svg) for `webywz` every day.
147
-
148
- 把 [`examples/github-action.yml`](examples/github-action.yml) 拷到个人主页仓库,每天会重画并提交 `aquarium.svg`。本仓库的 Action 则给 `webywz` 更新 [`docs/aquarium.svg`](docs/aquarium.svg)。
164
+ This project's demo refreshes the same way: [`.github/workflows/daily-aquarium.yml`](.github/workflows/daily-aquarium.yml) updates [`docs/aquarium.svg`](docs/aquarium.svg) for `webywz`.
149
165
 
150
- GitHub's image proxy (Camo) may cache the SVG for a short while after a push. The file in the repo is current; the README thumbnail can lag a few hours.
166
+ 把示例 workflow 拷到个人主页仓库即可每天重画。GitHub Camo may cache the README thumbnail briefly after a push; the file in the repo is current.
151
167
 
152
- GitHub 的 Camo 代理可能短暂缓存图片;仓库里的文件是新的,README 缩略图有时会晚几个小时。
168
+ GitHub 的 Camo 代理可能短暂缓存缩略图;仓库里的文件是新的。
153
169
 
154
170
  ---
155
171
 
@@ -158,14 +174,16 @@ GitHub 的 Camo 代理可能短暂缓存图片;仓库里的文件是新的,R
158
174
  ```
159
175
  contrib-aquarium generate --user <login> [--out aquarium.svg]
160
176
  [--source auto|graphql|events|mock]
177
+ [--theme deep|reef|midnight]
161
178
  [--token <gh_token>]
162
179
  ```
163
180
 
164
181
  | Flag | Default | |
165
182
  | --- | --- | --- |
166
183
  | `--user` | required | GitHub login |
167
- | `--out` | `aquarium.svg` | Output path (directories are created) |
168
- | `--source` | `auto` | See data sources above |
184
+ | `--out` | `aquarium.svg` | Output path (dirs created) |
185
+ | `--source` | `auto` | See data sources |
186
+ | `--theme` | `deep` | `deep` · `reef` · `midnight` |
169
187
  | `--token` | `$GITHUB_TOKEN` / `$GH_TOKEN` | GraphQL auth |
170
188
 
171
189
  ```bash
@@ -177,7 +195,7 @@ npm run lint
177
195
 
178
196
  ---
179
197
 
180
- ## Library
198
+ ## Library · 库
181
199
 
182
200
  ```ts
183
201
  import { generateAquarium, renderAquarium, mockActivity } from "contrib-aquarium";
@@ -185,16 +203,20 @@ import { generateAquarium, renderAquarium, mockActivity } from "contrib-aquarium
185
203
  const { svg, activity } = await generateAquarium({
186
204
  user: "webywz",
187
205
  source: "auto",
206
+ theme: "reef",
188
207
  });
189
208
 
190
- // or draw a fixture
191
209
  const svgFromMock = renderAquarium(mockActivity("webywz", new Date("2026-10-29")));
192
210
  ```
193
211
 
194
- Node.js 18.18+ (native `fetch`). TypeScript types ship with the package.
212
+ Also exported: `loadActivity`, `fetchGraphqlActivity`, `fetchEventsActivity`, `getTheme`, `parseTheme`, `THEME_NAMES`, and size helpers. Types ship with the package.
213
+
214
+ 另导出活动加载、主题解析与尺寸常量;TypeScript 类型随包发布。
195
215
 
196
216
  ---
197
217
 
198
- ## License
218
+ ## Links · 链接
199
219
 
200
- [MIT](LICENSE)
220
+ - npm: [contrib-aquarium](https://www.npmjs.com/package/contrib-aquarium)
221
+ - Live on profile: [webywz/webywz](https://github.com/webywz/webywz)
222
+ - License: [MIT](LICENSE)
package/dist/cli.js CHANGED
@@ -2,6 +2,7 @@
2
2
  import { mkdir, writeFile } from "node:fs/promises";
3
3
  import { dirname, resolve } from "node:path";
4
4
  import { generateAquarium } from "./generate.js";
5
+ import { parseTheme } from "./theme.js";
5
6
  import { readPackageVersion } from "./util.js";
6
7
  function parseArgs(argv) {
7
8
  const args = argv.slice(2);
@@ -40,12 +41,14 @@ Turn a GitHub year into a living SVG aquarium.
40
41
  Usage:
41
42
  contrib-aquarium generate --user <login> [--out aquarium.svg]
42
43
  [--source auto|graphql|events|mock]
44
+ [--theme deep|reef|midnight]
43
45
  [--token <gh_token>]
44
46
 
45
47
  Options:
46
48
  --user GitHub login (required)
47
49
  --out Output path (default: aquarium.svg)
48
50
  --source auto (default), graphql, events, or mock
51
+ --theme Color theme: deep (default), reef, or midnight
49
52
  --token GitHub token; falls back to GITHUB_TOKEN / GH_TOKEN
50
53
  --help Show this message
51
54
  --version Print version
@@ -98,14 +101,16 @@ async function run(argv) {
98
101
  }
99
102
  const out = resolve(asString(flags.out) ?? "aquarium.svg");
100
103
  try {
104
+ const theme = parseTheme(asString(flags.theme));
101
105
  const { svg, activity } = await generateAquarium({
102
106
  user,
103
107
  token: asString(flags.token),
104
108
  source: parseSource(flags.source),
109
+ theme,
105
110
  });
106
111
  await mkdir(dirname(out), { recursive: true });
107
112
  await writeFile(out, svg, "utf8");
108
- console.error(`contrib-aquarium · ${activity.login} · source=${activity.source} · ${activity.totalContributions} contributions`);
113
+ console.error(`contrib-aquarium · ${activity.login} · source=${activity.source} · theme=${theme} · ${activity.totalContributions} contributions`);
109
114
  console.error(`wrote ${out}`);
110
115
  return 0;
111
116
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAK/C,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAY,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAClB,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,IAAI;IACX,OAAO,oBAAoB,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;CAsBhD,CAAC;AACF,CAAC;AAED,SAAS,QAAQ,CAAC,KAAmC;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,WAAW,CAAC,KAAmC;IACtD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACzD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACtF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,wCAAwC,CAAC,CAAC;AACtF,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,IAAc;IAC/B,IAAI,MAAuD,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAClC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACpB,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,gBAAgB,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAC/C,IAAI;YACJ,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;YAC5B,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CACX,sBAAsB,QAAQ,CAAC,KAAK,aAAa,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,kBAAkB,gBAAgB,CAClH,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/generate.js CHANGED
@@ -2,7 +2,7 @@ import { loadActivity } from "./activity.js";
2
2
  import { renderAquarium } from "./render.js";
3
3
  export async function generateAquarium(options) {
4
4
  const activity = await loadActivity(options);
5
- const svg = renderAquarium(activity);
5
+ const svg = renderAquarium(activity, options.theme ?? "deep");
6
6
  return { svg, activity };
7
7
  }
8
8
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;IAC9D,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,4 +4,6 @@ export { renderAquarium, SVG_WIDTH, SVG_HEIGHT, countSvgElements } from "./rende
4
4
  export { mapAquarium, mapFishCount, mapPlantCount, mapBubbleCount, currentStreak, recentTotal, flattenDays, } from "./mapping.js";
5
5
  export type { Activity, AquariumModel, ContributionDay, ContributionWeek, DataSource, GenerateOptions, GenerateResult, LoadOptions, LoadSource, } from "./types.js";
6
6
  export { FISH_MIN, FISH_MAX, PLANT_MIN, PLANT_MAX, BUBBLE_MIN, BUBBLE_MAX } from "./types.js";
7
+ export { getTheme, parseTheme, THEME_NAMES } from "./theme.js";
8
+ export type { Theme, ThemeName } from "./theme.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,QAAQ,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,cAAc,EACd,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,QAAQ,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,cAAc,EACd,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -3,4 +3,5 @@ export { loadActivity, mockActivity, fetchGraphqlActivity, fetchEventsActivity,
3
3
  export { renderAquarium, SVG_WIDTH, SVG_HEIGHT, countSvgElements } from "./render.js";
4
4
  export { mapAquarium, mapFishCount, mapPlantCount, mapBubbleCount, currentStreak, recentTotal, flattenDays, } from "./mapping.js";
5
5
  export { FISH_MIN, FISH_MAX, PLANT_MIN, PLANT_MAX, BUBBLE_MIN, BUBBLE_MAX } from "./types.js";
6
+ export { getTheme, parseTheme, THEME_NAMES } from "./theme.js";
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AAYtB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AAYtB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
package/dist/mapping.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type Activity, type AquariumModel, type ContributionDay } from "./types.js";
2
+ import { type ThemeName } from "./theme.js";
2
3
  export declare function flattenDays(activity: Activity): ContributionDay[];
3
4
  /**
4
5
  * Map yearly totals onto a readable school size.
@@ -15,5 +16,5 @@ export declare function mapBubbleCount(recent14Total: number): number;
15
16
  */
16
17
  export declare function currentStreak(days: ContributionDay[], todayIso?: string): number;
17
18
  export declare function recentTotal(days: ContributionDay[], window?: number): number;
18
- export declare function mapAquarium(activity: Activity): AquariumModel;
19
+ export declare function mapAquarium(activity: Activity, themeName?: ThemeName): AquariumModel;
19
20
  //# sourceMappingURL=mapping.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,QAAQ,EACb,KAAK,aAAa,EAElB,KAAK,eAAe,EAKrB,MAAM,YAAY,CAAC;AAYpB,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe,EAAE,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAS/D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAU5E;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,eAAe,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAeR;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,MAAM,SAAK,GAAG,MAAM,CAGxE;AAYD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAkH7D"}
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,QAAQ,EACb,KAAK,aAAa,EAElB,KAAK,eAAe,EAKrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe,EAAE,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAS/D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAU5E;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,eAAe,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAeR;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,MAAM,SAAK,GAAG,MAAM,CAGxE;AAYD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,GAAE,SAAkB,GAAG,aAAa,CAmH5F"}
package/dist/mapping.js CHANGED
@@ -1,13 +1,6 @@
1
1
  import { BUBBLE_MAX, BUBBLE_MIN, FISH_MAX, FISH_MIN, PLANT_MAX, PLANT_MIN, } from "./types.js";
2
+ import { getTheme } from "./theme.js";
2
3
  import { clamp, hashString, lerp, mulberry32, pick } from "./util.js";
3
- const PALETTES = [
4
- { body: "#e6c07b", accent: "#c46b4a" },
5
- { body: "#d9a441", accent: "#b87333" },
6
- { body: "#5fa8a3", accent: "#2f6f74" },
7
- { body: "#c5d4d1", accent: "#7f9996" },
8
- { body: "#d4896a", accent: "#9e4d3c" },
9
- { body: "#7eb3c9", accent: "#3d6f88" },
10
- ];
11
4
  export function flattenDays(activity) {
12
5
  return activity.weeks.flatMap((week) => week.days);
13
6
  }
@@ -70,7 +63,8 @@ function speciesForRank(rank, intensity, rng) {
70
63
  return "koi";
71
64
  return "tetra";
72
65
  }
73
- export function mapAquarium(activity) {
66
+ export function mapAquarium(activity, themeName = "deep") {
67
+ const theme = getTheme(themeName);
74
68
  const days = flattenDays(activity);
75
69
  const dayCount = Math.max(days.length, 1);
76
70
  const activeDays = days.filter((day) => day.count > 0).length;
@@ -106,7 +100,7 @@ export function mapAquarium(activity) {
106
100
  y = 56 + rng() * 168;
107
101
  }
108
102
  usedY.push(y);
109
- const palette = pick(rng, PALETTES);
103
+ const palette = pick(rng, theme.fish);
110
104
  const duration = lerp(18, 9, turbulence) + rng() * 8 + size * 0.18;
111
105
  fish.push({
112
106
  id: i,
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,GASV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAA8B,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAY,MAAM,WAAW,CAAC;AAEhF,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,kBAA0B;IACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CACV,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,EAC3D,QAAQ,EACR,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,cAAsB;IAClE,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC3C,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC,CAAC;IACN,OAAO,KAAK,CACV,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EACtD,SAAS,EACT,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,aAAqB;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAuB,EACvB,QAAiB;IAEjB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC;IACpC,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QAC9D,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;YAAE,MAAM;QAChC,MAAM,IAAI,CAAC,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAuB,EAAE,MAAM,GAAG,EAAE;IAC9D,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,OAAO,CAAC,IAAuB;IACtC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,SAAiB,EAAE,GAAQ;IAC/D,IAAI,IAAI,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAkB,EAAE,YAAuB,MAAM;IAC3E,MAAM,KAAK,GAAU,QAAQ,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,KAAK,CACtB,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,IAAI,EACzD,IAAI,EACJ,CAAC,CACF,CAAC;IAEF,MAAM,IAAI,GAAG,UAAU,CACrB,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAC7G,CAAC;IACF,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAE7B,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;KACxB,CAAC,CAAC,CAAC;IACJ,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAEzC,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;QAC3B,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAClD,MAAM,QAAQ,GACZ,OAAO,KAAK,OAAO;YACjB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,OAAO,KAAK,KAAK;gBACjB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,QAAQ,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;QACzB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAAE,MAAM;YAC5D,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC;YACR,EAAE,EAAE,CAAC;YACL,OAAO;YACP,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,CAAC;YACD,QAAQ;YACR,KAAK,EAAE,GAAG,EAAE,GAAG,QAAQ;YACvB,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;YACtB,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG;YACpB,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG;YACvB,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,CAAC;YACL,CAAC;YACD,MAAM,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC;YACrD,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACjC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;YAChB,QAAQ,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;YAC3B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,CAAC;YACL,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE;YACvC,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;YACpB,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC;YACvB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;YACjB,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,GAAG,CAAC;IACnB,MAAM,IAAI,GAAG,GAAG,CAAC;IACjB,MAAM,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,MAAM,IAAI,GAAiB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;QACpB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;QACjC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI;KAC5C,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,IAAI;QACJ,UAAU;QACV,MAAM;QACN,QAAQ;QACR,UAAU;KACX,CAAC;AACJ,CAAC"}
package/dist/render.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ import { type ThemeName } from "./theme.js";
1
2
  import type { Activity } from "./types.js";
2
3
  export declare const SVG_WIDTH = 860;
3
4
  export declare const SVG_HEIGHT = 300;
4
- export declare function renderAquarium(activity: Activity): string;
5
+ export declare function renderAquarium(activity: Activity, themeName?: ThemeName): string;
5
6
  export declare function countSvgElements(svg: string, kind: "fish" | "plant" | "bubble"): number;
6
7
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EAMT,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,UAAU,MAAM,CAAC;AA6Q9B,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CA4CzD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAGvF"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EACV,QAAQ,EAMT,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,UAAU,MAAM,CAAC;AA+Q9B,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,GAAE,SAAkB,GAAG,MAAM,CA6CxF;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAGvF"}
package/dist/render.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { mapAquarium } from "./mapping.js";
2
+ import { getTheme } from "./theme.js";
2
3
  import { escapeXml, formatRange } from "./util.js";
3
4
  export const SVG_WIDTH = 860;
4
5
  export const SVG_HEIGHT = 300;
5
- const KELP = ["#1a4f40", "#227056", "#163e34", "#2a7a5c"];
6
6
  function fmt(n, digits = 2) {
7
7
  return n.toFixed(digits).replace(/\.?0+$/, "");
8
8
  }
@@ -75,8 +75,8 @@ function bladePath(x, height, lean, width) {
75
75
  Q ${fmt(x + lean, 1)} ${fmt(top + 8, 1)} ${fmt(x + lean * 0.2, 1)} ${fmt(top, 1)}
76
76
  Q ${fmt(x + lean * 0.55 + width, 1)} ${fmt(268 - height * 0.62, 1)} ${fmt(x + width * 0.35, 1)} 268 Z`;
77
77
  }
78
- function drawPlant(plant) {
79
- const color = KELP[plant.palette % KELP.length];
78
+ function drawPlant(plant, theme) {
79
+ const color = theme.kelp[plant.palette % theme.kelp.length];
80
80
  const blades = [];
81
81
  for (let i = 0; i < plant.blades; i++) {
82
82
  const lean = (i - (plant.blades - 1) / 2) * 16 + (i % 2 === 0 ? 6 : -4);
@@ -92,16 +92,16 @@ function drawBubble(bubble) {
92
92
  <circle cx="${fmt(bubble.x - bubble.r * 0.28, 1)}" cy="${fmt(bubble.startY - bubble.r * 0.3, 1)}" r="${fmt(Math.max(0.4, bubble.r * 0.28), 2)}" fill="rgba(255,255,255,0.45)"/>
93
93
  </g>`;
94
94
  }
95
- function drawReef(columns) {
95
+ function drawReef(columns, theme) {
96
96
  return columns
97
97
  .map((col) => {
98
98
  const cx = col.x + col.width / 2;
99
99
  const pebbles = [
100
- `<ellipse cx="${fmt(cx, 2)}" cy="264.5" rx="${fmt(Math.max(2.2, col.width * 0.72), 2)}" ry="${fmt(Math.max(2, col.height * 0.34), 2)}" fill="#6a5844"/>`,
101
- `<ellipse cx="${fmt(cx + col.width * 0.18, 2)}" cy="${fmt(263.2 - col.height * 0.22, 2)}" rx="${fmt(Math.max(1.4, col.width * 0.4), 2)}" ry="${fmt(Math.max(1.5, col.height * 0.28), 2)}" fill="#8d7860"/>`,
100
+ `<ellipse cx="${fmt(cx, 2)}" cy="264.5" rx="${fmt(Math.max(2.2, col.width * 0.72), 2)}" ry="${fmt(Math.max(2, col.height * 0.34), 2)}" fill="${theme.reef[0]}"/>`,
101
+ `<ellipse cx="${fmt(cx + col.width * 0.18, 2)}" cy="${fmt(263.2 - col.height * 0.22, 2)}" rx="${fmt(Math.max(1.4, col.width * 0.4), 2)}" ry="${fmt(Math.max(1.5, col.height * 0.28), 2)}" fill="${theme.reef[1]}"/>`,
102
102
  ];
103
103
  if (col.height > 12) {
104
- pebbles.push(`<ellipse cx="${fmt(cx - col.width * 0.12, 2)}" cy="${fmt(261.5 - col.height * 0.42, 2)}" rx="${fmt(col.width * 0.28, 2)}" ry="${fmt(col.height * 0.22, 2)}" fill="#a89070"/>`);
104
+ pebbles.push(`<ellipse cx="${fmt(cx - col.width * 0.12, 2)}" cy="${fmt(261.5 - col.height * 0.42, 2)}" rx="${fmt(col.width * 0.28, 2)}" ry="${fmt(col.height * 0.22, 2)}" fill="${theme.reef[2]}"/>`);
105
105
  }
106
106
  return `<g opacity="${fmt(col.opacity, 2)}">${pebbles.join("")}</g>`;
107
107
  })
@@ -114,7 +114,7 @@ function sourceNote(source) {
114
114
  return "seeded from public events";
115
115
  return "demo pattern from username";
116
116
  }
117
- function caption(activity, model) {
117
+ function caption(activity, model, theme) {
118
118
  const login = escapeXml(activity.login.toUpperCase());
119
119
  const tracking = activity.login.length > 16 ? "0.08em" : "0.22em";
120
120
  const total = activity.totalContributions.toLocaleString("en-US");
@@ -123,37 +123,39 @@ function caption(activity, model) {
123
123
  const extras = model.streak > 1 ? ` · ${model.streak}-day streak` : "";
124
124
  const sourceLabel = activity.source === "graphql"
125
125
  ? ""
126
- : `<text x="828" y="32" fill="rgba(186,214,208,0.55)" font-size="8" font-family="Georgia, serif" text-anchor="end">${note}</text>`;
126
+ : `<text x="828" y="32" fill="${theme.caption.note}" font-size="8" font-family="Georgia, serif" text-anchor="end">${note}</text>`;
127
127
  return `
128
- <text x="32" y="268" fill="#d5e6df" font-size="13" font-family="Palatino, 'Palatino Linotype', 'Book Antiqua', Georgia, serif" letter-spacing="${tracking}">${login}</text>
129
- <text x="32" y="282" fill="#9bb8b0" font-size="9.5" font-family="Georgia, 'Iowan Old Style', serif">${total} contributions · ${range}${extras}</text>
128
+ <text x="32" y="268" fill="${theme.caption.title}" font-size="13" font-family="Palatino, 'Palatino Linotype', 'Book Antiqua', Georgia, serif" letter-spacing="${tracking}">${login}</text>
129
+ <text x="32" y="282" fill="${theme.caption.meta}" font-size="9.5" font-family="Georgia, 'Iowan Old Style', serif">${total} contributions · ${range}${extras}</text>
130
130
  ${sourceLabel}`;
131
131
  }
132
- function defs() {
132
+ function defs(theme) {
133
+ const [w0, w1, w2] = theme.water;
134
+ const [s0, s1] = theme.sand;
133
135
  return `<defs>
134
136
  <linearGradient id="water" x1="0" y1="0" x2="0" y2="1">
135
- <stop offset="0%" stop-color="#163e4c"/>
136
- <stop offset="38%" stop-color="#0c2c38"/>
137
- <stop offset="100%" stop-color="#07141c"/>
137
+ <stop offset="0%" stop-color="${w0}"/>
138
+ <stop offset="38%" stop-color="${w1}"/>
139
+ <stop offset="100%" stop-color="${w2}"/>
138
140
  </linearGradient>
139
141
  <radialGradient id="glow" cx="46%" cy="8%" r="72%">
140
- <stop offset="0%" stop-color="#2a7a86" stop-opacity="0.38"/>
141
- <stop offset="42%" stop-color="#123844" stop-opacity="0.12"/>
142
+ <stop offset="0%" stop-color="${theme.glow.color}" stop-opacity="0.38"/>
143
+ <stop offset="42%" stop-color="${theme.glow.mid}" stop-opacity="0.12"/>
142
144
  <stop offset="100%" stop-color="#061018" stop-opacity="0"/>
143
145
  </radialGradient>
144
146
  <linearGradient id="sand" x1="0" y1="0" x2="0" y2="1">
145
- <stop offset="0%" stop-color="#5a4a36"/>
146
- <stop offset="100%" stop-color="#2c241a"/>
147
+ <stop offset="0%" stop-color="${s0}"/>
148
+ <stop offset="100%" stop-color="${s1}"/>
147
149
  </linearGradient>
148
150
  <linearGradient id="film" x1="0" y1="0" x2="0" y2="1">
149
- <stop offset="0%" stop-color="#8fd0d4" stop-opacity="0.28"/>
150
- <stop offset="100%" stop-color="#8fd0d4" stop-opacity="0"/>
151
+ <stop offset="0%" stop-color="${theme.film}" stop-opacity="0.28"/>
152
+ <stop offset="100%" stop-color="${theme.film}" stop-opacity="0"/>
151
153
  </linearGradient>
152
154
  <linearGradient id="glass" x1="0" y1="0" x2="1" y2="0">
153
- <stop offset="0%" stop-color="#d4f0f2" stop-opacity="0.16"/>
154
- <stop offset="18%" stop-color="#d4f0f2" stop-opacity="0"/>
155
- <stop offset="82%" stop-color="#d4f0f2" stop-opacity="0"/>
156
- <stop offset="100%" stop-color="#d4f0f2" stop-opacity="0.12"/>
155
+ <stop offset="0%" stop-color="${theme.glass}" stop-opacity="0.16"/>
156
+ <stop offset="18%" stop-color="${theme.glass}" stop-opacity="0"/>
157
+ <stop offset="82%" stop-color="${theme.glass}" stop-opacity="0"/>
158
+ <stop offset="100%" stop-color="${theme.glass}" stop-opacity="0.12"/>
157
159
  </linearGradient>
158
160
  <filter id="soft" x="-8%" y="-8%" width="116%" height="116%">
159
161
  <feGaussianBlur stdDeviation="0.4" result="b"/>
@@ -216,26 +218,28 @@ function styles(model) {
216
218
  }
217
219
  </style>`;
218
220
  }
219
- function rocks() {
221
+ function rocks(theme) {
222
+ const [a, b, c] = theme.rock;
220
223
  return `
221
- <ellipse cx="118" cy="266" rx="38" ry="11" fill="#2a241c" opacity="0.85"/>
222
- <ellipse cx="108" cy="258" rx="22" ry="14" fill="#3a3228"/>
223
- <ellipse cx="132" cy="260" rx="14" ry="9" fill="#4a4034"/>
224
- <ellipse cx="742" cy="268" rx="46" ry="12" fill="#2a241c" opacity="0.8"/>
225
- <ellipse cx="728" cy="258" rx="20" ry="13" fill="#3d352c"/>
226
- <ellipse cx="758" cy="261" rx="16" ry="10" fill="#4e4538"/>
227
- <ellipse cx="430" cy="270" rx="18" ry="6" fill="#3a3226" opacity="0.7"/>`;
224
+ <ellipse cx="118" cy="266" rx="38" ry="11" fill="${a}" opacity="0.85"/>
225
+ <ellipse cx="108" cy="258" rx="22" ry="14" fill="${b}"/>
226
+ <ellipse cx="132" cy="260" rx="14" ry="9" fill="${c}"/>
227
+ <ellipse cx="742" cy="268" rx="46" ry="12" fill="${a}" opacity="0.8"/>
228
+ <ellipse cx="728" cy="258" rx="20" ry="13" fill="${b}"/>
229
+ <ellipse cx="758" cy="261" rx="16" ry="10" fill="${c}"/>
230
+ <ellipse cx="430" cy="270" rx="18" ry="6" fill="${b}" opacity="0.7"/>`;
228
231
  }
229
- function rays() {
232
+ function rays(theme) {
233
+ const [r0, r1, r2] = theme.ray;
230
234
  return `
231
235
  <g class="ray" opacity="0.14">
232
- <polygon points="210,12 268,12 318,268 168,268" fill="#7ec8c4"/>
236
+ <polygon points="210,12 268,12 318,268 168,268" fill="${r0}"/>
233
237
  </g>
234
238
  <g class="ray" opacity="0.1" style="animation-delay:-2.4s">
235
- <polygon points="470,12 510,12 548,268 430,268" fill="#9ad4c8"/>
239
+ <polygon points="470,12 510,12 548,268 430,268" fill="${r1}"/>
236
240
  </g>
237
241
  <g class="ray" opacity="0.08" style="animation-delay:-4.1s">
238
- <polygon points="620,12 648,12 700,268 560,268" fill="#7eb8c2"/>
242
+ <polygon points="620,12 648,12 700,268 560,268" fill="${r2}"/>
239
243
  </g>`;
240
244
  }
241
245
  function surface() {
@@ -248,33 +252,34 @@ function surface() {
248
252
  </path>
249
253
  <path class="shimmer" fill="none" stroke="rgba(186,232,228,0.45)" stroke-width="1.1" d="M24,22 Q140,14 250,24 T480,20 T836,26"/>`;
250
254
  }
251
- export function renderAquarium(activity) {
252
- const model = mapAquarium(activity);
255
+ export function renderAquarium(activity, themeName = "deep") {
256
+ const theme = getTheme(themeName);
257
+ const model = mapAquarium(activity, themeName);
253
258
  const label = escapeXml(`GitHub contribution aquarium for ${activity.login} — ${activity.totalContributions} contributions`);
254
259
  const plantsBack = model.plants
255
260
  .filter((_, i) => i % 2 === 0)
256
- .map(drawPlant)
261
+ .map((p) => drawPlant(p, theme))
257
262
  .join("");
258
263
  const plantsFront = model.plants
259
264
  .filter((_, i) => i % 2 === 1)
260
- .map(drawPlant)
265
+ .map((p) => drawPlant(p, theme))
261
266
  .join("");
262
267
  return `<?xml version="1.0" encoding="UTF-8"?>
263
- <svg xmlns="http://www.w3.org/2000/svg" width="${SVG_WIDTH}" height="${SVG_HEIGHT}" viewBox="0 0 ${SVG_WIDTH} ${SVG_HEIGHT}" role="img" aria-label="${label}" data-user="${escapeXml(activity.login)}" data-source="${activity.source}" data-total="${activity.totalContributions}">
268
+ <svg xmlns="http://www.w3.org/2000/svg" width="${SVG_WIDTH}" height="${SVG_HEIGHT}" viewBox="0 0 ${SVG_WIDTH} ${SVG_HEIGHT}" role="img" aria-label="${label}" data-user="${escapeXml(activity.login)}" data-source="${activity.source}" data-total="${activity.totalContributions}" data-theme="${theme.name}">
264
269
  <title>${label}</title>
265
- ${defs()}
270
+ ${defs(theme)}
266
271
  ${styles(model)}
267
- <rect width="${SVG_WIDTH}" height="${SVG_HEIGHT}" rx="24" fill="#0a1418"/>
272
+ <rect width="${SVG_WIDTH}" height="${SVG_HEIGHT}" rx="24" fill="${theme.water[2]}"/>
268
273
  <g clip-path="url(#tank)">
269
274
  <rect x="10" y="10" width="840" height="280" fill="url(#water)"/>
270
275
  <rect x="10" y="10" width="840" height="280" fill="url(#glow)"/>
271
- ${rays()}
276
+ ${rays(theme)}
272
277
  <rect x="10" y="10" width="840" height="280" filter="url(#haze)" opacity="0.55"/>
273
278
  ${plantsBack}
274
279
  <path d="M10,252 C80,246 160,258 250,250 C360,240 470,258 560,249 C670,238 760,256 850,248 L850,290 L10,290 Z" fill="url(#sand)"/>
275
280
  <path d="M10,252 C80,246 160,258 250,250 C360,240 470,258 560,249 C670,238 760,256 850,248" fill="none" stroke="rgba(210,190,150,0.22)" stroke-width="1.2"/>
276
- ${drawReef(model.reef)}
277
- ${rocks()}
281
+ ${drawReef(model.reef, theme)}
282
+ ${rocks(theme)}
278
283
  <g filter="url(#soft)">
279
284
  ${model.fish.map(drawFish).join("")}
280
285
  </g>
@@ -282,7 +287,7 @@ export function renderAquarium(activity) {
282
287
  ${model.bubbles.map(drawBubble).join("")}
283
288
  ${surface()}
284
289
  <rect x="10" y="10" width="840" height="280" fill="url(#glass)"/>
285
- ${caption(activity, model)}
290
+ ${caption(activity, model, theme)}
286
291
  </g>
287
292
  <rect x="10.6" y="10.6" width="838.8" height="278.8" rx="21" fill="none" stroke="rgba(198,176,122,0.55)" stroke-width="1.4"/>
288
293
  <rect x="13" y="13" width="834" height="274" rx="19" fill="none" stroke="rgba(214,236,232,0.16)" stroke-width="0.8"/>
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export declare const THEME_NAMES: readonly ["deep", "reef", "midnight"];
2
+ export type ThemeName = (typeof THEME_NAMES)[number];
3
+ export type Theme = {
4
+ name: ThemeName;
5
+ /** Water gradient stops top → bottom */
6
+ water: [string, string, string];
7
+ glow: {
8
+ color: string;
9
+ mid: string;
10
+ };
11
+ sand: [string, string];
12
+ film: string;
13
+ glass: string;
14
+ kelp: readonly [string, string, string, string];
15
+ fish: readonly {
16
+ body: string;
17
+ accent: string;
18
+ }[];
19
+ caption: {
20
+ title: string;
21
+ meta: string;
22
+ note: string;
23
+ };
24
+ ray: readonly [string, string, string];
25
+ rock: readonly [string, string, string];
26
+ reef: readonly [string, string, string];
27
+ };
28
+ export declare function parseTheme(value: string | undefined): ThemeName;
29
+ export declare function getTheme(name?: ThemeName): Theme;
30
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,uCAAwC,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,wCAAwC;IACxC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,CAAC;AA0EF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAQ/D;AAED,wBAAgB,QAAQ,CAAC,IAAI,GAAE,SAAkB,GAAG,KAAK,CAExD"}
package/dist/theme.js ADDED
@@ -0,0 +1,80 @@
1
+ export const THEME_NAMES = ["deep", "reef", "midnight"];
2
+ const DEEP = {
3
+ name: "deep",
4
+ water: ["#163e4c", "#0c2c38", "#07141c"],
5
+ glow: { color: "#2a7a86", mid: "#123844" },
6
+ sand: ["#5a4a36", "#2c241a"],
7
+ film: "#8fd0d4",
8
+ glass: "#d4f0f2",
9
+ kelp: ["#1a4f40", "#227056", "#163e34", "#2a7a5c"],
10
+ fish: [
11
+ { body: "#e6c07b", accent: "#c46b4a" },
12
+ { body: "#d9a441", accent: "#b87333" },
13
+ { body: "#5fa8a3", accent: "#2f6f74" },
14
+ { body: "#c5d4d1", accent: "#7f9996" },
15
+ { body: "#d4896a", accent: "#9e4d3c" },
16
+ { body: "#7eb3c9", accent: "#3d6f88" },
17
+ ],
18
+ caption: { title: "#d5e6df", meta: "#9bb8b0", note: "rgba(186,214,208,0.55)" },
19
+ ray: ["#7ec8c4", "#9ad4c8", "#7eb8c2"],
20
+ rock: ["#2a241c", "#3a3228", "#4a4034"],
21
+ reef: ["#6a5844", "#8d7860", "#a89070"],
22
+ };
23
+ const REEF = {
24
+ name: "reef",
25
+ water: ["#1a5f6e", "#0e3d4a", "#082028"],
26
+ glow: { color: "#3cb8a8", mid: "#1a5a58" },
27
+ sand: ["#c4a574", "#6b5338"],
28
+ film: "#a8e8e0",
29
+ glass: "#e8fff8",
30
+ kelp: ["#1f6b4a", "#2d8f62", "#145238", "#3aa870"],
31
+ fish: [
32
+ { body: "#ff8f6b", accent: "#e04870" },
33
+ { body: "#ffd166", accent: "#f08a24" },
34
+ { body: "#06d6a0", accent: "#118ab2" },
35
+ { body: "#ef476f", accent: "#9b2226" },
36
+ { body: "#4cc9f0", accent: "#4361ee" },
37
+ { body: "#f4a261", accent: "#e76f51" },
38
+ ],
39
+ caption: { title: "#e8fff6", meta: "#a8d4c8", note: "rgba(168,232,220,0.6)" },
40
+ ray: ["#7ef0d8", "#ffe08a", "#ff9eb5"],
41
+ rock: ["#5c4030", "#7a5640", "#9a7050"],
42
+ reef: ["#8b6914", "#b8860b", "#daa520"],
43
+ };
44
+ const MIDNIGHT = {
45
+ name: "midnight",
46
+ water: ["#1a1430", "#0e0a1c", "#05040c"],
47
+ glow: { color: "#6b5b95", mid: "#2a2048" },
48
+ sand: ["#2a2438", "#12101a"],
49
+ film: "#a89cc8",
50
+ glass: "#d4c8f0",
51
+ kelp: ["#2a3850", "#3a4a68", "#1e2838", "#4a6080"],
52
+ fish: [
53
+ { body: "#c9b6e4", accent: "#7b5ea7" },
54
+ { body: "#90e0ef", accent: "#48bfe3" },
55
+ { body: "#f72585", accent: "#b5179e" },
56
+ { body: "#e0aaff", accent: "#9d4edd" },
57
+ { body: "#80ffdb", accent: "#56cfe1" },
58
+ { body: "#ffd6a5", accent: "#ffadad" },
59
+ ],
60
+ caption: { title: "#e8e0f8", meta: "#a898c0", note: "rgba(200,190,230,0.55)" },
61
+ ray: ["#9b8ec4", "#7ec8e8", "#e0a0d0"],
62
+ rock: ["#1a1624", "#2a2438", "#3a3450"],
63
+ reef: ["#3a3550", "#524a70", "#6a6090"],
64
+ };
65
+ const THEMES = {
66
+ deep: DEEP,
67
+ reef: REEF,
68
+ midnight: MIDNIGHT,
69
+ };
70
+ export function parseTheme(value) {
71
+ const raw = (value ?? "deep").trim().toLowerCase();
72
+ if (THEME_NAMES.includes(raw)) {
73
+ return raw;
74
+ }
75
+ throw new Error(`Unknown --theme "${value}". Use: ${THEME_NAMES.join(", ")}`);
76
+ }
77
+ export function getTheme(name = "deep") {
78
+ return THEMES[name];
79
+ }
80
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -19,6 +19,7 @@ export type Activity = {
19
19
  };
20
20
  };
21
21
  export type LoadSource = "auto" | DataSource;
22
+ export type { ThemeName } from "./theme.js";
22
23
  export type LoadOptions = {
23
24
  user: string;
24
25
  token?: string;
@@ -26,7 +27,9 @@ export type LoadOptions = {
26
27
  now?: Date;
27
28
  fetchImpl?: typeof fetch;
28
29
  };
29
- export type GenerateOptions = LoadOptions;
30
+ export type GenerateOptions = LoadOptions & {
31
+ theme?: import("./theme.js").ThemeName;
32
+ };
30
33
  export type GenerateResult = {
31
34
  svg: string;
32
35
  activity: Activity;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA4FA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA8FA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "contrib-aquarium",
3
- "version": "0.1.0",
4
- "description": "A living SVG aquarium driven by a GitHub contribution graph — embeddable in profile READMEs.",
3
+ "version": "0.1.1",
4
+ "description": "A living SVG aquarium driven by a GitHub contribution graph \u2014 embeddable in profile READMEs.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "bin": {
9
- "contrib-aquarium": "./dist/cli.js"
9
+ "contrib-aquarium": "dist/cli.js"
10
10
  },
11
11
  "exports": {
12
12
  ".": {