games: official logos for all 16 game trackers (self-hosted, one map in #lib/game-logos) shown by TrackerIcon everywhere games appear; coloured tile stays as fallback; logo credits on the artwork credits page
All checks were successful
Deploy production / deploy (push) Successful in 1m24s

This commit is contained in:
2026-10-25 18:35:21 +00:00
parent eba5f9eda3
commit 5d3e8d0261
20 changed files with 254 additions and 17 deletions

View File

@@ -1,27 +1,59 @@
<script lang="ts"> <script lang="ts">
import { resolve } from '$app/paths';
import { gameLogos } from '#lib/game-logos.js';
import { defaultTrackerIcon, trackerIcons } from '#lib/tracker-icons.js'; import { defaultTrackerIcon, trackerIcons } from '#lib/tracker-icons.js';
// A coloured rounded tile with a white (or dark, on light tiles) inline-SVG icon. // A coloured rounded tile with a white (or dark, on light tiles) inline-SVG icon.
// Same in light and dark themes: the tile carries its own background. // Same in light and dark themes: the tile carries its own background.
// Games with an official logo (#lib/game-logos) show it on a neutral near-black tile
// instead; if the image fails to load, the game's coloured tile comes back.
let { name, class: className = 'size-8' }: { name: string; class?: string } = $props(); let { name, class: className = 'size-8' }: { name: string; class?: string } = $props();
const icon = $derived(trackerIcons[name] ?? defaultTrackerIcon); const icon = $derived(trackerIcons[name] ?? defaultTrackerIcon);
const logo = $derived(gameLogos[name]);
let failed = $state(false);
$effect(() => {
void name;
failed = false;
});
</script> </script>
<span {#if logo && !failed}
class="flex shrink-0 items-center justify-center rounded-lg shadow-sm ring-1 ring-black/10 ring-inset {className}" <span
style:background-image="linear-gradient(135deg, {icon.from}, {icon.to})" class="logo-tile flex shrink-0 items-center justify-center overflow-hidden rounded-lg shadow-sm ring-1 ring-white/10 ring-inset {className}"
style:color={icon.ink} aria-hidden="true"
aria-hidden="true"
>
<svg
viewBox="0 0 24 24"
class={icon.fill ? 'size-[54%]' : 'size-[58%]'}
fill={icon.fill ? 'currentColor' : 'none'}
stroke={icon.fill ? 'none' : 'currentColor'}
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
> >
{#each icon.paths as d, i (i)}<path {d} />{/each} <img
</svg> src={resolve(logo.src as '/')}
</span> alt=""
draggable="false"
decoding="async"
class={logo.bleed ? 'size-full object-cover' : 'size-[80%] object-contain'}
onerror={() => (failed = true)}
/>
</span>
{:else}
<span
class="flex shrink-0 items-center justify-center rounded-lg shadow-sm ring-1 ring-black/10 ring-inset {className}"
style:background-image="linear-gradient(135deg, {icon.from}, {icon.to})"
style:color={icon.ink}
aria-hidden="true"
>
<svg
viewBox="0 0 24 24"
class={icon.fill ? 'size-[54%]' : 'size-[58%]'}
fill={icon.fill ? 'currentColor' : 'none'}
stroke={icon.fill ? 'none' : 'currentColor'}
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
{#each icon.paths as d, i (i)}<path {d} />{/each}
</svg>
</span>
{/if}
<style>
.logo-tile {
background: linear-gradient(135deg, #1c1c1f, #0a0a0b);
}
</style>

106
src/lib/game-logos.ts Normal file
View File

@@ -0,0 +1,106 @@
// Official game logos for the game tracker: one self-hosted asset per game in
// static/game-logos/icons/, keyed like `gameTrackers[].icon` (game-<slug>). TrackerIcon uses
// this map everywhere games show up (header flyout, home and /trackers tiles, /start chips,
// the games switcher and each game page); a game without an entry keeps its tracker-icons tile.
// Square app icons/emblems are used instead of wide wordmarks so they stay legible at chip size.
export type GameLogo = {
/** Path under static/ (no leading slash), resolved with `asset`/`resolve` at render time. */
src: string;
/** Opaque square app icon: fill the whole tile instead of sitting padded on the dark tile. */
bleed?: boolean;
/** Where the asset came from (shown on /projects/game-tracker/credits). */
credit: string;
source: string;
};
const steamIcon = (appid: number) => `https://store.steampowered.com/app/${appid}/`;
const commons = (file: string) =>
`https://commons.wikimedia.org/wiki/File:${encodeURIComponent(file.replaceAll(' ', '_'))}`;
export const gameLogos: Record<string, GameLogo> = {
'game-osu': {
src: 'game-logos/icons/osu.svg',
credit: 'osu! logo (2016), Wikimedia Commons',
source: commons('Osu! Logo 2016.svg')
},
'game-cs2': {
src: 'game-logos/icons/cs2.png',
bleed: true,
credit: 'Counter-Strike 2 app icon, Steam',
source: steamIcon(730)
},
'game-pubg': {
src: 'game-logos/icons/pubg.png',
credit: 'PUBG: Battlegrounds icon, pubg.com',
source: 'https://pubg.com/'
},
'game-r6': {
src: 'game-logos/icons/r6.png',
bleed: true,
credit: 'Rainbow Six Siege app icon, Steam',
source: steamIcon(359550)
},
'game-tarkov': {
src: 'game-logos/icons/tarkov.png',
bleed: true,
credit: 'Escape from Tarkov app icon, Steam',
source: steamIcon(3932890)
},
'game-bo2': {
src: 'game-logos/icons/bo2.png',
bleed: true,
credit: 'Call of Duty: Black Ops II app icon, Steam',
source: steamIcon(202970)
},
'game-valorant': {
src: 'game-logos/icons/valorant.svg',
credit: 'Valorant logo (V mark, pink), Wikimedia Commons',
source: commons('Valorant logo - pink color version.svg')
},
'game-lol': {
src: 'game-logos/icons/lol.svg',
credit: 'League of Legends logomark, Simple Icons (Hextech gold)',
source: 'https://simpleicons.org/?q=league+of+legends'
},
'game-overwatch': {
src: 'game-logos/icons/overwatch.svg',
credit: 'Overwatch 2 logo (light emblem for dark tiles), Wikimedia Commons',
source: commons('Overwatch 2 logo.svg')
},
'game-minecraft': {
src: 'game-logos/icons/minecraft.svg',
credit: 'Minecraft grass block icon, Wikimedia Commons',
source: commons('Minecraft cube.svg')
},
'game-factorio': {
src: 'game-logos/icons/factorio.png',
credit: 'Factorio wheel logo, official Factorio press kit',
source: 'https://factorio.com/support/press-kit'
},
'game-ksp': {
src: 'game-logos/icons/ksp.png',
credit: 'Kerbal Space Program app icon, Steam',
source: steamIcon(220200)
},
'game-smash': {
src: 'game-logos/icons/smash.svg',
credit: 'Super Smash Bros. emblem, Wikimedia Commons (flame-coloured)',
source: commons('Smash Ball.svg')
},
'game-cubing': {
src: 'game-logos/icons/cubing.svg',
credit: 'World Cube Association logo, Wikimedia Commons',
source: commons('World Cube Association.svg')
},
'game-pokemon': {
src: 'game-logos/icons/pokemon.svg',
credit: 'Poké Ball icon, Wikimedia Commons',
source: commons('Poké Ball icon.svg')
},
'game-sot': {
src: 'game-logos/icons/sot.png',
credit: 'Sea of Thieves app icon (skull), Steam',
source: steamIcon(1172620)
}
};

View File

@@ -1,4 +1,6 @@
import { describe, expect, it } from 'vitest'; import { describe, expect, it } from 'vitest';
import { existsSync } from 'node:fs';
import { gameLogos } from './game-logos';
import { trackerIcons } from './tracker-icons'; import { trackerIcons } from './tracker-icons';
import { gameTrackers, spottingTrackers, visibleTrackers } from './projects'; import { gameTrackers, spottingTrackers, visibleTrackers } from './projects';
@@ -16,6 +18,17 @@ describe('tracker icons', () => {
expect(new Set(keys.map((k) => trackerIcons[k].to)).size).toBe(keys.length); expect(new Set(keys.map((k) => trackerIcons[k].to)).size).toBe(keys.length);
}); });
it('gives every game a self-hosted official logo', () => {
const keys = gameTrackers.map((g) => g.icon ?? g.name);
for (const key of keys) {
const logo = gameLogos[key];
expect(logo, key).toBeDefined();
expect(logo.src, key).toMatch(/^game-logos\/icons\/[a-z0-9-]+\.(svg|png)$/);
expect(existsSync(`static/${logo.src}`), logo.src).toBe(true);
}
expect(Object.keys(gameLogos).sort()).toEqual([...keys].sort());
});
it('links every game to its own page under /trackers/games', () => { it('links every game to its own page under /trackers/games', () => {
const slugs = gameTrackers.map((g) => g.href.replace('/trackers/games/', '')); const slugs = gameTrackers.map((g) => g.href.replace('/trackers/games/', ''));
for (const slug of slugs) expect(slug).toMatch(/^[a-z0-9-]+$/); for (const slug of slugs) expect(slug).toMatch(/^[a-z0-9-]+$/);

View File

@@ -1,5 +1,8 @@
<script lang="ts"> <script lang="ts">
import { resolve } from '$app/paths'; import { resolve } from '$app/paths';
import TrackerIcon from '#lib/components/TrackerIcon.svelte';
import { gameLogos } from '#lib/game-logos.js';
import { gameTrackers } from '#lib/projects.js';
import type { PageProps } from './$types'; import type { PageProps } from './$types';
let { data }: PageProps = $props(); let { data }: PageProps = $props();
</script> </script>
@@ -16,6 +19,23 @@
stores WebP copies for consistent, reliable display. Map imagery is shared across games in the stores WebP copies for consistent, reliable display. Map imagery is shared across games in the
same region; later-region landmark positions are approximate. same region; later-region landmark positions are approximate.
</p> </p>
<h2 class="mt-8 text-xl font-semibold">Game logos</h2>
<ul class="mt-4 grid gap-3 sm:grid-cols-2">
{#each gameTrackers as game (game.href)}
{@const logo = gameLogos[game.icon ?? game.name]}
{#if logo}
<li class="flex items-center gap-3">
<TrackerIcon name={game.icon ?? game.name} class="size-8" />
<div class="min-w-0">
<p class="text-sm font-medium">{game.name}</p>
<a href={logo.source} target="_blank" rel="noreferrer" class="text-xs underline"
>{logo.credit}</a
>
</div>
</li>
{/if}
{/each}
</ul>
<h2 class="mt-8 text-xl font-semibold">Regional maps</h2> <h2 class="mt-8 text-xl font-semibold">Regional maps</h2>
<ul class="mt-4 space-y-3"> <ul class="mt-4 space-y-3">
{#each data.maps as map (map.name)}<li> {#each data.maps as map (map.name)}<li>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="292.72525" height="293.19345" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" sodipodi:docname="WCAlogo_notxt.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" version="1.0">
<defs id="defs4">
<inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/>
<inkscape:perspective id="perspective2708" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_z="1 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 0.5 : 1" sodipodi:type="inkscape:persp3d"/>
</defs>
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" gridtolerance="10000" guidetolerance="10" objecttolerance="10" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1" inkscape:cx="488.82342" inkscape:cy="133.91599" inkscape:document-units="px" inkscape:current-layer="g3312" showgrid="false" showguides="true" inkscape:guide-bbox="true" inkscape:window-width="1280" inkscape:window-height="821" inkscape:window-x="0" inkscape:window-y="25"/>
<metadata id="metadata7">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(-440.9061,488.30753)">
<g id="g3312" transform="matrix(0.499989,0,0,0.499989,301.618,-244.854)">
<path id="path3273" d="M 571.26982,-486.6847 C 409.2858,-486.6847 278.58232,-355.6553 278.58232,-193.6712 C 278.58232,-31.6873 408.6538,98.5781 570.63782,98.5781 C 732.62185,98.5781 863.8228,-31.1822 863.8228,-193.1661 C 863.8228,-355.1502 733.49939,-486.7293 571.51536,-486.7293 L 571.26982,-486.6843 L 571.26982,-486.6847 L 571.26982,-486.6847 L 571.26982,-486.6847 L 571.26982,-486.6847 L 571.26982,-486.6847 z M 571.24752,-420.1368 C 696.42968,-420.1368 797.3975,-318.8534 797.3975,-193.6712 C 797.3975,-68.4892 696.42968,32.8575 571.24752,32.8575 C 446.06538,32.8575 344.46627,-68.4892 344.46627,-193.6712 C 344.46627,-318.8534 446.06538,-420.1368 571.24752,-420.1368 L 571.24752,-420.1368 z" style="fill:#eeeeec;fill-opacity:1;stroke:none" sodipodi:nodetypes="cssscccccccccccc"/>
<path sodipodi:nodetypes="ccccccc" id="rect2804" d="M 379.05952,-304.5234 C 379.05952,-304.5234 571.26044,-415.1347 571.26044,-415.1347 C 571.26044,-415.1347 762.73892,-304.4187 762.73892,-304.4187 L 762.41241,-82.5423 L 570.73597,28.3219 L 378.80699,-82.5424 L 379.05952,-304.5234 L 379.05952,-304.5234 z" style="fill:#eeeeec;fill-opacity:1;stroke:none"/>
<path sodipodi:nodetypes="ccccscccssscsssssssssssscccsssscssccsssssssccc" style="fill:#ddda45" d="M 472.98795,-28.0612 L 378.94821,-82.4139 L 378.73696,-191.7161 C 378.62087,-251.8324 378.80806,-301.2785 379.15305,-301.5964 C 379.6077,-302.0154 536.82532,-211.8306 566.01826,-194.4049 L 569.10816,-192.5605 L 569.10816,-83.0968 C 569.10816,3.9396 568.89507,26.3593 568.06788,26.3292 C 567.49573,26.3072 524.70973,1.8328 472.98786,-28.0612 L 472.98795,-28.0612 L 472.98795,-28.0612 L 472.98795,-28.0612 z M 525.83331,-54.3672 C 525.83331,-67.2466 525.64546,-69.3719 524.37694,-70.852 C 523.57595,-71.7866 506.63007,-81.4324 486.71943,-92.2872 C 447.29059,-113.7829 443.60209,-115.988 438.37366,-121.1897 C 432.01698,-127.5138 431.98868,-127.6771 431.66466,-159.9057 C 431.38629,-187.5933 431.42817,-188.5118 433.02567,-189.6812 C 436.36238,-192.124 435.79996,-192.388 484.04051,-165.7389 C 526.25472,-142.419 524.04491,-143.5303 525.04797,-145.1157 C 525.46587,-145.7762 525.81357,-152.9225 525.82059,-160.9962 C 525.83289,-173.8022 525.64753,-175.8872 524.37694,-177.3328 C 522.67932,-179.2645 444.9488,-222.4015 438.83373,-224.8055 C 424.67412,-230.3722 415.74672,-228.0109 411.08379,-217.4656 C 408.20628,-210.9581 407.67173,-203.9645 407.68099,-172.9474 C 407.69329,-132.4169 409.3536,-121.6587 417.82851,-107.2028 C 421.95427,-100.1653 433.37912,-88.517 441.04923,-83.5278 C 444.08013,-81.5563 463.92835,-70.4751 485.15639,-58.903 C 513.35169,-43.5328 524.03312,-38.0944 524.79305,-38.7221 C 525.55397,-39.3507 525.83331,-43.5516 525.83331,-54.3672 L 525.83331,-54.3672 L 525.83331,-54.3672 L 525.83331,-54.3672 z M 761.2232,-316.3149 C 746.21684,-339.4892 728.35992,-358.5343 706.00685,-375.2057 C 670.64686,-401.5778 628.04125,-417.02 583.67191,-419.5454 L 573.68539,-420.1139 L 573.46767,-453.2166 C 573.28506,-480.9985 573.43687,-486.3915 574.41745,-486.7674 C 576.25795,-487.4737 600.80647,-485.5634 613.63141,-483.7159 C 630.77542,-481.2463 645.77645,-477.6385 663.56405,-471.7069 C 681.46704,-465.7369 691.94181,-461.3052 707.97219,-452.9186 C 746.13025,-432.9553 779.4455,-404.5151 805.9129,-369.3096 C 813.5093,-359.2054 823.9248,-343.1903 823.5721,-342.1564 C 823.3331,-341.4559 767.38049,-309.0006 766.46763,-309.033 C 766.16985,-309.043 763.80956,-312.3204 761.2231,-316.3149 L 761.2232,-316.3149 L 761.2232,-316.3149 z" id="path2730"/>
<path sodipodi:nodetypes="cssscsscccsss" style="fill:#e7762a" d="M 797.1339,-65.2003 C 782.2581,-73.8437 769.7638,-81.4153 769.36874,-82.0261 C 768.89371,-82.7606 770.1973,-86.226 773.2171,-92.2568 C 805.1639,-156.0569 805.1789,-231.4167 773.2581,-295.1666 C 770.7687,-300.138 768.90041,-304.6445 769.10627,-305.1808 C 769.55996,-306.3633 823.4712,-337.4944 825.2988,-337.6293 C 829.0888,-337.9092 846.7039,-297.6207 853.3578,-273.4542 C 861.1135,-245.2857 864.0281,-223.5511 864.0456,-193.7523 C 864.0636,-164.0911 861.1457,-142.3359 853.3578,-114.0504 C 846.9085,-90.6264 829.3433,-50.1379 825.4153,-49.6412 C 824.7364,-49.5552 812.0098,-56.557 797.1341,-65.2003 L 797.1342,-65.2003 L 797.1342,-65.2003 L 797.1339,-65.2003 z" id="path2726"/>
<path sodipodi:nodetypes="ccscssssccccccsscccsssssssscccscsccscssssssssscccss" style="fill:#e02826" d="M 573.2693,-82.9918 L 573.2693,-192.3509 L 581.79945,-197.3257 C 627.91968,-224.223 762.46989,-301.512 762.72696,-301.2549 C 762.90957,-301.0724 763.07866,-251.9492 763.10277,-192.0922 C 763.13817,-102.5647 762.95034,-83.075 762.03973,-82.2112 C 761.4309,-81.6336 723.10874,-59.3457 676.87948,-32.6824 C 630.65018,-6.0191 588.71656,18.1748 583.69362,21.0818 C 578.67066,23.9889 574.27032,26.3674 573.91514,26.3674 C 573.5599,26.3674 573.2693,-22.8442 573.2693,-82.9918 L 573.2693,-82.9918 z M 631.1079,-46.8009 L 636.10115,-49.8059 L 643.59109,-71.4303 L 651.08096,-93.0548 L 677.69444,-107.8266 C 692.33185,-115.951 704.57302,-122.5983 704.89701,-122.5983 C 705.22096,-122.5983 708.17756,-117.7139 711.46716,-111.7442 C 714.75679,-105.7745 718.09945,-100.0859 718.89544,-99.1029 L 720.34267,-97.3157 L 729.81075,-102.6914 C 735.01811,-105.6481 739.39717,-108.6826 739.54209,-109.4347 C 739.68682,-110.1868 731.41844,-126.6573 721.16764,-146.0357 C 710.91687,-165.4141 699.22281,-187.5652 695.18079,-195.2603 C 687.22703,-210.4027 685.48092,-212.2954 680.47899,-211.1967 C 677.2462,-210.4867 672.30382,-205.5421 670.07794,-200.791 C 669.122,-198.7505 660.08242,-173.6752 649.99002,-145.068 C 639.89762,-116.4608 627.2941,-80.7758 621.98219,-65.7682 C 616.67028,-50.7606 612.55685,-38.1051 612.84117,-37.645 C 613.3465,-36.8274 620.45912,-40.3925 631.1079,-46.8009 L 631.1079,-46.8009 L 631.1079,-46.8009 L 631.1079,-46.8009 z M 670.44679,-149.5534 C 674.44247,-161.2655 678.03407,-170.7448 678.42808,-170.6186 C 679.6004,-170.2428 693.2221,-145.0943 692.70569,-144.2588 C 692.24168,-143.508 667.46916,-129.8727 664.62137,-128.8006 C 663.49661,-128.3772 664.7701,-132.9144 670.44679,-149.5534 L 670.44679,-149.5534 z M 309.66304,-62.055 C 296.05917,-89.4215 287.34557,-116.0777 282.45311,-145.2945 C 279.64941,-162.0376 278.66686,-174.8178 278.66686,-194.5433 C 278.66686,-233.1394 285.66945,-269.1738 300.02248,-304.4363 C 303.67924,-313.4202 314.71409,-336.2304 316.05492,-337.5771 C 316.59853,-338.123 370.29737,-307.9918 373.01808,-305.6142 C 373.41825,-305.2645 371.6823,-300.9242 369.16036,-295.9691 C 357.29257,-272.6512 349.48986,-246.6403 345.98682,-218.7186 C 344.48337,-206.7351 344.69933,-178.5368 346.39047,-166.009 C 350.08936,-138.6085 357.9972,-112.9662 369.7008,-90.4218 C 372.69521,-84.6538 373.28716,-82.8825 372.48165,-82.1009 C 370.73034,-80.4014 317.93105,-50.196 316.71173,-50.196 C 316.05815,-50.196 313.00277,-55.3365 309.66304,-62.055 L 309.66304,-62.055 L 309.66304,-62.055 L 309.66304,-62.055 z" id="path2724"/>
<path sodipodi:nodetypes="cscccccssssccccc" style="fill:#3d9c46" d="M 348.17729,-324.8134 C 333.10141,-333.5091 320.27469,-341.1156 319.67346,-341.7169 C 318.77077,-342.6195 319.53612,-344.3173 324.06648,-351.4627 C 363.96184,-414.3853 428.34384,-460.5108 501.1427,-478.3263 C 521.53705,-483.3172 540.78851,-485.9826 559.95393,-486.4687 L 568.69214,-486.6903 L 568.69214,-453.4019 L 568.69214,-420.1135 L 558.70561,-419.5367 C 518.23384,-417.1994 479.87916,-404.4524 446.60838,-382.2817 C 431.77592,-372.3978 423.34138,-365.5211 411.38065,-353.5604 C 399.74405,-341.9238 392.67812,-333.3128 383.36266,-319.416 C 379.6808,-313.9234 376.42529,-309.3335 376.12822,-309.2162 C 375.83106,-309.099 363.25321,-316.1176 348.17729,-324.8133 L 348.17729,-324.8134 L 348.17729,-324.8134 L 348.17729,-324.8134 z" id="path2722"/>
<path id="path2802" d="M 347.01646,-62.8538 C 361.93976,-71.415 374.74411,-78.4495 375.47061,-78.4863 C 376.34422,-78.5303 378.69355,-75.6688 382.40647,-70.0381 C 421.68559,-10.4714 486.94159,27.2215 558.11099,31.4523 C 563.66109,31.7821 568.49799,32.4173 568.85949,32.8638 C 569.65669,33.8479 569.66139,96.102 568.85949,97.7522 C 567.20689,101.1744 523.50839,96.2852 499.25269,89.9644 C 470.98019,82.5968 450.70019,74.2536 424.88489,59.3694 C 399.18855,44.5544 381.80695,31.1498 361.20493,10.2625 C 344.14381,-7.0347 317.86234,-42.4909 319.39618,-46.141 C 319.66115,-46.7719 332.08819,-54.2926 347.01136,-62.8537 L 347.01131,-62.8536 L 347.01131,-62.8536 L 347.01646,-62.8538 z" style="fill:#eeeeec" sodipodi:nodetypes="cssscsscccsss"/>
<path sodipodi:nodetypes="ccccssssssssccccsssccccssssssssssssssssssssssccc" style="fill:#304a96" d="M 573.684,98.65 C 573.44504,98.0271 573.34745,82.913 573.46752,65.0631 L 573.68554,32.6089 L 583.67207,32.0322 C 624.11123,29.6967 662.53636,16.923 695.79802,-5.2418 C 710.51658,-15.0499 718.98659,-21.963 730.9824,-33.9589 C 742.65743,-45.634 749.75794,-54.2788 759.01508,-68.0885 C 762.69691,-73.5811 765.964,-78.1749 766.27536,-78.2969 C 766.95892,-78.5648 821.1392,-47.3527 822.7002,-45.7918 C 823.6083,-44.8837 822.8846,-43.2549 818.5002,-36.34 C 790.6681,7.5567 749.74254,44.5989 703.43278,67.809 C 665.38783,86.877 628.26571,96.6013 583.47258,99.233 C 575.96916,99.674 574.0328,99.5586 573.68415,98.65 L 573.684,98.65 L 573.684,98.65 L 573.684,98.65 z M 475.70481,-251.0165 C 424.10406,-280.8551 381.88516,-305.643 381.88504,-306.1007 C 381.8847,-307.3027 569.09163,-415.1202 571.17903,-415.1202 C 573.51044,-415.1202 761.63959,-306.4708 760.77484,-305.6237 C 758.89415,-303.7812 572.24872,-196.6722 570.993,-196.7148 C 570.18521,-196.7428 527.30557,-221.1779 475.70481,-251.0165 L 475.70481,-251.0165 z M 538.00578,-246.4391 C 539.86768,-247.389 541.95083,-249.0304 542.63501,-250.0866 C 543.31919,-251.1428 549.77747,-263.3355 556.98684,-277.1814 C 564.19612,-291.0273 570.35538,-302.3557 570.67404,-302.3557 C 570.99266,-302.3557 577.23073,-290.7134 584.53643,-276.484 C 593.66066,-258.7124 598.6629,-249.8644 600.51325,-248.2238 C 606.0368,-243.3265 616.47025,-242.8391 622.74043,-247.1855 C 625.85367,-249.3436 627.9057,-253.0859 649.27018,-295.5683 C 662.00572,-320.8924 672.22244,-342.1418 671.97402,-342.7892 C 671.61,-343.7378 668.89305,-343.9638 657.97281,-343.9535 C 650.52054,-343.9435 643.99991,-343.6656 643.48245,-343.3293 C 642.96495,-342.9931 635.7303,-329.0932 627.40539,-312.4409 C 618.98562,-295.5987 611.95705,-282.4893 611.56575,-282.8974 C 611.17882,-283.3009 605.15662,-294.6786 598.18298,-308.1812 C 591.20933,-321.6838 584.57325,-333.9893 583.43606,-335.5267 C 577.84957,-343.0794 564.43834,-343.301 558.25509,-335.9427 C 557.12975,-334.6035 550.21708,-322.0084 542.89362,-307.9537 C 535.57019,-293.8989 529.37724,-282.3958 529.13153,-282.3911 C 528.88579,-282.3811 522.15906,-295.5836 514.18313,-311.7181 C 506.20724,-327.8526 499.14118,-341.7089 498.48083,-342.5099 C 497.43011,-343.7844 495.65967,-343.9646 484.30189,-343.9535 C 477.1638,-343.9435 470.79751,-343.6077 470.15459,-343.2007 C 468.87184,-342.3886 475.40405,-328.1231 500.28989,-277.3894 C 513.67845,-250.0948 515.38213,-247.4988 521.37039,-245.269 C 525.6673,-243.6689 533.68061,-244.2326 538.00578,-246.4391 L 538.00578,-246.4391 L 538.00578,-246.4391 z" id="path2720"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><linearGradient id="g" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#f0e6d2"/><stop offset=".45" stop-color="#c8aa6e"/><stop offset="1" stop-color="#785a28"/></linearGradient></defs><path fill="url(#g)" d="m1.912 0l1.212 2.474v19.053L1.912 24h14.73l1.337-4.682H8.33V0ZM12 1.516c-.913 0-1.798.112-2.648.312v1.74A9.7 9.7 0 0 1 12 3.2c5.267 0 9.536 4.184 9.536 9.348a9.2 9.2 0 0 1-2.3 6.086l-.273.954l-.602 2.112c2.952-1.993 4.89-5.335 4.89-9.122C23.25 6.468 18.213 1.516 12 1.516m0 2.673c-.924 0-1.814.148-2.648.414v13.713h8.817a8.25 8.25 0 0 0 2.36-5.768c0-4.617-3.818-8.359-8.529-8.359M2.104 7.312A10.86 10.86 0 0 0 .75 12.576c0 1.906.492 3.7 1.355 5.266z"/></svg>

After

Width:  |  Height:  |  Size: 742 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="546" height="651"><path d="m1.58 159 272 82.6v408l-272-120z" fill="#5b422d"/><path d="M1.5 198l17 7.5V180l17 7.5V213l34 15-.007 25.5 17 7.5-.007-76.5 17 7.48-.03 51 17 7.5.003-25.5 17 7.5.012 51 17 7.5.07-25.5 16.9 7.48v25.5l17 7.5v-25.5l17 7.52-.01-25.5 17 7.5-.008 25.5 34 15-.01-25.5 17 7.5v-51l-272-120z" fill="#64a43a" stroke="#64a43a"/><path d="M1.7 121l272 120 271-120-272-120z" fill="#5a9a30" stroke="#5a9a30"/><path d="m545 172-272 69.2v408l272-120z" fill="#4f3624" stroke="#4f3624"/><path d="M545 122l.154 50.9-17 7.5.073 25.5-34 15-.073-25.5-16.9 7.47.003 25.5-17 7.5-.003 25.5-17 7.5-.003-25.5-17 7.5-.2 25.6-16.8 7.42.003-51-17 7.54.008 25.5-16.3 7.2-.655-50.7-17 7.5-.007 76.5-17 7.5v-25.5l-34 15v-25.5l-17 7.5v25.5l-17 7.5-.004-76.5z" fill="#3b6121" stroke="#3b6121"/></svg>

After

Width:  |  Height:  |  Size: 836 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -0,0 +1 @@
<svg class="OW2Logo-svg OW2Logo-svg--dark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 36.29"><path d="M18.15 5.18a13 13 0 0 1 8.51 3.19l3.67-3.67A18.15 18.15 0 0 0 6 4.7l3.63 3.67a13 13 0 0 1 8.52-3.19z" fill="#e8e8ea"></path><path d="M31.43 5.78l-3.67 3.67a13 13 0 0 1 1.7 15l-7.27-7-3.28-7.9v11.89l7.2 6.93a12.95 12.95 0 0 1-15.93 0l7.2-6.93V9.55l-3.28 7.92-7.27 7a13 13 0 0 1 1.7-15L4.86 5.78a18.15 18.15 0 1 0 26.57 0z" fill="#e8e8ea"></path><path d="M48.47 10.23H39a22.39 22.39 0 0 0-4.65-7.41L32.7 4.51a19.91 19.91 0 0 1 0 27.27l1.69 1.69A22.29 22.29 0 0 0 39 26.06h9.43A1.53 1.53 0 0 0 50 24.53V11.76a1.53 1.53 0 0 0-1.53-1.53z" fill="#f06414"></path><path d="M42.88 21.18l3.76-3.55a5.71 5.71 0 0 0 .64-.66 2.15 2.15 0 0 0 .44-1.18v-.85a1.58 1.58 0 0 0 0-.38 2.06 2.06 0 0 0-.14-.44l-6.36 6c-.2.19-.41.38-.6.6a1.92 1.92 0 0 0-.48 1.28v1.34h6.49a1.21 1.21 0 0 0 .7-.22 1.59 1.59 0 0 0 .67-1.45v-.49zM46.9 13.3a1.38 1.38 0 0 0-.9-.3h-3.78a1.57 1.57 0 0 0-.37 0 1.89 1.89 0 0 0-1.1.94 2.61 2.61 0 0 0-.36 1.4v1h2.15v-1.23H45z" fill="#fff"></path><path d="M31.54 33.26h-.13v.19h-.06v-.51h.21a.14.14 0 0 1 .15.16.15.15 0 0 1-.11.16l.12.19h-.08zm-.13-.06h.14a.1.1 0 0 0 0-.2h-.14z" fill="#e8e8ea"></path><path d="M31.52 33.68a.49.49 0 0 1-.52-.48.48.48 0 1 1 1 0 .49.49 0 0 1-.48.48zm0-.9a.41.41 0 0 0-.41.42.41.41 0 0 0 .41.41.41.41 0 0 0 .42-.41.42.42 0 0 0-.42-.42z" fill="#e8e8ea"></path></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Pokéball" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 595.3 594.1" style="enable-background:new 0 0 595.3 594.1;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#DFDFDF;}
.st2{fill:#FF1C1C;}
.st3{fill:#DF1818;}
</style>
<g id="Pokéball_1_">
<g id="Colours">
<path id="Down" class="st0" d="M297.6,380.9c-40.4,0-74.1-28.6-82.1-66.6H81.1c9.5,110.5,102.2,197.2,215.1,197.2
s205.7-86.7,215.1-197.2H379.7C371.7,352.4,338,380.9,297.6,380.9z"/>
<path id="Shadow_Down" class="st1" d="M345.6,505.9c89.6-21,157.7-97.7,165.7-191.6h-53C453,399.5,408.3,471.7,345.6,505.9z"/>
<path id="Center" class="st0" d="M347.1,297L347.1,297C347,297,347,297,347.1,297c-0.1-6.1-1.2-11.9-3.2-17.3
c-7-18.8-25.1-32.1-46.3-32.1s-39.3,13.4-46.3,32.1c-2,5.4-3.1,11.2-3.1,17.3c0,0,0,0,0,0h0.1c0,0,0,0,0,0
c0,6.1,1.1,11.9,3.1,17.3c7,18.8,25.1,32.1,46.3,32.1c21.2,0,39.3-13.4,46.3-32.1C346,309,347.1,303.1,347.1,297
C347.1,297,347.1,297,347.1,297z"/>
<path id="Up" class="st2" d="M297.7,213.2c40.4,0,74.1,28.6,82.1,66.6h134.4C504.7,169.2,412,82.5,299,82.5S93.4,169.2,83.9,279.7
h131.7C223.6,241.7,257.3,213.2,297.7,213.2z"/>
<path id="Shadow_Up" class="st3" d="M458.3,279.7h55.8c-8.2-95.5-78.6-173.3-170.5-192.6C407.4,120.8,452.9,193.7,458.3,279.7z"/>
</g>
<path id="Line" d="M299,82.5c113,0,205.7,86.7,215.1,197.2H379.7c-8-38-41.7-66.6-82.1-66.6c-40.4,0-74.1,28.6-82.1,66.6H83.9
C93.4,169.2,186.1,82.5,299,82.5z M343.9,279.7c2,5.4,3.1,11.2,3.1,17.3c0,0,0,0,0,0h0.1c0,0,0,0,0,0c0,6.1-1.1,11.9-3.1,17.3
c-7,18.8-25.1,32.1-46.3,32.1c-21.2,0-39.3-13.4-46.3-32.1c-2-5.4-3.1-11.2-3.1-17.3c0,0,0,0,0,0h-0.1c0,0,0,0,0,0
c0-6.1,1.1-11.9,3.1-17.3c7-18.8,25.1-32.1,46.3-32.1S336.9,261,343.9,279.7z M296.2,511.6c-113,0-205.7-86.7-215.1-197.2h134.4
c8,38,41.7,66.6,82.1,66.6s74.1-28.6,82.1-66.6h131.7C501.9,424.8,409.2,511.6,296.2,511.6z M297.6,41.3
C156.4,41.3,41.9,155.8,41.9,297s114.5,255.7,255.7,255.7S553.4,438.3,553.4,297S438.9,41.3,297.6,41.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 275 275"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#ffd23f"/><stop offset=".5" stop-color="#ff6a00"/><stop offset="1" stop-color="#e60012"/></linearGradient><clipPath id="c"><path d="m0,0h54v155H0m0,25h54v92H0M115,0h160v155H115m0,25h160v92H115"/></clipPath></defs><circle clip-path="url(#c)" cx="137" cy="137" r="130" fill="url(#g)"/></svg>

After

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="236 0 530 434"><path fill="#ff4655" opacity="1.00" d=" M 245.44 4.65 C 248.61 2.76 250.63 6.58 252.34 8.59 C 362.37 146.24 472.53 283.79 582.55 421.44 C 584.81 423.40 583.10 427.59 580.05 427.14 C 527.37 427.20 474.68 427.16 422.00 427.16 C 417.78 427.21 413.74 425.11 411.15 421.82 C 356.49 353.53 301.86 285.21 247.20 216.91 C 244.88 214.15 243.68 210.58 243.83 206.99 C 243.83 141.01 243.85 75.02 243.81 9.04 C 243.84 7.48 243.78 5.46 245.44 4.65 Z" /><path fill="#ff4655" opacity="1.00" d=" M 754.32 4.33 C 756.57 3.48 759.05 5.56 758.72 7.92 C 758.80 73.93 758.71 139.94 758.76 205.95 C 758.91 209.69 758.09 213.56 755.66 216.50 C 739.05 237.28 722.42 258.05 705.81 278.82 C 703.04 282.42 698.51 284.41 693.98 284.18 C 641.65 284.13 589.31 284.21 536.98 284.14 C 533.89 284.62 532.13 280.45 534.41 278.44 C 606.98 187.65 679.61 96.89 752.22 6.12 C 752.77 5.34 753.47 4.74 754.32 4.33 Z" /></svg>

After

Width:  |  Height:  |  Size: 949 B