mirror of
https://github.com/pupperpowell/bibdle.git
synced 2026-04-05 17:33:31 -04:00
feat: add WAU history table, fix retention metric, add new logos and favicon
- Add 12-week Weekly Active Users table to global stats with WoW change % - Fix 7-day and 30-day retention to measure return on exactly day N (not any day within the window) - Remove "Avg Guesses Today" stat card - Update retention description to clarify exact-day measurement - Add bibdle logos (SVG, square PNG, circle PNG) and new favicon.png - Wire favicon.png as the site favicon via app.html link tag Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
385
bibdle_logo.svg
Normal file
385
bibdle_logo.svg
Normal file
@@ -0,0 +1,385 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="680"
|
||||
viewBox="0 0 680 520"
|
||||
version="1.1"
|
||||
id="svg41"
|
||||
sodipodi:docname="bibdle_logo.svg"
|
||||
inkscape:version="1.4 (e7c3feb1, 2024-10-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview41"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="true"
|
||||
inkscape:zoom="0.91550428"
|
||||
inkscape:cx="321.68064"
|
||||
inkscape:cy="144.18283"
|
||||
inkscape:window-width="1512"
|
||||
inkscape:window-height="921"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="33"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg41">
|
||||
<inkscape:grid
|
||||
id="grid41"
|
||||
units="px"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="1"
|
||||
spacingy="1"
|
||||
empcolor="#0099e5"
|
||||
empopacity="0.30196078"
|
||||
color="#0099e5"
|
||||
opacity="0.14901961"
|
||||
empspacing="5"
|
||||
enabled="true"
|
||||
visible="true" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs32">
|
||||
<linearGradient
|
||||
id="bgSq"
|
||||
x1="0"
|
||||
y1="0"
|
||||
x2="0"
|
||||
y2="1">
|
||||
<stop
|
||||
offset="0%"
|
||||
stop-color="rgb(110,154,202)"
|
||||
id="stop1" />
|
||||
<stop
|
||||
offset="3.23%"
|
||||
stop-color="rgb(111,155,203)"
|
||||
id="stop2" />
|
||||
<stop
|
||||
offset="6.45%"
|
||||
stop-color="rgb(112,156,203)"
|
||||
id="stop3" />
|
||||
<stop
|
||||
offset="9.68%"
|
||||
stop-color="rgb(114,158,204)"
|
||||
id="stop4" />
|
||||
<stop
|
||||
offset="12.9%"
|
||||
stop-color="rgb(115,159,205)"
|
||||
id="stop5" />
|
||||
<stop
|
||||
offset="16.13%"
|
||||
stop-color="rgb(116,160,205)"
|
||||
id="stop6" />
|
||||
<stop
|
||||
offset="19.35%"
|
||||
stop-color="rgb(118,162,206)"
|
||||
id="stop7" />
|
||||
<stop
|
||||
offset="22.58%"
|
||||
stop-color="rgb(119,163,207)"
|
||||
id="stop8" />
|
||||
<stop
|
||||
offset="25.81%"
|
||||
stop-color="rgb(121,165,208)"
|
||||
id="stop9" />
|
||||
<stop
|
||||
offset="29.03%"
|
||||
stop-color="rgb(123,167,209)"
|
||||
id="stop10" />
|
||||
<stop
|
||||
offset="32.26%"
|
||||
stop-color="rgb(125,168,210)"
|
||||
id="stop11" />
|
||||
<stop
|
||||
offset="35.48%"
|
||||
stop-color="rgb(127,170,211)"
|
||||
id="stop12" />
|
||||
<stop
|
||||
offset="38.71%"
|
||||
stop-color="rgb(130,172,212)"
|
||||
id="stop13" />
|
||||
<stop
|
||||
offset="41.94%"
|
||||
stop-color="rgb(132,175,213)"
|
||||
id="stop14" />
|
||||
<stop
|
||||
offset="45.16%"
|
||||
stop-color="rgb(135,177,214)"
|
||||
id="stop15" />
|
||||
<stop
|
||||
offset="48.39%"
|
||||
stop-color="rgb(138,180,215)"
|
||||
id="stop16" />
|
||||
<stop
|
||||
offset="51.61%"
|
||||
stop-color="rgb(141,182,216)"
|
||||
id="stop17" />
|
||||
<stop
|
||||
offset="54.84%"
|
||||
stop-color="rgb(145,185,218)"
|
||||
id="stop18" />
|
||||
<stop
|
||||
offset="58.06%"
|
||||
stop-color="rgb(149,188,219)"
|
||||
id="stop19" />
|
||||
<stop
|
||||
offset="61.29%"
|
||||
stop-color="rgb(153,191,220)"
|
||||
id="stop20" />
|
||||
<stop
|
||||
offset="64.52%"
|
||||
stop-color="rgb(158,195,222)"
|
||||
id="stop21" />
|
||||
<stop
|
||||
offset="67.74%"
|
||||
stop-color="rgb(163,198,223)"
|
||||
id="stop22" />
|
||||
<stop
|
||||
offset="70.97%"
|
||||
stop-color="rgb(169,202,224)"
|
||||
id="stop23" />
|
||||
<stop
|
||||
offset="74.19%"
|
||||
stop-color="rgb(174,206,226)"
|
||||
id="stop24" />
|
||||
<stop
|
||||
offset="77.42%"
|
||||
stop-color="rgb(181,209,227)"
|
||||
id="stop25" />
|
||||
<stop
|
||||
offset="80.65%"
|
||||
stop-color="rgb(188,213,228)"
|
||||
id="stop26" />
|
||||
<stop
|
||||
offset="83.87%"
|
||||
stop-color="rgb(195,217,229)"
|
||||
id="stop27" />
|
||||
<stop
|
||||
offset="87.1%"
|
||||
stop-color="rgb(203,221,230)"
|
||||
id="stop28" />
|
||||
<stop
|
||||
offset="90.32%"
|
||||
stop-color="rgb(210,225,230)"
|
||||
id="stop29" />
|
||||
<stop
|
||||
offset="93.55%"
|
||||
stop-color="rgb(218,228,229)"
|
||||
id="stop30" />
|
||||
<stop
|
||||
offset="96.77%"
|
||||
stop-color="rgb(224,230,227)"
|
||||
id="stop31" />
|
||||
<stop
|
||||
offset="100%"
|
||||
stop-color="rgb(227,228,223)"
|
||||
id="stop32" />
|
||||
</linearGradient>
|
||||
<clipPath
|
||||
id="sqClip">
|
||||
<rect
|
||||
x="40"
|
||||
y="40"
|
||||
width="260"
|
||||
height="260"
|
||||
rx="44"
|
||||
id="rect32" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="ciClip">
|
||||
<circle
|
||||
cx="510"
|
||||
cy="170"
|
||||
r="130"
|
||||
id="circle32" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="sqClip-9">
|
||||
<rect
|
||||
x="40"
|
||||
y="40"
|
||||
width="260"
|
||||
height="260"
|
||||
rx="44"
|
||||
id="rect32-8" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath1">
|
||||
<rect
|
||||
x="40"
|
||||
y="40"
|
||||
width="260"
|
||||
height="260"
|
||||
rx="44"
|
||||
id="rect1" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath2">
|
||||
<rect
|
||||
x="40"
|
||||
y="40"
|
||||
width="260"
|
||||
height="260"
|
||||
rx="44"
|
||||
id="rect2" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath3">
|
||||
<rect
|
||||
x="40"
|
||||
y="40"
|
||||
width="260"
|
||||
height="260"
|
||||
rx="44"
|
||||
id="rect3" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="sqClip-9-1">
|
||||
<rect
|
||||
x="40"
|
||||
y="40"
|
||||
width="260"
|
||||
height="260"
|
||||
rx="44"
|
||||
id="rect32-8-7" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath1-1">
|
||||
<rect
|
||||
x="40"
|
||||
y="40"
|
||||
width="260"
|
||||
height="260"
|
||||
rx="44"
|
||||
id="rect1-8" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath2-7">
|
||||
<rect
|
||||
x="40"
|
||||
y="40"
|
||||
width="260"
|
||||
height="260"
|
||||
rx="44"
|
||||
id="rect2-8" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath3-7">
|
||||
<rect
|
||||
x="40"
|
||||
y="40"
|
||||
width="260"
|
||||
height="260"
|
||||
rx="44"
|
||||
id="rect3-7" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<!-- Rounded square (favicon / app icon) -->
|
||||
<rect
|
||||
x="40"
|
||||
y="40"
|
||||
width="260"
|
||||
height="260"
|
||||
rx="44"
|
||||
fill="url(#bgSq)"
|
||||
id="rect33"
|
||||
inkscape:export-filename="../Coding/bibdle/static/favicon.png"
|
||||
inkscape:export-xdpi="23.63077"
|
||||
inkscape:export-ydpi="23.63077" />
|
||||
<!-- Circle (Discord server icon) -->
|
||||
<circle
|
||||
cx="510"
|
||||
cy="170"
|
||||
r="130"
|
||||
fill="url(#bgSq)"
|
||||
id="circle37"
|
||||
inkscape:export-filename="../Coding/bibdle/static/bibdle-logo-circle.png"
|
||||
inkscape:export-xdpi="378.09232"
|
||||
inkscape:export-ydpi="378.09232" />
|
||||
<rect
|
||||
x="152"
|
||||
y="78"
|
||||
width="36"
|
||||
height="184"
|
||||
rx="5"
|
||||
fill="#ffffff"
|
||||
clip-path="url(#sqClip-9)"
|
||||
id="rect34-6"
|
||||
transform="matrix(0.89748134,0,0,1,357.18847,2.5366858)" />
|
||||
<rect
|
||||
x="128"
|
||||
y="88"
|
||||
width="84"
|
||||
height="26"
|
||||
rx="5"
|
||||
fill="#ffffff"
|
||||
clip-path="url(#sqClip-9)"
|
||||
id="rect35-5"
|
||||
transform="matrix(1,0,0,0.80796134,339.90604,30.104693)" />
|
||||
<rect
|
||||
x="96"
|
||||
y="140"
|
||||
width="148"
|
||||
height="30"
|
||||
rx="5"
|
||||
fill="#ffffff"
|
||||
clip-path="url(#sqClip-9)"
|
||||
id="rect36-7"
|
||||
transform="matrix(1,0,0,0.82878095,339.90604,26.507353)" />
|
||||
<rect
|
||||
x="128"
|
||||
y="210"
|
||||
width="84"
|
||||
height="20"
|
||||
rx="4"
|
||||
fill="#ffffff"
|
||||
clip-path="url(#sqClip-9)"
|
||||
transform="rotate(15,330.33996,1512.3487)"
|
||||
id="rect37-6" />
|
||||
<rect
|
||||
x="152"
|
||||
y="78"
|
||||
width="36"
|
||||
height="184"
|
||||
rx="5"
|
||||
fill="#ffffff"
|
||||
clip-path="url(#sqClip-9-1)"
|
||||
id="rect34-6-4"
|
||||
transform="matrix(0.89748134,0,0,1,17.264653,0.15299483)" />
|
||||
<rect
|
||||
x="128"
|
||||
y="88"
|
||||
width="84"
|
||||
height="26"
|
||||
rx="5"
|
||||
fill="#ffffff"
|
||||
clip-path="url(#sqClip-9-1)"
|
||||
id="rect35-5-4"
|
||||
transform="matrix(1,0,0,0.80796134,0.28036275,27.721002)" />
|
||||
<rect
|
||||
x="96"
|
||||
y="140"
|
||||
width="148"
|
||||
height="30"
|
||||
rx="5"
|
||||
fill="#ffffff"
|
||||
clip-path="url(#sqClip-9-1)"
|
||||
id="rect36-7-9"
|
||||
transform="matrix(1,0,0,0.82878095,-0.01777671,24.123662)" />
|
||||
<rect
|
||||
x="128"
|
||||
y="210"
|
||||
width="84"
|
||||
height="20"
|
||||
rx="4"
|
||||
fill="#ffffff"
|
||||
clip-path="url(#sqClip-9-1)"
|
||||
transform="rotate(15,169.4311,220.168)"
|
||||
id="rect37-6-1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.6 KiB |
Reference in New Issue
Block a user