husteno-o feat: replace all emojis with high-resolution SVG Octicons across web UI · 9/6/2026
a236240
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// Official GitHub Octicons as high-resolution SVGs (Zero Emojis)
export const icons = {
gitPullRequest: (size = 16, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M5 3.254V3.25v.004a.75.75 0 1 1 0-.004Zm1.5 0a2.25 2.25 0 1 0-3 2.122V8.75a2.25 2.25 0 0 0 1.5 2.122v.378a2.25 2.25 0 1 0 1.5 0v-.378a2.25 2.25 0 0 0 1.5-2.122V5.376A2.25 2.25 0 0 0 6.5 3.254ZM2.5 4.75a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0Zm1.5 6.5a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Zm8-4.75v-.004a.75.75 0 1 0-1.5.004v3.25a2.25 2.25 0 1 0 1.5 2.122V6.5Zm0 5.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM12 2.5a2.25 2.25 0 0 0-2.25 2.25v.378a2.25 2.25 0 0 0-1.5 2.122v.004a2.25 2.25 0 0 0 3 2.122V6.5A.75.75 0 0 1 12 5.75h1.25a.75.75 0 0 0 0-1.5H12A2.247 2.247 0 0 0 12 2.5Z"/>
</svg>
`,
repo: (size = 16, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25H12v1.5H5.25a.25.25 0 0 1-.25-.25Z"/>
</svg>
`,
actions: (size = 16, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"/>
</svg>
`,
investigate: (size = 16, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M8.75.75V3h5.5a.75.75 0 0 1 0 1.5h-5.5v2.25a.75.75 0 0 1-1.5 0V4.5H1.75a.75.75 0 0 1 0-1.5h5.5V.75a.75.75 0 0 1 1.5 0ZM1.75 10h5.5v2.25a.75.75 0 0 0 1.5 0V11.5h5.5a.75.75 0 0 0 0-1.5h-5.5V7.75a.75.75 0 0 0-1.5 0V10H1.75a.75.75 0 0 0 0 1.5Z"/>
</svg>
`,
code: (size = 16, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .215-.734.749.749 0 0 1 1.06-.026Zm-6.56 0a.75.75 0 0 1 1.06 0 .749.749 0 0 1 .215.734.749.749 0 0 1-.215.734L2.06 8l3.72 3.72a.749.749 0 0 1-.215.734.749.749 0 0 1-1.06.026L.22 8.53a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0Z"/>
</svg>
`,
graph: (size = 16, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 2.53 11.53a.75.75 0 0 1-1.06-1.06l5-5a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.75.75 0 0 1 1.06 1.06Z"/>
</svg>
`,
checkCircle: (size = 16, color = "#3fb950") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16Zm3.78-9.72a.75.75 0 0 0-1.06-1.06L6.75 9.19 5.28 7.72a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0l4.5-4.5Z"/>
</svg>
`,
alertTriangle: (size = 16, color = "#d29922") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"/>
</svg>
`,
gitMerge: (size = 16, color = "#a371f7") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M5 3.254V3.25v.004a.75.75 0 1 1 0-.004Zm1.5 0a2.25 2.25 0 1 0-3 2.122V8.75a2.25 2.25 0 0 0 1.5 2.122v.378a2.25 2.25 0 1 0 1.5 0v-.378a2.25 2.25 0 0 0 1.5-2.122V5.376A2.25 2.25 0 0 0 6.5 3.254Zm5.5 5.496a2.25 2.25 0 1 0-1.5 2.122v.378a2.25 2.25 0 1 0 1.5 0v-.378a2.25 2.25 0 0 0 1.5-2.122v-.004a2.25 2.25 0 0 0-1.5-2.122v.004Zm-2.25 6.5a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0Zm0-6.5a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0Zm-4.25-1a.75.75 0 0 1 .75.75v1.25a.75.75 0 0 0 .75.75h1.25a.75.75 0 0 1 0 1.5H8.75A2.25 2.25 0 0 1 6.5 10.5V9.25a.75.75 0 0 1-.75-.75Z"/>
</svg>
`,
star: (size = 14, color = "#e3b341") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Z"/>
</svg>
`,
repoForked: (size = 14, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M5 3.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Zm0 2.122a2.25 2.25 0 1 0-1.5 0v.878A2.25 2.25 0 0 0 5.75 8.5h4.5A2.25 2.25 0 0 0 12.5 6.25v-.878a2.25 2.25 0 1 0-1.5 0v.878a.75.75 0 0 1-.75.75h-4.5a.75.75 0 0 1-.75-.75v-.878Zm6.75-2.122a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM8 12.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM9.5 12.75a2.25 2.25 0 1 1-3 0V9.25a.75.75 0 0 1 1.5 0v3.5Z"/>
</svg>
`,
copy: (size = 14, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"/>
<path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"/>
</svg>
`,
check: (size = 14, color = "#3fb950") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"/>
</svg>
`,
x: (size = 14, color = "#f85149") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"/>
</svg>
`,
clock: (size = 14, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7-3.25v3.69l2.72 1.63a.75.75 0 1 1-.77 1.28l-3.2-1.92A.75.75 0 0 1 6.5 8.75v-4a.75.75 0 0 1 1.5 0Z"/>
</svg>
`,
shield: (size = 16, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68Z"/>
</svg>
`,
externalLink: (size = 14, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.75-.75a.75.75 0 0 1 .75-.75h3.5c.414 0 .75.336.75.75v3.5a.75.75 0 0 1-1.5 0V3.31L8.53 8.78a.75.75 0 0 1-1.06-1.06l5.47-5.47H11.25a.75.75 0 0 1-.75-.75Z"/>
</svg>
`,
terminal: (size = 16, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 14.25 15H1.75A1.75 1.75 0 0 1 0 13.25Zm1.75-.25a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V2.75a.25.25 0 0 0-.25-.25ZM7.28 7.78 4.03 4.53a.75.75 0 0 0-1.06 1.06L5.69 8.31l-2.72 2.72a.75.75 0 1 0 1.06 1.06l3.25-3.25a.75.75 0 0 0 0-1.06Zm1.97 3.47h4a.75.75 0 0 0 0-1.5h-4a.75.75 0 0 0 0 1.5Z"/>
</svg>
`,
sync: (size = 14, color = "currentColor") => `
<svg width="${size}" height="${size}" viewBox="0 0 16 16" fill="${color}" style="vertical-align: middle;">
<path d="M1.705 8.005a.75.75 0 0 1 .834.656 5.5 5.5 0 0 0 9.592 2.97l-1.204-1.204a.25.25 0 0 1 .177-.427h3.646a.25.25 0 0 1 .25.25v3.646a.25.25 0 0 1-.427.177l-1.38-1.38A7.002 7.002 0 0 1 1.05 8.84a.75.75 0 0 1 .655-.835ZM14.295 7.995a.75.75 0 0 1-.834-.656 5.5 5.5 0 0 0-9.592-2.97l1.204 1.204a.25.25 0 0 1-.177.427H1.25a.25.25 0 0 1-.25-.25V2.104a.25.25 0 0 1 .427-.177l1.38 1.38A7.002 7.002 0 0 1 14.95 7.16a.75.75 0 0 1-.655.835Z"/>
</svg>
`,
};