You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by yu...@apache.org on 2022/09/13 03:24:25 UTC
[incubator-devlake-website] 13/14: feat: use case mobile
This is an automated email from the ASF dual-hosted git repository.
yumeng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake-website.git
commit 0d90f7efeb8606ef4160fe962c78e2695051ae47
Author: ZiyuTao <zi...@merico.dev>
AuthorDate: Mon Sep 12 03:40:49 2022 +0800
feat: use case mobile
---
src/components/Sections/Components.tsx | 29 +++++++++-----------
src/components/Sections/UseCases.tsx | 48 ++++++++++++++++++----------------
src/components/Sections/WhyDevlake.tsx | 28 ++++++++++----------
src/css/custom.css | 5 +++-
tailwind.config.js | 3 ++-
5 files changed, 59 insertions(+), 54 deletions(-)
diff --git a/src/components/Sections/Components.tsx b/src/components/Sections/Components.tsx
index 3f3f23aa0..1febcde41 100644
--- a/src/components/Sections/Components.tsx
+++ b/src/components/Sections/Components.tsx
@@ -3,43 +3,40 @@ import ArrowRight from "@site/static/img/Homepage/arrow-right.svg";
export const TextTitle = ({ children }: { children: React.ReactNode }) =>
<span className="block font-inter
- text-heading2 text-primary-800 font-semibold mb-[16px]">
+ text-heading2 text-primary-800 font-semibold mb-[16px]
+ mobile:text-heading4 mobile:text-neutral-600 mobile:mb-2 mobile:mt-5">
{children}
</span>
export const H3Title = ({ children }: { children: React.ReactNode }) =>
<span className="block font-inter
- text-heading3 text-primary-800 font-semibold mb-[24px]">
+ text-heading3 text-primary-800 font-semibold mb-[24px]">
{children}
</span>
export const TextDescription = ({ children }: { children: React.ReactNode }) =>
- <p className="font-inter pr-[20px]
- text-label18 text-neutral-500 ">
+ <div className="font-inter pr-[20px] mobile:pr-[0]
+ text-label18 text-neutral-500
+ mobile:w-[260px] mobile:text-label14">
{children}
- </p>
+ </div>
export const TextLink = ({ link, children }: { link: string, children: React.ReactNode }) =>
- <a className="text-label16 text-secondary-500 flex items-center mt-[16px]"
+ <a className="text-label16 text-secondary-500 flex items-center mt-[16px]
+ mobile:hidden"
href={link}>{children}
<ArrowRight width={20} height={20} />
</a>
export const TextSection = ({ children }: { children: React.ReactNode }) =>
- <div
- className="
- text-start w-[448px]
- mobile:w-auto
- ">
+ <div className={`text-start mobile:text-center w-[448px] mobile:w-auto`}>
{children}
</div>
export const SvgImg = ({ svg: Svg }: { svg: React.ComponentType<React.SVGProps<SVGSVGElement>> }) =>
- <div
- className="
- w-auto h-auto
- "
- >
+ <div className="
+ w-auto h-auto
+ " >
<Svg role="img" />
</div>
export const SectionImg = ({ src }: { src: string }) => <img src={src} alt="" className="
diff --git a/src/components/Sections/UseCases.tsx b/src/components/Sections/UseCases.tsx
index 01f9f0b22..ce28c3b0f 100644
--- a/src/components/Sections/UseCases.tsx
+++ b/src/components/Sections/UseCases.tsx
@@ -14,30 +14,34 @@ function UCCard({ lead, title, desc, children }: {
}) {
return (<div className='use-case-card relative shadow-card overflow-hidden
w-[460px] h-[468px] rounded-[16px]
- mobile:w-auto
+ mobile:w-[312px] mobile:shadow-hide
'>
- <div className="flex items-center h-[228px] justify-center">
+ <div className="flex items-center h-[228px] justify-center
+ mobile:h-auto mobile:mb-4">
{children}
</div>
- <div className="bg-white px-4 py-2 h-[240px]">
- <div className="font-inter text-neutral-300 text-label18 font-medium mb-2 pr-1">{lead}</div>
- <div className="font-inter text-primary-800 text-heading2 font-semibold mb-2 pr-1">{title}</div>
- <div className="font-inter text-neutral-500 text-label18 font-normal pr-1">{desc}</div>
+ <div className="bg-white px-4 py-2 h-[240px] mobile:bg-transparent mobile:h-auto mobile:p-[0]">
+ <div className="font-inter text-neutral-300 text-label18 font-medium mb-2 pr-1
+ mobile:text-heading4 mobile:text-neutral-600 mobile:font-semibold mobile:mb-3">{lead}</div>
+ <div className="font-inter text-primary-800 text-heading2 font-semibold mb-2 pr-1
+ mobile:text-neutral-600 mobile:mb-3">{title}</div>
+ <div className="font-inter text-neutral-500 text-label18 font-normal pr-1
+ mobile:text-label14 mobile:text-neutral-400">{desc}</div>
</div>
</div>)
}
const UCIcon = ({ src }: { src: string }) => <img src={src} alt='' className="
w-[240px] h-[180px]
+ mobile:w-[308px] mobile:h-[250px]
" />
export function UseCases() {
return (<div className="flex flex-col relative items-center
- h-[1206px] mobile:h-auto">
+ h-[1206px] mobile:h-auto mobile:bg-primary-100 mobile:pb-6">
<BG className='absolute z-0 mobile:hidden' />
- <span
- className="section-title text-center mt-7"
- >Use Cases</span>
+ <span className="section-title text-center mt-7
+ mobile:mt-[0]">Use Cases</span>
<div className="grid grid-cols-2 gap-x-[72px] gap-y-6
mobile:grid-cols-1">
<UCCard
@@ -48,25 +52,25 @@ export function UseCases() {
<UCIcon src={UC1} />
</UCCard>
<UCCard
- lead="Open-source Software Maintainers"
- title="Contribution Analysis for Community Growth"
- desc="Grow your community strategically by learning how developers participate, contribute and collaborate."
+ lead="Product Managers"
+ title="Dev Workflow Improvement"
+ desc="Align sprint planning with high-level goals and ensure the development progress is on track with metrics that help with improving the workflow."
>
- <UCIcon src={UC1} />
+ <UCIcon src={UC2} />
</UCCard>
<UCCard
- lead="Open-source Software Maintainers"
- title="Contribution Analysis for Community Growth"
- desc="Grow your community strategically by learning how developers participate, contribute and collaborate."
+ lead="Tech Leads"
+ title="Bring Out the Best in Your Team"
+ desc="Gain insights into the development and delivery process. Remove blockers and risks to establish best practices."
>
- <UCIcon src={UC1} />
+ <UCIcon src={UC3} />
</UCCard>
<UCCard
- lead="Open-source Software Maintainers"
- title="Contribution Analysis for Community Growth"
- desc="Grow your community strategically by learning how developers participate, contribute and collaborate."
+ lead="Data Engineers"
+ title="The Foundation to Build What You Want"
+ desc="Integrate user-defined data sources with DevLake and easily implement customized metrics and dashboards without reinventing the wheel."
>
- <UCIcon src={UC1} />
+ <UCIcon src={UC4} />
</UCCard>
</div>
</div>)
diff --git a/src/components/Sections/WhyDevlake.tsx b/src/components/Sections/WhyDevlake.tsx
index 9ff3013b9..4142c7922 100644
--- a/src/components/Sections/WhyDevlake.tsx
+++ b/src/components/Sections/WhyDevlake.tsx
@@ -14,10 +14,11 @@ import Sup8 from "@site/static/img/Homepage/sup-8-ghaction.svg";
import Sup9 from "@site/static/img/Homepage/sup-9-glci.svg";
import SupA from "@site/static/img/Homepage/sup-A-feishu.png";
-function Feature({ children }: { children: React.ReactNode }) {
+function Feature({ className, children }: { className?: string, children: React.ReactNode }) {
return (
- <div className="flex w-full justify-between items-center
- mobile:flex-col">
+ <div className={`flex w-full justify-between items-center
+ mobile:text-center
+ mobile:flex-col ${className}`}>
{children}
</div>
);
@@ -50,19 +51,17 @@ function Supports() {
}
export function WhyDevlake() {
- return (<section className="flex flex-col flex-nowrap py-5 items-stretch">
+ return (<section className="flex flex-col flex-nowrap py-5 items-stretch
+ mobile:py-[0px]">
<span
- className="section-title text-center
- mobile:text-heading2 mobile:leading-[32px]"
+ className="section-title text-center"
>
- Why Apache DevLake (Incubating)
+ Why Apache DevLake<span className="mobile:hidden"> (Incubating)</span>
</span>
<div
- className="
- flex flex-col
- px-[140px] mb-[72px]
- space-y-7
- mobile:px-[0px]
+ className=" flex flex-col
+ px-[140px] mb-[72px] space-y-7
+ mobile:px-[0px] mobile:space-y-6 mobile:mb-6
">
<Feature>
<C.SectionImg src={WAD1} />
@@ -75,7 +74,7 @@ export function WhyDevlake() {
</C.TextDescription>
</C.TextSection>
</Feature>
- <Feature>
+ <Feature className="mobile:flex-col-reverse">
<C.TextSection>
<C.TextTitle>Out-of-the-box Analysis</C.TextTitle>
<C.TextDescription>
@@ -90,9 +89,10 @@ export function WhyDevlake() {
<C.SectionImg src={WAD3} />
<C.TextSection>
<C.TextTitle>A Highly Flexible Framework</C.TextTitle>
+ {/* FIXME: A weird margin right happend here, didn't find solution yet */}
<C.TextDescription>
Easily extend DevLake to support your data sources, metrics, and dashboards with a flexible framework for data collection and transformation.
- <br />
+ <br className="mobile:hidden" />
<C.TextLink link="https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema">Learn about DevLake’s data model</C.TextLink>
</C.TextDescription>
</C.TextSection>
diff --git a/src/css/custom.css b/src/css/custom.css
index 9b8bef00b..c61236557 100644
--- a/src/css/custom.css
+++ b/src/css/custom.css
@@ -48,6 +48,8 @@ html[data-theme='dark'] .docusaurus-highlight-code-line {
.section-title {
@apply text-heading1 mb-[64px];
@apply text-primary-800 font-semibold;
+ @apply mobile:text-heading2 mobile:leading-[32px] mobile:text-neutral-600;
+ @apply mobile:py-6 mobile:mb-[0];
}
.floating-link-icon {
@@ -59,6 +61,7 @@ html[data-theme='dark'] .docusaurus-highlight-code-line {
}
.use-case-card {
- background: linear-gradient(105.48deg, #DBE4FD 16.79%, #F0F4FE 93.34%);
+ background: linear-gradient(105.48deg, #DBE4FD 16.79%, #F0F4FE 93.34%);
+ @apply mobile:bg-none;
}
}
\ No newline at end of file
diff --git a/tailwind.config.js b/tailwind.config.js
index 788fb62d2..d4ffb9be9 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -52,7 +52,7 @@ module.exports = {
heading2: ['24px', { lineHeight: '30px' }],
heading3: ['20px', { lineHeight: '25px' }],
heading4: ['16px', { lineHeight: '20px' }],
- label14: ['14px', { lineHeight: 1.43 }],
+ label14: ['14px', { lineHeight: '20px' }],
label16: ['16px', { lineHeight: '24px' }],
label18: ['18px', { lineHeight: '24px' }],
label24: ['24px', { lineHeight: '32px' }],
@@ -69,6 +69,7 @@ module.exports = {
lower: '0px 1.2px 2.4px -0.8px rgba(0, 0, 0, 0.1), 0px 0.8px 4px rgba(0, 0, 0, 0.07)',
high: '0px 9.6px 19.2px -0.8px rgba(0, 0, 0, 0.1), 0px 6.4px 32px rgba(0, 0, 0, 0.07)',
card: '0px 20px 64px -0.8px rgba(0, 0, 0, 0.06)',
+ hide: '0px 0px 0px 0px rgba(0, 0, 0, 0)',
},
},
},