├── .gitignore
├── README.md
├── package.json
├── public
├── favicon.ico
├── images
│ ├── card-bg.svg
│ ├── down-icon.svg
│ ├── feed-icon.svg
│ ├── google.svg
│ ├── home-logo.svg
│ ├── item-icon.svg
│ ├── linkedin.png
│ ├── login-hero.svg
│ ├── login-logo.svg
│ ├── nav-home.svg
│ ├── nav-jobs.svg
│ ├── nav-messaging.svg
│ ├── nav-network.svg
│ ├── nav-notifications.svg
│ ├── nav-work.svg
│ ├── photo.svg
│ ├── plus-icon.svg
│ ├── right-icon.svg
│ ├── search-icon.svg
│ ├── user.svg
│ └── widget-icon.svg
├── index.html
├── logo192.png
├── logo512.png
├── manifest.json
└── robots.txt
├── src
├── App.css
├── App.js
├── components
│ ├── Header.js
│ ├── Home.js
│ ├── Leftside.js
│ ├── Login.js
│ ├── Main.js
│ └── Rightside.js
├── index.css
└── index.js
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # # Disney Plus Clone Readme
2 |
3 | ## LIVE DEMO
4 |
5 | ## Description
6 | This is the ReactJS LinkedIn Clone, the perfect project to put on your portfolio by Clever Programmer.
7 |
8 | ## Build it today!
9 |
10 | #### PREREQUISITES:
11 | - Sign up for a Firebase account HERE
12 | - Install Node JS in your computer HERE (Select the LTS option)
13 | - Download all the images and videos HERE
14 | - Watch full tutorial HERE
15 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "linkedin-clone",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@testing-library/jest-dom": "^5.11.4",
7 | "@testing-library/react": "^11.1.0",
8 | "@testing-library/user-event": "^12.1.10",
9 | "react": "^17.0.2",
10 | "react-dom": "^17.0.2",
11 | "react-router-dom": "^5.2.0",
12 | "react-scripts": "4.0.3",
13 | "styled-components": "^5.2.3",
14 | "web-vitals": "^1.0.1"
15 | },
16 | "scripts": {
17 | "start": "react-scripts start",
18 | "build": "react-scripts build",
19 | "test": "react-scripts test",
20 | "eject": "react-scripts eject"
21 | },
22 | "eslintConfig": {
23 | "extends": [
24 | "react-app",
25 | "react-app/jest"
26 | ]
27 | },
28 | "browserslist": {
29 | "production": [
30 | ">0.2%",
31 | "not dead",
32 | "not op_mini all"
33 | ],
34 | "development": [
35 | "last 1 chrome version",
36 | "last 1 firefox version",
37 | "last 1 safari version"
38 | ]
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleverProgrammers/cp-linkedin-clone/f014d361d787029f15ea0f0f78c053d8c214f138/public/favicon.ico
--------------------------------------------------------------------------------
/public/images/card-bg.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/public/images/down-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/feed-icon.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/public/images/google.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/home-logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/item-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/linkedin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleverProgrammers/cp-linkedin-clone/f014d361d787029f15ea0f0f78c053d8c214f138/public/images/linkedin.png
--------------------------------------------------------------------------------
/public/images/login-hero.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/login-logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/nav-home.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/nav-jobs.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/nav-messaging.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/nav-network.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/nav-notifications.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/nav-work.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/photo.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/public/images/plus-icon.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/public/images/right-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/search-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/user.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/widget-icon.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
17 |
18 |
27 | React App
28 |
29 |
30 |
31 |
32 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleverProgrammers/cp-linkedin-clone/f014d361d787029f15ea0f0f78c053d8c214f138/public/logo192.png
--------------------------------------------------------------------------------
/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleverProgrammers/cp-linkedin-clone/f014d361d787029f15ea0f0f78c053d8c214f138/public/logo512.png
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/src/App.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleverProgrammers/cp-linkedin-clone/f014d361d787029f15ea0f0f78c053d8c214f138/src/App.css
--------------------------------------------------------------------------------
/src/App.js:
--------------------------------------------------------------------------------
1 | import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
2 | import "./App.css";
3 | import Header from "./components/Header";
4 | import Home from "./components/Home";
5 | import Login from "./components/Login";
6 |
7 | function App() {
8 | return (
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | );
23 | }
24 |
25 | export default App;
26 |
--------------------------------------------------------------------------------
/src/components/Header.js:
--------------------------------------------------------------------------------
1 | import styled from "styled-components";
2 |
3 | const Header = (props) => {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
80 |
81 |
82 | );
83 | };
84 |
85 | const Container = styled.div`
86 | background-color: white;
87 | border-bottom: 1px solid rgba(0, 0, 0, 0.08);
88 | left: 0;
89 | padding: 0 24px;
90 | position: fixed;
91 | top: 0;
92 | width: 100vw;
93 | z-index: 100;
94 | `;
95 |
96 | const Content = styled.div`
97 | display: flex;
98 | align-items: center;
99 | margin: 0 auto;
100 | min-height: 100%;
101 | max-width: 1128px;
102 | `;
103 |
104 | const Logo = styled.span`
105 | margin-right: 8px;
106 | font-size: 0px;
107 | `;
108 |
109 | const Search = styled.div`
110 | opacity: 1;
111 | flex-grow: 1;
112 | position: relative;
113 | & > div {
114 | max-width: 280px;
115 | input {
116 | border: none;
117 | box-shadow: none;
118 | background-color: #eef3f8;
119 | border-radius: 2px;
120 | color: rgba(0, 0, 0, 0.9);
121 | width: 218px;
122 | padding: 0 8px 0 40px;
123 | line-height: 1.75;
124 | font-weight: 400;
125 | font-size: 14px;
126 | height: 34px;
127 | border-color: #dce6f1;
128 | vertical-align: text-top;
129 | }
130 | }
131 | `;
132 |
133 | const SearchIcon = styled.div`
134 | width: 40px;
135 | position: absolute;
136 | z-index: 1;
137 | top: 10px;
138 | left: 2px;
139 | border-radius: 0 2px 2px 0;
140 | margin: 0;
141 | pointer-events: none;
142 | display: flex;
143 | justify-content: center;
144 | align-items: center;
145 | `;
146 |
147 | const Nav = styled.nav`
148 | margin-left: auto;
149 | display: block;
150 | @media (max-width: 768px) {
151 | position: fixed;
152 | left: 0;
153 | bottom: 0;
154 | background: white;
155 | width: 100%;
156 | }
157 | `;
158 |
159 | const NavListWrap = styled.ul`
160 | display: flex;
161 | flex-wrap: nowrap;
162 | list-style-type: none;
163 |
164 | .active {
165 | span:after {
166 | content: "";
167 | transform: scaleX(1);
168 | border-bottom: 2px solid var(--white, #fff);
169 | bottom: 0;
170 | left: 0;
171 | position: absolute;
172 | transition: transform 0.2s ease-in-out;
173 | width: 100%;
174 | border-color: rgba(0, 0, 0, 0.9);
175 | }
176 | }
177 | `;
178 |
179 | const NavList = styled.li`
180 | display: flex;
181 | align-items: center;
182 | a {
183 | align-items: center;
184 | background: transparent;
185 | display: flex;
186 | flex-direction: column;
187 | font-size: 12px;
188 | font-weight: 400;
189 | justify-content: center;
190 | line-height: 1.5;
191 | min-height: 52px;
192 | min-width: 80px;
193 | position: relative;
194 | text-decoration: none;
195 |
196 | span {
197 | color: rgba(0, 0, 0, 0.6);
198 | display: flex;
199 | align-items: center;
200 | }
201 |
202 | @media (max-width: 768px) {
203 | min-width: 70px;
204 | }
205 | }
206 |
207 | &:hover,
208 | &:active {
209 | a {
210 | span {
211 | color: rgba(0, 0, 0, 0.9);
212 | }
213 | }
214 | }
215 | `;
216 |
217 | const SignOut = styled.div`
218 | position: absolute;
219 | top: 45px;
220 | background: white;
221 | border-radius: 0 0 5px 5px;
222 | width: 100px;
223 | height: 40px;
224 | font-size: 16px;
225 | transition-duration: 167ms;
226 | text-align: center;
227 | display: none;
228 | `;
229 |
230 | const User = styled(NavList)`
231 | a > svg {
232 | width: 24px;
233 | border-radius: 50%;
234 | }
235 |
236 | a > img {
237 | width: 24px;
238 | height: 24px;
239 | border-radius: 50%;
240 | }
241 |
242 | span {
243 | display: flex;
244 | align-items: center;
245 | }
246 |
247 | &:hover {
248 | ${SignOut} {
249 | align-items: center;
250 | display: flex;
251 | justify-content: center;
252 | }
253 | }
254 | `;
255 |
256 | const Work = styled(User)`
257 | border-left: 1px solid rgba(0, 0, 0, 0.08);
258 | `;
259 |
260 | export default Header;
261 |
--------------------------------------------------------------------------------
/src/components/Home.js:
--------------------------------------------------------------------------------
1 | import styled from "styled-components";
2 | import Leftside from "./Leftside";
3 | import Main from "./Main";
4 | import Rightside from "./Rightside";
5 |
6 | const Home = (props) => {
7 | return (
8 |
9 |
10 |
13 |
14 | Find talented pros in record time with Upwork and keep business
15 | moving.
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | );
25 | };
26 |
27 | const Container = styled.div`
28 | padding-top: 52px;
29 | max-width: 100%;
30 | `;
31 |
32 | const Content = styled.div`
33 | max-width: 1128px;
34 | margin-left: auto;
35 | margin-right: auto;
36 | `;
37 |
38 | const Section = styled.section`
39 | min-height: 50px;
40 | padding: 16px 0;
41 | box-sizing: content-box;
42 | text-align: center;
43 | text-decoration: underline;
44 | display: flex;
45 | justify-content: center;
46 | h5 {
47 | color: #0a66c2;
48 | font-size: 14px;
49 | a {
50 | font-weight: 700;
51 | }
52 | }
53 |
54 | p {
55 | font-size: 14px;
56 | color: #434649;
57 | font-weight: 600;
58 | }
59 |
60 | @media (max-width: 768px) {
61 | flex-direction: column;
62 | padding: 0 5px;
63 | }
64 | `;
65 |
66 | const Layout = styled.div`
67 | display: grid;
68 | grid-template-areas: "leftside main rightside";
69 | grid-template-columns: minmax(0, 5fr) minmax(0, 12fr) minmax(300px, 7fr);
70 | column-gap: 25px;
71 | row-gap: 25px;
72 | /* grid-template-row: auto; */
73 | margin: 25px 0;
74 | @media (max-width: 768px) {
75 | display: flex;
76 | flex-direction: column;
77 | padding: 0 5px;
78 | }
79 | `;
80 |
81 | export default Home;
82 |
--------------------------------------------------------------------------------
/src/components/Leftside.js:
--------------------------------------------------------------------------------
1 | import styled from "styled-components";
2 |
3 | const Leftside = (props) => {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 |
11 | Welcome, there!
12 |
13 |
14 | Add a photo
15 |
16 |
17 |
18 |
19 |
20 | Connections
21 | Grow your network
22 |
23 |
24 |
25 |
26 | -
27 |
28 |
29 | My Items
30 |
31 |
32 |
33 |
34 |
35 |
36 | Groups
37 |
38 |
39 |
40 | Events
41 |
42 |
43 |
44 |
45 | Follow Hashtags
46 |
47 |
48 | Discover more
49 |
50 |
51 |
52 | );
53 | };
54 |
55 | const Container = styled.div`
56 | grid-area: leftside;
57 | `;
58 |
59 | const ArtCard = styled.div`
60 | text-align: center;
61 | overflow: hidden;
62 | margin-bottom: 8px;
63 | background-color: #fff;
64 | border-radius: 5px;
65 | transition: box-shadow 83ms;
66 | position: relative;
67 | border: none;
68 | box-shadow: 0 0 0 1px rgb(0 0 0 / 15%), 0 0 0 rgb(0 0 0 / 20%);
69 | `;
70 |
71 | const UserInfo = styled.div`
72 | border-bottom: 1px solid rgba(0, 0, 0, 0.15);
73 | padding: 12px 12px 16px;
74 | word-wrap: break-word;
75 | word-break: break-word;
76 | `;
77 |
78 | const CardBackground = styled.div`
79 | background: url("/images/card-bg.svg");
80 | background-position: center;
81 | background-size: 462px;
82 | height: 54px;
83 | margin: -12px -12px 0;
84 | `;
85 |
86 | const Photo = styled.div`
87 | box-shadow: none;
88 | background-image: url("/images/photo.svg");
89 | width: 72px;
90 | height: 72px;
91 | box-sizing: border-box;
92 | background-clip: content-box;
93 | background-color: white;
94 | background-position: center;
95 | background-size: 60%;
96 | background-repeat: no-repeat;
97 | border: 2px solid white;
98 | margin: -38px auto 12px;
99 | border-radius: 50%;
100 | `;
101 |
102 | const Link = styled.div`
103 | font-size: 16px;
104 | line-height: 1.5;
105 | color: rgba(0, 0, 0, 0.9);
106 | font-weight: 600;
107 | `;
108 |
109 | const AddPhotoText = styled.div`
110 | color: #0a66c2;
111 | margin-top: 4px;
112 | font-size: 12px;
113 | line-height: 1.33;
114 | font-weight: 400;
115 | `;
116 |
117 | const Widget = styled.div`
118 | border-bottom: 1px solid rgba(0, 0, 0, 0.15);
119 | padding-top: 12px;
120 | padding-bottom: 12px;
121 |
122 | & > a {
123 | text-decoration: none;
124 | display: flex;
125 | justify-content: space-between;
126 | align-items: center;
127 | padding: 4px 12px;
128 |
129 | &:hover {
130 | background-color: rgba(0, 0, 0, 0.08);
131 | }
132 |
133 | div {
134 | display: flex;
135 | flex-direction: column;
136 | text-align: left;
137 | span {
138 | font-size: 12px;
139 | line-height: 1.333;
140 | &:first-child {
141 | color: rgba(0, 0, 0, 0.6);
142 | }
143 | &:nth-child(2) {
144 | color: rgba(0, 0, 0, 1);
145 | }
146 | }
147 | }
148 | }
149 |
150 | svg {
151 | color: rgba(0, 0, 0, 1);
152 | }
153 | `;
154 |
155 | const Item = styled.a`
156 | border-color: rgba(0, 0, 0, 0.8);
157 | text-align: left;
158 | padding: 12px;
159 | font-size: 12px;
160 | display: block;
161 | span {
162 | display: flex;
163 | align-items: center;
164 | color: rgba(0, 0, 0, 1);
165 | svg {
166 | color: rgba(0, 0, 0, 0.6);
167 | }
168 | }
169 |
170 | &:hover {
171 | background-color: rgba(0, 0, 0, 0.08);
172 | }
173 | `;
174 |
175 | const CommunityCard = styled(ArtCard)`
176 | padding: 8px 0 0;
177 | text-align: left;
178 | display: flex;
179 | flex-direction: column;
180 | a {
181 | color: black;
182 | padding: 4px 12px 4px 12px;
183 | font-size: 12px;
184 |
185 | &:hover {
186 | color: #0a66c2;
187 | }
188 |
189 | span {
190 | display: flex;
191 | align-items: center;
192 | justify-content: space-between;
193 | }
194 |
195 | &:last-child {
196 | color: rgba(0, 0, 0, 0.6);
197 | text-decoration: none;
198 |
199 | border-top: 1px solid #d6cec2;
200 | padding: 12px;
201 | &:hover {
202 | background-color: rgba(0, 0, 0, 0.08);
203 | }
204 | }
205 | }
206 | `;
207 |
208 | export default Leftside;
209 |
--------------------------------------------------------------------------------
/src/components/Login.js:
--------------------------------------------------------------------------------
1 | import styled from "styled-components";
2 |
3 | const Login = (props) => {
4 | return (
5 |
6 |
15 |
16 |
17 | Welcome to your professional community
18 |
19 |
20 |
26 |
27 |
28 | );
29 | };
30 |
31 | const Container = styled.div`
32 | padding: 0px;
33 | `;
34 |
35 | const Nav = styled.nav`
36 | max-width: 1128px;
37 | margin: auto;
38 | padding: 12px 0 16px;
39 | display: flex;
40 | align-items: center;
41 | position: relative;
42 | justify-content: space-between;
43 | flex-wrap: nowrap;
44 |
45 | & > a {
46 | width: 135px;
47 | height: 34px;
48 | @media (max-width: 768px) {
49 | padding: 0 5px;
50 | }
51 | }
52 | `;
53 |
54 | const Join = styled.a`
55 | font-size: 16px;
56 | padding: 10px 12px;
57 | text-decoration: none;
58 | border-radius: 4px;
59 | color: rgba(0, 0, 0, 0.6);
60 | margin-right: 12px;
61 | &:hover {
62 | background-color: rgba(0, 0, 0, 0.08);
63 | color: rgba(0, 0, 0, 0.9);
64 | text-decoration: none;
65 | }
66 | `;
67 |
68 | const SignIn = styled.a`
69 | box-shadow: inset 0 0 0 1px #0a66c2;
70 | color: #0a66c2;
71 | border-radius: 24px;
72 | transition-duration: 167ms;
73 | font-size: 16px;
74 | font-weight: 600;
75 | line-height: 40px;
76 | padding: 10px 24px;
77 | text-align: center;
78 | background-color: rgba(0, 0, 0, 0);
79 | &:hover {
80 | background-color: rgba(112, 181, 249, 0.15);
81 | color: #0a66c2;
82 | text-decoration: none;
83 | }
84 | `;
85 |
86 | const Section = styled.section`
87 | display: flex;
88 | align-content: start;
89 | min-height: 700px;
90 | padding-bottom: 138px;
91 | padding-top: 40px;
92 | padding: 60px 0;
93 | position: relative;
94 | flex-wrap: wrap;
95 | width: 100%;
96 | max-width: 1128px;
97 | align-items: center;
98 | margin: auto;
99 |
100 | @media (max-width: 768px) {
101 | margin: auto;
102 | min-height: 0px;
103 | }
104 | `;
105 |
106 | const Hero = styled.div`
107 | width: 100%;
108 | h1 {
109 | padding-bottom: 0;
110 | width: 55%;
111 | font-size: 56px;
112 | color: #2977c9;
113 | font-weight: 200;
114 | line-height: 70px;
115 | @media (max-width: 768px) {
116 | text-align: center;
117 | font-size: 20px;
118 | width: 100%;
119 | line-height: 2;
120 | }
121 | }
122 |
123 | img {
124 | /* z-index: -1; */
125 | width: 700px;
126 | height: 670px;
127 | position: absolute;
128 | bottom: -2px;
129 | right: -150px;
130 | @media (max-width: 768px) {
131 | top: 230px;
132 | width: initial;
133 | position: initial;
134 | height: initial;
135 | }
136 | }
137 | `;
138 |
139 | const Form = styled.div`
140 | margin-top: 100px;
141 | width: 408px;
142 | @media (max-width: 768px) {
143 | margin-top: 20px;
144 | }
145 | `;
146 |
147 | const Google = styled.button`
148 | display: flex;
149 | justify-content: center;
150 | background-color: #fff;
151 | align-items: center;
152 | height: 56px;
153 | width: 100%;
154 | border-radius: 28px;
155 | box-shadow: inset 0 0 0 1px rgb(0 0 0 / 60%),
156 | inset 0 0 0 2px rgb(0 0 0 / 0%) inset 0 0 0 1px rgb(0 0 0 / 0);
157 |
158 | vertical-align: middle;
159 | z-index: 0;
160 | transition-duration: 167ms;
161 | font-size: 20px;
162 | color: rgba(0, 0, 0, 0.6);
163 | &:hover {
164 | background-color: rgba(207, 207, 207, 0.25);
165 | color: rgba(0, 0, 0, 0.75);
166 | }
167 | `;
168 |
169 | export default Login;
170 |
--------------------------------------------------------------------------------
/src/components/Main.js:
--------------------------------------------------------------------------------
1 | import styled from "styled-components";
2 |
3 | const Main = (props) => {
4 | return Main;
5 | };
6 |
7 | const Container = styled.div`
8 | grid-area: main;
9 | `;
10 |
11 | export default Main;
12 |
--------------------------------------------------------------------------------
/src/components/Rightside.js:
--------------------------------------------------------------------------------
1 | import styled from "styled-components";
2 |
3 | const Rightside = (props) => {
4 | return (
5 |
6 |
7 |
8 | Add to your feed
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | #Linkedin
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | #Video
28 |
29 |
30 |
31 |
32 |
33 |
34 | View all recommendations
35 |
36 |
37 |
38 |
39 |
43 |
44 |
45 | );
46 | };
47 |
48 | const Container = styled.div`
49 | grid-area: rightside;
50 | `;
51 |
52 | const FollowCard = styled.div`
53 | text-align: center;
54 | overflow: hidden;
55 | margin-bottom: 8px;
56 | background-color: #fff;
57 | border-radius: 5px;
58 | position: relative;
59 | border: none;
60 | box-shadow: 0 0 0 1px rgb(0 0 0 / 15%), 0 0 0 rgb(0 0 0 / 20%);
61 | padding: 12px;
62 | `;
63 |
64 | const Title = styled.div`
65 | display: inline-flex;
66 | align-items: center;
67 | justify-content: space-between;
68 | font-size: 16px;
69 | width: 100%;
70 | color: rgba(0, 0, 0, 0.6);
71 | `;
72 |
73 | const FeedList = styled.ul`
74 | margin-top: 16px;
75 | li {
76 | display: flex;
77 | align-items: center;
78 | margin: 12px 0;
79 | position: relative;
80 | font-size: 14px;
81 | & > div {
82 | display: flex;
83 | flex-direction: column;
84 | }
85 |
86 | button {
87 | background-color: transparent;
88 | color: rgba(0, 0, 0, 0.6);
89 | box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.6);
90 | padding: 16px;
91 | align-items: center;
92 | border-radius: 15px;
93 | box-sizing: border-box;
94 | font-weight: 600;
95 | display: inline-flex;
96 | justify-content: center;
97 | max-height: 32px;
98 | max-width: 480px;
99 | text-align: center;
100 | outline: none;
101 | }
102 | }
103 | `;
104 |
105 | const Avatar = styled.div`
106 | background-image: url("https://static-exp1.licdn.com/sc/h/1b4vl1r54ijmrmcyxzoidwmxs");
107 | background-size: contain;
108 | background-position: center;
109 | background-repeat: no-repeat;
110 | width: 48px;
111 | height: 48px;
112 | margin-right: 8px;
113 | `;
114 |
115 | const Recommendation = styled.a`
116 | color: #0a66c2;
117 | display: flex;
118 | align-items: center;
119 | font-size: 14px;
120 | `;
121 |
122 | const BannerCard = styled(FollowCard)`
123 | img {
124 | width: 100%;
125 | height: 100%;
126 | }
127 | `;
128 |
129 | export default Rightside;
130 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | overflow-y: scroll;
3 | overflow-x: hidden;
4 | }
5 |
6 | :root,
7 | body,
8 | html {
9 | background-color: #f5f5f5;
10 | box-sizing: border-box;
11 | }
12 |
13 | div,
14 | h1,
15 | h2,
16 | h3,
17 | h4,
18 | h5,
19 | h6,
20 | header,
21 | html,
22 | i,
23 | img,
24 | label,
25 | li,
26 | nav,
27 | p,
28 | small,
29 | span,
30 | ul {
31 | margin: 0;
32 | padding: 0;
33 | border: 0;
34 | outline: none;
35 | font-size: 100%;
36 | vertical-align: baseline;
37 | background: transparent;
38 | }
39 |
40 | body {
41 | font-family: Arial, sans-serif;
42 | }
43 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom";
3 | import "./index.css";
4 | import App from "./App";
5 |
6 | ReactDOM.render(
7 |
8 |
9 | ,
10 | document.getElementById("root")
11 | );
12 |
13 | // If you want to start measuring performance in your app, pass a function
14 | // to log results (for example: reportWebVitals(console.log))
15 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
16 |
--------------------------------------------------------------------------------