@urmzd/github-insights 2.0.1 → 2.2.0
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/.githooks/commit-msg +4 -0
- package/.githooks/pre-commit +4 -0
- package/AGENTS.md +32 -19
- package/CHANGELOG.md +54 -0
- package/CONTRIBUTING.md +18 -19
- package/README.md +21 -24
- package/action.yml +1 -1
- package/assets/insights/index.svg +45 -4
- package/assets/insights/metrics-constellation.svg +55 -0
- package/assets/insights/metrics-impact.svg +55 -0
- package/assets/insights/metrics-rhythm.svg +55 -0
- package/assets/insights/metrics-velocity.svg +55 -0
- package/examples/classic/README.md +36 -2
- package/examples/classic/index.svg +45 -4
- package/examples/classic/metrics-constellation.svg +55 -0
- package/examples/classic/metrics-impact.svg +55 -0
- package/examples/classic/metrics-rhythm.svg +55 -0
- package/examples/classic/metrics-velocity.svg +55 -0
- package/examples/ecosystem/README.md +39 -28
- package/examples/ecosystem/index.svg +45 -4
- package/examples/ecosystem/metrics-constellation.svg +55 -0
- package/examples/ecosystem/metrics-impact.svg +55 -0
- package/examples/ecosystem/metrics-rhythm.svg +55 -0
- package/examples/ecosystem/metrics-velocity.svg +55 -0
- package/examples/minimal/README.md +36 -2
- package/examples/minimal/index.svg +45 -4
- package/examples/minimal/metrics-constellation.svg +55 -0
- package/examples/minimal/metrics-impact.svg +55 -0
- package/examples/minimal/metrics-rhythm.svg +55 -0
- package/examples/minimal/metrics-velocity.svg +55 -0
- package/examples/modern/README.md +62 -50
- package/examples/modern/index.svg +45 -4
- package/examples/modern/metrics-constellation.svg +55 -0
- package/examples/modern/metrics-impact.svg +55 -0
- package/examples/modern/metrics-rhythm.svg +55 -0
- package/examples/modern/metrics-velocity.svg +55 -0
- package/llms.txt +4 -4
- package/package.json +1 -1
- package/skills/github-insights/SKILL.md +35 -81
- package/sr.yaml +9 -0
- package/src/api.ts +3 -141
- package/src/components/contribution-rhythm.tsx +152 -0
- package/src/components/full-svg.test.tsx +4 -1
- package/src/components/full-svg.tsx +14 -7
- package/src/components/impact-trail.tsx +90 -0
- package/src/components/language-velocity.tsx +181 -0
- package/src/components/project-constellation.tsx +97 -0
- package/src/components/section.test.tsx +5 -3
- package/src/components/section.tsx +5 -13
- package/src/components/style-defs.tsx +44 -3
- package/src/index.ts +34 -47
- package/src/metrics.test.ts +50 -57
- package/src/metrics.ts +293 -97
- package/src/readme.test.ts +2 -4
- package/src/templates.test.ts +116 -16
- package/src/templates.ts +68 -27
- package/src/theme.ts +11 -1
- package/src/types.ts +31 -7
- package/assets/insights/metrics-calendar.svg +0 -14
- package/assets/insights/metrics-complexity.svg +0 -14
- package/assets/insights/metrics-contributions.svg +0 -14
- package/assets/insights/metrics-expertise.svg +0 -14
- package/assets/insights/metrics-languages.svg +0 -14
- package/assets/insights/metrics-pulse.svg +0 -14
- package/examples/classic/metrics-calendar.svg +0 -14
- package/examples/classic/metrics-complexity.svg +0 -14
- package/examples/classic/metrics-contributions.svg +0 -14
- package/examples/classic/metrics-expertise.svg +0 -14
- package/examples/classic/metrics-languages.svg +0 -14
- package/examples/classic/metrics-pulse.svg +0 -14
- package/examples/ecosystem/metrics-calendar.svg +0 -14
- package/examples/ecosystem/metrics-complexity.svg +0 -14
- package/examples/ecosystem/metrics-contributions.svg +0 -14
- package/examples/ecosystem/metrics-expertise.svg +0 -14
- package/examples/ecosystem/metrics-languages.svg +0 -14
- package/examples/ecosystem/metrics-pulse.svg +0 -14
- package/examples/minimal/metrics-calendar.svg +0 -14
- package/examples/minimal/metrics-complexity.svg +0 -14
- package/examples/minimal/metrics-contributions.svg +0 -14
- package/examples/minimal/metrics-expertise.svg +0 -14
- package/examples/minimal/metrics-languages.svg +0 -14
- package/examples/minimal/metrics-pulse.svg +0 -14
- package/examples/modern/metrics-calendar.svg +0 -14
- package/examples/modern/metrics-complexity.svg +0 -14
- package/examples/modern/metrics-contributions.svg +0 -14
- package/examples/modern/metrics-expertise.svg +0 -14
- package/examples/modern/metrics-languages.svg +0 -14
- package/examples/modern/metrics-pulse.svg +0 -14
- package/src/components/bar-chart.test.tsx +0 -38
- package/src/components/bar-chart.tsx +0 -54
- package/src/components/contribution-calendar.test.tsx +0 -44
- package/src/components/contribution-calendar.tsx +0 -94
- package/src/components/contribution-cards.test.tsx +0 -36
- package/src/components/contribution-cards.tsx +0 -58
- package/src/components/donut-chart.test.tsx +0 -36
- package/src/components/donut-chart.tsx +0 -102
- package/src/components/project-cards.test.tsx +0 -46
- package/src/components/project-cards.tsx +0 -66
- package/src/components/stat-cards.test.tsx +0 -32
- package/src/components/stat-cards.tsx +0 -57
- package/src/components/tech-highlights.test.tsx +0 -63
- package/src/components/tech-highlights.tsx +0 -109
- package/teasr.toml +0 -14
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="808" height="470" viewBox="0 0 808 470"><defs><style>
|
|
2
|
+
.t { font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif; font-variant-numeric: tabular-lining; }
|
|
3
|
+
.t-h { font-size: 14px; fill: #c9d1d9; letter-spacing: 2px; font-weight: 600; }
|
|
4
|
+
.t-sub { font-size: 11px; fill: #6e7681; }
|
|
5
|
+
.t-label { font-size: 12px; fill: #8b949e; }
|
|
6
|
+
.t-value { font-size: 11px; fill: #6e7681; }
|
|
7
|
+
.t-subhdr { font-size: 11px; fill: #8b949e; letter-spacing: 1px; font-weight: 600; }
|
|
8
|
+
.t-stat-label { font-size: 10px; fill: #8b949e; font-weight: 600; }
|
|
9
|
+
.t-stat-value { font-size: 22px; font-weight: 700; }
|
|
10
|
+
.t-card-title { font-size: 12px; fill: #58a6ff; font-weight: 700; }
|
|
11
|
+
.t-card-detail { font-size: 11px; fill: #8b949e; }
|
|
12
|
+
.t-pill { font-size: 11px; font-weight: 600; }
|
|
13
|
+
.t-bullet { font-size: 12px; fill: #c9d1d9; }
|
|
14
|
+
.bg-fill { fill: #0d1117; }
|
|
15
|
+
.card-fill { fill: #161b22; }
|
|
16
|
+
.border-stroke { stroke: #30363d; }
|
|
17
|
+
|
|
18
|
+
@media (prefers-color-scheme: light) {
|
|
19
|
+
.bg-fill { fill: #ffffff; }
|
|
20
|
+
.card-fill { fill: #f6f8fa; }
|
|
21
|
+
.border-stroke { stroke: #d0d7de; }
|
|
22
|
+
.t-h { fill: #1f2328; }
|
|
23
|
+
.t-sub { fill: #656d76; }
|
|
24
|
+
.t-label { fill: #656d76; }
|
|
25
|
+
.t-value { fill: #656d76; }
|
|
26
|
+
.t-subhdr { fill: #656d76; }
|
|
27
|
+
.t-stat-label { fill: #656d76; }
|
|
28
|
+
.t-card-title { fill: #0969da; }
|
|
29
|
+
.t-card-detail { fill: #656d76; }
|
|
30
|
+
.t-bullet { fill: #1f2328; }
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@keyframes fadeIn {
|
|
34
|
+
from { opacity: 0; transform: translateY(8px); }
|
|
35
|
+
to { opacity: 1; transform: translateY(0); }
|
|
36
|
+
}
|
|
37
|
+
@keyframes scaleIn {
|
|
38
|
+
from { transform: scale(0); opacity: 0; }
|
|
39
|
+
to { transform: scale(1); opacity: 1; }
|
|
40
|
+
}
|
|
41
|
+
@keyframes drawPath {
|
|
42
|
+
from { stroke-dashoffset: var(--path-length); }
|
|
43
|
+
to { stroke-dashoffset: 0; }
|
|
44
|
+
}
|
|
45
|
+
@keyframes radarReveal {
|
|
46
|
+
from { transform: scale(0); opacity: 0; }
|
|
47
|
+
to { transform: scale(1); opacity: 0.6; }
|
|
48
|
+
}
|
|
49
|
+
.fade-1 { animation: fadeIn 0.6s ease-out 0.1s both; }
|
|
50
|
+
.fade-2 { animation: fadeIn 0.6s ease-out 0.25s both; }
|
|
51
|
+
.fade-3 { animation: fadeIn 0.6s ease-out 0.4s both; }
|
|
52
|
+
.fade-4 { animation: fadeIn 0.6s ease-out 0.55s both; }
|
|
53
|
+
.fade-5 { animation: fadeIn 0.6s ease-out 0.7s both; }
|
|
54
|
+
.fade-6 { animation: fadeIn 0.6s ease-out 0.85s both; }
|
|
55
|
+
</style></defs><rect width="808" height="470" rx="12" class="bg-fill" fill="#0d1117"/><text x="24" y="40" class="t t-h">PROJECT CONSTELLATION</text><text x="24" y="56" class="t t-sub">Projects mapped by language ecosystem and complexity</text><line x1="86.66666666666666" y1="96" x2="540.0000000000001" y2="120.53875511853082" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="86.66666666666666" y1="96" x2="101.77777777777777" y2="142.49828082510157" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="86.66666666666666" y1="96" x2="691.1111111111112" y2="158.0073118714582" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="86.66666666666666" y1="96" x2="701.1851851851852" y2="201.5334554563757" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="86.66666666666666" y1="96" x2="630.6666666666667" y2="227.2225043401914" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="86.66666666666666" y1="96" x2="711.2592592592594" y2="232.3782668531791" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="86.66666666666666" y1="96" x2="546.0444444444445" y2="258.631934808372" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="86.66666666666666" y1="96" x2="474.51851851851853" y2="278.8434847437097" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="86.66666666666666" y1="96" x2="116.88888888888889" y2="283.6542853176344" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="86.66666666666666" y1="96" x2="558.1333333333334" y2="292.3106325882719" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="86.66666666666666" y1="96" x2="570.2222222222223" y2="329.166624380661" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="313.33333333333337" y1="112.79041969174966" x2="464.44444444444446" y2="164.67436990155963" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="313.33333333333337" y1="112.79041969174966" x2="711.2592592592594" y2="232.3782668531791" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="313.33333333333337" y1="112.79041969174966" x2="343.55555555555554" y2="246.46261287346326" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="313.33333333333337" y1="112.79041969174966" x2="474.51851851851853" y2="278.8434847437097" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="540.0000000000001" y1="120.53875511853082" x2="101.77777777777777" y2="142.49828082510157" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="540.0000000000001" y1="120.53875511853082" x2="701.1851851851852" y2="201.5334554563757" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="540.0000000000001" y1="120.53875511853082" x2="630.6666666666667" y2="227.2225043401914" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="540.0000000000001" y1="120.53875511853082" x2="711.2592592592594" y2="232.3782668531791" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="540.0000000000001" y1="120.53875511853082" x2="546.0444444444445" y2="258.631934808372" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="540.0000000000001" y1="120.53875511853082" x2="552.088888888889" y2="274.54624873266056" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="540.0000000000001" y1="120.53875511853082" x2="474.51851851851853" y2="278.8434847437097" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="540.0000000000001" y1="120.53875511853082" x2="558.1333333333334" y2="292.3106325882719" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="540.0000000000001" y1="120.53875511853082" x2="564.1777777777779" y2="307.862976308606" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="540.0000000000001" y1="120.53875511853082" x2="570.2222222222223" y2="329.166624380661" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="101.77777777777777" y1="142.49828082510157" x2="701.1851851851852" y2="201.5334554563757" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="101.77777777777777" y1="142.49828082510157" x2="630.6666666666667" y2="227.2225043401914" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="101.77777777777777" y1="142.49828082510157" x2="711.2592592592594" y2="232.3782668531791" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="101.77777777777777" y1="142.49828082510157" x2="546.0444444444445" y2="258.631934808372" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="101.77777777777777" y1="142.49828082510157" x2="116.88888888888889" y2="283.6542853176344" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="101.77777777777777" y1="142.49828082510157" x2="558.1333333333334" y2="292.3106325882719" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="101.77777777777777" y1="142.49828082510157" x2="570.2222222222223" y2="329.166624380661" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="691.1111111111112" y1="158.0073118714582" x2="701.1851851851852" y2="201.5334554563757" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="691.1111111111112" y1="158.0073118714582" x2="711.2592592592594" y2="232.3782668531791" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="691.1111111111112" y1="158.0073118714582" x2="252.88888888888889" y2="328.39937129877455" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="464.44444444444446" y1="164.67436990155963" x2="711.2592592592594" y2="232.3782668531791" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="464.44444444444446" y1="164.67436990155963" x2="343.55555555555554" y2="246.46261287346326" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="464.44444444444446" y1="164.67436990155963" x2="474.51851851851853" y2="278.8434847437097" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="701.1851851851852" y1="201.5334554563757" x2="630.6666666666667" y2="227.2225043401914" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="701.1851851851852" y1="201.5334554563757" x2="711.2592592592594" y2="232.3782668531791" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="701.1851851851852" y1="201.5334554563757" x2="546.0444444444445" y2="258.631934808372" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="701.1851851851852" y1="201.5334554563757" x2="474.51851851851853" y2="278.8434847437097" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="701.1851851851852" y1="201.5334554563757" x2="116.88888888888889" y2="283.6542853176344" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="701.1851851851852" y1="201.5334554563757" x2="558.1333333333334" y2="292.3106325882719" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="701.1851851851852" y1="201.5334554563757" x2="252.88888888888889" y2="328.39937129877455" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="701.1851851851852" y1="201.5334554563757" x2="570.2222222222223" y2="329.166624380661" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="630.6666666666667" y1="227.2225043401914" x2="711.2592592592594" y2="232.3782668531791" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="630.6666666666667" y1="227.2225043401914" x2="546.0444444444445" y2="258.631934808372" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="630.6666666666667" y1="227.2225043401914" x2="558.1333333333334" y2="292.3106325882719" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="630.6666666666667" y1="227.2225043401914" x2="192.44444444444446" y2="302.2601725533792" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="630.6666666666667" y1="227.2225043401914" x2="570.2222222222223" y2="329.166624380661" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="711.2592592592594" y1="232.3782668531791" x2="343.55555555555554" y2="246.46261287346326" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="711.2592592592594" y1="232.3782668531791" x2="546.0444444444445" y2="258.631934808372" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="711.2592592592594" y1="232.3782668531791" x2="474.51851851851853" y2="278.8434847437097" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="711.2592592592594" y1="232.3782668531791" x2="116.88888888888889" y2="283.6542853176344" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="711.2592592592594" y1="232.3782668531791" x2="558.1333333333334" y2="292.3106325882719" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="711.2592592592594" y1="232.3782668531791" x2="484.59259259259255" y2="305.5148106265424" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="711.2592592592594" y1="232.3782668531791" x2="252.88888888888889" y2="328.39937129877455" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="711.2592592592594" y1="232.3782668531791" x2="570.2222222222223" y2="329.166624380661" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="343.55555555555554" y1="246.46261287346326" x2="474.51851851851853" y2="278.8434847437097" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="546.0444444444445" y1="258.631934808372" x2="552.088888888889" y2="274.54624873266056" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="546.0444444444445" y1="258.631934808372" x2="558.1333333333334" y2="292.3106325882719" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="546.0444444444445" y1="258.631934808372" x2="564.1777777777779" y2="307.862976308606" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="546.0444444444445" y1="258.631934808372" x2="570.2222222222223" y2="329.166624380661" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="552.088888888889" y1="274.54624873266056" x2="558.1333333333334" y2="292.3106325882719" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="552.088888888889" y1="274.54624873266056" x2="564.1777777777779" y2="307.862976308606" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="552.088888888889" y1="274.54624873266056" x2="570.2222222222223" y2="329.166624380661" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="558.1333333333334" y1="292.3106325882719" x2="564.1777777777779" y2="307.862976308606" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="558.1333333333334" y1="292.3106325882719" x2="570.2222222222223" y2="329.166624380661" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><line x1="564.1777777777779" y1="307.862976308606" x2="570.2222222222223" y2="329.166624380661" stroke="#30363d" stroke-width="1" stroke-opacity="0.15" stroke-dasharray="4 4"/><circle cx="86.66666666666666" cy="96" r="26" fill="#00ADD8" fill-opacity="0.08" class="fade-1"/><circle cx="86.66666666666666" cy="96" r="22" fill="#00ADD8" fill-opacity="0.7" stroke="#00ADD8" stroke-width="1.5" stroke-opacity="0.9" class="fade-1"/><text x="86.66666666666666" y="132" class="t t-value fade-1" text-anchor="middle">resume-generator</text><circle cx="313.33333333333337" cy="112.79041969174966" r="26" fill="#DA5B0B" fill-opacity="0.08" class="fade-2"/><circle cx="313.33333333333337" cy="112.79041969174966" r="22" fill="#DA5B0B" fill-opacity="0.7" stroke="#DA5B0B" stroke-width="1.5" stroke-opacity="0.9" class="fade-2"/><text x="313.33333333333337" y="148.79041969174966" class="t t-value fade-2" text-anchor="middle">lepus-classifier</text><circle cx="540.0000000000001" cy="120.53875511853082" r="26" fill="#dea584" fill-opacity="0.08" class="fade-3"/><circle cx="540.0000000000001" cy="120.53875511853082" r="22" fill="#dea584" fill-opacity="0.7" stroke="#dea584" stroke-width="1.5" stroke-opacity="0.9" class="fade-3"/><text x="540.0000000000001" y="156.53875511853082" class="t t-value fade-3" text-anchor="middle">linear-gp</text><circle cx="101.77777777777777" cy="142.49828082510157" r="26" fill="#00ADD8" fill-opacity="0.08" class="fade-4"/><circle cx="101.77777777777777" cy="142.49828082510157" r="22" fill="#00ADD8" fill-opacity="0.7" stroke="#00ADD8" stroke-width="1.5" stroke-opacity="0.9" class="fade-4"/><text x="101.77777777777777" y="178.49828082510157" class="t t-value fade-4" text-anchor="middle">zigbee-rest</text><circle cx="691.1111111111112" cy="158.0073118714582" r="26" fill="#3178c6" fill-opacity="0.08" class="fade-5"/><circle cx="691.1111111111112" cy="158.0073118714582" r="22" fill="#3178c6" fill-opacity="0.7" stroke="#3178c6" stroke-width="1.5" stroke-opacity="0.9" class="fade-5"/><text x="691.1111111111112" y="194.0073118714582" class="t t-value fade-5" text-anchor="middle">urmzd.com</text><circle cx="464.44444444444446" cy="164.67436990155963" r="26" fill="#3572A5" fill-opacity="0.08" class="fade-6"/><circle cx="464.44444444444446" cy="164.67436990155963" r="22" fill="#3572A5" fill-opacity="0.7" stroke="#3572A5" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="464.44444444444446" y="200.67436990155963" class="t t-value fade-6" text-anchor="middle">exp-agi-models</text><circle cx="701.1851851851852" cy="201.5334554563757" r="22.32055238935067" fill="#3178c6" fill-opacity="0.08" class="fade-6"/><circle cx="701.1851851851852" cy="201.5334554563757" r="18.32055238935067" fill="#3178c6" fill-opacity="0.7" stroke="#3178c6" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="701.1851851851852" y="233.85400784572636" class="t t-value fade-6" text-anchor="middle">resume-generator-…</text><circle cx="630.6666666666667" cy="227.2225043401914" r="21.644993857961033" fill="#89e051" fill-opacity="0.08" class="fade-6"/><circle cx="630.6666666666667" cy="227.2225043401914" r="17.644993857961033" fill="#89e051" fill-opacity="0.7" stroke="#89e051" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="630.6666666666667" y="258.8674981981524" class="t t-value fade-6" text-anchor="middle">dotfiles</text><circle cx="711.2592592592594" cy="232.3782668531791" r="15.061182065019677" fill="#3178c6" fill-opacity="0.08" class="fade-6"/><circle cx="711.2592592592594" cy="232.3782668531791" r="11.061182065019677" fill="#3178c6" fill-opacity="0.7" stroke="#3178c6" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="711.2592592592594" y="257.43944891819876" class="t t-value fade-6" text-anchor="middle">zoro</text><circle cx="343.55555555555554" cy="246.46261287346326" r="25.36863924926572" fill="#DA5B0B" fill-opacity="0.08" class="fade-6"/><circle cx="343.55555555555554" cy="246.46261287346326" r="21.36863924926572" fill="#DA5B0B" fill-opacity="0.7" stroke="#DA5B0B" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="343.55555555555554" y="281.831252122729" class="t t-value fade-6" text-anchor="middle">md-classifier</text><circle cx="546.0444444444445" cy="258.631934808372" r="20.751279260918498" fill="#dea584" fill-opacity="0.08" class="fade-6"/><circle cx="546.0444444444445" cy="258.631934808372" r="16.751279260918498" fill="#dea584" fill-opacity="0.7" stroke="#dea584" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="546.0444444444445" y="289.38321406929055" class="t t-value fade-6" text-anchor="middle">oag</text><circle cx="552.088888888889" cy="274.54624873266056" r="26" fill="#dea584" fill-opacity="0.08" class="fade-6"/><circle cx="552.088888888889" cy="274.54624873266056" r="22" fill="#dea584" fill-opacity="0.7" stroke="#dea584" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="552.088888888889" y="310.54624873266056" class="t t-value fade-6" text-anchor="middle">teasr</text><circle cx="474.51851851851853" cy="278.8434847437097" r="25.46688344753587" fill="#3572A5" fill-opacity="0.08" class="fade-6"/><circle cx="474.51851851851853" cy="278.8434847437097" r="21.46688344753587" fill="#3572A5" fill-opacity="0.7" stroke="#3572A5" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="474.51851851851853" y="314.3103681912456" class="t t-value fade-6" text-anchor="middle">languide</text><circle cx="116.88888888888889" cy="283.6542853176344" r="13.54807689254857" fill="#00ADD8" fill-opacity="0.08" class="fade-6"/><circle cx="116.88888888888889" cy="283.6542853176344" r="9.54807689254857" fill="#00ADD8" fill-opacity="0.7" stroke="#00ADD8" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="116.88888888888889" y="307.20236221018297" class="t t-value fade-6" text-anchor="middle">gadk</text><circle cx="162.22222222222223" cy="286.5269007993924" r="24.861890796612347" fill="#b07219" fill-opacity="0.08" class="fade-6"/><circle cx="162.22222222222223" cy="286.5269007993924" r="20.861890796612347" fill="#b07219" fill-opacity="0.7" stroke="#b07219" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="162.22222222222223" y="321.38879159600475" class="t t-value fade-6" text-anchor="middle">flappy-bird</text><circle cx="558.1333333333334" cy="292.3106325882719" r="15.591815351271915" fill="#dea584" fill-opacity="0.08" class="fade-6"/><circle cx="558.1333333333334" cy="292.3106325882719" r="11.591815351271915" fill="#dea584" fill-opacity="0.7" stroke="#dea584" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="558.1333333333334" y="317.90244793954383" class="t t-value fade-6" text-anchor="middle">sr</text><circle cx="192.44444444444446" cy="302.2601725533792" r="14.637905107315877" fill="#b07219" fill-opacity="0.08" class="fade-6"/><circle cx="192.44444444444446" cy="302.2601725533792" r="10.637905107315877" fill="#b07219" fill-opacity="0.7" stroke="#b07219" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="192.44444444444446" y="326.8980776606951" class="t t-value fade-6" text-anchor="middle">barter-trader</text><circle cx="484.59259259259255" cy="305.5148106265424" r="14.425254648846348" fill="#3572A5" fill-opacity="0.08" class="fade-6"/><circle cx="484.59259259259255" cy="305.5148106265424" r="10.425254648846348" fill="#3572A5" fill-opacity="0.7" stroke="#3572A5" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="484.59259259259255" y="329.94006527538875" class="t t-value fade-6" text-anchor="middle">chess-cli</text><circle cx="564.1777777777779" cy="307.862976308606" r="11.88282051438895" fill="#dea584" fill-opacity="0.08" class="fade-6"/><circle cx="564.1777777777779" cy="307.862976308606" r="7.88282051438895" fill="#dea584" fill-opacity="0.7" stroke="#dea584" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="564.1777777777779" y="329.7457968229949" class="t t-value fade-6" text-anchor="middle">embed-src</text><circle cx="252.88888888888889" cy="328.39937129877455" r="12.127871907170075" fill="#f1e05a" fill-opacity="0.08" class="fade-6"/><circle cx="252.88888888888889" cy="328.39937129877455" r="8.127871907170075" fill="#f1e05a" fill-opacity="0.7" stroke="#f1e05a" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="252.88888888888889" y="350.5272432059446" class="t t-value fade-6" text-anchor="middle">cypress-name-too-…</text><circle cx="570.2222222222223" cy="329.166624380661" r="10" fill="#dea584" fill-opacity="0.08" class="fade-6"/><circle cx="570.2222222222223" cy="329.166624380661" r="6" fill="#dea584" fill-opacity="0.7" stroke="#dea584" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="570.2222222222223" y="349.166624380661" class="t t-value fade-6" text-anchor="middle">gitit</text><circle cx="721.3333333333334" cy="332.76467008321686" r="23.983196439420844" fill="#3178c6" fill-opacity="0.08" class="fade-6"/><circle cx="721.3333333333334" cy="332.76467008321686" r="19.983196439420844" fill="#3178c6" fill-opacity="0.7" stroke="#3178c6" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="721.3333333333334" y="366.7478665226377" class="t t-value fade-6" text-anchor="middle">github-insights</text><circle cx="494.66666666666663" cy="338.50050562280296" r="10" fill="#3572A5" fill-opacity="0.08" class="fade-6"/><circle cx="494.66666666666663" cy="338.50050562280296" r="6" fill="#3572A5" fill-opacity="0.7" stroke="#3572A5" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="494.66666666666663" y="358.50050562280296" class="t t-value fade-6" text-anchor="middle">lightning-kfold</text><circle cx="404" cy="376" r="11.769290460954931" fill="#8b949e" fill-opacity="0.08" class="fade-6"/><circle cx="404" cy="376" r="7.769290460954932" fill="#8b949e" fill-opacity="0.7" stroke="#8b949e" stroke-width="1.5" stroke-opacity="0.9" class="fade-6"/><text x="404" y="397.76929046095495" class="t t-value fade-6" text-anchor="middle">urmzd</text></svg>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="808" height="210" viewBox="0 0 808 210"><defs><style>
|
|
2
|
+
.t { font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif; font-variant-numeric: tabular-lining; }
|
|
3
|
+
.t-h { font-size: 14px; fill: #c9d1d9; letter-spacing: 2px; font-weight: 600; }
|
|
4
|
+
.t-sub { font-size: 11px; fill: #6e7681; }
|
|
5
|
+
.t-label { font-size: 12px; fill: #8b949e; }
|
|
6
|
+
.t-value { font-size: 11px; fill: #6e7681; }
|
|
7
|
+
.t-subhdr { font-size: 11px; fill: #8b949e; letter-spacing: 1px; font-weight: 600; }
|
|
8
|
+
.t-stat-label { font-size: 10px; fill: #8b949e; font-weight: 600; }
|
|
9
|
+
.t-stat-value { font-size: 22px; font-weight: 700; }
|
|
10
|
+
.t-card-title { font-size: 12px; fill: #58a6ff; font-weight: 700; }
|
|
11
|
+
.t-card-detail { font-size: 11px; fill: #8b949e; }
|
|
12
|
+
.t-pill { font-size: 11px; font-weight: 600; }
|
|
13
|
+
.t-bullet { font-size: 12px; fill: #c9d1d9; }
|
|
14
|
+
.bg-fill { fill: #0d1117; }
|
|
15
|
+
.card-fill { fill: #161b22; }
|
|
16
|
+
.border-stroke { stroke: #30363d; }
|
|
17
|
+
|
|
18
|
+
@media (prefers-color-scheme: light) {
|
|
19
|
+
.bg-fill { fill: #ffffff; }
|
|
20
|
+
.card-fill { fill: #f6f8fa; }
|
|
21
|
+
.border-stroke { stroke: #d0d7de; }
|
|
22
|
+
.t-h { fill: #1f2328; }
|
|
23
|
+
.t-sub { fill: #656d76; }
|
|
24
|
+
.t-label { fill: #656d76; }
|
|
25
|
+
.t-value { fill: #656d76; }
|
|
26
|
+
.t-subhdr { fill: #656d76; }
|
|
27
|
+
.t-stat-label { fill: #656d76; }
|
|
28
|
+
.t-card-title { fill: #0969da; }
|
|
29
|
+
.t-card-detail { fill: #656d76; }
|
|
30
|
+
.t-bullet { fill: #1f2328; }
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@keyframes fadeIn {
|
|
34
|
+
from { opacity: 0; transform: translateY(8px); }
|
|
35
|
+
to { opacity: 1; transform: translateY(0); }
|
|
36
|
+
}
|
|
37
|
+
@keyframes scaleIn {
|
|
38
|
+
from { transform: scale(0); opacity: 0; }
|
|
39
|
+
to { transform: scale(1); opacity: 1; }
|
|
40
|
+
}
|
|
41
|
+
@keyframes drawPath {
|
|
42
|
+
from { stroke-dashoffset: var(--path-length); }
|
|
43
|
+
to { stroke-dashoffset: 0; }
|
|
44
|
+
}
|
|
45
|
+
@keyframes radarReveal {
|
|
46
|
+
from { transform: scale(0); opacity: 0; }
|
|
47
|
+
to { transform: scale(1); opacity: 0.6; }
|
|
48
|
+
}
|
|
49
|
+
.fade-1 { animation: fadeIn 0.6s ease-out 0.1s both; }
|
|
50
|
+
.fade-2 { animation: fadeIn 0.6s ease-out 0.25s both; }
|
|
51
|
+
.fade-3 { animation: fadeIn 0.6s ease-out 0.4s both; }
|
|
52
|
+
.fade-4 { animation: fadeIn 0.6s ease-out 0.55s both; }
|
|
53
|
+
.fade-5 { animation: fadeIn 0.6s ease-out 0.7s both; }
|
|
54
|
+
.fade-6 { animation: fadeIn 0.6s ease-out 0.85s both; }
|
|
55
|
+
</style></defs><rect width="808" height="210" rx="12" class="bg-fill" fill="#0d1117"/><text x="24" y="40" class="t t-h">OPEN SOURCE IMPACT</text><text x="24" y="56" class="t t-sub">External repositories contributed to</text><text x="24" y="88" class="t t-card-title fade-1">getzep/graphiti</text><rect x="304" y="78" width="400" height="12" rx="3" fill="#58a6ff" fill-opacity="0.7" class="fade-1"/><text x="720" y="88" class="t t-value fade-1">★ 24,055</text><text x="784" y="88" class="t t-value fade-1">Python</text><text x="24" y="130" class="t t-card-title fade-2">googleapis/python-aiplatform</text><rect x="304" y="120" width="268.55616835256285" height="12" rx="3" fill="#3fb950" fill-opacity="0.7" class="fade-2"/><text x="720" y="130" class="t t-value fade-2">★ 873</text><text x="784" y="130" class="t t-value fade-2">Python</text><text x="24" y="172" class="t t-card-title fade-3">MathisWellmann/gym-rs</text><rect x="304" y="162" width="192.3855297941612" height="12" rx="3" fill="#d29922" fill-opacity="0.7" class="fade-3"/><text x="720" y="172" class="t t-value fade-3">★ 127</text><text x="784" y="172" class="t t-value fade-3">Rust</text></svg>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="808" height="340" viewBox="0 0 808 340"><defs><style>
|
|
2
|
+
.t { font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif; font-variant-numeric: tabular-lining; }
|
|
3
|
+
.t-h { font-size: 14px; fill: #c9d1d9; letter-spacing: 2px; font-weight: 600; }
|
|
4
|
+
.t-sub { font-size: 11px; fill: #6e7681; }
|
|
5
|
+
.t-label { font-size: 12px; fill: #8b949e; }
|
|
6
|
+
.t-value { font-size: 11px; fill: #6e7681; }
|
|
7
|
+
.t-subhdr { font-size: 11px; fill: #8b949e; letter-spacing: 1px; font-weight: 600; }
|
|
8
|
+
.t-stat-label { font-size: 10px; fill: #8b949e; font-weight: 600; }
|
|
9
|
+
.t-stat-value { font-size: 22px; font-weight: 700; }
|
|
10
|
+
.t-card-title { font-size: 12px; fill: #58a6ff; font-weight: 700; }
|
|
11
|
+
.t-card-detail { font-size: 11px; fill: #8b949e; }
|
|
12
|
+
.t-pill { font-size: 11px; font-weight: 600; }
|
|
13
|
+
.t-bullet { font-size: 12px; fill: #c9d1d9; }
|
|
14
|
+
.bg-fill { fill: #0d1117; }
|
|
15
|
+
.card-fill { fill: #161b22; }
|
|
16
|
+
.border-stroke { stroke: #30363d; }
|
|
17
|
+
|
|
18
|
+
@media (prefers-color-scheme: light) {
|
|
19
|
+
.bg-fill { fill: #ffffff; }
|
|
20
|
+
.card-fill { fill: #f6f8fa; }
|
|
21
|
+
.border-stroke { stroke: #d0d7de; }
|
|
22
|
+
.t-h { fill: #1f2328; }
|
|
23
|
+
.t-sub { fill: #656d76; }
|
|
24
|
+
.t-label { fill: #656d76; }
|
|
25
|
+
.t-value { fill: #656d76; }
|
|
26
|
+
.t-subhdr { fill: #656d76; }
|
|
27
|
+
.t-stat-label { fill: #656d76; }
|
|
28
|
+
.t-card-title { fill: #0969da; }
|
|
29
|
+
.t-card-detail { fill: #656d76; }
|
|
30
|
+
.t-bullet { fill: #1f2328; }
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@keyframes fadeIn {
|
|
34
|
+
from { opacity: 0; transform: translateY(8px); }
|
|
35
|
+
to { opacity: 1; transform: translateY(0); }
|
|
36
|
+
}
|
|
37
|
+
@keyframes scaleIn {
|
|
38
|
+
from { transform: scale(0); opacity: 0; }
|
|
39
|
+
to { transform: scale(1); opacity: 1; }
|
|
40
|
+
}
|
|
41
|
+
@keyframes drawPath {
|
|
42
|
+
from { stroke-dashoffset: var(--path-length); }
|
|
43
|
+
to { stroke-dashoffset: 0; }
|
|
44
|
+
}
|
|
45
|
+
@keyframes radarReveal {
|
|
46
|
+
from { transform: scale(0); opacity: 0; }
|
|
47
|
+
to { transform: scale(1); opacity: 0.6; }
|
|
48
|
+
}
|
|
49
|
+
.fade-1 { animation: fadeIn 0.6s ease-out 0.1s both; }
|
|
50
|
+
.fade-2 { animation: fadeIn 0.6s ease-out 0.25s both; }
|
|
51
|
+
.fade-3 { animation: fadeIn 0.6s ease-out 0.4s both; }
|
|
52
|
+
.fade-4 { animation: fadeIn 0.6s ease-out 0.55s both; }
|
|
53
|
+
.fade-5 { animation: fadeIn 0.6s ease-out 0.7s both; }
|
|
54
|
+
.fade-6 { animation: fadeIn 0.6s ease-out 0.85s both; }
|
|
55
|
+
</style></defs><rect width="808" height="340" rx="12" class="bg-fill" fill="#0d1117"/><text x="24" y="40" class="t t-h">CONTRIBUTION RHYTHM</text><text x="24" y="56" class="t t-sub">Activity patterns and statistics over the past year</text><circle cx="144" cy="186" r="22.5" fill="none" stroke="#30363d" stroke-width="1" stroke-opacity="0.4"/><circle cx="144" cy="186" r="45" fill="none" stroke="#30363d" stroke-width="1" stroke-opacity="0.4"/><circle cx="144" cy="186" r="67.5" fill="none" stroke="#30363d" stroke-width="1" stroke-opacity="0.4"/><circle cx="144" cy="186" r="90" fill="none" stroke="#30363d" stroke-width="1" stroke-opacity="0.4"/><line x1="144" y1="186" x2="144" y2="96" stroke="#30363d" stroke-width="1" stroke-opacity="0.3"/><line x1="144" y1="186" x2="214.36483342212267" y2="129.88591783271397" stroke="#30363d" stroke-width="1" stroke-opacity="0.3"/><line x1="144" y1="186" x2="231.74351209636413" y2="206.0268840560683" stroke="#30363d" stroke-width="1" stroke-opacity="0.3"/><line x1="144" y1="186" x2="183.04953652058023" y2="267.08719811121773" stroke="#30363d" stroke-width="1" stroke-opacity="0.3"/><line x1="144" y1="186" x2="104.95046347941977" y2="267.08719811121773" stroke="#30363d" stroke-width="1" stroke-opacity="0.3"/><line x1="144" y1="186" x2="56.25648790363587" y2="206.0268840560683" stroke="#30363d" stroke-width="1" stroke-opacity="0.3"/><line x1="144" y1="186" x2="73.63516657787731" y2="129.885917832714" stroke="#30363d" stroke-width="1" stroke-opacity="0.3"/><polygon points="144,160.02272727272728 176.46377541975204,160.11100300009304 172.11780728542578,192.41770602705824 154.91612043643494,208.66755765381768 132.551385883739,209.7732921735161 56.25648790363587,206.0268840560683 96.18389728814844,147.86793052723064" fill="#58a6ff" fill-opacity="0.2" stroke="#58a6ff" stroke-width="2" stroke-opacity="0.8" class="fade-2" style="transform-origin: 144px 186px"/><circle cx="144" cy="160.02272727272728" r="3" fill="#58a6ff" class="fade-1"/><circle cx="176.46377541975204" cy="160.11100300009304" r="3" fill="#58a6ff" class="fade-2"/><circle cx="172.11780728542578" cy="192.41770602705824" r="3" fill="#58a6ff" class="fade-3"/><circle cx="154.91612043643494" cy="208.66755765381768" r="3" fill="#58a6ff" class="fade-4"/><circle cx="132.551385883739" cy="209.7732921735161" r="3" fill="#58a6ff" class="fade-5"/><circle cx="56.25648790363587" cy="206.0268840560683" r="3" fill="#58a6ff" class="fade-6"/><circle cx="96.18389728814844" cy="147.86793052723064" r="3" fill="#58a6ff" class="fade-6"/><text x="144" y="84" class="t t-value" text-anchor="middle">Sun</text><text x="226.87413714161116" y="123.91008100297425" class="t t-value" text-anchor="middle">Mon</text><text x="247.34235869127332" y="213.58721899936933" class="t t-value" text-anchor="middle">Tue</text><text x="189.99167634646116" y="285.50269999765646" class="t t-value" text-anchor="middle">Wed</text><text x="98.00832365353884" y="285.50269999765646" class="t t-value" text-anchor="middle">Thu</text><text x="40.657641308726696" y="213.58721899936933" class="t t-value" text-anchor="middle">Fri</text><text x="61.12586285838883" y="123.91008100297427" class="t t-value" text-anchor="middle">Sat</text><text x="324" y="96" class="t t-stat-label">COMMITS</text><text x="324" y="118" fill="#58a6ff" class="t t-stat-value">1,352</text><text x="324" y="138" class="t t-stat-label">PRS</text><text x="324" y="160" fill="#3fb950" class="t t-stat-value">4</text><text x="324" y="180" class="t t-stat-label">REVIEWS</text><text x="324" y="202" fill="#d29922" class="t t-stat-value">5</text><text x="324" y="222" class="t t-stat-label">REPOS</text><text x="324" y="244" fill="#bc8cff" class="t t-stat-value">24</text><text x="324" y="264" class="t t-stat-label">STREAK</text><text x="324" y="286" fill="#39d2c0" class="t t-stat-value">15d</text><text x="324" y="316" class="t t-sub">Most active: Fridays</text></svg>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="808" height="250" viewBox="0 0 808 250"><defs><style>
|
|
2
|
+
.t { font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif; font-variant-numeric: tabular-lining; }
|
|
3
|
+
.t-h { font-size: 14px; fill: #c9d1d9; letter-spacing: 2px; font-weight: 600; }
|
|
4
|
+
.t-sub { font-size: 11px; fill: #6e7681; }
|
|
5
|
+
.t-label { font-size: 12px; fill: #8b949e; }
|
|
6
|
+
.t-value { font-size: 11px; fill: #6e7681; }
|
|
7
|
+
.t-subhdr { font-size: 11px; fill: #8b949e; letter-spacing: 1px; font-weight: 600; }
|
|
8
|
+
.t-stat-label { font-size: 10px; fill: #8b949e; font-weight: 600; }
|
|
9
|
+
.t-stat-value { font-size: 22px; font-weight: 700; }
|
|
10
|
+
.t-card-title { font-size: 12px; fill: #58a6ff; font-weight: 700; }
|
|
11
|
+
.t-card-detail { font-size: 11px; fill: #8b949e; }
|
|
12
|
+
.t-pill { font-size: 11px; font-weight: 600; }
|
|
13
|
+
.t-bullet { font-size: 12px; fill: #c9d1d9; }
|
|
14
|
+
.bg-fill { fill: #0d1117; }
|
|
15
|
+
.card-fill { fill: #161b22; }
|
|
16
|
+
.border-stroke { stroke: #30363d; }
|
|
17
|
+
|
|
18
|
+
@media (prefers-color-scheme: light) {
|
|
19
|
+
.bg-fill { fill: #ffffff; }
|
|
20
|
+
.card-fill { fill: #f6f8fa; }
|
|
21
|
+
.border-stroke { stroke: #d0d7de; }
|
|
22
|
+
.t-h { fill: #1f2328; }
|
|
23
|
+
.t-sub { fill: #656d76; }
|
|
24
|
+
.t-label { fill: #656d76; }
|
|
25
|
+
.t-value { fill: #656d76; }
|
|
26
|
+
.t-subhdr { fill: #656d76; }
|
|
27
|
+
.t-stat-label { fill: #656d76; }
|
|
28
|
+
.t-card-title { fill: #0969da; }
|
|
29
|
+
.t-card-detail { fill: #656d76; }
|
|
30
|
+
.t-bullet { fill: #1f2328; }
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@keyframes fadeIn {
|
|
34
|
+
from { opacity: 0; transform: translateY(8px); }
|
|
35
|
+
to { opacity: 1; transform: translateY(0); }
|
|
36
|
+
}
|
|
37
|
+
@keyframes scaleIn {
|
|
38
|
+
from { transform: scale(0); opacity: 0; }
|
|
39
|
+
to { transform: scale(1); opacity: 1; }
|
|
40
|
+
}
|
|
41
|
+
@keyframes drawPath {
|
|
42
|
+
from { stroke-dashoffset: var(--path-length); }
|
|
43
|
+
to { stroke-dashoffset: 0; }
|
|
44
|
+
}
|
|
45
|
+
@keyframes radarReveal {
|
|
46
|
+
from { transform: scale(0); opacity: 0; }
|
|
47
|
+
to { transform: scale(1); opacity: 0.6; }
|
|
48
|
+
}
|
|
49
|
+
.fade-1 { animation: fadeIn 0.6s ease-out 0.1s both; }
|
|
50
|
+
.fade-2 { animation: fadeIn 0.6s ease-out 0.25s both; }
|
|
51
|
+
.fade-3 { animation: fadeIn 0.6s ease-out 0.4s both; }
|
|
52
|
+
.fade-4 { animation: fadeIn 0.6s ease-out 0.55s both; }
|
|
53
|
+
.fade-5 { animation: fadeIn 0.6s ease-out 0.7s both; }
|
|
54
|
+
.fade-6 { animation: fadeIn 0.6s ease-out 0.85s both; }
|
|
55
|
+
</style></defs><rect width="808" height="250" rx="12" class="bg-fill" fill="#0d1117"/><text x="24" y="40" class="t t-h">LANGUAGE VELOCITY</text><text x="24" y="56" class="t t-sub">How language usage has evolved over the past year</text><path d="M 24,206 C 55.66666666666667,206 55.66666666666667,206 87.33333333333334,206 C 119.00000000000001,206 119.00000000000001,205.24865831842575 150.66666666666669,205.24865831842575 C 182.33333333333334,205.24865831842575 182.33333333333334,204.4973166368515 214,204.4973166368515 C 245.66666666666669,204.4973166368515 245.66666666666669,205.49910554561717 277.33333333333337,205.49910554561717 C 309,205.49910554561717 309,206 340.6666666666667,206 C 372.33333333333337,206 372.33333333333337,195.98211091234347 404,195.98211091234347 C 435.6666666666667,195.98211091234347 435.6666666666667,203.9964221824687 467.33333333333337,203.9964221824687 C 499.00000000000006,203.9964221824687 499.00000000000006,198.23613595706618 530.6666666666667,198.23613595706618 C 562.3333333333334,198.23613595706618 562.3333333333334,204.4973166368515 594,204.4973166368515 C 625.6666666666667,204.4973166368515 625.6666666666667,157.66368515205724 657.3333333333334,157.66368515205724 C 689,157.66368515205724 689,87.28801431127013 720.6666666666667,87.28801431127013 C 752.3333333333334,87.28801431127013 752.3333333333334,66 784,66 L 784,67.25223613595705 C 752.3333333333334,67.25223613595705 752.3333333333334,88.28980322003578 720.6666666666667,88.28980322003578 C 689,88.28980322003578 689,158.16457960644007 657.3333333333334,158.16457960644007 C 625.6666666666667,158.16457960644007 625.6666666666667,204.4973166368515 594,204.4973166368515 C 562.3333333333334,204.4973166368515 562.3333333333334,198.23613595706618 530.6666666666667,198.23613595706618 C 499.00000000000006,198.23613595706618 499.00000000000006,203.9964221824687 467.33333333333337,203.9964221824687 C 435.6666666666667,203.9964221824687 435.6666666666667,195.98211091234347 404,195.98211091234347 C 372.33333333333337,195.98211091234347 372.33333333333337,206 340.6666666666667,206 C 309,206 309,205.49910554561717 277.33333333333337,205.49910554561717 C 245.66666666666669,205.49910554561717 245.66666666666669,204.4973166368515 214,204.4973166368515 C 182.33333333333334,204.4973166368515 182.33333333333334,205.24865831842575 150.66666666666669,205.24865831842575 C 119.00000000000001,205.24865831842575 119.00000000000001,206 87.33333333333334,206 C 55.66666666666667,206 55.66666666666667,206 24,206 Z" fill="#DA5B0B" fill-opacity="0.75" class="fade-1"/><path d="M 24,206 C 55.66666666666667,206 55.66666666666667,206 87.33333333333334,206 C 119.00000000000001,206 119.00000000000001,205.24865831842575 150.66666666666669,205.24865831842575 C 182.33333333333334,205.24865831842575 182.33333333333334,204.4973166368515 214,204.4973166368515 C 245.66666666666669,204.4973166368515 245.66666666666669,205.49910554561717 277.33333333333337,205.49910554561717 C 309,205.49910554561717 309,206 340.6666666666667,206 C 372.33333333333337,206 372.33333333333337,195.98211091234347 404,195.98211091234347 C 435.6666666666667,195.98211091234347 435.6666666666667,203.9964221824687 467.33333333333337,203.9964221824687 C 499.00000000000006,203.9964221824687 499.00000000000006,198.23613595706618 530.6666666666667,198.23613595706618 C 562.3333333333334,198.23613595706618 562.3333333333334,204.4973166368515 594,204.4973166368515 C 625.6666666666667,204.4973166368515 625.6666666666667,158.16457960644007 657.3333333333334,158.16457960644007 C 689,158.16457960644007 689,88.28980322003578 720.6666666666667,88.28980322003578 C 752.3333333333334,88.28980322003578 752.3333333333334,67.25223613595705 784,67.25223613595705 L 784,72.76207513416816 C 752.3333333333334,72.76207513416816 752.3333333333334,93.04830053667264 720.6666666666667,93.04830053667264 C 689,93.04830053667264 689,160.16815742397137 657.3333333333334,160.16815742397137 C 625.6666666666667,160.16815742397137 625.6666666666667,204.4973166368515 594,204.4973166368515 C 562.3333333333334,204.4973166368515 562.3333333333334,198.4865831842576 530.6666666666667,198.4865831842576 C 499.00000000000006,198.4865831842576 499.00000000000006,203.9964221824687 467.33333333333337,203.9964221824687 C 435.6666666666667,203.9964221824687 435.6666666666667,196.4830053667263 404,196.4830053667263 C 372.33333333333337,196.4830053667263 372.33333333333337,206 340.6666666666667,206 C 309,206 309,205.49910554561717 277.33333333333337,205.49910554561717 C 245.66666666666669,205.49910554561717 245.66666666666669,204.4973166368515 214,204.4973166368515 C 182.33333333333334,204.4973166368515 182.33333333333334,205.24865831842575 150.66666666666669,205.24865831842575 C 119.00000000000001,205.24865831842575 119.00000000000001,206 87.33333333333334,206 C 55.66666666666667,206 55.66666666666667,206 24,206 Z" fill="#b07219" fill-opacity="0.75" class="fade-2"/><path d="M 24,206 C 55.66666666666667,206 55.66666666666667,206 87.33333333333334,206 C 119.00000000000001,206 119.00000000000001,205.24865831842575 150.66666666666669,205.24865831842575 C 182.33333333333334,205.24865831842575 182.33333333333334,204.4973166368515 214,204.4973166368515 C 245.66666666666669,204.4973166368515 245.66666666666669,205.49910554561717 277.33333333333337,205.49910554561717 C 309,205.49910554561717 309,206 340.6666666666667,206 C 372.33333333333337,206 372.33333333333337,196.4830053667263 404,196.4830053667263 C 435.6666666666667,196.4830053667263 435.6666666666667,203.9964221824687 467.33333333333337,203.9964221824687 C 499.00000000000006,203.9964221824687 499.00000000000006,198.4865831842576 530.6666666666667,198.4865831842576 C 562.3333333333334,198.4865831842576 562.3333333333334,204.4973166368515 594,204.4973166368515 C 625.6666666666667,204.4973166368515 625.6666666666667,160.16815742397137 657.3333333333334,160.16815742397137 C 689,160.16815742397137 689,93.04830053667264 720.6666666666667,93.04830053667264 C 752.3333333333334,93.04830053667264 752.3333333333334,72.76207513416816 784,72.76207513416816 L 784,87.28801431127013 C 752.3333333333334,87.28801431127013 752.3333333333334,105.32021466905186 720.6666666666667,105.32021466905186 C 689,105.32021466905186 689,165.17710196779964 657.3333333333334,165.17710196779964 C 625.6666666666667,165.17710196779964 625.6666666666667,204.74776386404292 594,204.74776386404292 C 562.3333333333334,204.74776386404292 562.3333333333334,199.23792486583184 530.6666666666667,199.23792486583184 C 499.00000000000006,199.23792486583184 499.00000000000006,204.24686940966012 467.33333333333337,204.24686940966012 C 435.6666666666667,204.24686940966012 435.6666666666667,197.48479427549194 404,197.48479427549194 C 372.33333333333337,197.48479427549194 372.33333333333337,206 340.6666666666667,206 C 309,206 309,205.49910554561717 277.33333333333337,205.49910554561717 C 245.66666666666669,205.49910554561717 245.66666666666669,204.74776386404292 214,204.74776386404292 C 182.33333333333334,204.74776386404292 182.33333333333334,205.24865831842575 150.66666666666669,205.24865831842575 C 119.00000000000001,205.24865831842575 119.00000000000001,206 87.33333333333334,206 C 55.66666666666667,206 55.66666666666667,206 24,206 Z" fill="#3572A5" fill-opacity="0.75" class="fade-3"/><path d="M 24,206 C 55.66666666666667,206 55.66666666666667,206 87.33333333333334,206 C 119.00000000000001,206 119.00000000000001,205.24865831842575 150.66666666666669,205.24865831842575 C 182.33333333333334,205.24865831842575 182.33333333333334,204.74776386404292 214,204.74776386404292 C 245.66666666666669,204.74776386404292 245.66666666666669,205.49910554561717 277.33333333333337,205.49910554561717 C 309,205.49910554561717 309,206 340.6666666666667,206 C 372.33333333333337,206 372.33333333333337,197.48479427549194 404,197.48479427549194 C 435.6666666666667,197.48479427549194 435.6666666666667,204.24686940966012 467.33333333333337,204.24686940966012 C 499.00000000000006,204.24686940966012 499.00000000000006,199.23792486583184 530.6666666666667,199.23792486583184 C 562.3333333333334,199.23792486583184 562.3333333333334,204.74776386404292 594,204.74776386404292 C 625.6666666666667,204.74776386404292 625.6666666666667,165.17710196779964 657.3333333333334,165.17710196779964 C 689,165.17710196779964 689,105.32021466905186 720.6666666666667,105.32021466905186 C 752.3333333333334,105.32021466905186 752.3333333333334,87.28801431127013 784,87.28801431127013 L 784,103.8175313059034 C 752.3333333333334,103.8175313059034 752.3333333333334,119.34525939177102 720.6666666666667,119.34525939177102 C 689,119.34525939177102 689,170.93738819320214 657.3333333333334,170.93738819320214 C 625.6666666666667,170.93738819320214 625.6666666666667,204.99821109123434 594,204.99821109123434 C 562.3333333333334,204.99821109123434 562.3333333333334,200.2397137745975 530.6666666666667,200.2397137745975 C 499.00000000000006,200.2397137745975 499.00000000000006,204.4973166368515 467.33333333333337,204.4973166368515 C 435.6666666666667,204.4973166368515 435.6666666666667,198.737030411449 404,198.737030411449 C 372.33333333333337,198.737030411449 372.33333333333337,206 340.6666666666667,206 C 309,206 309,205.49910554561717 277.33333333333337,205.49910554561717 C 245.66666666666669,205.49910554561717 245.66666666666669,204.99821109123434 214,204.99821109123434 C 182.33333333333334,204.99821109123434 182.33333333333334,205.24865831842575 150.66666666666669,205.24865831842575 C 119.00000000000001,205.24865831842575 119.00000000000001,206 87.33333333333334,206 C 55.66666666666667,206 55.66666666666667,206 24,206 Z" fill="#00ADD8" fill-opacity="0.75" class="fade-4"/><path d="M 24,206 C 55.66666666666667,206 55.66666666666667,206 87.33333333333334,206 C 119.00000000000001,206 119.00000000000001,205.24865831842575 150.66666666666669,205.24865831842575 C 182.33333333333334,205.24865831842575 182.33333333333334,204.99821109123434 214,204.99821109123434 C 245.66666666666669,204.99821109123434 245.66666666666669,205.49910554561717 277.33333333333337,205.49910554561717 C 309,205.49910554561717 309,206 340.6666666666667,206 C 372.33333333333337,206 372.33333333333337,198.737030411449 404,198.737030411449 C 435.6666666666667,198.737030411449 435.6666666666667,204.4973166368515 467.33333333333337,204.4973166368515 C 499.00000000000006,204.4973166368515 499.00000000000006,200.2397137745975 530.6666666666667,200.2397137745975 C 562.3333333333334,200.2397137745975 562.3333333333334,204.99821109123434 594,204.99821109123434 C 625.6666666666667,204.99821109123434 625.6666666666667,170.93738819320214 657.3333333333334,170.93738819320214 C 689,170.93738819320214 689,119.34525939177102 720.6666666666667,119.34525939177102 C 752.3333333333334,119.34525939177102 752.3333333333334,103.8175313059034 784,103.8175313059034 L 784,124.35420393559927 C 752.3333333333334,124.35420393559927 752.3333333333334,136.87656529516994 720.6666666666667,136.87656529516994 C 689,136.87656529516994 689,177.9499105545617 657.3333333333334,177.9499105545617 C 625.6666666666667,177.9499105545617 625.6666666666667,205.24865831842575 594,205.24865831842575 C 562.3333333333334,205.24865831842575 562.3333333333334,201.49194991055455 530.6666666666667,201.49194991055455 C 499.00000000000006,201.49194991055455 499.00000000000006,204.74776386404292 467.33333333333337,204.74776386404292 C 435.6666666666667,204.74776386404292 435.6666666666667,200.2397137745975 404,200.2397137745975 C 372.33333333333337,200.2397137745975 372.33333333333337,206 340.6666666666667,206 C 309,206 309,205.49910554561717 277.33333333333337,205.49910554561717 C 245.66666666666669,205.49910554561717 245.66666666666669,205.24865831842575 214,205.24865831842575 C 182.33333333333334,205.24865831842575 182.33333333333334,205.49910554561717 150.66666666666669,205.49910554561717 C 119.00000000000001,205.49910554561717 119.00000000000001,206 87.33333333333334,206 C 55.66666666666667,206 55.66666666666667,206 24,206 Z" fill="#89e051" fill-opacity="0.75" class="fade-5"/><path d="M 24,206 C 55.66666666666667,206 55.66666666666667,206 87.33333333333334,206 C 119.00000000000001,206 119.00000000000001,205.49910554561717 150.66666666666669,205.49910554561717 C 182.33333333333334,205.49910554561717 182.33333333333334,205.24865831842575 214,205.24865831842575 C 245.66666666666669,205.24865831842575 245.66666666666669,205.49910554561717 277.33333333333337,205.49910554561717 C 309,205.49910554561717 309,206 340.6666666666667,206 C 372.33333333333337,206 372.33333333333337,200.2397137745975 404,200.2397137745975 C 435.6666666666667,200.2397137745975 435.6666666666667,204.74776386404292 467.33333333333337,204.74776386404292 C 499.00000000000006,204.74776386404292 499.00000000000006,201.49194991055455 530.6666666666667,201.49194991055455 C 562.3333333333334,201.49194991055455 562.3333333333334,205.24865831842575 594,205.24865831842575 C 625.6666666666667,205.24865831842575 625.6666666666667,177.9499105545617 657.3333333333334,177.9499105545617 C 689,177.9499105545617 689,136.87656529516994 720.6666666666667,136.87656529516994 C 752.3333333333334,136.87656529516994 752.3333333333334,124.35420393559927 784,124.35420393559927 L 784,156.912343470483 C 752.3333333333334,156.912343470483 752.3333333333334,164.4257602862254 720.6666666666667,164.4257602862254 C 689,164.4257602862254 689,189.22003577817532 657.3333333333334,189.22003577817532 C 625.6666666666667,189.22003577817532 625.6666666666667,205.49910554561717 594,205.49910554561717 C 562.3333333333334,205.49910554561717 562.3333333333334,203.24508050089446 530.6666666666667,203.24508050089446 C 499.00000000000006,203.24508050089446 499.00000000000006,205.24865831842575 467.33333333333337,205.24865831842575 C 435.6666666666667,205.24865831842575 435.6666666666667,202.4937388193202 404,202.4937388193202 C 372.33333333333337,202.4937388193202 372.33333333333337,206 340.6666666666667,206 C 309,206 309,205.74955277280858 277.33333333333337,205.74955277280858 C 245.66666666666669,205.74955277280858 245.66666666666669,205.49910554561717 214,205.49910554561717 C 182.33333333333334,205.49910554561717 182.33333333333334,205.74955277280858 150.66666666666669,205.74955277280858 C 119.00000000000001,205.74955277280858 119.00000000000001,206 87.33333333333334,206 C 55.66666666666667,206 55.66666666666667,206 24,206 Z" fill="#3178c6" fill-opacity="0.75" class="fade-6"/><path d="M 24,206 C 55.66666666666667,206 55.66666666666667,206 87.33333333333334,206 C 119.00000000000001,206 119.00000000000001,205.74955277280858 150.66666666666669,205.74955277280858 C 182.33333333333334,205.74955277280858 182.33333333333334,205.49910554561717 214,205.49910554561717 C 245.66666666666669,205.49910554561717 245.66666666666669,205.74955277280858 277.33333333333337,205.74955277280858 C 309,205.74955277280858 309,206 340.6666666666667,206 C 372.33333333333337,206 372.33333333333337,202.4937388193202 404,202.4937388193202 C 435.6666666666667,202.4937388193202 435.6666666666667,205.24865831842575 467.33333333333337,205.24865831842575 C 499.00000000000006,205.24865831842575 499.00000000000006,203.24508050089446 530.6666666666667,203.24508050089446 C 562.3333333333334,203.24508050089446 562.3333333333334,205.49910554561717 594,205.49910554561717 C 625.6666666666667,205.49910554561717 625.6666666666667,189.22003577817532 657.3333333333334,189.22003577817532 C 689,189.22003577817532 689,164.4257602862254 720.6666666666667,164.4257602862254 C 752.3333333333334,164.4257602862254 752.3333333333334,156.912343470483 784,156.912343470483 L 784,206 C 752.3333333333334,206 752.3333333333334,206 720.6666666666667,206 C 689,206 689,206 657.3333333333334,206 C 625.6666666666667,206 625.6666666666667,206 594,206 C 562.3333333333334,206 562.3333333333334,206 530.6666666666667,206 C 499.00000000000006,206 499.00000000000006,206 467.33333333333337,206 C 435.6666666666667,206 435.6666666666667,206 404,206 C 372.33333333333337,206 372.33333333333337,206 340.6666666666667,206 C 309,206 309,206 277.33333333333337,206 C 245.66666666666669,206 245.66666666666669,206 214,206 C 182.33333333333334,206 182.33333333333334,206 150.66666666666669,206 C 119.00000000000001,206 119.00000000000001,206 87.33333333333334,206 C 55.66666666666667,206 55.66666666666667,206 24,206 Z" fill="#dea584" fill-opacity="0.75" class="fade-6"/><rect x="24" y="212" width="8" height="8" rx="2" fill="#dea584" opacity="0.85"/><text x="36" y="220" class="t t-value">Rust</text><rect x="80" y="212" width="8" height="8" rx="2" fill="#3178c6" opacity="0.85"/><text x="92" y="220" class="t t-value">TypeScript</text><rect x="178" y="212" width="8" height="8" rx="2" fill="#89e051" opacity="0.85"/><text x="190" y="220" class="t t-value">Shell</text><rect x="241" y="212" width="8" height="8" rx="2" fill="#00ADD8" opacity="0.85"/><text x="253" y="220" class="t t-value">Go</text><rect x="283" y="212" width="8" height="8" rx="2" fill="#3572A5" opacity="0.85"/><text x="295" y="220" class="t t-value">Python</text><rect x="353" y="212" width="8" height="8" rx="2" fill="#b07219" opacity="0.85"/><text x="365" y="220" class="t t-value">Java</text><rect x="409" y="212" width="8" height="8" rx="2" fill="#DA5B0B" opacity="0.85"/><text x="421" y="220" class="t t-value">Jupyter Notebook</text><text x="24" y="220" class="t t-value" text-anchor="start" opacity="0">Feb</text><text x="150.66666666666669" y="220" class="t t-value" text-anchor="start" opacity="0">Apr</text><text x="277.33333333333337" y="220" class="t t-value" text-anchor="start" opacity="0">Jun</text><text x="404" y="220" class="t t-value" text-anchor="start" opacity="0">Aug</text><text x="530.6666666666667" y="220" class="t t-value" text-anchor="start" opacity="0">Oct</text><text x="657.3333333333334" y="220" class="t t-value" text-anchor="start" opacity="0">Dec</text><text x="784" y="220" class="t t-value" text-anchor="start" opacity="0">Feb</text></svg>
|
|
@@ -1,109 +1,121 @@
|
|
|
1
1
|
# Hi, I'm Urmzd 👋
|
|
2
2
|
|
|
3
|
-
I build robust, multi-language systems in Go,
|
|
3
|
+
I build robust, multi-language systems in Go, Rust, and TypeScript—from AI-powered resume generators and privacy-first agents to scalable frameworks for genetic programming and deep learning research.
|
|
4
4
|
|
|
5
5
|
[](https://urmzd.com) [](https://x.com/urmzd_) [](https://linkedin.com/in/urmzd)
|
|
6
6
|
|
|
7
7
|
## Active Projects
|
|
8
8
|
|
|
9
9
|
### [urmzd.com](https://github.com/urmzd/urmzd.com)
|
|
10
|
-
A personal website and blog built with Astro, TypeScript, and MDX, featuring fast static site generation and interactive components
|
|
10
|
+
A personal website and blog built with Astro, TypeScript, and MDX, featuring fast static site generation and interactive portfolio components.
|
|
11
11
|
TypeScript, MDX, CSS
|
|
12
12
|
|
|
13
|
+
### [exp-agi-models](https://github.com/urmzd/exp-agi-models)
|
|
14
|
+
A Python research project exploring extreme parameter efficiency in language models, investigating whether algorithms can be learned instead of memorized patterns with readable intermediate states.
|
|
15
|
+
Python, Shell
|
|
16
|
+
|
|
13
17
|
### [resume-generator-app](https://github.com/urmzd/resume-generator-app)
|
|
14
|
-
A native desktop application for
|
|
18
|
+
A native desktop application built with Wails, React, and Tailwind CSS for creating resumes with live PDF preview, template gallery, and inline editing.
|
|
15
19
|
TypeScript, TeX, HTML
|
|
16
20
|
|
|
17
21
|
### [zoro](https://github.com/urmzd/zoro)
|
|
18
|
-
A privacy-first AI research agent with a persistent knowledge graph, enabling local inference and idea management
|
|
22
|
+
A privacy-first AI research agent with a persistent knowledge graph, enabling local inference and idea management, built with TypeScript, Go, and Python.
|
|
19
23
|
TypeScript, Go, Python
|
|
20
24
|
|
|
21
25
|
### [oag](https://github.com/urmzd/oag)
|
|
22
|
-
A
|
|
26
|
+
A Rust-based OpenAPI 3.x code generator for TypeScript, React/SWR, and FastAPI, featuring zero runtime dependencies and first-class SSE streaming.
|
|
23
27
|
Rust, Jinja, Shell
|
|
24
28
|
|
|
25
|
-
### [sr](https://github.com/urmzd/sr)
|
|
26
|
-
A Rust CLI tool for trunk-based semantic release, supporting conventional commits, changelog generation, git tags, and GitHub releases. It streamlines release management for Rust projects.
|
|
27
|
-
Rust, Shell, Just
|
|
28
|
-
|
|
29
29
|
### [teasr](https://github.com/urmzd/teasr)
|
|
30
|
-
A Rust-based tool for capturing showcase screenshots and GIFs from web apps, desktop, and terminal
|
|
30
|
+
A Rust-based tool for capturing showcase screenshots and GIFs from web apps, desktop, and terminal, distributed as a single binary with no runtime dependencies.
|
|
31
31
|
Rust, Shell
|
|
32
32
|
|
|
33
|
-
### [
|
|
34
|
-
A
|
|
35
|
-
Go
|
|
33
|
+
### [gadk](https://github.com/urmzd/gadk)
|
|
34
|
+
A Go SDK for building streaming AI agents, knowledge graphs, and retrieval-augmented generation (RAG) pipelines.
|
|
35
|
+
Go, Just, Dockerfile
|
|
36
36
|
|
|
37
|
-
### [
|
|
38
|
-
A Rust CLI
|
|
37
|
+
### [sr](https://github.com/urmzd/sr)
|
|
38
|
+
A Rust CLI for trunk-based semantic release, supporting conventional commits, changelog generation, git tags, and GitHub releases.
|
|
39
39
|
Rust, Shell, Just
|
|
40
40
|
|
|
41
|
-
### [ragdk](https://github.com/urmzd/ragdk)
|
|
42
|
-
A Go library for multi-modal Retrieval-Augmented Generation (RAG) with graph-enhanced retrieval, supporting document hierarchies, pluggable extractors, vector search, and kgdk integration.
|
|
43
|
-
Go
|
|
44
|
-
|
|
45
41
|
### [github-insights](https://github.com/urmzd/github-insights)
|
|
46
|
-
A GitHub Action written in TypeScript that generates SVG visualizations of GitHub profile metrics.
|
|
42
|
+
A GitHub Action written in TypeScript that generates SVG visualizations of GitHub profile metrics.
|
|
47
43
|
TypeScript
|
|
48
44
|
|
|
49
|
-
### [lightning-kfold](https://github.com/urmzd/lightning-kfold)
|
|
50
|
-
A Python library providing stratified K-fold cross-validation with ensemble voting for PyTorch Lightning. It is designed for easy integration into machine learning workflows.
|
|
51
|
-
Python
|
|
52
|
-
|
|
53
|
-
### [kgdk](https://github.com/urmzd/kgdk)
|
|
54
|
-
A Go SDK for building and querying knowledge graphs, featuring a SurrealDB backend, entity extraction pipeline, vector search, and a pluggable Graph interface.
|
|
55
|
-
Go
|
|
56
|
-
|
|
57
45
|
## Maintained Projects
|
|
58
46
|
|
|
59
47
|
### [resume-generator](https://github.com/urmzd/resume-generator)
|
|
60
|
-
A CLI tool written in Go that converts resume data
|
|
48
|
+
A CLI tool written in Go that converts resume data from YAML/JSON/TOML into polished PDFs, DOCX, HTML, LaTeX, and Markdown, featuring multi-agent AI assessment via Ollama.
|
|
61
49
|
★ 10 · Go, TeX, HTML
|
|
62
50
|
|
|
63
51
|
### [linear-gp](https://github.com/urmzd/linear-gp)
|
|
64
|
-
A Rust framework for Linear Genetic Programming research,
|
|
65
|
-
★
|
|
52
|
+
A Rust framework for Linear Genetic Programming research, offering modular architecture, Q-Learning integration, automated hyperparameter optimization, and support for reinforcement learning and classification tasks.
|
|
53
|
+
★ 3 · Rust, TeX, Shell
|
|
66
54
|
|
|
67
55
|
### [zigbee-rest](https://github.com/urmzd/zigbee-rest)
|
|
68
|
-
A
|
|
56
|
+
A Go-based smart home control system providing a local-first, privacy-focused REST API for managing Zigbee devices without cloud dependencies.
|
|
69
57
|
Go, Just, Shell
|
|
70
58
|
|
|
71
59
|
### [dotfiles](https://github.com/urmzd/dotfiles)
|
|
72
|
-
A collection of modern dotfiles managed with Chezmoi and Nix,
|
|
60
|
+
A collection of modern dotfiles managed with Chezmoi and Nix, providing environment bootstrap for macOS and Linux, including Neovim, Tmux, Zsh, and specialized development shells.
|
|
73
61
|
★ 2 · Shell, Lua, Go Template
|
|
74
62
|
|
|
75
63
|
### [languide](https://github.com/urmzd/languide)
|
|
76
|
-
A Python CLI that generates
|
|
64
|
+
A Python CLI that generates scenario-based language learning PDFs with full Unicode/CJK support for travelers and language learners.
|
|
77
65
|
Python, TeX, Shell
|
|
78
66
|
|
|
67
|
+
### [embed-src](https://github.com/urmzd/embed-src)
|
|
68
|
+
A GitHub Action written in Rust that automatically syncs code snippets in markdown files with source code, keeping documentation up-to-date during CI/CD.
|
|
69
|
+
★ 1 · Rust, Shell
|
|
70
|
+
|
|
71
|
+
### [urmzd](https://github.com/urmzd/urmzd)
|
|
72
|
+
A GitHub profile README repository.
|
|
73
|
+
|
|
74
|
+
## Archived
|
|
75
|
+
|
|
76
|
+
### [lepus-classifier](https://github.com/urmzd/lepus-classifier)
|
|
77
|
+
A CNN research project using Jupyter Notebook and Python to explore optimal image classification architectures for small datasets, focusing on data quantity as a bottleneck for deep learning.
|
|
78
|
+
★ 2 · Jupyter Notebook, Python, Shell
|
|
79
|
+
|
|
80
|
+
### [md-classifier](https://github.com/urmzd/md-classifier)
|
|
81
|
+
A deep learning system combining transformers and CNNs in Python and Jupyter Notebook to classify diseases from patient-described symptoms, achieving high recall through semantic embeddings and feature extraction.
|
|
82
|
+
★ 2 · Jupyter Notebook, Python, Shell
|
|
83
|
+
|
|
79
84
|
### [flappy-bird](https://github.com/urmzd/flappy-bird)
|
|
80
|
-
A Flappy Bird clone built with JavaFX and Java 21,
|
|
85
|
+
A Flappy Bird clone built with JavaFX and Java 21, demonstrating data-oriented design patterns and cross-platform desktop development with automated native builds.
|
|
81
86
|
★ 4 · Java, Just
|
|
82
87
|
|
|
88
|
+
### [barter-trader](https://github.com/urmzd/barter-trader)
|
|
89
|
+
An Android trading app built with Java, Clean Architecture, and MVVM, enabling peer-to-peer item exchanges with enterprise-grade mobile development patterns.
|
|
90
|
+
Java, Shell, Nix
|
|
91
|
+
|
|
83
92
|
### [chess-cli](https://github.com/urmzd/chess-cli)
|
|
84
|
-
A fully playable chess game
|
|
93
|
+
A fully playable chess game in Python with object-oriented design and a command-line interface, suitable for learning game logic and exploring chess AI algorithms.
|
|
85
94
|
★ 3 · Python, Just
|
|
86
95
|
|
|
87
|
-
### [
|
|
88
|
-
A
|
|
89
|
-
|
|
96
|
+
### [cypress-name-too-long-mre](https://github.com/urmzd/cypress-name-too-long-mre)
|
|
97
|
+
A minimal reproducible example using JavaScript, HTML, and CSS, with no description provided.
|
|
98
|
+
JavaScript, HTML, CSS
|
|
90
99
|
|
|
91
|
-
### [
|
|
92
|
-
A
|
|
100
|
+
### [gitit](https://github.com/urmzd/gitit)
|
|
101
|
+
A Rust CLI tool that generates AI-powered git commands, including conventional commits, code reviews, branch names, and PR descriptions using Claude or Gemini.
|
|
102
|
+
Rust, Shell, Just
|
|
103
|
+
|
|
104
|
+
### [lightning-kfold](https://github.com/urmzd/lightning-kfold)
|
|
105
|
+
A Python library providing stratified K-fold cross-validation with ensemble voting for PyTorch Lightning.
|
|
106
|
+
Python
|
|
93
107
|
|
|
94
|
-
##
|
|
108
|
+
## Project Map
|
|
95
109
|
|
|
96
|
-
|
|
97
|
-
A repository of archived projects with retrospectives detailing successes, failures, and lessons learned. It uses TypeScript, JavaScript, CSS, and HTML.
|
|
98
|
-
TypeScript, JavaScript, CSS
|
|
110
|
+

|
|
99
111
|
|
|
100
112
|
## GitHub Stats
|
|
101
113
|
|
|
102
|
-

|
|
115
|
+

|
|
104
116
|
|
|
105
|
-
##
|
|
117
|
+
## Open Source Impact
|
|
106
118
|
|
|
107
|
-

|
|
108
120
|
|
|
109
|
-
<sub>Last generated on 2026-03-
|
|
121
|
+
<sub>Last generated on 2026-03-22 using [@urmzd/github-insights](https://github.com/urmzd/github-insights) · Template: `modern`</sub>
|