diff --git a/public/images/cloudui/billing.jpg b/public/images/cloud/billing.jpg similarity index 100% rename from public/images/cloudui/billing.jpg rename to public/images/cloud/billing.jpg diff --git a/public/images/cloud/billing.png b/public/images/cloud/billing.png new file mode 100644 index 0000000..665344d Binary files /dev/null and b/public/images/cloud/billing.png differ diff --git a/public/images/cloudui/kubeconfig.jpg b/public/images/cloud/kubeconfig.jpg similarity index 100% rename from public/images/cloudui/kubeconfig.jpg rename to public/images/cloud/kubeconfig.jpg diff --git a/public/images/cloud/kubeconfig.png b/public/images/cloud/kubeconfig.png new file mode 100644 index 0000000..60044be Binary files /dev/null and b/public/images/cloud/kubeconfig.png differ diff --git a/public/images/cloudui/reserve.jpg b/public/images/cloud/reserve.jpg similarity index 100% rename from public/images/cloudui/reserve.jpg rename to public/images/cloud/reserve.jpg diff --git a/public/images/cloud/reserve.png b/public/images/cloud/reserve.png new file mode 100644 index 0000000..0e15ac0 Binary files /dev/null and b/public/images/cloud/reserve.png differ diff --git a/src/pages/cloud/CloudFeatures.tsx b/src/pages/cloud/CloudFeatures.tsx index e9662db..cbb22e0 100644 --- a/src/pages/cloud/CloudFeatures.tsx +++ b/src/pages/cloud/CloudFeatures.tsx @@ -11,7 +11,6 @@ import { } from 'framer-motion' import { useDebouncedCallback } from 'use-debounce' -import { AppScreen } from '../network/AppScreen' import { Eyebrow, FeatureDescription, @@ -23,10 +22,9 @@ import { import { CircleBackground } from '@/components/CircleBackground' import { Container } from '@/components/Container' -import connectorImg from '@/images/connector.png' -import peersImg from '@/images/peers.png' -import settingImg from '@/images/setting.png' -import { PhoneFrame } from '@/components/PhoneFrame' +import reservenodeimg from '/images/cloud/reserve.png' +import billingImg from '/images/cloud/billing.png' +import kubeconfigImg from '/images/cloud/kubeconfig.png' interface CustomAnimationProps { @@ -36,25 +34,25 @@ interface CustomAnimationProps { const features = [ { - name: 'Mycelium Connector', + name: 'Decentralized Kubernetes', description: - "Start (and stop) your Mycelium connector to gain access to sites, apps, and workloads available exclusively on the Mycelium Network. View statistics around peers and traffic.", + "Reserve a node and deploy sovereign Kubernetes clusters on decentralized infrastructure.", icon: DeviceUserIcon, - screen: InviteScreen, + screen: ReserveNodeScreen, }, { - name: 'Mycelium Peers', + name: 'Manage Your Cluster', description: - 'Search and discover active peers on the Mycelium Network, or add your own.', + 'Manage your cluster with ease, with a simple and intuitive interface.', icon: DeviceNotificationIcon, - screen: StocksScreen, + screen: ManageClusterScreen, }, { - name: 'Network Setting', + name: 'Personalised Billings & Accounts', description: - 'Find version and network information and trigger light or dark mode.', + 'Easily manage your cluster billing and accounts with personalised configurations.', icon: DeviceTouchIcon, - screen: InvestScreen, + screen: PersonalisedBillingsScreen, }, ] @@ -182,28 +180,40 @@ const bodyAnimation: MotionProps = { } -function InviteScreen() { +function ReserveNodeScreen() { return ( - - Mycelium Connector - - ) + Mycelium Reserve Node + ); } -function StocksScreen() { +function ManageClusterScreen() { return ( - - Mycelium Peers - - ) + Mycelium Kubeconfig + ); } -function InvestScreen() { +function PersonalisedBillingsScreen() { return ( - - Mycelium Settings - - ) + Mycelium Billing + ); } function usePrevious(value: T) { @@ -216,7 +226,7 @@ function usePrevious(value: T) { return ref.current } -function FeaturesDesktop() { +function CloudFeaturesDesktop() { let [changeCount, setChangeCount] = useState(0) let [selectedIndex, setSelectedIndex] = useState(0) let prevIndex = usePrevious(selectedIndex) @@ -238,12 +248,12 @@ function FeaturesDesktop() { onChange={onChange} vertical > - + {features.map((feature, featureIndex) => (
)} @@ -271,11 +281,11 @@ function FeaturesDesktop() {
))}
-
+
- +
- +
) } -function FeaturesMobile() { +function CloudFeaturesMobile() { let [activeIndex, setActiveIndex] = useState(0) let slideContainerRef = useRef>(null) let slideRefs = useRef>>([]) @@ -361,9 +371,9 @@ function FeaturesMobile() { className={featureIndex % 2 === 1 ? 'rotate-180' : undefined} />
- +
- +
@@ -405,29 +415,27 @@ function FeaturesMobile() { export function CloudFeatures() { return (
-
- How It Works +
+ Platform Overview - How Mycelium Operates + A Decentralized Cloud that Operates Itself

- Mycelium, like its natural namesake, thrives on decentralization, - efficiency, and security, making it a truly powerful force in the world - of decentralized networks. + Mycelium Cloud orchestrates Kubernetes clusters on the ThreeFold Grid with cryptographic certainty. Networking, storage, and orchestration are all built-in so developers can deploy critical workloads without wrestling infrastructure.

+
+ +
- +
- - -
) } diff --git a/src/pages/cloud/CloudPage.tsx b/src/pages/cloud/CloudPage.tsx index 2623ab4..3b28fd0 100644 --- a/src/pages/cloud/CloudPage.tsx +++ b/src/pages/cloud/CloudPage.tsx @@ -1,5 +1,4 @@ import { AnimatedSection } from '../../components/AnimatedSection' -import { CloudHero } from './CloudHero' import { CloudOverview } from './CloudOverview' import { CloudArchitecture } from './CloudArchitecture' import { CloudFeatures } from './CloudFeatures' @@ -17,14 +16,13 @@ export default function CloudPage() { - + + - - - +