Compare commits

..

6 Commits

20 changed files with 37 additions and 188 deletions

View File

@ -1,7 +1,5 @@
# servers.coop
> [servers.coop](https://servers.coop)
> TODO
Servers.coop public website.
Thanks to @josef for design and @forest for implementation!
Our public website.

View File

@ -15,11 +15,10 @@
<body>
<main>
<header>
<img src="static/generated/logo.webp" />
<img src="static/logo.svg" />
<div class="header-links horizontal flex-end">
<a href="#about">ABOUT</a>
<a href="#partners">PARTNERS</a>
<a href="#get-involved">GET INVOLVED</a>
</div>
</header>
@ -27,7 +26,7 @@
<div class="splash space-between">
<div class="splash-text-content">
<h1>
A recipe for self-managed co-operative computing
A recipe for self-managed co-operative computing.
</h1>
<p>
Servers.coop is an algorithm for co-operation: a technical,
@ -38,21 +37,24 @@
<a href="https://yolo.servers.coop" class="button-link primary"
>TRY IT OUT</a
>
<a href="mailto:hello@servers.coop" class="button-link"
>GET IN TOUCH</a
>
</div>
</div>
<div class="splash-image-content">
<div class="magical-flying-div-anchor">
<div class="position-absolute">
<img
alt="technology food pyramid showing serverscoop at the base, with operating systems and applications on top"
src="static/generated/pyramid.webp"
src="static/pyramid.svg"
class="pyramid-image"
/>
</div>
<div class="magical-flying-div-anchor">
<div class="position-absolute">
<img
alt="A cute looking person squatting like a hipster"
src="static/generated/squatting-person.webp"
src="static/squatting-person.svg"
class="squatting-person"
/>
</div>
@ -62,6 +64,9 @@
<a href="https://yolo.servers.coop" class="button-link primary"
>TRY IT OUT</a
>
<a href="mailto:hello@servers.coop" class="button-link"
>GET IN TOUCH</a
>
</div>
</div>
@ -83,7 +88,7 @@
<div class="box">
<img
alt="dove carrying olive branch"
src="static/generated/dove.webp"
src="static/dove.svg"
class="float-right"
/>
<h3>
@ -94,13 +99,13 @@
<a href="https://git.autonomic.zone/3wordchant/capsul-flask"
>Capsul</a
>, a brand new Affero GPL licensed Virtual Machine as a
Service platform.
Service platform
</p>
</div>
<div class="box">
<img
alt="handshake"
src="static/generated/handshake.webp"
src="static/handshake.svg"
class="float-right"
/>
<h3>
@ -108,8 +113,8 @@
</h3>
<p>
Co-operative ownership models and toolkits for software,
hardware and social protocols designed to help create and
operate a server hosting provider.
hardware and social protocols for creating and operating a
server hosting provider
</p>
</div>
</div>
@ -120,10 +125,10 @@
</div>
</div>
<div class="horizontal expand justify-center">
<div class="magical-flying-div-anchor">
<div class="position-absolute">
<img
alt="two nerds looking smug, confident, and happy"
src="static/generated/arms-crossed-people.webp"
src="static/arms-crossed-people.svg"
class="arms-crossed-people-image"
/>
</div>
@ -142,77 +147,42 @@
<div class="horizontal wrap justify-center align-center logos">
<a href="https://autonomic.zone">
<img alt="autonomic" src="static/generated/logo-autonomic.webp" />
<img alt="autonomic" src="static/logo-autonomic.svg" />
</a>
<a href="https://cyberia.club">
<img
alt="Cyberia Computer Club"
width="280px"
src="static/generated/logo-cyberia.webp"
src="static/logo-cyberia.png"
/>
</a>
<a href="http://mc3.coop/">
<img alt="MC3" src="static/generated/logo-mc3.webp" />
<img alt="MC3" src="static/logo-mc3.png" />
</a>
<a href="https://www.webarchitects.coop/">
<img alt="webarchitects" width="120px" src="static/generated/logo-wa.webp" />
<img alt="webarchitects" width="120px" src="static/logo-wa.svg" />
</a>
<a href="https://cni.coop/">
<img
alt="Co-operative Network Infrastructure"
class="darker-background"
src="static/generated/logo-cni.webp"
src="static/logo-cni.svg"
/>
</a>
<a href="https://mediablazehosts.coop/">
<img
alt="mediablazehosts.coop"
src="static/generated/logo-mediablaze.webp"
src="static/logo-mediablaze.svg"
/>
</a>
<a href="https://www.animorph.coop/">
<img
alt="Animorph Co-op"
src="static/generated/logo-animorph.webp"
/>
</a>
</div>
</div>
</div>
<div class="vertical align-center" id="get-involved">
<h1>
Get involved
</h1>
<p>
Come chat to the community in our matrix space, or if your client doesn't support that, join our main Matrix channel:
</p>
<div class="horizontal">
<a href="https://matrix.to/#/##serverscoop:libera.chat" class=button-link
>JOIN OUR MATRIX CHANNEL</a
>
<a href="https://matrix.to/#/!bDeUsKuqTQwBjBEAuj:autonomic.zone" class=button-link>
JOIN OUR MATRIX SPACE</a
>
</div>
<p>
Or, if you're old-school, you can
</p>
<div class="vertical align-center">
<a href="irc://libera.chat/#serverscoop" class=button-link>JOIN OUR IRC CHANNEL </a>
<p/>
<div class="horizontal">
<a href="https://www.email-lists.org/mailman/listinfo/servers-coop" class=button-link>JOIN OUR MAILING LIST</a>
<a href="mailto:hello@servers.coop" class=button-link>SEND US A MAIL</a>
</div>
</div>
</div>
<footer class="horizontal justify-center">
<a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a>
<a href="https://git.coopcloud.tech/servers.coop/servers.coop">(source code)</a>
<a href="git.coopcloud.tech/servers.coop/servers.coop">(source code)</a>
</footer>
</main>
</body>

View File

@ -1,49 +0,0 @@
#!/bin/bash -e
quality="80"
# if [ -z "$quality" ]; then
# echo "first argument (quality level, 1 to 100) is required."
# exit 1
# fi
svgToWebp () {
svgFilename="$1"
pngFilename="generated/$(echo "$svgFilename" | sed 's|.svg|.png|')"
webpFilename="$(echo "$pngFilename" | sed 's|.png|.webp|')"
quality="$2"
sizeArgs=""
if [ ! -z "$3" ] && [ ! -z "$4" ]; then
sizeArgs="-w $3 -h $4"
fi
inkscape --without-gui "$svgFilename" $sizeArgs --export-png "$pngFilename"
cwebp -q "$quality"-m 6 -preset text -alpha_filter best "$pngFilename" -o "$webpFilename"
rm "$pngFilename"
}
pngToWebp () {
pngFilename="$1"
webpFilename="generated/$(echo "$pngFilename" | sed 's|.png|.webp|')"
quality="$2"
cwebp -q "$quality"-m 6 -preset text -alpha_filter best "$pngFilename" -o "$webpFilename"
}
mkdir -p generated
svgToWebp "arms-crossed-people.svg" "$quality"
svgToWebp "squatting-person.svg" "$quality"
svgToWebp "dove.svg" "$quality"
svgToWebp "handshake.svg" "$quality"
svgToWebp "logo-autonomic.svg" "$quality"
svgToWebp "logo-cni.svg" "$quality"
svgToWebp "logo.svg" "$quality"
svgToWebp "logo-wa.svg" "$quality" "120" "105"
pngToWebp "pyramid.png" "$quality"
pngToWebp "logo-cyberia.png" "$quality"
pngToWebp "logo-mc3.png" "$quality"
pngToWebp "logo-mediablaze.png" "$quality"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,51 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Ms" x="0px" y="0px" viewBox="0 0 191.51 71.64" style="enable-background:new 0 0 191.51 71.64;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#4E56FF;}
.st2{fill:none;}
.st3{fill:url(#SVGID_1_);}
.st4{fill:url(#SVGID_00000021095203675387278860000015574879978288904598_);}
.st5{fill:url(#SVGID_00000164492759324884487220000002331869931807917969_);}
.st6{opacity:0.3;fill:#4E56FF;}
.st7{fill:url(#SVGID_00000087395196999812303040000006407212302766670231_);}
.st8{fill:url(#SVGID_00000131368376672758118780000005663512951283254951_);}
.st9{fill:url(#SVGID_00000152256490655799765450000001568685685497680816_);}
.st10{opacity:0.3;}
.st11{opacity:0.2;fill:#4E56FF;}
.st12{fill:url(#SVGID_00000070114685096184348380000005005590824473725357_);}
.st13{fill:url(#SVGID_00000013895323784899262360000016357333423517537411_);}
.st14{fill:url(#SVGID_00000116209021821856446850000012997537404963980170_);}
.st15{fill:url(#SVGID_00000060015260642877297650000006701316139662987923_);}
.st16{fill:url(#SVGID_00000091000669085788472140000015982630801783728282_);}
.st17{fill:url(#SVGID_00000104703562716952282960000013387560545572500667_);}
.st18{opacity:0.5;fill:#FFFFFF;}
.st19{fill:url(#SVGID_00000018216510877433721380000004447601903280848534_);}
.st20{fill:url(#SVGID_00000065765901491443896380000008077187602894606479_);}
.st21{fill:url(#SVGID_00000114763397586984520760000006192548451802743218_);}
.st22{fill:url(#SVGID_00000097464244420308818820000014193169351912888479_);}
.st23{fill:url(#SVGID_00000135691831441242574730000017583710324444287926_);}
.st24{fill:url(#SVGID_00000017476053835600106610000006302031720698303629_);}
.st25{fill:url(#SVGID_00000032625025526173977220000015579640198388959107_);}
.st26{fill:url(#SVGID_00000052072871280098929840000012302084189480476058_);}
.st27{fill:url(#SVGID_00000131353171369054338130000017151770395562810808_);}
</style>
<path d="M17.01,29.35c-1.29,2.13-4.44,3.06-6.44,3.06C5.11,32.41,0,28.24,0,21.62c0-6.62,5.11-10.79,10.57-10.79 c1.91,0,4.88,0.75,6.44,3.02v-2.58h5.42v20.73h-5.42V29.35z M11.32,27.22c2.97,0,5.68-2.04,5.68-5.59c0-3.55-2.84-5.59-5.68-5.59 c-3.02,0-5.73,2.22-5.73,5.59C5.59,25,8.3,27.22,11.32,27.22z M60.45,0c1.91,0,3.42,1.42,3.42,3.24c0,1.91-1.51,3.29-3.42,3.29 c-1.91,0-3.51-1.38-3.51-3.29C56.95,1.42,58.55,0,60.45,0z M63.12,32.01h-5.37V11.28h5.37V32.01z M49.55,19.2 c0-5.3-4.14-8.36-9.43-8.36s-9.5,3.07-9.5,8.36v12.81h5.42V20.96c0-3.55,1.93-4.84,4.15-4.84c2.51,0,4.02,1.43,4.02,4.91v10.99h5.34 C49.55,32.01,49.55,19.2,49.55,19.2z M94.1,51.13c0-6.57,4.93-10.74,10.79-10.74c5.86,0,10.79,4.17,10.79,10.74 c0,6.53-4.93,10.83-10.79,10.83C99.03,61.96,94.1,57.66,94.1,51.13z M110.3,51.13c0-3.33-2.4-5.42-5.42-5.42 c-3.02,0-5.42,2.09-5.42,5.42c0,3.37,2.4,5.55,5.42,5.55C107.91,56.68,110.3,54.5,110.3,51.13z M128.07,61.56h-5.42V40.83h5.42v4.88 c1.07-3.77,3.51-5.33,5.86-5.33c1.47,0,2.58,0.27,3.42,0.75v5.21c-1.29-0.58-4.01-0.85-5.26-0.56c-3.21,0.74-4.02,2.94-4.02,8.44 V61.56z M148.19,43.63c1.11-2.09,3.77-3.24,6.48-3.24c5.42,0,10.12,4.26,10.12,10.79c0,6.62-4.71,10.83-10.12,10.83 c-2.71,0-5.37-1.11-6.48-3.2v12.83h-5.42V40.83h5.42V43.63z M153.78,56.86c2.97,0,5.46-2.22,5.46-5.59c0-3.42-2.49-5.68-5.46-5.68 s-5.51,2.22-5.51,5.68C148.28,54.81,150.94,56.86,153.78,56.86z M176.72,61.56h-5.42V29.55h5.42v14.47c0.93-2.49,4.4-3.64,6.44-3.64 c5.37,0,8.35,3.55,8.35,9.63v11.54h-5.42V50.29c0-2.97-2.18-4.62-4.4-4.62c-2.26,0-4.97,1.24-4.97,4.84V61.56z"/>
<path class="st11" d="M84.79,61.57h-8.17v-8.92L84.79,61.57z M63.11,52.65v8.92h8.17L63.11,52.65z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="32.718" y1="21.7124" x2="65.1342" y2="54.1286">
<stop offset="0.112" style="stop-color:#4E56FF;stop-opacity:0"/>
<stop offset="1" style="stop-color:#4E56FF"/>
</linearGradient>
<path class="st3" d="M57.88,46.94c-0.13,0.57-0.19,1.18-0.19,1.82v12.81l-27.1-29.59h5.42V20.93c0-3.56,1.93-4.84,4.15-4.84 c2.51,0,4.02,1.43,4.02,4.91v10.98L57.88,46.94z"/>
<linearGradient id="SVGID_00000080174400240106392650000011752332100309130907_" gradientUnits="userSpaceOnUse" x1="57.2275" y1="37.3124" x2="87.9849" y2="40.0033">
<stop offset="0.1076" style="stop-color:#4E56FF;stop-opacity:0"/>
<stop offset="1" style="stop-color:#4E56FF"/>
</linearGradient>
<path style="fill:url(#SVGID_00000080174400240106392650000011752332100309130907_);" d="M87.73,42.87 c-1.73-1.61-4.2-2.48-6.87-2.48c-1.54,0-4.86,0.42-6.8,3.54c-0.04,0.06-0.08,0.11-0.11,0.17c-1.93-3.28-5.34-3.71-6.91-3.71 c-0.53,0-1.05,0.03-1.56,0.1l-7.79-8.51h5.42v-16L87.73,42.87z M80.64,45.68c-2.51,0-4.02,1.43-4.02,4.91v2.06l8.17,8.92V50.52 C84.79,46.96,82.86,45.68,80.64,45.68z"/>
<linearGradient id="SVGID_00000182530874240042168290000009108726916791128733_" gradientUnits="userSpaceOnUse" x1="47.5044" y1="21.4907" x2="79.4333" y2="53.4196">
<stop offset="0.112" style="stop-color:#4E56FF;stop-opacity:0"/>
<stop offset="1" style="stop-color:#4E56FF"/>
</linearGradient>
<path style="fill:url(#SVGID_00000182530874240042168290000009108726916791128733_);" d="M65.48,40.49 c-2.24,0.3-4.25,1.23-5.67,2.73c-0.95,1-1.63,2.24-1.93,3.72l-13.7-14.96h5.34V21c0-3.48,8.17-8.58,8.17-5.02v16L65.48,40.49z M67.26,45.68c-1.43,0-2.74,0.53-3.49,1.87c-0.42,0.73-0.66,1.71-0.66,2.97v2.13l8.17,8.92V50.59 C71.28,47.11,69.77,45.68,67.26,45.68z"/>
</svg>

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -6,8 +6,6 @@ body {
font-family: var(--font-family-sans);
margin: 0;
padding: 0;
width: 100vw;
overflow-x: hidden;
}
main {
@ -117,7 +115,6 @@ header img {
flex-direction: row;
width: 100%;
margin-top: 0.5rem;
overflow: hidden;
}
.splash p {
@ -136,27 +133,18 @@ header img {
.splash-image-content {
display: flex;
flex-direction: row;
justify-content: flex-end;
justify-content: right;
height: 520px;
width: 100%;
}
.pyramid-image {
position: relative;
/* 0 pixels away from the right hand side of the container, 636px wide */
right: calc(0px + 636px);
width: 636px;
}
.squatting-person {
position: relative;
top: 360px;
/* 532 pixels away from the right hand side of the container, 173px wide */
right: calc(532px + 173px);
width: 173px;
right: 532px;
}
.splash > .button-links {
display: none;
@ -199,6 +187,9 @@ header {
margin-top: 100px;
display: flex;
}
.pyramid-image {
right: 0;
}
}
@media screen and (max-width: 768px) {
@ -214,14 +205,12 @@ header {
}
.pyramid-image {
position: relative;
/* 1.5vw away from the right hand side of the container, 85vw wide */
width: 85vw;
right: calc(1.5vw + 85vw);
right: 3vw;
}
.squatting-person {
top: 42vw;
right: calc(72vw + 23vw);
right: 74vw;
width: 23vw;
}
.splash > .button-links {
@ -294,7 +283,7 @@ header {
.box h1,
.box h2,
.box h3 {
margin-left: 30px;
margin-left: 8px;
}
.box a {
@ -304,7 +293,6 @@ header {
.box p {
margin-left: 30px;
margin-bottom: 40px;
width: 85%;
}
.box img {
@ -315,9 +303,6 @@ header {
.arms-crossed-people-image {
position: relative;
top: -10px;
/* 180px wide, so shift half 180px to center it. */
right: calc(0px + (180px * 0.5));
width: 180px;
}
@ -330,7 +315,6 @@ header {
@media screen and (max-width: 1280px) {
.arms-crossed-people-image {
right: calc(0px + (150px * 0.5));
width: 150px;
top: -30px;
}
@ -355,7 +339,6 @@ header {
}
.arms-crossed-people-image {
right: calc(0px + (120px * 0.5));
width: 120px;
top: -50px;
}
@ -378,10 +361,8 @@ footer {
margin-bottom: 100px;
}
.magical-flying-div-anchor {
.position-absolute {
position: absolute;
width: 0;
height: 0;
}
.horizontal {