From 9e0e77e8e3d8a2db4f5ecdafea7e27eb8909e392 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Sat, 7 Sep 2019 15:26:35 +0400 Subject: [PATCH] Redesign the homepage --- components/header/index.js | 6 ++-- components/header/style.scss | 15 +++++--- components/hero-section/index.js | 12 ++----- components/hero-section/style.scss | 56 ++++++++--------------------- components/swim-lane/index.js | 26 ++++++++++++++ components/swim-lane/style.scss | 46 ++++++++++++++++++++++++ pages/about/index.js | 11 ------ pages/global.scss | 8 ----- pages/home/index.js | 9 ++++- pages/home/style.scss | 3 ++ static/brand.png | Bin 0 -> 14708 bytes static/stars.webp | Bin 0 -> 8266 bytes 12 files changed, 115 insertions(+), 77 deletions(-) create mode 100644 components/swim-lane/index.js create mode 100644 components/swim-lane/style.scss delete mode 100644 pages/about/index.js create mode 100644 pages/home/style.scss create mode 100755 static/brand.png create mode 100644 static/stars.webp diff --git a/components/header/index.js b/components/header/index.js index 9f1bca7bd..413c82d10 100644 --- a/components/header/index.js +++ b/components/header/index.js @@ -2,9 +2,11 @@ import './style.scss'; const Header = () => (
-
+
- roadmap.sh + + +
Roadmaps diff --git a/components/header/style.scss b/components/header/style.scss index 79e7172b9..8b98ed555 100644 --- a/components/header/style.scss +++ b/components/header/style.scss @@ -1,11 +1,15 @@ .page-header { - padding-top: 25px; + padding: 15px 0; font-size: 18px; - .brand a { - background: #101010; - color: white; + .top-row { + display: flex; + align-items: center; + } + + .brand img { padding: 5px 10px; + height: 50px; text-decoration: none; border-radius: 2px; } @@ -15,11 +19,12 @@ padding: 0 10px; text-decoration: none; font-size: 16px; - color: #101010; + color: #666; } .signup { background: #101010; + border-radius: 5px; color: #ffffff; padding: 7px 10px; margin-left: 15px; diff --git a/components/hero-section/index.js b/components/hero-section/index.js index 140cd57b5..287e306f6 100644 --- a/components/hero-section/index.js +++ b/components/hero-section/index.js @@ -1,16 +1,10 @@ -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import './style.scss'; const HeroSection = () => (
-

Developer Roadmaps

-

Community driven, roadmaps, articles and resources for developers

- -
- - Register - - +
+

Developer Roadmaps

+

Community driven roadmaps, articles and resources for developers. Sign up to share your journey, write guides, track your skillset and get your work reviewed

); diff --git a/components/hero-section/style.scss b/components/hero-section/style.scss index 87d0a6aae..62cd8027c 100644 --- a/components/hero-section/style.scss +++ b/components/hero-section/style.scss @@ -1,54 +1,28 @@ .hero-section { text-align: center; - padding: 80px 20px; + padding: 70px 20px; + margin: 0 auto; + + .container { + max-width: 800px; + } h1 { - font-size: 35px; + font-size: 70px; font-weight: 700; - margin-bottom: 10px; + margin-bottom: 25px; } p { + font-size: 20px; color: #333; - font-weight: 500; - margin-bottom: 35px; + font-weight: 400; + margin-bottom: 0; + line-height: 35px; } - .register-form { - display: flex; - align-items: center; - justify-content: center; - height: 42px; - - .email-input { - border: 3px solid #000000; - outline: none; - padding: 5px 13px; - min-width: 320px; - } - - input, .btn { - border-radius: 0; - height: 100%; - } - - .icon-link { - color: #000000; - margin-left: 15px; - } - - .btn { - display: flex; - align-items: center; - margin-left: 15px; - margin-right: 8px; - padding: 5px 15px; - } - - svg { - display: flex; - width: 30px; - height: 30px; - } + a { + font-weight: 700; + color: #000; } } \ No newline at end of file diff --git a/components/swim-lane/index.js b/components/swim-lane/index.js new file mode 100644 index 000000000..7e44eb35b --- /dev/null +++ b/components/swim-lane/index.js @@ -0,0 +1,26 @@ +import './style.scss'; + +const SwimLane = (props) => ( + <> + + +); + +SwimLane.defaultProps = { + className: '', +}; + +export default SwimLane; \ No newline at end of file diff --git a/components/swim-lane/style.scss b/components/swim-lane/style.scss new file mode 100644 index 000000000..2f2d26ff1 --- /dev/null +++ b/components/swim-lane/style.scss @@ -0,0 +1,46 @@ +.lane-head { + color: #000000; + margin-bottom: 12px; + display: block; + font-weight: 600; + font-size: 18px; +} + +.swim-lane { + display: flex; + flex-direction: row; + + .lane-item + .lane-item { + margin-left: 35px; + } + + .lane-item { + border: 1px solid #f7f7f7; + display: block; + margin-bottom: 1px; + text-decoration: none; + color: #000000; + padding: 25px; + border-radius: 10px; + box-shadow: rgba(0, 0, 0, 0.12) 0 5px 10px; + transition: box-shadow 0.2s ease 0s; + + &:hover { + box-shadow: rgba(0, 0, 0, 0.12) 0 30px 60px; + } + + h4 { + font-size: 24px; + line-height: 22px; + font-weight: 700; + margin-bottom: 15px; + } + + p { + font-size: 15px; + line-height: 25px; + color: #999999; + margin-bottom: 0; + } + } +} \ No newline at end of file diff --git a/pages/about/index.js b/pages/about/index.js deleted file mode 100644 index 27e8c7545..000000000 --- a/pages/about/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import Header from '../../components/header/index'; - -export default function About() { - return ( -
-
-

This is the about page

-
- ); -} \ No newline at end of file diff --git a/pages/global.scss b/pages/global.scss index 637877d53..e69de29bb 100644 --- a/pages/global.scss +++ b/pages/global.scss @@ -1,8 +0,0 @@ -body { - border-top: 5px solid #000000; - color: #000; -} - -.container { - max-width: 1000px; -} \ No newline at end of file diff --git a/pages/home/index.js b/pages/home/index.js index 88175286d..4995ef04e 100644 --- a/pages/home/index.js +++ b/pages/home/index.js @@ -1,10 +1,17 @@ import Header from '../../components/header/index'; +import SwimLane from '../../components/swim-lane'; +import './style.scss'; import HeroSection from '../../components/hero-section'; export const Home = (props) => ( -
+
+
+
+ +
+
); diff --git a/pages/home/style.scss b/pages/home/style.scss new file mode 100644 index 000000000..ea7a81c86 --- /dev/null +++ b/pages/home/style.scss @@ -0,0 +1,3 @@ +.swim-lanes { + margin-top: 25px; +} \ No newline at end of file diff --git a/static/brand.png b/static/brand.png new file mode 100755 index 0000000000000000000000000000000000000000..e1791bae412e150192d491670ccf8eabd37c13f8 GIT binary patch literal 14708 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 literal 0 HcmV?d00001 diff --git a/static/stars.webp b/static/stars.webp new file mode 100644 index 0000000000000000000000000000000000000000..4b1a2596a1a6e011ed3a9ca8027862c9f208abca GIT binary patch literal 8266 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