From 3919b72b0ccd97037b2bb7a9eac8ead1b982a40c Mon Sep 17 00:00:00 2001 From: sasha-astiadi Date: Thu, 6 Nov 2025 22:39:22 +0100 Subject: [PATCH] feat: redesign cloud page sections with improved layout and branding - Added logo assets for featured applications (CryptPad, Gitea, Matrix, Nextcloud, Stalwart, LifeKit) - Restructured CallToAction, CloudBluePrint, and CloudUseCases components with consistent boxed layouts and border styling - Enhanced hover effects on architecture layers and use case cards with scale transforms - Updated button styling and improved responsive grid layouts for better visual hierarchy --- public/images/logo/cryptpad.png | Bin 0 -> 2650 bytes public/images/logo/gitea.png | Bin 0 -> 2685 bytes public/images/logo/lifekit.png | Bin 0 -> 2377 bytes public/images/logo/matrix.png | Bin 0 -> 2083 bytes public/images/logo/nextcloud.png | Bin 0 -> 2470 bytes public/images/logo/stalwart.png | Bin 0 -> 2021 bytes src/pages/cloud/CalltoAction.tsx | 85 +++++++++--------- src/pages/cloud/CloudArchitecture.tsx | 4 +- src/pages/cloud/CloudBluePrint.tsx | 101 ++++++++++++---------- src/pages/cloud/CloudUseCases.tsx | 119 +++++++++++++++----------- tailwind.config.js | 5 ++ 11 files changed, 176 insertions(+), 138 deletions(-) create mode 100644 public/images/logo/cryptpad.png create mode 100644 public/images/logo/gitea.png create mode 100644 public/images/logo/lifekit.png create mode 100644 public/images/logo/matrix.png create mode 100644 public/images/logo/nextcloud.png create mode 100644 public/images/logo/stalwart.png diff --git a/public/images/logo/cryptpad.png b/public/images/logo/cryptpad.png new file mode 100644 index 0000000000000000000000000000000000000000..364f7c451f2000c7910491cd1f465c834ff52e31 GIT binary patch literal 2650 zcmV-g3Z?alP)vkcxzaIz3F9 zc7%os%}7LH5Ru3YmDe3Yjb@EWc&V|Wx?>`&jO3U4zL-#0v3SP;LiwwZ37Fz9I!4TFZut4>!LcAaeXVm zg(UcFKMQB&Xn5h@#fV@&tH5+{Cpeb6U*V?`M=*+RkArz&V@$ulfg`i|9GsQ2S%mNd zm<>jPE5UJKzcl?H3_5`uz=Pm3OP!rFeQ(Zk*enr`CJD96psqYHE}*_YK+8HkN`ZrfP}F}(EQEP|CvFProQ%X#om5vqPb znHs8iX@$gl8mMbd5~zy?cW_ku5nRS~+{<+?p-5PMck3)?ObBnexYm@%dE5El<9Py6 z8MFp3fZs)=q*?2`EUY~C(E>cfX%s=*2h{0=S5YlUcznH@(#tKh5Yn7g{_6AigbvofyRI>?Bq*J##*_aS4mNQZOcVjR^r7kef0`)9D z?{UJb;1(r3k*@>zMCrA>5|aV$imzia(YSB#5MNGs72Vg=rp5QBH@~(?9g*OrW3&wGo zeDIVp=F8)}_i^5LZ2sa1k6*-BV&W2)b4&G?=;T)oXua9@Nn%&mAYKxgqObXd^%<0zPRma z3-4Giv;}nLauoH>PQUBX45ibrR9+Jy27mRR*tf z+9q&yn6DVZlZO}5>N-*GK(Jo;p#^W+y4wsUaULnWYa;vw3J?DtqV$QLq(g#-m5#=} zxlM8`yOpmIYxo(bBfJix3{4J0Cvr$X1uPIyu=$6}?*PY$yafpbm$vZo!3SJ;4%k2VhldR~w%e~ZrUh(>xje)|)OI)_LS3LBhh+_IOo3C;b-Xp?CfhCU=-gOcFY{DBZd`wN?V+&{|(vk>| zp6`qZ78_mMc=nSA?g2lf(M`@^ABTgLe2oH4=)}xR9cw0<)zV+a7A|;8NWOOb7w|Xe z8u9{iQFx(I#1PG|if5;W@CqY*&~DEn&P(IX<{~YL@RCB4gX7tc?0&a_FTB)ooyn@K z2#=zhh-4J58-!FqQSWWeJC6iwc>z(vTP0q?MPWB(vzWpgBJ$9Jcz%e#Ob9QJ@7Z4_ zYAVu_2=99^AAAVj_w<;Xp8K2N4H5Mwf!jbc;b)NWQwXY>bs6<`5&2)`YlnKe=c8-e zLFfr`q+cm~yzbwyRd~pBjHj1R{6alScr96`8%I39%s?|w4B@>kUc#iPI)f~x@Xl1J zvq?G`{k76NCMLAbwmm|4QC%&a#P(;}G}b#*q$LqvtjR@?q3rF#&)69GFBSQx^0j@u z)UG`6`3fJ;io8$mx~TNtp#LB$i_Ekz_>L&B6a4DwEto}K>eQMJ27JP4zZk-!FyBZv zMCs%1R40A>Q(`Lz*RB;WfuKF%&-vv<;V%xy5nfgBsEYoS)5Ipc^&#z|PeHeeyz}HA zT{#MGfbg>dTn)Mga1Q7rA{)_1_<2}dr==EJC!FP_jx(vv%MA?`_&3~F+;D5**c6_G z1lC66tqZ=h85-Xn~7!5*c zmAZiG`M(35w<@?;qz_^tQsleW6SH7`$y>O-yKD~#X$`>5O0V*N8Z+9-hk)w+rfi?s^luQ|m=`F5{x}C$ys;<(Q(!c#;?z4_i#a$)s ztkmVaQh39&-S*weRBCri1N%m0PzPuM=Lnru0dZ zLh%6Sf@&GAqn|3CLDKoX8kzK;NsAC3eM=(O-<mzw$|o&vcrWeu(F1k&h-3kLU92)me_4(jUtd zg)A|c(Cqk(Y`5Fl9$?&+(iYb05W&&u4LbRIP`2CaY!5RY&rJ^y9c}8D*w1t3EMunh zUgmsb*4iT5?Q&KDjJi|M2MnN9`)s$znKNh3oH=vm%-Jsc522Zw*}P`WR{#J207*qo IM6N<$f^^j>=>Px# literal 0 HcmV?d00001 diff --git a/public/images/logo/gitea.png b/public/images/logo/gitea.png new file mode 100644 index 0000000000000000000000000000000000000000..0ebf3621b43b99f90585b9b06cf60ed74aca781b GIT binary patch literal 2685 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 literal 0 HcmV?d00001 diff --git a/public/images/logo/matrix.png b/public/images/logo/matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..7461d0ee9f640284135716c7945963988c1146f9 GIT binary patch literal 2083 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 W7E#V-uh))?6<}pyhiEeMzVj~|H}SXt literal 0 HcmV?d00001 diff --git a/public/images/logo/stalwart.png b/public/images/logo/stalwart.png new file mode 100644 index 0000000000000000000000000000000000000000..c843fa7349b4255bc29d89868083839cbe73fd20 GIT binary patch literal 2021 zcmcIl`#;kQAK%DhEb6#Lq83G%cv%UHk|8AIE|)lzTU(aSmxbI~?rSK*WQFm>+1SZ# zVj7(>mMoW!TZV|);&IE$ah~UIcs{S!`~7}>Ua!yRm-i3vcZQ3zot*4pSr7;$ciG;? zZBI#iFoH<#@yHdEkv#!p-R!KvV{C(@y+sCN?}G(_po;$h40=|ox_5BQ#mODD``_X7 z`8XWT*VmUwBrYy4e)#YKfk5p2B_<}Wudn0rczJpG+S=Or`FVSLdq+pdn3xy^1qCXV zDi8?D%ge*U!lI(0($dlv78ZW~{K@5Vx3;!UoH&6-qnn$X_4W0KhlkbG)saZ#_V#vA zP*7!MrC2Pswzhu%{(VzZ)9UK#*w`2p3UzjN27|$EZEZO@IaXFy%F4hB|P_J ziE7F|SDvcTaY^z6-%A%=S?)A&Y*ghF+7K=2x_~}3?B(%NCBq@QFq0hZdeL3h0eHmF z((c?S#R^Zt_AM283Y-S^kM&J7;yT0w{7K#Cofc6J5~t-Ir@KRB7=S_Yp}Z5K8Ja2} z>m!QpU5Y-pyT%CMnNoXT93v&L0sb4kMK zr0PqqB(XFwUnmLEFR;XQ939p>4^n&cC*;e1r^UBppoIGLcg9o28^Plfcjpi|YPyCIbo1XLZB{w0vr*jY8D(&c9+5zo1f3G6|nf9jh* zsd)&=`W;h-uY?;+%`BQeY>I%;T5YV`R_3?&0~)lsaaI=p7w)s{<1ZEbrhPmXz7%)y z*j9}~aKS0ApA-pebPRX1B?h&BJg3cY@FQcAHF14B|)79^+=7YuX9&DiWX5O-2>}75clu#RbI3Zkj z$#VoSvA{I22)vz2;q}H{I(zzqyalnfJP99u&ZuX)~FZ||lO=Tdf zoJk54)pj9fgPHXU!N_;m7B~5athLlxC(X1xnbshRv}|c?0bD}1cIEXq-Ca+obyjFO41?ZEmZjj?Lg~ic6Cn74p{E zD@wryv*1Un67#<0mWB=9a@fMIy8S@6aRwq2%qJ_*7p7_BG?6HD zd@aZ;KM{``XAW26xVFuHsb;A!5D?QR2h=ORFHt+qHQleLOTG&~xy#mV(Fuomj#eBx zh89YouL`U_Ki*f+T=Yk@-jzox-nkJsk=gOA)*pIk9R+l`DWl1t1j0{9l#ox7Dtrnv zc_9OR@m8eDW(8 z5^d`(4MRp%h8_x!EJog!x1=;mLC{x@8Y~tLs8YOoQhzXQmBO@QU7Fe-Yuc0h|7h@9 zR-(dp9>!m_)GiTiNELKqfn+U zuk6T;v+J(iH}2leuNin^>0DCJviN@fsP>jzLQ>YJHb|Q^k-uPsmGgGQ8N+*Op8X%xv}F(I!EcIbBFd?Z`CCS7jMirg zf(6WZ1L2eU&m^sQu)fptP+rQi`cez(q#P`u|LI-)fSU4`TmKn5mEGI_zA4S1obcCl zd6skqvN%in9w&!rnd$MJAcN1dcbu$ho}g+J6QWzXgq3}(#>v&GVd3DTb9qe8omr{h zL^5eaw*hwbg|P_L@HwsI(Z}6pF)$>h-m%6=lYiqQ+4u9c`z8|vVUEZ!!8`7+nyMrD zyDP5))BL^Fs8&=;U!vRyybN(RwdVb(K|sMhy(_x;L_~glInSidr@hXZ^C@$L`J^-JodWR9TjI3lKM5>6H#xP2bx6`SjIrEn8qj5w KvrWBqP|Dx?J{QUW literal 0 HcmV?d00001 diff --git a/src/pages/cloud/CalltoAction.tsx b/src/pages/cloud/CalltoAction.tsx index 4119088..8a027ba 100644 --- a/src/pages/cloud/CalltoAction.tsx +++ b/src/pages/cloud/CalltoAction.tsx @@ -1,55 +1,56 @@ +"use client"; + import { CircleBackground } from '../../components/CircleBackground' -import { Container } from '@/components/Container' -import { Button } from '@/components/Button' +import { Container } from "@/components/Container"; +import { Button } from "@/components/Button"; export function CallToAction() { return ( -
-
- -
+
+ {/* ✅ Top horizontal line with spacing */} +
+
- -
-

- Choose How You Want to Start -

+ {/* ✅ Main boxed area */} +
+ -

- Host your own node to contribute capacity or deploy workloads using the Mycelium Cloud. -

+ +
+

+ Choose How You Want to Start +

-
-
-

Host a Node

-

- Add compute to the network and run your own environment. -

- -
+

+ Host your own node to contribute capacity or deploy workloads using the Mycelium Cloud. + You don’t need to host before deploying, and you don’t need to deploy before hosting. + +

-
-

Deploy Workloads

-

- Run Kubernetes clusters, agents, and services on the Mycelium Cloud. -

- + {/* ✅ Two cards, stacked center with spacing */} +
+
+ +
+ +
+ +
+ +
-

- You don’t need to host before deploying, and you don’t need to deploy before hosting. - Start wherever it makes sense for you. -

-
-
+ {/* ✅ Bottom horizontal line with spacing */} +
+
- ) + ); } diff --git a/src/pages/cloud/CloudArchitecture.tsx b/src/pages/cloud/CloudArchitecture.tsx index 7d4b1fc..ed43f31 100644 --- a/src/pages/cloud/CloudArchitecture.tsx +++ b/src/pages/cloud/CloudArchitecture.tsx @@ -56,12 +56,12 @@ export function CloudArchitecture() {
    {architecture.map((layer) => (
  • {layer.icon} {/* ✅ this now works */}

    {layer.title}

    diff --git a/src/pages/cloud/CloudBluePrint.tsx b/src/pages/cloud/CloudBluePrint.tsx index c44c5a1..a1317a3 100644 --- a/src/pages/cloud/CloudBluePrint.tsx +++ b/src/pages/cloud/CloudBluePrint.tsx @@ -1,52 +1,61 @@ -import { H3, P, Eyebrow } from '@/components/Texts' +"use client"; +import { Container } from "@/components/Container"; +import { H3, P, Eyebrow } from "@/components/Texts"; export function CloudBluePrint() { + const logos = [ + { src: '/images/logo/cryptpad.png', href: 'https://cryptpad.fr' }, + { src: '/images/logo/gitea.png', href: 'https://about.gitea.com' }, + { src: '/images/logo/lifekit.png', href: '#' }, // No link available + { src: '/images/logo/matrix.png', href: 'https://matrix.org' }, + { src: '/images/logo/nextcloud.png', href: 'https://nextcloud.com' }, + { src: '/images/logo/stalwart.png', href: 'https://stalw.art' }, + ]; + return ( -
    -
    - Featured Blueprint -

    Your Personal Sovereign Cloud Workspace

    -

    Digital Me is an example environment built to demonstrate what’s possible on top of the Mycelium Stack, a full personal cloud you can deploy, customize, or extend. - Your files, communication, apps, and optional AI agent, all running privately on infrastructure you choose.

    -
    - Transistor - Reform - Tuple - SavvyCal - Statamic -
    +
    + + {/* ✅ Boxed container */} +
    + +
    + Featured Blueprint + +

    + Your Personal Sovereign Cloud Workspace +

    + +

    + Digital Me is an example environment built to demonstrate what’s possible on top of the Mycelium Stack — a full personal cloud you can deploy, customize, or extend. Your files, communication, apps, and optional AI agent, all running privately on infrastructure you choose. +

    +
    + + {/* ✅ 3x2 logo grid */} +
    + {logos.map((logo, i) => ( +
    + + {`Logo + +
    + ))} +
    +
    -
    - ) + + {/* ✅ Bottom line + bottom spacer */} +
    +
    +
+ ); } diff --git a/src/pages/cloud/CloudUseCases.tsx b/src/pages/cloud/CloudUseCases.tsx index 96d1f65..a9ad629 100644 --- a/src/pages/cloud/CloudUseCases.tsx +++ b/src/pages/cloud/CloudUseCases.tsx @@ -1,5 +1,7 @@ +"use client"; + import { Container } from '@/components/Container' -import { Eyebrow, SectionHeader, P, Small } from '@/components/Texts' +import { Eyebrow, H3, P, Small } from '@/components/Texts' const useCases = [ { @@ -36,53 +38,74 @@ const useCases = [ export function CloudUseCases() { return ( -
- -
- - Use Cases - - - Built for intelligent workloads across every edge. - -

- Mycelium Cloud unifies compute, storage, and networking so teams can - launch anything from GPU inference farms to global collaboration - suites with deterministic outcomes. -

-
-
- {useCases.map((useCase) => ( -
-
-

- {useCase.title} -

- - Scenario - -
-

- {useCase.description} -

-
    - {useCase.bullets.map((bullet) => ( -
  • - - {bullet} -
  • - ))} -
-
- ))} -
-
+
+ + {/* ✅ Top horizontal line with spacing */} +
+
+ + {/* ✅ Inner boxed container */} +
+ +
+ USE CASES + +

+ Built for intelligent workloads across every edge. +

+ +

+ Mycelium Cloud unifies compute, storage, and networking so teams can + launch anything from GPU inference farms to global collaboration suites + with deterministic outcomes. +

+
+ + {/* ✅ 3 columns on desktop */} +
    + {useCases.map((useCase) => ( +
  • +
    +

    + {useCase.title} +

    + + Scenario + +
    + +

    + {useCase.description} +

    + +
      + {useCase.bullets.map((bullet) => ( +
    • + + {bullet} +
    • + ))} +
    +
  • + ))} +
+
+
+ + {/* ✅ Bottom horizontal line + spacing */} +
+
) } diff --git a/tailwind.config.js b/tailwind.config.js index 799bf0c..9adfdb1 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -10,6 +10,10 @@ export default { sans: ['Mulish', 'system-ui', 'Avenir', 'Helvetica', 'Arial', 'sans-serif'], }, keyframes: { + logoScroll: { + '0%': { transform: 'translateX(0)' }, + '100%': { transform: 'translateX(-50%)' }, + }, 'glitch-1': { '0%': { transform: 'none' }, '25%': { transform: 'skew(-0.5deg, -0.5deg)' }, @@ -26,6 +30,7 @@ export default { }, }, animation: { + logoScroll: 'logoScroll 16s linear infinite', 'glitch-1': 'glitch-1 1s infinite', 'glitch-2': 'glitch-2 1s infinite', },