Skip to content

Commit ebfca53

Browse files
authored
feat/scraps/icons git (#109306)
- **Modified: Svg art for Icon 'iconBuilding'** - **Modified: Svg art for icon 'IconRepository'** - **Modified: Svg art for icon 'iconBranch'** - **Added: icon 'iconPullRequest'** - **Added: Icon story section 'code'** - **Modified: Icon story section 'code'** - **Added: Icon 'iconPullRequestClosed' including story entry** - **Added: Icon 'iconMerge' including story entry** - **Added: Icon 'iconBug' including story entry** <img width="252" height="124" alt="CleanShot 2026-02-25 at 12 11 39@2x" src="https://github.com/user-attachments/assets/41d9d3d5-9be9-4744-ace1-31cdc22c15b3" /> <img width="1606" height="402" alt="CleanShot 2026-02-25 at 12 11 25@2x" src="https://github.com/user-attachments/assets/69119f4e-e326-4732-ae76-e85edd2c248d" />
1 parent 28c414b commit ebfca53

File tree

9 files changed

+151
-70
lines changed

9 files changed

+151
-70
lines changed

static/app/icons/iconBranch.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {SvgIcon} from 'sentry/icons/svgIcon';
44
export function IconBranch(props: SVGIconProps) {
55
return (
66
<SvgIcon {...props} data-test-id="icon-branch">
7-
<path d="M12 0C13.1 0 14 0.9 14 2C14 2.74 13.6 3.38 13 3.73V4.75C13 6.82 11.32 8.5 9.25 8.5H7.25C6.01 8.5 5 9.51 5 10.75V11.27C5.6 11.62 6 12.26 6 13C6 14.1 5.1 15 4 15C2.9 15 2 14.1 2 13C2 12.07 2.64 11.29 3.5 11.07V3.93C2.64 3.71 2 2.93 2 2C2 0.9 2.9 0 4 0C5.1 0 6 0.9 6 2C6 2.74 5.6 3.38 5 3.73V7.75C5.63 7.28 6.41 7 7.25 7H9.25C10.49 7 11.5 5.99 11.5 4.75V3.93C10.64 3.71 10 2.93 10 2C10 0.9 10.9 0 12 0Z" />
7+
<path d="M11.75 1a2.248 2.248 0 0 1 .75 4.368v.863a1.75 1.75 0 0 1-1.299 1.692L5.928 9.329A1.25 1.25 0 0 0 5 10.536v.095A2.248 2.248 0 0 1 4.25 15a2.25 2.25 0 0 1-.75-4.37V5.369A2.248 2.248 0 0 1 4.25 1 2.248 2.248 0 0 1 5 5.368V8.09c.17-.087.35-.16.541-.21l5.274-1.406A.25.25 0 0 0 11 6.23v-.863A2.248 2.248 0 0 1 11.75 1m-7.5 11a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m0-9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m7.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5" />
88
</SvgIcon>
99
);
1010
}

static/app/icons/iconBug.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import type {SVGIconProps} from 'sentry/icons/svgIcon';
2+
import {SvgIcon} from 'sentry/icons/svgIcon';
3+
4+
export function IconBug(props: SVGIconProps) {
5+
return (
6+
<SvgIcon {...props}>
7+
<path d="M9.25 9a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1 0-1.5zM9.25 6a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 1 1 0-1.5z" />
8+
<path d="M8 0a3 3 0 0 1 3 3h.019l2.81-1.874a.75.75 0 0 1 .832 1.248l-2.348 1.565.36 2.561h2.576a.75.75 0 0 1 0 1.5h-2.367l.167 1.194a5.1 5.1 0 0 1-.23 2.371l1.981 2.18a.75.75 0 0 1-1.11 1.01L12.07 12.97A5.08 5.08 0 0 1 8 15a5.08 5.08 0 0 1-4.07-2.032l-1.625 1.787a.75.75 0 0 1-1.11-1.01l1.984-2.182a5.1 5.1 0 0 1-.227-2.369L3.119 8H.75a.75.75 0 0 1 0-1.5h2.578l.359-2.558-2.353-1.568a.75.75 0 1 1 .832-1.248L4.976 3H5a3 3 0 0 1 3-3M4.437 9.402a3.599 3.599 0 1 0 7.127 0L10.877 4.5H5.123zM8 1.5A1.5 1.5 0 0 0 6.5 3h3A1.5 1.5 0 0 0 8 1.5" />
9+
</SvgIcon>
10+
);
11+
}

static/app/icons/iconBuilding.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import {SvgIcon} from './svgIcon';
44
export function IconBuilding(props: SVGIconProps) {
55
return (
66
<SvgIcon {...props}>
7-
<path d="M12.25 0C13.22 0 14 0.78 14 1.75V14C14 14.55 13.55 15 13 15H10.49C9.94 15 9.49 14.55 9.49 14V12H6.5V14C6.5 14.55 6.05 15 5.5 15H3C2.45 15 2 14.55 2 14V1.75C2 0.78 2.78 0 3.75 0H12.25ZM3.75 1.5C3.61 1.5 3.5 1.61 3.5 1.75V13.5H5V11.5C5 10.95 5.45 10.5 6 10.5H9.99C10.54 10.5 10.99 10.95 10.99 11.5V13.5H12.5V1.75C12.5 1.61 12.39 1.5 12.25 1.5H3.75ZM6.5 7C6.78 7 7 7.22 7 7.5V8.5C7 8.78 6.78 9 6.5 9H5.5C5.22 9 5 8.78 5 8.5V7.5C5 7.22 5.22 7 5.5 7H6.5ZM10.5 7C10.78 7 11 7.22 11 7.5V8.5C11 8.78 10.78 9 10.5 9H9.5C9.22 9 9 8.78 9 8.5V7.5C9 7.22 9.22 7 9.5 7H10.5ZM6.5 3C6.78 3 7 3.22 7 3.5V4.5C7 4.78 6.78 5 6.5 5H5.5C5.22 5 5 4.78 5 4.5V3.5C5 3.22 5.22 3 5.5 3H6.5ZM10.5 3C10.78 3 11 3.22 11 3.5V4.5C11 4.78 10.78 5 10.5 5H9.5C9.22 5 9 4.78 9 4.5V3.5C9 3.22 9.22 3 9.5 3H10.5Z" />
7+
<path d="M4.5 7a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5zM8.5 7a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5zM4.5 3a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5zM8.5 3a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5z" />
8+
<path d="M11 0c.559 0 1 .456 1 1.002V6h3a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-2H5v2a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1zm1 13.5h2.5v-6H12zm-10.5 0h2v-2a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v2h2v-12h-9z" />
89
</SvgIcon>
910
);
1011
}

static/app/icons/iconMerge.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import type {SVGIconProps} from 'sentry/icons/svgIcon';
2+
import {SvgIcon} from 'sentry/icons/svgIcon';
3+
4+
export function IconMerge(props: SVGIconProps) {
5+
return (
6+
<SvgIcon {...props}>
7+
<path d="M4.25 1a2.25 2.25 0 0 1 1.035 4.246l.88 2.005c.2.455.65.749 1.146.749h3.32a2.249 2.249 0 1 1 2.119 3c-.98 0-1.81-.627-2.12-1.5H7.31A2.75 2.75 0 0 1 5 8.24v2.39a2.249 2.249 0 1 1-3 2.12c0-.98.627-1.81 1.5-2.12V5.37a2.249 2.249 0 0 1 .75-4.37m0 11a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m8.5-4a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m-8.5-5.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5" />
8+
</SvgIcon>
9+
);
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import type {SVGIconProps} from 'sentry/icons/svgIcon';
2+
import {SvgIcon} from 'sentry/icons/svgIcon';
3+
4+
export function IconPullRequest(props: SVGIconProps) {
5+
return (
6+
<SvgIcon {...props}>
7+
<path d="M3.75 1a2.249 2.249 0 0 1 .75 4.37v5.26a2.249 2.249 0 1 1-3 2.12c0-.98.627-1.81 1.5-2.12V5.37a2.249 2.249 0 0 1 .75-4.37m0 11a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m0-9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M9.573.426A.25.25 0 0 1 10 .604V2.5h1.75c.966 0 1.75.783 1.75 1.75v6.38a2.249 2.249 0 0 1-.75 4.37 2.25 2.25 0 0 1-.75-4.37V4.25a.25.25 0 0 0-.25-.25H10v1.396a.25.25 0 0 1-.427.177L7.177 3.176a.25.25 0 0 1 0-.353zM12.75 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5" />
8+
</SvgIcon>
9+
);
10+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import type {SVGIconProps} from 'sentry/icons/svgIcon';
2+
import {SvgIcon} from 'sentry/icons/svgIcon';
3+
4+
export function IconPullRequestClosed(props: SVGIconProps) {
5+
return (
6+
<SvgIcon {...props}>
7+
<path d="M3.75 1a2.249 2.249 0 0 1 .75 4.37v5.26a2.249 2.249 0 1 1-3 2.12c0-.98.627-1.81 1.5-2.12V5.37a2.249 2.249 0 0 1 .75-4.37m0 11a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m0-9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M12.25 6a.75.75 0 0 1 .75.75v3.88a2.249 2.249 0 0 1-.75 4.37 2.25 2.25 0 0 1-.75-4.37V6.75a.75.75 0 0 1 .75-.75m0 6a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5" />
8+
<path d="M13.22 1.22a.75.75 0 0 1 1.06 1.06l-.97.97.97.97a.751.751 0 0 1-1.06 1.06l-.97-.969-.97.97a.75.75 0 0 1-1.06-1.062l.968-.97-.968-.968a.75.75 0 0 1 1.06-1.06l.97.968z" />
9+
</SvgIcon>
10+
);
11+
}

static/app/icons/iconRepository.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {SvgIcon} from 'sentry/icons/svgIcon';
44
export function IconRepository(props: SVGIconProps) {
55
return (
66
<SvgIcon {...props}>
7-
<path d="M12.25 0C13.22 0 14 0.78 14 1.75V13.5C14 14.05 13.55 14.5 13 14.5H10.75C10.34 14.5 10 14.16 10 13.75C10 13.34 10.34 13 10.75 13H12.5V11.5H9V16L7 14L5 16V11.5H3.5V13.75C3.5 14.16 3.16 14.5 2.75 14.5C2.34 14.5 2 14.16 2 13.75V1.75C2 0.78 2.78 0 3.75 0H12.25ZM3.75 1.5C3.61 1.5 3.5 1.61 3.5 1.75V10H12.5V1.75C12.5 1.61 12.39 1.5 12.25 1.5H3.75Z" />
7+
<path d="M12.25 0C13.216 0 14 .784 14 1.75V13.5a1 1 0 0 1-1 1h-2.25a.75.75 0 0 1 0-1.5h1.75v-1.5H9v3.896a.25.25 0 0 1-.427.177L7 14l-1.573 1.573A.25.25 0 0 1 5 15.396V11.5H3.5v2.25a.75.75 0 0 1-1.5 0v-11A2.75 2.75 0 0 1 4.75 0zm-7.5 1.5c-.69 0-1.25.56-1.25 1.25V10h9V1.75a.25.25 0 0 0-.25-.25z" />
88
</SvgIcon>
99
);
1010
}

static/app/icons/icons.stories.tsx

Lines changed: 101 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -225,38 +225,6 @@ const SECTIONS: TSection[] = [
225225
name: 'AllProjects',
226226
defaultProps: {},
227227
},
228-
229-
{
230-
id: 'building',
231-
groups: ['product'],
232-
keywords: [
233-
'business',
234-
'office',
235-
'company',
236-
'corporate',
237-
'organization',
238-
'integration',
239-
'github',
240-
'external',
241-
'integratedOrganization',
242-
],
243-
name: 'Building',
244-
defaultProps: {},
245-
},
246-
{
247-
id: 'branch',
248-
groups: ['product'],
249-
keywords: ['git', 'version control', 'branch', 'development', 'code'],
250-
name: 'Branch',
251-
defaultProps: {},
252-
},
253-
{
254-
id: 'repository',
255-
groups: ['product'],
256-
keywords: ['git', 'repo', 'code', 'version control', 'project'],
257-
name: 'Repository',
258-
defaultProps: {},
259-
},
260228
],
261229
},
262230
{
@@ -654,6 +622,13 @@ const SECTIONS: TSection[] = [
654622
name: 'Angry',
655623
defaultProps: {},
656624
},
625+
{
626+
id: 'bug',
627+
groups: ['status'],
628+
keywords: ['bug', 'error', 'issue', 'problem', 'defect'],
629+
name: 'Bug',
630+
defaultProps: {},
631+
},
657632
{
658633
id: 'lock',
659634
groups: ['action', 'status'],
@@ -1392,41 +1367,7 @@ const SECTIONS: TSection[] = [
13921367
name: 'Print',
13931368
defaultProps: {},
13941369
},
1395-
{
1396-
id: 'code',
1397-
groups: ['device'],
1398-
keywords: ['snippet', 'javascript', 'json', 'curly', 'source', 'programming'],
1399-
name: 'Code',
1400-
defaultProps: {},
1401-
},
1402-
{
1403-
id: 'json',
1404-
groups: ['device'],
1405-
keywords: ['snippet', 'code', 'javascript', 'source', 'data', 'format'],
1406-
name: 'Json',
1407-
defaultProps: {},
1408-
},
1409-
{
1410-
id: 'markdown',
1411-
groups: ['device'],
1412-
keywords: ['code', 'text', 'format', 'documentation'],
1413-
name: 'Markdown',
1414-
defaultProps: {},
1415-
},
1416-
{
1417-
id: 'terminal',
1418-
groups: ['device', 'device'],
1419-
keywords: ['code', 'bash', 'command', 'shell', 'console'],
1420-
name: 'Terminal',
1421-
defaultProps: {},
1422-
},
1423-
{
1424-
id: 'commit',
1425-
groups: ['device'],
1426-
keywords: ['git', 'github', 'version', 'save', 'repository'],
1427-
name: 'Commit',
1428-
defaultProps: {},
1429-
},
1370+
14301371
{
14311372
id: 'mobile',
14321373
groups: ['device'],
@@ -1492,6 +1433,99 @@ const SECTIONS: TSection[] = [
14921433
},
14931434
],
14941435
},
1436+
{
1437+
id: 'code',
1438+
label: 'Code',
1439+
icons: [
1440+
{
1441+
id: 'branch',
1442+
groups: ['product'],
1443+
keywords: ['git', 'version control', 'branch', 'development', 'code'],
1444+
name: 'Branch',
1445+
defaultProps: {},
1446+
},
1447+
{
1448+
id: 'building',
1449+
groups: ['product'],
1450+
keywords: [
1451+
'business',
1452+
'office',
1453+
'company',
1454+
'corporate',
1455+
'organization',
1456+
'integration',
1457+
'github',
1458+
'external',
1459+
'integratedOrganization',
1460+
],
1461+
name: 'Building',
1462+
defaultProps: {},
1463+
},
1464+
{
1465+
id: 'code',
1466+
groups: ['code'],
1467+
keywords: ['snippet', 'javascript', 'source', 'programming'],
1468+
name: 'Code',
1469+
defaultProps: {},
1470+
},
1471+
{
1472+
id: 'commit',
1473+
groups: ['code'],
1474+
keywords: ['git', 'github', 'version', 'save', 'repository'],
1475+
name: 'Commit',
1476+
defaultProps: {},
1477+
},
1478+
{
1479+
id: 'json',
1480+
groups: ['code'],
1481+
keywords: ['snippet', 'code', 'curly', 'javascript', 'source', 'data', 'format'],
1482+
name: 'Json',
1483+
defaultProps: {},
1484+
},
1485+
{
1486+
id: 'markdown',
1487+
groups: ['code'],
1488+
keywords: ['code', 'text', 'format', 'documentation'],
1489+
name: 'Markdown',
1490+
defaultProps: {},
1491+
},
1492+
{
1493+
id: 'merge',
1494+
groups: ['code'],
1495+
keywords: ['git', 'repo', 'code', 'version control', 'project'],
1496+
name: 'Merge',
1497+
defaultProps: {},
1498+
},
1499+
{
1500+
id: 'pullRequest',
1501+
groups: ['code'],
1502+
keywords: ['git', 'repo', 'code', 'version control', 'project'],
1503+
name: 'PullRequest',
1504+
defaultProps: {},
1505+
},
1506+
{
1507+
id: 'pullRequestClosed',
1508+
groups: ['code'],
1509+
keywords: ['git', 'repo', 'code', 'version control', 'project'],
1510+
name: 'PullRequestClosed',
1511+
defaultProps: {},
1512+
},
1513+
{
1514+
id: 'repository',
1515+
groups: ['code'],
1516+
keywords: ['git', 'repo', 'code', 'version control', 'project'],
1517+
name: 'Repository',
1518+
defaultProps: {},
1519+
},
1520+
{
1521+
id: 'terminal',
1522+
groups: ['code'],
1523+
keywords: ['code', 'bash', 'command', 'shell', 'console'],
1524+
name: 'Terminal',
1525+
defaultProps: {},
1526+
},
1527+
],
1528+
},
14951529
];
14961530

14971531
export default function IconsStories() {

static/app/icons/index.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export {IconBookmark} from './iconBookmark';
99
export {IconBot} from './iconBot';
1010
export {IconBranch} from './iconBranch';
1111
export {IconBroadcast} from './iconBroadcast';
12+
export {IconBug} from './iconBug';
1213
export {IconBuilding} from './iconBuilding';
1314
export {IconBusiness} from './iconBusiness';
1415
export {IconCalendar} from './iconCalendar';
@@ -77,6 +78,7 @@ export {IconMarkdown} from './iconMarkdown';
7778
export {IconMegaphone} from './iconMegaphone';
7879
export {IconMeh} from './iconMeh';
7980
export {IconMenu} from './iconMenu';
81+
export {IconMerge} from './iconMerge';
8082
export {IconMobile} from './iconMobile';
8183
export {IconMoon} from './iconMoon';
8284
export {IconMute} from './iconMute';
@@ -95,6 +97,8 @@ export {IconPrevious} from './iconPrevious';
9597
export {IconPrint} from './iconPrint';
9698
export {IconProfiling} from './iconProfiling';
9799
export {IconProject} from './iconProject';
100+
export {IconPullRequest} from './iconPullRequest';
101+
export {IconPullRequestClosed} from './iconPullRequestClosed';
98102
export {IconQuestion} from './iconQuestion';
99103
export {IconReceipt} from './iconReceipt';
100104
export {IconRefresh} from './iconRefresh';

0 commit comments

Comments
 (0)