Skip to content

Commit

Permalink
UI Improvements: Design Optimization for Homepage Components kubeedge…
Browse files Browse the repository at this point in the history
…#682

Signed-off-by: harshita91 <[email protected]>
  • Loading branch information
harshita9104 committed Feb 11, 2025
1 parent 3a43a28 commit 326561c
Show file tree
Hide file tree
Showing 6 changed files with 407 additions and 240 deletions.
56 changes: 26 additions & 30 deletions src/components/about/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,40 +6,36 @@ import "./styles.scss";
export default function About() {
return (
<SectionContainer className="aboutContainer">
<div className={"row"}>
<div className={"profile"}>
<img className={"portrait"} src="img/avatar.png"></img>
<div className={"portraitTitle"}>
<h3 className={"name"}>KubeEdge</h3>
<h3 className={"jobTitle"}>
<div className="about-content">
{/* Left Side - Logo with Title & Tagline */}
<div className="logo-container">
<img
className="kubeedge-logo"
src="img/avatar.png"
alt="KubeEdge Logo"
/>
<h1 className="profile-name">KubeEdge</h1>
<h3 className="profile-title">
<Translate>Kubernetes Native Edge Computing Framework</Translate>
</h3>
</div>

{/* Right Side - Single Paragraph with Wider Layout */}
<div className="about-description">
<div className="text-box">
<p>
<Translate>
Kubernetes Native Edge Computing Framework
KubeEdge is an open-source system that extends Kubernetes'
native container orchestration capabilities to edge hosts. It
provides fundamental infrastructure for networking, application
deployment, and metadata synchronization between cloud and edge.
Our goal is to create an open platform for Edge computing,
extending containerized orchestration capabilities to edge hosts
while ensuring seamless synchronization between cloud and edge.
</Translate>
</h3>
</p>
</div>
</div>
<div className={"description"}>
<p>
<Translate>
KubeEdge is an open source system for extending native
containerized application orchestration capabilities to hosts at
Edge. It is built upon kubernetes and provides fundamental
infrastructure support for network, application deployment and
metadata synchronization between cloud and edge. KubeEdge is
licensed under Apache 2.0. and free for personal or commercial use
absolutely. We welcome contributors!
</Translate>
</p>
<p>
<Translate>
Our goal is to make an open platform to enable Edge computing,
extending native containerized application orchestration
capabilities to hosts at Edge, which is built upon kubernetes and
provides fundamental infrastructure support for network, app
deployment and metadata synchronization between cloud and edge.
</Translate>
</p>
</div>
</div>
</SectionContainer>
);
Expand Down
183 changes: 114 additions & 69 deletions src/components/about/styles.scss
Original file line number Diff line number Diff line change
@@ -1,77 +1,122 @@
.aboutContainer {
background-color: rgb(247, 247, 247);

@media screen {
@media (max-width: 992px) {
.sectionContainerInner {
.row {
.profile {
flex: 0 0 100%;
max-width: 100%;
}
}
}
}
@media (max-width: 768px) {
.sectionContainerInner {
.row {
.profile {
flex: 0 0 100%;
max-width: 100%;
}
}
}
}
background: linear-gradient(
135deg,
#eef2f3,
#d1d8e0
); /* Soft gradient background */
padding: 5rem 2rem;
display: flex;
justify-content: center;
}

/* About Content */
.about-content {
display: flex;
align-items: center;
justify-content: center;
text-align: left;
gap: 5rem;
max-width: 1200px; /* Increased max width */
}

/* Left Side - Logo with Title & Tagline */
.logo-container {
flex: 0.4;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}

.kubeedge-logo {
width: 200px; /* Increased Size */
height: 200px;
object-fit: contain;
transition: transform 0.3s ease-in-out;
}

/* Logo Hover Effect */
.kubeedge-logo:hover {
transform: scale(1.1);
}

/* Profile Text */
.profile-name {
font-size: 2.7rem;
font-weight: bold;
color: #2c3e50;
margin-top: 1rem;
}

.profile-title {
font-size: 1.3rem;
font-weight: 400;
color: #555;
}

/* Right Side - Wider Single Paragraph */
.about-description {
flex: 1;
display: flex;
justify-content: center;
max-width: 700px; /* Increased Width */
}

/* Text Box - Professional Styling */
.text-box {
background: rgba(255, 255, 255, 0.95);
padding: 2rem;
border-radius: 15px;
box-shadow: 0px 6px 18px rgba(0, 0, 0, 0.15);
font-size: 1.2rem;
color: #333;
line-height: 1.8;
font-family: "Inter", sans-serif; /* Professional font */
font-weight: 400;
text-align: justify;
max-width: 750px;
}

/* Dark Mode */
html[data-theme="dark"] {
.aboutContainer {
background: linear-gradient(135deg, #1c1e22, #2a2d33);
}

.profile-name {
color: #ddd;
}

.profile-title {
color: #bbb;
}

.row {
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
justify-content: center;
margin-right: -15px;
margin-left: -15px;

.profile {
flex: 0 0 33.333333%;
max-width: 33.333333%;
text-align: center;
padding: 0px 10px 30px;
position: relative;
}

.portrait {
width: 200px;
height: 200px;
margin: 0 auto;
border-radius: 50%;
object-fit: cover;
}

.description {
flex: 0 0 66.666667%;
max-width: 66.666667%;
font-size: 1.2rem;
}

.name {
font-size: 2em;
font-weight: 400;
margin: 20px 0 10px 0;
}

.jobTitle {
font-size: 1rem;
font-weight: 300;
margin: 0px 0 10px 0;
}
.text-box {
background: rgba(45, 47, 51, 0.95);
color: #eee;
}
}

/* Responsive Design */
@media (max-width: 768px) {
.about-content {
flex-direction: column;
text-align: center;
gap: 2rem;
}

html[data-theme='dark'] {
.aboutContainer {
background-color: #242526;
.about-description {
flex-direction: column;
gap: 1rem;
max-width: 100%;
}

.kubeedge-logo {
width: 160px;
height: 160px;
}
}

.text-box {
text-align: center;
}
}
22 changes: 15 additions & 7 deletions src/components/blogPost/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,36 @@ export default function BlogPost() {
return (
<SectionContainer className="blogPostContainer">
<div className="row">
{/* Left Section - Title and View All */}
<div className="left">
<h1>
<h1 className="newsTitle">
<Translate>Recent News</Translate>
</h1>
<a onClick={() => history.push("blog")}>
<a onClick={() => history.push("blog")} className="viewAll">
<Translate>View All</Translate>
</a>
</div>

{/* Right Section - Blog Posts */}
<div className="right">
{blogPosts.slice(0, 3).map((item, index) => (
<div key={index} className="viewBlogContainer">
<h3 onClick={() => history.push(item.metadata.permalink)}>
<h3
className="blogTitle"
onClick={() => history.push(item.metadata.permalink)}
>
{item.metadata.title}
</h3>
{item.metadata?.frontMatter?.summary && (
<p>{item.metadata?.frontMatter.summary}</p>
<p className="blogSummary">
{item.metadata?.frontMatter.summary}
</p>
)}
<div className="info">
<div className="author">
{(item.metadata?.authors || []).map((item) => (
<a href={item.url} target="_blank">
{item.name}
{(item.metadata?.authors || []).map((author) => (
<a href={author.url} target="_blank">
{author.name}
</a>
))}
</div>
Expand Down
Loading

0 comments on commit 326561c

Please sign in to comment.