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
@@ -1,27 +1,59 @@
|
||||
<script lang="ts">
|
||||
import { resolve } from '$app/paths';
|
||||
import { gameLogos } from '#lib/game-logos.js';
|
||||
import { defaultTrackerIcon, trackerIcons } from '#lib/tracker-icons.js';
|
||||
|
||||
// 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.
|
||||
// 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();
|
||||
const icon = $derived(trackerIcons[name] ?? defaultTrackerIcon);
|
||||
const logo = $derived(gameLogos[name]);
|
||||
let failed = $state(false);
|
||||
$effect(() => {
|
||||
void name;
|
||||
failed = false;
|
||||
});
|
||||
</script>
|
||||
|
||||
<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"
|
||||
{#if logo && !failed}
|
||||
<span
|
||||
class="logo-tile flex shrink-0 items-center justify-center overflow-hidden rounded-lg shadow-sm ring-1 ring-white/10 ring-inset {className}"
|
||||
aria-hidden="true"
|
||||
>
|
||||
{#each icon.paths as d, i (i)}<path {d} />{/each}
|
||||
</svg>
|
||||
</span>
|
||||
<img
|
||||
src={resolve(logo.src as '/')}
|
||||
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
@@ -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)
|
||||
}
|
||||
};
|
||||
@@ -1,4 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { existsSync } from 'node:fs';
|
||||
import { gameLogos } from './game-logos';
|
||||
import { trackerIcons } from './tracker-icons';
|
||||
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);
|
||||
});
|
||||
|
||||
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', () => {
|
||||
const slugs = gameTrackers.map((g) => g.href.replace('/trackers/games/', ''));
|
||||
for (const slug of slugs) expect(slug).toMatch(/^[a-z0-9-]+$/);
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<script lang="ts">
|
||||
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';
|
||||
let { data }: PageProps = $props();
|
||||
</script>
|
||||
@@ -16,6 +19,23 @@
|
||||
stores WebP copies for consistent, reliable display. Map imagery is shared across games in the
|
||||
same region; later-region landmark positions are approximate.
|
||||
</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>
|
||||
<ul class="mt-4 space-y-3">
|
||||
{#each data.maps as map (map.name)}<li>
|
||||
|
||||
BIN
static/game-logos/icons/bo2.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
static/game-logos/icons/cs2.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
29
static/game-logos/icons/cubing.svg
Normal 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 |
BIN
static/game-logos/icons/factorio.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
static/game-logos/icons/ksp.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
1
static/game-logos/icons/lol.svg
Normal 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 |
1
static/game-logos/icons/minecraft.svg
Normal 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 |
1
static/game-logos/icons/osu.svg
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
1
static/game-logos/icons/overwatch.svg
Normal 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 |
31
static/game-logos/icons/pokemon.svg
Normal 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 |
BIN
static/game-logos/icons/pubg.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
static/game-logos/icons/r6.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
1
static/game-logos/icons/smash.svg
Normal 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 |
BIN
static/game-logos/icons/sot.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
static/game-logos/icons/tarkov.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
1
static/game-logos/icons/valorant.svg
Normal 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 |