Browse Source

correct icons

Nostr-Signature: 3d630436d21542aa097b574829ba03f9700db4d707f3d7065bc24000321d0ba2 573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc 6e345bb8ca6fef352400dd10a801d1f41b8798b7a0307eba9af84ea3b4045235b50510905ab2cc9cbdd2894b56a0d1524560a9347c137f39cf756c43ca72c326
main
Silberengel 3 weeks ago
parent
commit
7c331b9c63
  1. 1
      nostr/commit-signatures.jsonl
  2. 28
      src/lib/components/ForwardingConfig.svelte
  3. 4
      src/lib/components/NavBar.svelte
  4. 23
      src/lib/components/ThemeToggle.svelte
  5. 4
      src/lib/services/messaging/event-forwarder.ts
  6. 55
      src/routes/dashboard/+page.svelte
  7. 2
      src/routes/repos/+page.svelte
  8. 16
      src/routes/users/[npub]/+page.svelte
  9. 4
      static/icons/bell.svg
  10. 8
      static/icons/clipboard-list.svg
  11. 6
      static/icons/git-branch.svg
  12. 6
      static/icons/git-pull-request.svg
  13. 2
      static/icons/github.svg
  14. 3
      static/icons/gitlab.svg
  15. 10
      static/icons/hammer.svg
  16. 6
      static/icons/layout-dashboard.svg
  17. 5
      static/icons/menu.svg
  18. 3
      static/icons/message-circle.svg
  19. 3
      static/icons/moon.svg
  20. 7
      static/icons/palette.svg
  21. 6
      static/icons/refresh-cw.svg
  22. 4
      static/icons/settings.svg
  23. 4
      static/icons/smartphone.svg
  24. 11
      static/icons/sun.svg

1
nostr/commit-signatures.jsonl

@ -3,3 +3,4 @@ @@ -3,3 +3,4 @@
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1771502215,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","added push-all to the cli\nimplement black theme\nimplement swagger API docs"]],"content":"Signed commit: added push-all to the cli\nimplement black theme\nimplement swagger API docs","id":"c15ce3d2f1ae613492802533a7e71b96df919a2ff52d501630c6ee64abf6a718","sig":"ba72d348528a2846c5e44474af821e79fcdb377caa0d905ae7e7fc9115b77ea92f65325a8f0000f83467983068f643ecf3beaca784666d361a8883160ae3a936"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1771513666,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","setup separate repos"]],"content":"Signed commit: setup separate repos","id":"62fa7c667e07791d898d0af8971165a57df5a061585e4a71447e52f7444dc687","sig":"25ef4575b03248381920985338e0ff4605f0af3fcaf8615d7906e3e116e3fbb64de3f3927f511fd45340e7dbdc4a2c3ea7fa150e5e9c75a6b5880cecaa4d2851"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1771516332,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","security fixes"]],"content":"Signed commit: security fixes","id":"a16b9538d6ce6ce2f1030042a4106534e2af1583642315893cc56d9f2e7cd385","sig":"0be95c5f2d720c008b52a1d38cef9952b1a615ecd3ef34b5b373266a2afb880e30347d3ee467b4ea42eca4a0e57808f98795ada878357ad39ca1a3063d6b6a22"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1771519913,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","fix swagger"]],"content":"Signed commit: fix swagger","id":"c0eb40be64306e1b11eba642ad357fd877776f50c8e64867cff845b92851c60e","sig":"194bedf752e25da9924bcf16b55eec0b29ae5da8bcd3f2a646e072f08d2d8f499269d42fafe6c056effb22840be0101c243aa1852b41899a73b242e6d6ad2932"}

28
src/lib/components/ForwardingConfig.svelte

@ -115,15 +115,15 @@ @@ -115,15 +115,15 @@
function getPlatformIcon(platform: string): string {
const icons: Record<string, string> = {
github: '🐙',
gitlab: '🦊',
gitea: '🐈',
codeberg: '🦫',
forgejo: '🔨',
onedev: '📦',
custom: ''
github: '/icons/github.svg',
gitlab: '/icons/gitlab.svg',
gitea: '/icons/git-branch.svg',
codeberg: '/icons/git-branch.svg',
forgejo: '/icons/hammer.svg',
onedev: '/icons/package.svg',
custom: '/icons/settings.svg'
};
return icons[platform.toLowerCase()] || '📦';
return icons[platform.toLowerCase()] || '/icons/package.svg';
}
function getPlatformName(platform: string): string {
@ -179,21 +179,21 @@ @@ -179,21 +179,21 @@
<div class="platforms">
{#if summary.platforms.telegram}
<div class="platform-item">
<span class="platform-icon">📱</span>
<img src="/icons/smartphone.svg" alt="Telegram" class="platform-icon" />
<span class="platform-name">Telegram</span>
</div>
{/if}
{#if summary.platforms.simplex}
<div class="platform-item">
<span class="platform-icon">💬</span>
<img src="/icons/message-circle.svg" alt="SimpleX" class="platform-icon" />
<span class="platform-name">SimpleX</span>
</div>
{/if}
{#if summary.platforms.email}
<div class="platform-item">
<span class="platform-icon">📧</span>
<img src="/icons/mail.svg" alt="Email" class="platform-icon" />
<span class="platform-name">Email</span>
</div>
{/if}
@ -201,7 +201,7 @@ @@ -201,7 +201,7 @@
{#if summary.platforms.gitPlatforms && summary.platforms.gitPlatforms.length > 0}
{#each summary.platforms.gitPlatforms as gitPlatform}
<div class="platform-item">
<span class="platform-icon">{getPlatformIcon(gitPlatform.platform)}</span>
<img src={getPlatformIcon(gitPlatform.platform)} alt={getPlatformName(gitPlatform.platform)} class="platform-icon" />
<span class="platform-name">
{getPlatformName(gitPlatform.platform)}
{#if !compact}
@ -282,7 +282,9 @@ @@ -282,7 +282,9 @@
}
.platform-icon {
font-size: 1.2rem;
width: 18px;
height: 18px;
flex-shrink: 0;
}
.platform-name {

4
src/lib/components/NavBar.svelte

@ -198,7 +198,7 @@ @@ -198,7 +198,7 @@
</button>
{/if}
<button class="mobile-menu-toggle" onclick={toggleMobileMenu} aria-label="Toggle menu">
<span class="hamburger-icon"></span>
<img src="/icons/menu.svg" alt="Menu" class="hamburger-icon" />
</button>
</div>
</div>
@ -334,6 +334,8 @@ @@ -334,6 +334,8 @@
}
.hamburger-icon {
width: 20px;
height: 20px;
display: block;
}

23
src/lib/components/ThemeToggle.svelte

@ -87,10 +87,7 @@ @@ -87,10 +87,7 @@
title="Theme settings"
bind:this={buttonElement}
>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="3"></circle>
<path d="M12 1v6m0 6v6M5.64 5.64l4.24 4.24m4.24 4.24l4.24 4.24M1 12h6m6 0h6M5.64 18.36l4.24-4.24m4.24-4.24l4.24-4.24"></path>
</svg>
<img src="/icons/palette.svg" alt="Theme" class="theme-icon" />
</button>
{#if dropdownOpen}
@ -100,7 +97,7 @@ @@ -100,7 +97,7 @@
class:active={currentTheme === 'gitrepublic-light'}
onclick={() => selectTheme('gitrepublic-light')}
>
<span class="theme-circle"></span>
<img src="/icons/sun.svg" alt="Light theme" class="theme-icon-option" />
<span class="theme-name">Light</span>
</button>
<button
@ -108,7 +105,7 @@ @@ -108,7 +105,7 @@
class:active={currentTheme === 'gitrepublic-dark'}
onclick={() => selectTheme('gitrepublic-dark')}
>
<span class="theme-circle">🟣</span>
<img src="/icons/palette.svg" alt="Purple theme" class="theme-icon-option" />
<span class="theme-name">Purple</span>
</button>
<button
@ -116,7 +113,7 @@ @@ -116,7 +113,7 @@
class:active={currentTheme === 'gitrepublic-black'}
onclick={() => selectTheme('gitrepublic-black')}
>
<span class="theme-circle"></span>
<img src="/icons/moon.svg" alt="Black theme" class="theme-icon-option" />
<span class="theme-name">Black</span>
</button>
</div>
@ -156,9 +153,10 @@ @@ -156,9 +153,10 @@
transform: scale(0.98);
}
.theme-toggle svg {
.theme-toggle .theme-icon {
width: 16px;
height: 16px;
display: block;
}
.theme-dropdown {
@ -211,13 +209,14 @@ @@ -211,13 +209,14 @@
font-weight: 600;
}
.theme-option .theme-circle {
font-size: 1.25rem;
line-height: 1;
.theme-option .theme-icon-option {
width: 18px;
height: 18px;
display: inline-block;
flex-shrink: 0;
}
.theme-option.active .theme-circle {
.theme-option.active .theme-icon-option {
transform: scale(1.1);
}

4
src/lib/services/messaging/event-forwarder.ts

@ -195,7 +195,7 @@ function formatEventMessage(event: NostrEvent, userPubkeyHex: string): string { @@ -195,7 +195,7 @@ function formatEventMessage(event: NostrEvent, userPubkeyHex: string): string {
.filter(tag => tag[0] === 'p' && tag[1])
.map(tag => tag[1].slice(0, 16) + '...');
let message = `💬 Public Message from ${userShort}`;
let message = `Public Message from ${userShort}`;
if (recipients.length > 0) {
message += ` to ${recipients.join(', ')}`;
}
@ -204,7 +204,7 @@ function formatEventMessage(event: NostrEvent, userPubkeyHex: string): string { @@ -204,7 +204,7 @@ function formatEventMessage(event: NostrEvent, userPubkeyHex: string): string {
return message;
}
let message = `🔔 ${kindName} published by ${userShort}\n\n`;
let message = `${kindName} published by ${userShort}\n\n`;
if (event.content) {
const content = event.content.length > 500

55
src/routes/dashboard/+page.svelte

@ -107,15 +107,15 @@ @@ -107,15 +107,15 @@
function getPlatformIcon(platform: string): string {
const icons: Record<string, string> = {
github: '🐙',
gitlab: '🦊',
gitea: '🐈',
codeberg: '🦫',
forgejo: '🔨',
onedev: '📦',
custom: ''
github: '/icons/github.svg',
gitlab: '/icons/gitlab.svg',
gitea: '/icons/git-branch.svg',
codeberg: '/icons/git-branch.svg',
forgejo: '/icons/hammer.svg',
onedev: '/icons/package.svg',
custom: '/icons/settings.svg'
};
return icons[platform] || '📦';
return icons[platform] || '/icons/package.svg';
}
function formatDate(dateString: string): string {
@ -164,7 +164,12 @@ @@ -164,7 +164,12 @@
<p class="dashboard-subtitle">Aggregated issues and pull requests from all your configured git platforms</p>
{#if userPubkeyHex}
<button onclick={loadDashboard} class="refresh-button" disabled={loading}>
{loading ? 'Refreshing...' : '🔄 Refresh'}
{#if loading}
Refreshing...
{:else}
<img src="/icons/refresh-cw.svg" alt="Refresh" class="icon-inline" />
Refresh
{/if}
</button>
{/if}
</header>
@ -220,7 +225,13 @@ @@ -220,7 +225,13 @@
<div class="item-header">
<div class="item-title-row">
<span class="item-type-badge" class:pr={isPR} class:issue={!isPR}>
{isPR ? '🔀 PR' : '📋 Issue'}
{#if isPR}
<img src="/icons/git-pull-request.svg" alt="PR" class="icon-inline" />
PR
{:else}
<img src="/icons/clipboard-list.svg" alt="Issue" class="icon-inline" />
Issue
{/if}
</span>
<a
href={item.html_url}
@ -233,7 +244,8 @@ @@ -233,7 +244,8 @@
</div>
<div class="item-meta">
<span class="platform-badge" title={item.apiUrl || ''}>
{getPlatformIcon(item.platform)} {getPlatformName(item.platform)}
<img src={getPlatformIcon(item.platform)} alt={getPlatformName(item.platform)} class="icon-inline" />
{getPlatformName(item.platform)}
</span>
<span class="repo-name">{getRepoDisplay(item)}</span>
{#if item.number}
@ -263,7 +275,10 @@ @@ -263,7 +275,10 @@
{/if}
<span class="item-date">Updated {formatDate(item.updated_at)}</span>
{#if item.comments_count !== undefined && item.comments_count > 0}
<span class="comments-count">💬 {item.comments_count}</span>
<span class="comments-count">
<img src="/icons/message-circle.svg" alt="Comments" class="icon-inline" />
{item.comments_count}
</span>
{/if}
</div>
{#if item.labels && item.labels.length > 0}
@ -331,6 +346,9 @@ @@ -331,6 +346,9 @@
cursor: pointer;
font-size: 0.9rem;
transition: background 0.2s;
display: inline-flex;
align-items: center;
gap: 0.5rem;
}
.refresh-button:hover:not(:disabled) {
@ -415,6 +433,9 @@ @@ -415,6 +433,9 @@
font-size: 0.75rem;
font-weight: 600;
flex-shrink: 0;
display: inline-flex;
align-items: center;
gap: 0.25rem;
}
.item-type-badge.pr {
@ -454,6 +475,9 @@ @@ -454,6 +475,9 @@
background: var(--bg-secondary);
border-radius: 4px;
font-weight: 500;
display: inline-flex;
align-items: center;
gap: 0.25rem;
}
.repo-name {
@ -535,6 +559,13 @@ @@ -535,6 +559,13 @@
gap: 0.25rem;
}
.icon-inline {
width: 14px;
height: 14px;
display: inline-block;
vertical-align: middle;
}
.item-labels {
display: flex;
flex-wrap: wrap;

2
src/routes/repos/+page.svelte

@ -542,7 +542,7 @@ @@ -542,7 +542,7 @@
{#if repoImage}
<img src={repoImage} alt={getRepoName(repo)} class="repo-badge-image" />
{:else}
<div class="repo-badge-icon">📦</div>
<img src="/icons/package.svg" alt="Repository" class="repo-badge-icon" />
{/if}
<span class="repo-badge-name">{getRepoName(repo)}</span>
</a>

16
src/routes/users/[npub]/+page.svelte

@ -319,7 +319,10 @@ @@ -319,7 +319,10 @@
{#if getForwardingPubkey()}
<ForwardingConfig userPubkeyHex={getForwardingPubkey()!} />
<div class="dashboard-link">
<a href="/dashboard" class="dashboard-button">📊 View Universal Git Dashboard</a>
<a href="/dashboard" class="dashboard-button">
<img src="/icons/layout-dashboard.svg" alt="Dashboard" class="icon-inline" />
View Universal Git Dashboard
</a>
</div>
{/if}
</header>
@ -740,7 +743,9 @@ @@ -740,7 +743,9 @@
}
.dashboard-button {
display: inline-block;
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.75rem 1.5rem;
background: var(--accent);
color: white;
@ -751,6 +756,13 @@ @@ -751,6 +756,13 @@
transition: background 0.2s;
}
.icon-inline {
width: 16px;
height: 16px;
display: inline-block;
vertical-align: middle;
}
.dashboard-button:hover {
background: var(--accent-dark);
}

4
static/icons/bell.svg

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/>
<path d="M13.73 21a2 2 0 0 1-3.46 0"/>
</svg>

After

Width:  |  Height:  |  Size: 286 B

8
static/icons/clipboard-list.svg

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect width="8" height="4" x="8" y="2" rx="1" ry="1"/>
<path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/>
<path d="M12 11h4"/>
<path d="M12 16h4"/>
<path d="M8 11h.01"/>
<path d="M8 16h.01"/>
</svg>

After

Width:  |  Height:  |  Size: 427 B

6
static/icons/git-branch.svg

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<line x1="6" y1="3" x2="6" y2="15"/>
<circle cx="18" cy="6" r="3"/>
<circle cx="6" cy="18" r="3"/>
<path d="M18 9a9 9 0 0 1-9 9"/>
</svg>

After

Width:  |  Height:  |  Size: 328 B

6
static/icons/git-pull-request.svg

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="18" cy="18" r="3"/>
<circle cx="6" cy="6" r="3"/>
<path d="M13 6h3a2 2 0 0 1 2 2v7"/>
<line x1="6" y1="9" x2="6" y2="21"/>
</svg>

After

Width:  |  Height:  |  Size: 332 B

2
static/icons/github.svg

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"/>
<path d="M15 22v-4a4.5 4.5 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"/>
<path d="M9 18c-4.51 2-5-2-7-2"/>
</svg>

Before

Width:  |  Height:  |  Size: 488 B

After

Width:  |  Height:  |  Size: 488 B

3
static/icons/gitlab.svg

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M22.65 14.39 12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.5A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94Z"/>
</svg>

After

Width:  |  Height:  |  Size: 457 B

10
static/icons/hammer.svg

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="m15 12-8.5 8.5c-.83.83-2.17.83-3 0 0 0 0 0 0 0a2.12 2.12 0 0 1 0-3L12 9"/>
<path d="M17.64 15 22 10.64"/>
<path d="m14.5 7.5 2.5-2.5"/>
<path d="m14.5 7.5 2.5 2.5"/>
<path d="m17 10 2.5-2.5"/>
<path d="m17 10 2.5 2.5"/>
<path d="m19.5 7.5 2.5-2.5"/>
<path d="m19.5 7.5 2.5 2.5"/>
</svg>

After

Width:  |  Height:  |  Size: 494 B

6
static/icons/layout-dashboard.svg

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect width="7" height="9" x="3" y="3" rx="1"/>
<rect width="7" height="5" x="14" y="3" rx="1"/>
<rect width="7" height="9" x="14" y="12" rx="1"/>
<rect width="7" height="5" x="3" y="16" rx="1"/>
</svg>

After

Width:  |  Height:  |  Size: 393 B

5
static/icons/menu.svg

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<line x1="4" y1="12" x2="20" y2="12"/>
<line x1="4" y1="6" x2="20" y2="6"/>
<line x1="4" y1="18" x2="20" y2="18"/>
</svg>

After

Width:  |  Height:  |  Size: 310 B

3
static/icons/message-circle.svg

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z"/>
</svg>

After

Width:  |  Height:  |  Size: 234 B

3
static/icons/moon.svg

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"/>
</svg>

After

Width:  |  Height:  |  Size: 238 B

7
static/icons/palette.svg

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/>
<circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/>
<circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/>
<circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/>
<path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"/>
</svg>

After

Width:  |  Height:  |  Size: 652 B

6
static/icons/refresh-cw.svg

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"/>
<path d="M21 3v5h-5"/>
<path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"/>
<path d="M8 16H3v5"/>
</svg>

After

Width:  |  Height:  |  Size: 369 B

4
static/icons/settings.svg

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2Z"/>
<circle cx="12" cy="12" r="3"/>
</svg>

After

Width:  |  Height:  |  Size: 803 B

4
static/icons/smartphone.svg

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect width="14" height="20" x="5" y="2" rx="2" ry="2"/>
<path d="M12 18h.01"/>
</svg>

After

Width:  |  Height:  |  Size: 273 B

11
static/icons/sun.svg

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="4"/>
<path d="M12 2v2"/>
<path d="M12 20v2"/>
<path d="m4.93 4.93 1.41 1.41"/>
<path d="m17.66 17.66 1.41 1.41"/>
<path d="M2 12h2"/>
<path d="M20 12h2"/>
<path d="m6.34 17.66-1.41 1.41"/>
<path d="m19.07 4.93-1.41 1.41"/>
</svg>

After

Width:  |  Height:  |  Size: 457 B

Loading…
Cancel
Save