chore: continued redesign readme

This commit is contained in:
LukeGus
2026-05-20 17:03:43 -05:00
parent 5bb1cfc03c
commit df6fe0430b
11 changed files with 137 additions and 137 deletions
+77 -77
View File
@@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="1120" viewBox="0 0 860 1120"> <svg xmlns="http://www.w3.org/2000/svg" width="780" height="1120" viewBox="0 0 780 1120">
<defs> <defs>
<style> <style>
.cb { fill: none; stroke: #F39044; stroke-opacity: 0.22; stroke-width: 1; } .cb { fill: none; stroke: #F39044; stroke-opacity: 0.22; stroke-width: 1; }
@@ -9,107 +9,107 @@
</defs> </defs>
<!-- R1C1: SSH Terminal Access y=0..130 --> <!-- R1C1: SSH Terminal Access y=0..130 -->
<rect x="0" y="0" width="418" height="130" fill="transparent" class="cb"/> <rect x="0" y="0" width="378" height="130" fill="transparent" class="cb"/>
<rect x="0" y="0" width="3" height="130" class="ca"/> <rect x="0" y="0" width="3" height="130" class="ca"/>
<text x="18" y="22" class="ft">SSH Terminal Access</text> <text x="16" y="22" class="ft">SSH Terminal Access</text>
<text x="18" y="40" class="fb">Full-featured terminal with split-screen support (up to 4 panels)</text> <text x="16" y="40" class="fb">Full-featured terminal with split-screen support (up to 4 panels)</text>
<text x="18" y="55" class="fb">with a browser-like tab system. Includes support for customizing</text> <text x="16" y="55" class="fb">with a browser-like tab system. Includes support for customizing</text>
<text x="18" y="70" class="fb">the terminal including common terminal themes, fonts, and other</text> <text x="16" y="70" class="fb">the terminal including common terminal themes, fonts, and other</text>
<text x="18" y="85" class="fb">components.</text> <text x="16" y="85" class="fb">components.</text>
<!-- R1C2: Remote Desktop Access y=0..130 --> <!-- R1C2: Remote Desktop Access y=0..130 -->
<rect x="442" y="0" width="418" height="130" fill="transparent" class="cb"/> <rect x="402" y="0" width="378" height="130" fill="transparent" class="cb"/>
<rect x="442" y="0" width="3" height="130" class="ca"/> <rect x="402" y="0" width="3" height="130" class="ca"/>
<text x="460" y="22" class="ft">Remote Desktop Access</text> <text x="418" y="22" class="ft">Remote Desktop Access</text>
<text x="460" y="40" class="fb">RDP, VNC, and Telnet support over the browser with complete</text> <text x="418" y="40" class="fb">RDP, VNC, and Telnet support over the browser with complete</text>
<text x="460" y="55" class="fb">customization and split screening.</text> <text x="418" y="55" class="fb">customization and split screening.</text>
<!-- R2C1: SSH Tunnel Management y=160..290 --> <!-- R2C1: SSH Tunnel Management y=160..290 -->
<rect x="0" y="160" width="418" height="130" fill="transparent" class="cb"/> <rect x="0" y="160" width="378" height="130" fill="transparent" class="cb"/>
<rect x="0" y="160" width="3" height="130" class="ca"/> <rect x="0" y="160" width="3" height="130" class="ca"/>
<text x="18" y="182" class="ft">SSH Tunnel Management</text> <text x="16" y="182" class="ft">SSH Tunnel Management</text>
<text x="18" y="200" class="fb">Create and manage server-to-server SSH tunnels with automatic</text> <text x="16" y="200" class="fb">Create and manage server-to-server SSH tunnels with automatic</text>
<text x="18" y="215" class="fb">reconnection, health monitoring, and local, remote, or dynamic</text> <text x="16" y="215" class="fb">reconnection, health monitoring, and local, remote, or dynamic</text>
<text x="18" y="230" class="fb">SOCKS forwarding. C2S preset snapshots can be saved, renamed,</text> <text x="16" y="230" class="fb">SOCKS forwarding. C2S preset snapshots can be saved, renamed,</text>
<text x="18" y="245" class="fb">loaded, or deleted across clients.</text> <text x="16" y="245" class="fb">loaded, or deleted across clients.</text>
<!-- R2C2: Remote File Manager y=160..290 --> <!-- R2C2: Remote File Manager y=160..290 -->
<rect x="442" y="160" width="418" height="130" fill="transparent" class="cb"/> <rect x="402" y="160" width="378" height="130" fill="transparent" class="cb"/>
<rect x="442" y="160" width="3" height="130" class="ca"/> <rect x="402" y="160" width="3" height="130" class="ca"/>
<text x="460" y="182" class="ft">Remote File Manager</text> <text x="418" y="182" class="ft">Remote File Manager</text>
<text x="460" y="200" class="fb">Manage files directly on remote servers with support for viewing</text> <text x="418" y="200" class="fb">Manage files directly on remote servers with support for viewing</text>
<text x="460" y="215" class="fb">and editing code, images, audio, and video. Upload, download,</text> <text x="418" y="215" class="fb">and editing code, images, audio, and video. Upload, download,</text>
<text x="460" y="230" class="fb">rename, delete, and move files seamlessly with sudo support.</text> <text x="418" y="230" class="fb">rename, delete, and move files seamlessly with sudo support.</text>
<!-- R3C1: Docker Management y=320..450 --> <!-- R3C1: Docker Management y=320..450 -->
<rect x="0" y="320" width="418" height="130" fill="transparent" class="cb"/> <rect x="0" y="320" width="378" height="130" fill="transparent" class="cb"/>
<rect x="0" y="320" width="3" height="130" class="ca"/> <rect x="0" y="320" width="3" height="130" class="ca"/>
<text x="18" y="342" class="ft">Docker Management</text> <text x="16" y="342" class="ft">Docker Management</text>
<text x="18" y="360" class="fb">Start, stop, pause, remove containers. View container stats.</text> <text x="16" y="360" class="fb">Start, stop, pause, remove containers. View container stats.</text>
<text x="18" y="375" class="fb">Control containers using docker exec terminal. Not a replacement</text> <text x="16" y="375" class="fb">Control containers using docker exec terminal. Not a replacement</text>
<text x="18" y="390" class="fb">for Portainer or Dockge, built for managing, not creating.</text> <text x="16" y="390" class="fb">for Portainer or Dockge, built for managing, not creating.</text>
<!-- R3C2: SSH Host Manager y=320..450 --> <!-- R3C2: SSH Host Manager y=320..450 -->
<rect x="442" y="320" width="418" height="130" fill="transparent" class="cb"/> <rect x="402" y="320" width="378" height="130" fill="transparent" class="cb"/>
<rect x="442" y="320" width="3" height="130" class="ca"/> <rect x="402" y="320" width="3" height="130" class="ca"/>
<text x="460" y="342" class="ft">SSH Host Manager</text> <text x="418" y="342" class="ft">SSH Host Manager</text>
<text x="460" y="360" class="fb">Save, organize, and manage your SSH connections with tags and</text> <text x="418" y="360" class="fb">Save, organize, and manage your SSH connections with tags and</text>
<text x="460" y="375" class="fb">folders. Save reusable login info and automate the deployment</text> <text x="418" y="375" class="fb">folders. Save reusable login info and automate the deployment</text>
<text x="460" y="390" class="fb">of SSH keys.</text> <text x="418" y="390" class="fb">of SSH keys.</text>
<!-- R4C1: Server Stats y=480..610 --> <!-- R4C1: Server Stats y=480..610 -->
<rect x="0" y="480" width="418" height="130" fill="transparent" class="cb"/> <rect x="0" y="480" width="378" height="130" fill="transparent" class="cb"/>
<rect x="0" y="480" width="3" height="130" class="ca"/> <rect x="0" y="480" width="3" height="130" class="ca"/>
<text x="18" y="502" class="ft">Server Stats</text> <text x="16" y="502" class="ft">Server Stats</text>
<text x="18" y="520" class="fb">View CPU, memory, and disk usage along with network, uptime,</text> <text x="16" y="520" class="fb">View CPU, memory, and disk usage along with network, uptime,</text>
<text x="18" y="535" class="fb">system information, firewall, and port monitor on most Linux</text> <text x="16" y="535" class="fb">system information, firewall, and port monitor on most Linux</text>
<text x="18" y="550" class="fb">based servers.</text> <text x="16" y="550" class="fb">based servers.</text>
<!-- R4C2: User Authentication y=480..610 --> <!-- R4C2: User Authentication y=480..610 -->
<rect x="442" y="480" width="418" height="130" fill="transparent" class="cb"/> <rect x="402" y="480" width="378" height="130" fill="transparent" class="cb"/>
<rect x="442" y="480" width="3" height="130" class="ca"/> <rect x="402" y="480" width="3" height="130" class="ca"/>
<text x="460" y="502" class="ft">User Authentication</text> <text x="418" y="502" class="ft">User Authentication</text>
<text x="460" y="520" class="fb">Secure user management with admin controls and OIDC (with</text> <text x="418" y="520" class="fb">Secure user management with admin controls and OIDC (with</text>
<text x="460" y="535" class="fb">access control) and 2FA (TOTP) support. View active sessions</text> <text x="418" y="535" class="fb">access control) and 2FA (TOTP) support. View active sessions</text>
<text x="460" y="550" class="fb">across all platforms and link OIDC/Local accounts together.</text> <text x="418" y="550" class="fb">across all platforms and link OIDC/Local accounts together.</text>
<!-- R5C1: RBAC y=640..770 --> <!-- R5C1: RBAC y=640..770 -->
<rect x="0" y="640" width="418" height="130" fill="transparent" class="cb"/> <rect x="0" y="640" width="378" height="130" fill="transparent" class="cb"/>
<rect x="0" y="640" width="3" height="130" class="ca"/> <rect x="0" y="640" width="3" height="130" class="ca"/>
<text x="18" y="662" class="ft">RBAC</text> <text x="16" y="662" class="ft">RBAC</text>
<text x="18" y="680" class="fb">Create roles and share hosts across users and roles.</text> <text x="16" y="680" class="fb">Create roles and share hosts across users and roles.</text>
<!-- R5C2: Database Encryption y=640..770 --> <!-- R5C2: Database Encryption y=640..770 -->
<rect x="442" y="640" width="418" height="130" fill="transparent" class="cb"/> <rect x="402" y="640" width="378" height="130" fill="transparent" class="cb"/>
<rect x="442" y="640" width="3" height="130" class="ca"/> <rect x="402" y="640" width="3" height="130" class="ca"/>
<text x="460" y="662" class="ft">Database Encryption</text> <text x="418" y="662" class="ft">Database Encryption</text>
<text x="460" y="680" class="fb">Backend stored as encrypted SQLite database files.</text> <text x="418" y="680" class="fb">Backend stored as encrypted SQLite database files.</text>
<!-- R6C1: Network Graph y=800..930 --> <!-- R6C1: Network Graph y=800..930 -->
<rect x="0" y="800" width="418" height="130" fill="transparent" class="cb"/> <rect x="0" y="800" width="378" height="130" fill="transparent" class="cb"/>
<rect x="0" y="800" width="3" height="130" class="ca"/> <rect x="0" y="800" width="3" height="130" class="ca"/>
<text x="18" y="822" class="ft">Network Graph</text> <text x="16" y="822" class="ft">Network Graph</text>
<text x="18" y="840" class="fb">Customize your Dashboard to visualize your homelab based off</text> <text x="16" y="840" class="fb">Customize your Dashboard to visualize your homelab based off</text>
<text x="18" y="855" class="fb">your SSH connections with status support.</text> <text x="16" y="855" class="fb">your SSH connections with status support.</text>
<!-- R6C2: SSH Tools y=800..930 --> <!-- R6C2: SSH Tools y=800..930 -->
<rect x="442" y="800" width="418" height="130" fill="transparent" class="cb"/> <rect x="402" y="800" width="378" height="130" fill="transparent" class="cb"/>
<rect x="442" y="800" width="3" height="130" class="ca"/> <rect x="402" y="800" width="3" height="130" class="ca"/>
<text x="460" y="822" class="ft">SSH Tools</text> <text x="418" y="822" class="ft">SSH Tools</text>
<text x="460" y="840" class="fb">Create reusable command snippets that execute with a single</text> <text x="418" y="840" class="fb">Create reusable command snippets that execute with a single</text>
<text x="460" y="855" class="fb">click. Run one command simultaneously across multiple terminals.</text> <text x="418" y="855" class="fb">click. Run one command simultaneously across multiple terminals.</text>
<!-- R7C1: Persistent Tabs y=960..1090 --> <!-- R7C1: Persistent Tabs y=960..1090 -->
<rect x="0" y="960" width="418" height="130" fill="transparent" class="cb"/> <rect x="0" y="960" width="378" height="130" fill="transparent" class="cb"/>
<rect x="0" y="960" width="3" height="130" class="ca"/> <rect x="0" y="960" width="3" height="130" class="ca"/>
<text x="18" y="982" class="ft">Persistent Tabs</text> <text x="16" y="982" class="ft">Persistent Tabs</text>
<text x="18" y="1000" class="fb">SSH sessions and tabs stay open across devices and refreshes</text> <text x="16" y="1000" class="fb">SSH sessions and tabs stay open across devices and refreshes</text>
<text x="18" y="1015" class="fb">if enabled in user profile.</text> <text x="16" y="1015" class="fb">if enabled in user profile.</text>
<!-- R7C2: Languages y=960..1090 --> <!-- R7C2: Languages y=960..1090 -->
<rect x="442" y="960" width="418" height="130" fill="transparent" class="cb"/> <rect x="402" y="960" width="378" height="130" fill="transparent" class="cb"/>
<rect x="442" y="960" width="3" height="130" class="ca"/> <rect x="402" y="960" width="3" height="130" class="ca"/>
<text x="460" y="982" class="ft">Languages</text> <text x="418" y="982" class="ft">Languages</text>
<text x="460" y="1000" class="fb">Built-in support for ~30 languages, managed by Crowdin.</text> <text x="418" y="1000" class="fb">Built-in support for ~30 languages, managed by Crowdin.</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

+1 -1
View File
@@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="36" viewBox="0 0 860 36"> <svg xmlns="http://www.w3.org/2000/svg" width="780" height="36" viewBox="0 0 780 36">
<text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Features</text> <text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Features</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 268 B

+2 -2
View File
@@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="36" viewBox="0 0 860 36"> <svg xmlns="http://www.w3.org/2000/svg" width="780" height="36" viewBox="0 0 780 36">
<text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Installation</text> <text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Installation</text>
<rect x="0" y="32" width="860" height="1" fill="#F39044" opacity="0.2"/> <rect x="0" y="32" width="780" height="1" fill="#F39044" opacity="0.2"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 347 B

After

Width:  |  Height:  |  Size: 347 B

+2 -2
View File
@@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="36" viewBox="0 0 860 36"> <svg xmlns="http://www.w3.org/2000/svg" width="780" height="36" viewBox="0 0 780 36">
<text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">License</text> <text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">License</text>
<rect x="0" y="32" width="860" height="1" fill="#F39044" opacity="0.2"/> <rect x="0" y="32" width="780" height="1" fill="#F39044" opacity="0.2"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 342 B

+2 -2
View File
@@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="36" viewBox="0 0 860 36"> <svg xmlns="http://www.w3.org/2000/svg" width="780" height="36" viewBox="0 0 780 36">
<text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Overview</text> <text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Overview</text>
<rect x="0" y="32" width="860" height="1" fill="#F39044" opacity="0.2"/> <rect x="0" y="32" width="780" height="1" fill="#F39044" opacity="0.2"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 343 B

After

Width:  |  Height:  |  Size: 343 B

+2 -2
View File
@@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="36" viewBox="0 0 860 36"> <svg xmlns="http://www.w3.org/2000/svg" width="780" height="36" viewBox="0 0 780 36">
<text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Planned Features</text> <text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Planned Features</text>
<rect x="0" y="32" width="860" height="1" fill="#F39044" opacity="0.2"/> <rect x="0" y="32" width="780" height="1" fill="#F39044" opacity="0.2"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 351 B

After

Width:  |  Height:  |  Size: 351 B

+1 -1
View File
@@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="36" viewBox="0 0 860 36"> <svg xmlns="http://www.w3.org/2000/svg" width="780" height="36" viewBox="0 0 780 36">
<text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Platform Support</text> <text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Platform Support</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 276 B

+2 -2
View File
@@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="36" viewBox="0 0 860 36"> <svg xmlns="http://www.w3.org/2000/svg" width="780" height="36" viewBox="0 0 780 36">
<text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Screenshots</text> <text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Screenshots</text>
<rect x="0" y="32" width="860" height="1" fill="#F39044" opacity="0.2"/> <rect x="0" y="32" width="780" height="1" fill="#F39044" opacity="0.2"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 346 B

After

Width:  |  Height:  |  Size: 346 B

+2 -2
View File
@@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="36" viewBox="0 0 860 36"> <svg xmlns="http://www.w3.org/2000/svg" width="780" height="36" viewBox="0 0 780 36">
<text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Sponsors</text> <text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Sponsors</text>
<rect x="0" y="32" width="860" height="1" fill="#F39044" opacity="0.2"/> <rect x="0" y="32" width="780" height="1" fill="#F39044" opacity="0.2"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 343 B

After

Width:  |  Height:  |  Size: 343 B

+2 -2
View File
@@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="36" viewBox="0 0 860 36"> <svg xmlns="http://www.w3.org/2000/svg" width="780" height="36" viewBox="0 0 780 36">
<text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Support</text> <text x="0" y="24" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" font-weight="700" fill="#F39044">Support</text>
<rect x="0" y="32" width="860" height="1" fill="#F39044" opacity="0.2"/> <rect x="0" y="32" width="780" height="1" fill="#F39044" opacity="0.2"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 342 B

+44 -44
View File
@@ -1,56 +1,56 @@
<svg xmlns="http://www.w3.org/2000/svg" width="860" height="220" viewBox="0 0 860 220"> <svg xmlns="http://www.w3.org/2000/svg" width="780" height="220" viewBox="0 0 780 220">
<defs> <defs>
<style> <style>
.card-border { fill: none; stroke: #F39044; stroke-opacity: 0.22; stroke-width: 1; } .cb { fill: none; stroke: #F39044; stroke-opacity: 0.22; stroke-width: 1; }
.card-accent { fill: #F39044; } .ca { fill: #F39044; }
.plat-name { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 700; fill: #F39044; } .pn { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 700; fill: #F39044; }
.plat-sub { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 11px; fill: #8b949e; } .ps { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 11px; fill: #8b949e; }
.plat-dist { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 11.5px; fill: #8b949e; } .pd { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 11.5px; fill: #8b949e; }
</style> </style>
</defs> </defs>
<!-- Row 1, Col 1: Web --> <!-- R1C1: Web y=0..100 -->
<rect x="0" y="0" width="272" height="100" fill="transparent" class="card-border"/> <rect x="0" y="0" width="245" height="100" fill="transparent" class="cb"/>
<rect x="0" y="0" width="272" height="3" class="card-accent"/> <rect x="0" y="0" width="245" height="3" class="ca"/>
<text x="136" y="28" text-anchor="middle" class="plat-name">Web</text> <text x="122" y="28" text-anchor="middle" class="pn">Web</text>
<text x="136" y="50" text-anchor="middle" class="plat-dist">Any modern browser</text> <text x="122" y="50" text-anchor="middle" class="pd">Any modern browser</text>
<text x="136" y="66" text-anchor="middle" class="plat-dist">(Chrome, Safari, Firefox) · PWA</text> <text x="122" y="66" text-anchor="middle" class="pd">(Chrome, Safari, Firefox) · PWA</text>
<!-- Row 1, Col 2: Windows --> <!-- R1C2: Windows y=0..100 -->
<rect x="294" y="0" width="272" height="100" fill="transparent" class="card-border"/> <rect x="267" y="0" width="245" height="100" fill="transparent" class="cb"/>
<rect x="294" y="0" width="272" height="3" class="card-accent"/> <rect x="267" y="0" width="245" height="3" class="ca"/>
<text x="430" y="24" text-anchor="middle" class="plat-name">Windows</text> <text x="389" y="24" text-anchor="middle" class="pn">Windows</text>
<text x="430" y="40" text-anchor="middle" class="plat-sub">x64 / ia32</text> <text x="389" y="40" text-anchor="middle" class="ps">x64 / ia32</text>
<text x="430" y="60" text-anchor="middle" class="plat-dist">Portable · MSI Installer</text> <text x="389" y="60" text-anchor="middle" class="pd">Portable · MSI Installer</text>
<text x="430" y="76" text-anchor="middle" class="plat-dist">Chocolatey</text> <text x="389" y="76" text-anchor="middle" class="pd">Chocolatey</text>
<!-- Row 1, Col 3: Linux --> <!-- R1C3: Linux y=0..100 -->
<rect x="588" y="0" width="272" height="100" fill="transparent" class="card-border"/> <rect x="535" y="0" width="245" height="100" fill="transparent" class="cb"/>
<rect x="588" y="0" width="272" height="3" class="card-accent"/> <rect x="535" y="0" width="245" height="3" class="ca"/>
<text x="724" y="24" text-anchor="middle" class="plat-name">Linux</text> <text x="657" y="24" text-anchor="middle" class="pn">Linux</text>
<text x="724" y="40" text-anchor="middle" class="plat-sub">x64 / ia32</text> <text x="657" y="40" text-anchor="middle" class="ps">x64 / ia32</text>
<text x="724" y="60" text-anchor="middle" class="plat-dist">Portable · AUR · AppImage</text> <text x="657" y="60" text-anchor="middle" class="pd">Portable · AUR · AppImage</text>
<text x="724" y="76" text-anchor="middle" class="plat-dist">Deb · Flatpak</text> <text x="657" y="76" text-anchor="middle" class="pd">Deb · Flatpak</text>
<!-- Row 2, Col 1: macOS --> <!-- R2C1: macOS y=120..220 -->
<rect x="0" y="120" width="272" height="100" fill="transparent" class="card-border"/> <rect x="0" y="120" width="245" height="100" fill="transparent" class="cb"/>
<rect x="0" y="120" width="272" height="3" class="card-accent"/> <rect x="0" y="120" width="245" height="3" class="ca"/>
<text x="136" y="144" text-anchor="middle" class="plat-name">macOS</text> <text x="122" y="144" text-anchor="middle" class="pn">macOS</text>
<text x="136" y="160" text-anchor="middle" class="plat-sub">x64 / ia32 · v12.0+</text> <text x="122" y="160" text-anchor="middle" class="ps">x64 / ia32 · v12.0+</text>
<text x="136" y="180" text-anchor="middle" class="plat-dist">Apple App Store · DMG · Homebrew</text> <text x="122" y="180" text-anchor="middle" class="pd">Apple App Store · DMG · Homebrew</text>
<!-- Row 2, Col 2: iOS/iPadOS --> <!-- R2C2: iOS/iPadOS y=120..220 -->
<rect x="294" y="120" width="272" height="100" fill="transparent" class="card-border"/> <rect x="267" y="120" width="245" height="100" fill="transparent" class="cb"/>
<rect x="294" y="120" width="272" height="3" class="card-accent"/> <rect x="267" y="120" width="245" height="3" class="ca"/>
<text x="430" y="144" text-anchor="middle" class="plat-name">iOS / iPadOS</text> <text x="389" y="144" text-anchor="middle" class="pn">iOS / iPadOS</text>
<text x="430" y="160" text-anchor="middle" class="plat-sub">v15.1+</text> <text x="389" y="160" text-anchor="middle" class="ps">v15.1+</text>
<text x="430" y="180" text-anchor="middle" class="plat-dist">Apple App Store · IPA</text> <text x="389" y="180" text-anchor="middle" class="pd">Apple App Store · IPA</text>
<!-- Row 2, Col 3: Android --> <!-- R2C3: Android y=120..220 -->
<rect x="588" y="120" width="272" height="100" fill="transparent" class="card-border"/> <rect x="535" y="120" width="245" height="100" fill="transparent" class="cb"/>
<rect x="588" y="120" width="272" height="3" class="card-accent"/> <rect x="535" y="120" width="245" height="3" class="ca"/>
<text x="724" y="144" text-anchor="middle" class="plat-name">Android</text> <text x="657" y="144" text-anchor="middle" class="pn">Android</text>
<text x="724" y="160" text-anchor="middle" class="plat-sub">v7.0+</text> <text x="657" y="160" text-anchor="middle" class="ps">v7.0+</text>
<text x="724" y="180" text-anchor="middle" class="plat-dist">Google Play Store · APK</text> <text x="657" y="180" text-anchor="middle" class="pd">Google Play Store · APK</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB