diff --git a/public/images/Checker.png b/public/images/Checker.png
new file mode 100644
index 00000000..63aa6a4d
Binary files /dev/null and b/public/images/Checker.png differ
diff --git a/public/images/logo.svg b/public/images/logo.svg
new file mode 100644
index 00000000..b36a5c9c
--- /dev/null
+++ b/public/images/logo.svg
@@ -0,0 +1,10 @@
+
+
diff --git a/src/features/App/index.tsx b/src/features/App/index.tsx
index f9857eb4..153f5549 100644
--- a/src/features/App/index.tsx
+++ b/src/features/App/index.tsx
@@ -1,9 +1,12 @@
import React from 'react'
import { Theme } from 'features/Theme'
+import { Login } from 'features/Login'
+import { GlobalStyles } from 'features/GlobalStyles'
export const App = () => (
- Instat TV
+
+
)
diff --git a/src/features/Background/index.tsx b/src/features/Background/index.tsx
new file mode 100644
index 00000000..39eb4f85
--- /dev/null
+++ b/src/features/Background/index.tsx
@@ -0,0 +1,15 @@
+import React, { ReactNode } from 'react'
+
+import { GradientBackground, ImageBackground } from './styled'
+
+type TBackground = {
+ children: ReactNode,
+}
+
+export const Background = ({ children }: TBackground) => (
+
+
+ {children}
+
+
+)
diff --git a/src/features/Background/styled.tsx b/src/features/Background/styled.tsx
new file mode 100644
index 00000000..45fd69af
--- /dev/null
+++ b/src/features/Background/styled.tsx
@@ -0,0 +1,25 @@
+import styled from 'styled-components/macro'
+
+const Container = styled.div`
+ width: 100vw;
+ height: 100vh;
+`
+
+export const ImageBackground = styled(Container)`
+ background-image: url(/images/Checker.png);
+ background-size: 12px;
+`
+
+export const GradientBackground = styled(Container)`
+ position: relative;
+ display: flex;
+ justify-content: center;
+ background: ${({ theme: { colors } }) => colors.background};
+`
+
+export const CenterBlock = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin-top: 140px;
+`
diff --git a/src/features/Login/index.tsx b/src/features/Login/index.tsx
index 741eb3d8..4ba48171 100644
--- a/src/features/Login/index.tsx
+++ b/src/features/Login/index.tsx
@@ -1,7 +1,51 @@
import React from 'react'
+import { Background } from 'features/Background'
+import { Logo } from 'features/Logo'
+import {
+ Input,
+ ButtonSolid,
+ ButtonOutline,
+} from 'features/Common'
+
+import {
+ BlockTitle,
+ CenterBlock,
+ ButtonsBlock,
+ Form,
+} from './styled'
+
+const labelWidth = 60
+
export const Login = () => (
-
- Login page
-
+
+
+
+
+
+
)
diff --git a/src/features/Login/styled.tsx b/src/features/Login/styled.tsx
new file mode 100644
index 00000000..b7f9bffb
--- /dev/null
+++ b/src/features/Login/styled.tsx
@@ -0,0 +1,37 @@
+import styled from 'styled-components/macro'
+
+export const CenterBlock = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin-top: 140px;
+`
+
+export const Form = styled.form`
+ width: 544px;
+ margin-top: 80px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+`
+
+export const BlockTitle = styled.span`
+ display: block;
+ font-style: normal;
+ font-weight: bold;
+ font-size: 36px;
+ line-height: 24px;
+ color: ${({ theme: { colors } }) => colors.text};
+ margin-bottom: 20px;
+ transition: color 0.3s ease-in-out;
+`
+
+export const ButtonsBlock = styled.div`
+ display: flex;
+ flex-direction: column;
+ margin-top: 60px;
+
+ & > * {
+ margin-bottom: 40px;
+ }
+`
diff --git a/src/features/Logo/index.tsx b/src/features/Logo/index.tsx
new file mode 100644
index 00000000..95d16556
--- /dev/null
+++ b/src/features/Logo/index.tsx
@@ -0,0 +1,15 @@
+import styled from 'styled-components/macro'
+
+type TLogo = {
+ height?: number,
+ width?: number,
+}
+
+export const Logo = styled.div`
+ display: block;
+ width: ${({ width = 174 }) => width}px;
+ height: ${({ height = 40 }) => height}px;
+ background-size: contain;
+ background-repeat: no-repeat;
+ background-image: url(/images/logo.svg);
+`