diff --git a/components/head/index.js b/components/head/index.js
new file mode 100644
index 000000000..b49f7f7bc
--- /dev/null
+++ b/components/head/index.js
@@ -0,0 +1,17 @@
+import NextHead from 'next/head';
+
+const defaultDescription = 'Roadmaps, articles and resources for modern developers';
+const defaultOgUrl = 'https://roadmap.sh';
+
+const Head = (props) => (
+
+
+ { props.title || '' }
+
+
+
+
+
+);
+
+export default Head;
\ No newline at end of file
diff --git a/components/header/index.js b/components/header/index.js
index ea47a8af9..9f1bca7bd 100644
--- a/components/header/index.js
+++ b/components/header/index.js
@@ -1,14 +1,19 @@
-import Link from 'next/link';
+import './style.scss';
const Header = () => (
-
-
-
Home
-
- |
-
-
About Page
-
+
);
diff --git a/components/header/style.scss b/components/header/style.scss
new file mode 100644
index 000000000..79e7172b9
--- /dev/null
+++ b/components/header/style.scss
@@ -0,0 +1,32 @@
+.page-header {
+ padding-top: 25px;
+ font-size: 18px;
+
+ .brand a {
+ background: #101010;
+ color: white;
+ padding: 5px 10px;
+ text-decoration: none;
+ border-radius: 2px;
+ }
+
+ .nav-links {
+ a {
+ padding: 0 10px;
+ text-decoration: none;
+ font-size: 16px;
+ color: #101010;
+ }
+
+ .signup {
+ background: #101010;
+ color: #ffffff;
+ padding: 7px 10px;
+ margin-left: 15px;
+
+ &:hover {
+ background: #2d2d2d;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/hero-section/index.js b/components/hero-section/index.js
new file mode 100644
index 000000000..6a8fad169
--- /dev/null
+++ b/components/hero-section/index.js
@@ -0,0 +1,16 @@
+import './style.scss';
+
+const HeroSection = () => (
+
+
Roadmaps for Developers
+
Community driven, roadmaps, articles and resources for developers
+
+
+
+);
+
+export default HeroSection;
\ No newline at end of file
diff --git a/components/hero-section/style.scss b/components/hero-section/style.scss
new file mode 100644
index 000000000..56ca6c3d9
--- /dev/null
+++ b/components/hero-section/style.scss
@@ -0,0 +1,14 @@
+.hero-section {
+ text-align: center;
+ padding: 70px 20px;
+
+ h1 {
+ font-size: 35px;
+ font-weight: 700;
+ margin-bottom: 8px;
+ }
+
+ p {
+ color: #333;
+ }
+}
\ No newline at end of file
diff --git a/next.config.js b/next.config.js
index b0d521da1..1048792a0 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,3 +1,4 @@
const withSass = require('@zeit/next-sass');
+const withCSS = require('@zeit/next-css');
-module.exports = withSass({});
\ No newline at end of file
+module.exports = withCSS(withSass());
\ No newline at end of file
diff --git a/package.json b/package.json
index 06a590ba1..77b7faafe 100644
--- a/package.json
+++ b/package.json
@@ -9,9 +9,13 @@
"start": "next start"
},
"dependencies": {
+ "@zeit/next-css": "latest",
"@zeit/next-sass": "^1.0.1",
+ "autoprefixer": "^9.6.1",
+ "bootstrap": "^4.3.1",
"next": "^9.0.4",
"node-sass": "^4.12.0",
+ "postcss-css-variables": "^0.13.0",
"react": "^16.9.0",
"react-dom": "^16.9.0"
}
diff --git a/pages/about.js b/pages/about/index.js
similarity index 74%
rename from pages/about.js
rename to pages/about/index.js
index 33eb5033e..27e8c7545 100644
--- a/pages/about.js
+++ b/pages/about/index.js
@@ -1,5 +1,5 @@
import React from 'react';
-import Header from '../components/header';
+import Header from '../../components/header/index';
export default function About() {
return (
diff --git a/pages/global.scss b/pages/global.scss
new file mode 100644
index 000000000..ca9dc9498
--- /dev/null
+++ b/pages/global.scss
@@ -0,0 +1,7 @@
+body {
+ color: #000;
+}
+
+.container {
+ max-width: 1000px;
+}
\ No newline at end of file
diff --git a/pages/home.js b/pages/home.js
deleted file mode 100644
index aaaaf8bd8..000000000
--- a/pages/home.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import Header from '../components/header';
-
-export const Home = (props) => (
-
-);
-
-export default Home;
\ No newline at end of file
diff --git a/pages/home/index.js b/pages/home/index.js
new file mode 100644
index 000000000..88175286d
--- /dev/null
+++ b/pages/home/index.js
@@ -0,0 +1,11 @@
+import Header from '../../components/header/index';
+import HeroSection from '../../components/hero-section';
+
+export const Home = (props) => (
+
+
+
+
+);
+
+export default Home;
\ No newline at end of file
diff --git a/pages/index.js b/pages/index.js
index 04f76537f..1bd54ee3a 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -1,5 +1,8 @@
-import React from 'react';
-import Home from './home';
+import 'bootstrap/dist/css/bootstrap.min.css';
+
+import './global.scss';
+
+import Home from './home/index';
const Index = () => (
diff --git a/postcss.config.js b/postcss.config.js
index 96da9d063..c853e4940 100644
--- a/postcss.config.js
+++ b/postcss.config.js
@@ -1,5 +1,6 @@
module.exports = {
plugins: {
'postcss-css-variables': {},
+ 'autoprefixer': {},
},
};
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index bfd5bba25..f67518605 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -953,7 +953,7 @@
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
-"@zeit/next-css@1.0.1":
+"@zeit/next-css@1.0.1", "@zeit/next-css@latest":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@zeit/next-css/-/next-css-1.0.1.tgz#4f784e841e7ca1b21b3468a902e2c1fa95a3e75c"
integrity sha512-yfHPRy/ne/5SddVClsoy+fpU7e0Cs1gkWA67/wm2uIu+9rznF45yQLxHEt5dPGF3h6IiIh7ZtIgA8VV8YKq87A==
@@ -1214,6 +1214,19 @@ autodll-webpack-plugin@0.4.2:
webpack-merge "^4.1.0"
webpack-sources "^1.0.1"
+autoprefixer@^9.6.1:
+ version "9.6.1"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz#51967a02d2d2300bb01866c1611ec8348d355a47"
+ integrity sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==
+ dependencies:
+ browserslist "^4.6.3"
+ caniuse-lite "^1.0.30000980"
+ chalk "^2.4.2"
+ normalize-range "^0.1.2"
+ num2fraction "^1.2.2"
+ postcss "^7.0.17"
+ postcss-value-parser "^4.0.0"
+
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -1348,6 +1361,11 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
+bootstrap@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.3.1.tgz#280ca8f610504d99d7b6b4bfc4b68cec601704ac"
+ integrity sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag==
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -1436,7 +1454,7 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.6.0, browserslist@^4.6.6:
+browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.6:
version "4.6.6"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453"
integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==
@@ -1552,7 +1570,7 @@ camelcase@^3.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo=
-caniuse-lite@^1.0.30000984:
+caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000984:
version "1.0.30000989"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9"
integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==
@@ -2155,7 +2173,7 @@ escape-html@~1.0.3:
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
@@ -2236,7 +2254,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
-extend@~3.0.2:
+extend@^3.0.1, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
@@ -3764,6 +3782,11 @@ normalize-path@^3.0.0:
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+normalize-range@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
+
npm-bundled@^1.0.1:
version "1.0.6"
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
@@ -3787,6 +3810,11 @@ npm-packlist@^1.1.6:
gauge "~2.7.3"
set-blocking "~2.0.0"
+num2fraction@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
+ integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
+
number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
@@ -4117,6 +4145,15 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+postcss-css-variables@^0.13.0:
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/postcss-css-variables/-/postcss-css-variables-0.13.0.tgz#42adcec7e963020801b106b6452d6a3e9c24bc87"
+ integrity sha512-gji53rkQx8UcNHpAPgn+kdRs3ZQuPk2Ebo+HDVMIaU4lo9xt7i46X7rvGJDSwR259V1RlPc6vMQdybgsgKtqKA==
+ dependencies:
+ escape-string-regexp "^1.0.3"
+ extend "^3.0.1"
+ postcss "^6.0.8"
+
postcss-load-config@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003"
@@ -4171,7 +4208,12 @@ postcss-value-parser@^3.3.0:
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-postcss@^6.0.1, postcss@^6.0.23:
+postcss-value-parser@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9"
+ integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==
+
+postcss@^6.0.1, postcss@^6.0.23, postcss@^6.0.8:
version "6.0.23"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
@@ -4180,7 +4222,7 @@ postcss@^6.0.1, postcss@^6.0.23:
source-map "^0.6.1"
supports-color "^5.4.0"
-postcss@^7.0.0:
+postcss@^7.0.0, postcss@^7.0.17:
version "7.0.17"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f"
integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==