Skip to content

Commit b297cbe

Browse files
feat: animate Meshery architecture diagram and add section
1 parent 4304b03 commit b297cbe

2 files changed

Lines changed: 101 additions & 9 deletions

File tree

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import React from "react";
2+
import styled from "styled-components";
3+
import { Container } from "../../../reusecore/Layout";
4+
import { ReactComponent as ArchitectureSVG } from "../images/meshery-architecture.svg";
5+
6+
const ArchitectureWrapper = styled.div`
7+
padding: 4rem 0;
8+
text-align: center;
9+
10+
.title {
11+
margin-bottom: 2rem;
12+
}
13+
14+
.architecture-diagram {
15+
max-width: 100%;
16+
overflow-x: auto;
17+
display: flex;
18+
justify-content: center;
19+
20+
svg {
21+
width: 100%;
22+
height: auto;
23+
max-width: 900px;
24+
25+
.st5,
26+
.st9,
27+
.st13,
28+
.st15,
29+
.st20,
30+
.st28,
31+
.st29 {
32+
stroke-dasharray: 8;
33+
animation: dash 2s linear infinite;
34+
opacity: 0.8;
35+
}
36+
37+
@keyframes dash {
38+
to {
39+
stroke-dashoffset: -16;
40+
}
41+
}
42+
43+
&:hover {
44+
.st5,
45+
.st9,
46+
.st13,
47+
.st15,
48+
.st20,
49+
.st28,
50+
.st29 {
51+
animation: dash 0.5s linear infinite;
52+
opacity: 1;
53+
stroke-width: 1.5;
54+
}
55+
}
56+
}
57+
}
58+
`;
59+
60+
const MesheryArchitecture = () => {
61+
return (
62+
<ArchitectureWrapper>
63+
<Container>
64+
<h2 className="title">Meshery Architecture</h2>
65+
<div className="architecture-diagram">
66+
<ArchitectureSVG aria-label="Meshery Architecture Diagram" />
67+
</div>
68+
</Container>
69+
</ArchitectureWrapper>
70+
);
71+
};
72+
73+
export default MesheryArchitecture;

src/sections/Meshery/index.js

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import DockerExtensionCTA from "../Docker-Meshery/docker-extension-CTA";
1212

1313
import MesheryWrapper from "./meshery.style";
1414
import FeaturesSection from "./Features-section";
15+
import MesheryArchitecture from "./Meshery-architecture";
1516
import Features from "./Meshery-features";
1617
import InlineQuotes from "../../components/Inline-quotes";
1718
import Maximiliano from "../../collections/members/maximiliano-churichi/Maximiliano-Churichi.webp";
@@ -25,29 +26,44 @@ const MesheryPage = () => {
2526
<Row className="description">
2627
<Col className="desc-text" $lg={6} $md={6} $sm={10} $xs={8}>
2728
<h1 className="heading-1"> Wrangle your infrastructure</h1>
28-
<h1 className="heading-2"> <span className="heading-2"> collaboratively</span></h1>
29+
<h1 className="heading-2">
30+
{" "}
31+
<span className="heading-2"> collaboratively</span>
32+
</h1>
2933
<p className="desc-p">
3034
{/* Meshery is the cloud native manager. <br /> */}
31-
Confidently design, deploy, and operate your infrastructure and workloads with Meshery.
35+
Confidently design, deploy, and operate your infrastructure and
36+
workloads with Meshery.
3237
</p>
33-
<Button $primary className="banner-btn" title="Schedule a Demo" $external={true}
38+
<Button
39+
$primary
40+
className="banner-btn"
41+
title="Schedule a Demo"
42+
$external={true}
3443
$url="https://calendar.google.com/calendar/appointments/schedules/AcZssZ3pmcApaDP4xd8hvG5fy8ylxuFxD3akIRc5vpWJ60q-HemQi80SFFAVftbiIsq9pgiA2o8yvU56?gv=true"
3544
>
3645
<GiClockwork size={21} className="button-icon" />
3746
</Button>
38-
<Button $secondary className="banner-btn" title="Run Meshery"
47+
<Button
48+
$secondary
49+
className="banner-btn"
50+
title="Run Meshery"
3951
$url="/cloud-native-management/meshery/getting-started"
4052
>
4153
<FiDownloadCloud size={21} className="button-icon" />
4254
</Button>
4355
</Col>
4456
<Col $lg={6} $md={6} className="meshery-hero-img desc-text">
45-
<video autoPlay muted loop controls className="meshery-video" >
57+
<video autoPlay muted loop controls className="meshery-video">
4658
<source src={mesheryDemo} type="video/webm" />
4759
</video>
4860
{/* <img className="meshery-sup-img" src={mesheryFullStack} alt="Meshery the multi-mesh manager" /> */}
49-
<Button $primary className="banner-btn align-btn"
50-
title="Star the Repository" $url="https://github.com/meshery/meshery" $external={ true }
61+
<Button
62+
$primary
63+
className="banner-btn align-btn"
64+
title="Star the Repository"
65+
$url="https://github.com/meshery/meshery"
66+
$external={true}
5167
>
5268
<FaGithub size={21} className="button-icon" />
5369
</Button>
@@ -56,6 +72,7 @@ const MesheryPage = () => {
5672
</div>
5773
<FeaturesTable />
5874
</Container>
75+
<MesheryArchitecture />
5976
<FeaturesSection />
6077
<Container>
6178
<InlineQuotes
@@ -65,7 +82,10 @@ const MesheryPage = () => {
6582
image={Nic}
6683
/>
6784
<div className="callout">
68-
<h1> Manage your clusters with features you won't find anywhere else.</h1>
85+
<h1>
86+
{" "}
87+
Manage your clusters with features you won't find anywhere else.
88+
</h1>
6989
</div>
7090
</Container>
7191
<Features />
@@ -79,7 +99,6 @@ const MesheryPage = () => {
7999
/>
80100
</Container>
81101
</MesheryWrapper>
82-
83102
);
84103
};
85104

0 commit comments

Comments
 (0)