Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
landingPage-Nexpie
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
atichat
landingPage-Nexpie
Commits
01b0eae6
Commit
01b0eae6
authored
Aug 08, 2019
by
Tonk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add packages section
parent
92b41acc
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
263 additions
and
29 deletions
+263
-29
src/components/Home/Banner.js
+6
-19
src/components/Home/Features.js
+1
-1
src/components/Home/Packages.js
+101
-0
src/pages/Homepage.js
+8
-0
src/scss/style.scss
+143
-7
src/translations/en.json
+2
-1
src/translations/th.json
+2
-1
No files found.
src/components/Home/Banner.js
View file @
01b0eae6
...
@@ -11,25 +11,12 @@ export default class Banner extends React.Component {
...
@@ -11,25 +11,12 @@ export default class Banner extends React.Component {
}}
}}
>
>
<
div
className
=
"content-width"
>
<
div
className
=
"content-width"
>
<
h1
<
div
className
=
"banner-text-container"
>
style
=
{{
<
h1
className
=
"banner-title"
>
NEXPIE
IOT
Platform
<
/h1
>
fontSize
:
72
,
<
div
className
=
"banner-descrip-wrapper"
>
color
:
"#fff"
,
<
h2
>
CONNECT
<
/h2
>
fontWeight
:
500
<
h2
>
EVERYTHING
!<
/h2
>
}}
<
/div
>
>
NEXPIE
IOT
Platform
<
/h1
>
<
div
style
=
{{
display
:
"flex"
,
flexDirection
:
"row"
,
fontSize
:
60
,
fontWeight
:
"normal"
}}
>
<
h2
style
=
{{
color
:
"#ffcc01"
,
marginRight
:
20
}}
>
CONNECT
<
/h2
>
<
h2
style
=
{{
color
:
"#fff"
}}
>
EVERYTHING
!<
/h2
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
...
...
src/components/Home/Features.js
View file @
01b0eae6
...
@@ -67,7 +67,7 @@ export default class Features extends React.Component {
...
@@ -67,7 +67,7 @@ export default class Features extends React.Component {
description
=
{
item
.
description
}
description
=
{
item
.
description
}
/
>
/
>
))}
))}
{
oddItem
===
1
?
<
div
className
=
"feature-card-
wrapper
"
/>
:
<><
/>
}
{
oddItem
===
1
?
<
div
className
=
"feature-card-
hidden
"
/>
:
<><
/>
}
<
/div
>
<
/div
>
<
/div
>
<
/div
>
);
);
...
...
src/components/Home/Packages.js
0 → 100644
View file @
01b0eae6
import
React
from
"react"
;
import
{
FormattedMessage
}
from
"react-intl"
;
const
Card
=
()
=>
{
return
(
<
div
className
=
"package-card"
>
<
div
className
=
"text-wrapper"
>
<
h1
className
=
"plan-title"
>
Standard
Plan
<
/h1
>
<
p
className
=
"plan-descrip"
>
This
is
standard
hositng
plan
<
/p
>
<
/div
>
<
div
className
=
"price-wrapper"
>
<
div
className
=
"price"
>
<
h1
>
$3
<
/h1
>
.
99
<
/div
>
<
p
>
/mo</
p
>
<
/div
>
<
div
className
=
"package-details"
>
<
div
className
=
"package-detail"
>
<
p
>
Space
<
/p
>
<
p
>
30
GB
<
/p
>
<
/div
>
<
div
className
=
"package-detail"
>
<
p
>
FTP
User
<
/p
>
<
p
>
50
<
/p
>
<
/div
>
<
div
className
=
"package-detail"
>
<
p
>
Databases
<
/p
>
<
p
>
50
<
/p
>
<
/div
>
<
div
className
=
"package-detail"
>
<
p
>
Adons
Domain
<
/p
>
<
p
>
5
<
/p
>
<
/div
>
<
/div
>
<
div
className
=
"btn-wrapper"
>
<
div
>
Choose
plan
<
/div
>
<
/div
>
<
/div
>
);
};
export
default
class
Packages
extends
React
.
Component
{
state
=
{
activeTab
:
"tab1"
};
render
()
{
return
(
<
div
className
=
"section content-width"
style
=
{{
flexDirection
:
"column"
,
alignItems
:
"center"
,
justifyContent
:
"space-evenly"
,
paddingBottom
:
"60px"
}}
>
<
h1
className
=
"title"
>
<
FormattedMessage
id
=
"Packages.Title"
/>
<
/h1
>
<
div
className
=
"tab-container"
>
<
div
onClick
=
{()
=>
{
this
.
setState
({
activeTab
:
"tab1"
});
}}
className
=
{
this
.
state
.
activeTab
===
"tab1"
?
"active tab"
:
"tab"
}
>
Public
Platform
(
sharing
resources
)
<
/div
>
<
div
onClick
=
{()
=>
{
this
.
setState
({
activeTab
:
"tab2"
});
}}
className
=
{
this
.
state
.
activeTab
===
"tab2"
?
"active tab"
:
"tab"
}
>
Private
Platform
(
dedicated
resources
)
<
/div
>
<
/div
>
<
div
>
{
this
.
state
.
activeTab
===
"tab1"
&&
(
<
div
className
=
"row"
>
{[
1
,
2
,
3
].
map
((
item
,
index
)
=>
(
<
Card
/>
))}
<
/div
>
)}
{
this
.
state
.
activeTab
===
"tab2"
&&
(
<
div
className
=
"row"
>
{[
1
,
2
,
3
].
map
((
item
,
index
)
=>
(
<
Card
/>
))}
<
/div
>
)}
<
/div
>
<
/div
>
);
}
}
src/pages/Homepage.js
View file @
01b0eae6
...
@@ -5,6 +5,7 @@ import { Scroller, Section } from "react-fully-scrolled";
...
@@ -5,6 +5,7 @@ import { Scroller, Section } from "react-fully-scrolled";
import
WhyUs
from
"components/Home/WhyUs"
;
import
WhyUs
from
"components/Home/WhyUs"
;
import
Services
from
"components/Home/Services"
;
import
Services
from
"components/Home/Services"
;
import
Features
from
"components/Home/Features"
;
import
Features
from
"components/Home/Features"
;
import
Packages
from
"components/Home/Packages"
;
class
Homepage
extends
Component
{
class
Homepage
extends
Component
{
constructor
(
props
)
{
constructor
(
props
)
{
...
@@ -62,6 +63,13 @@ class Homepage extends Component {
...
@@ -62,6 +63,13 @@ class Homepage extends Component {
>
>
<
Features
/>
<
Features
/>
<
/Section
>
<
/Section
>
<
Section
style
=
{{
...
baseStyle
}}
>
<
Packages
/>
<
/Section
>
<
/Scroller
>
<
/Scroller
>
<
/div
>
<
/div
>
);
);
...
...
src/scss/style.scss
View file @
01b0eae6
...
@@ -41,6 +41,27 @@ body {
...
@@ -41,6 +41,27 @@ body {
font-size
:
35px
;
font-size
:
35px
;
color
:
$primary
;
color
:
$primary
;
}
}
.banner-text-container
{
display
:
flex
;
flex-direction
:
column
;
margin-top
:
50px
;
.banner-title
{
font-size
:
72px
;
color
:
$white
;
}
.banner-descrip-wrapper
{
@extend
.row
;
justify-content
:
start
!
important
;
font-size
:
60px
;
:first-child
{
color
:
#ffcc01
;
margin-right
:
15px
;
}
:nth-child
(
2
)
{
color
:
$white
;
}
}
}
.why-card
{
.why-card
{
max-width
:
300px
;
max-width
:
300px
;
min-width
:
245px
;
min-width
:
245px
;
...
@@ -66,7 +87,7 @@ body {
...
@@ -66,7 +87,7 @@ body {
}
}
.service-card
{
.service-card
{
max-width
:
3
48
px
;
max-width
:
3
00
px
;
min-width
:
265px
;
min-width
:
265px
;
height
:
399px
;
height
:
399px
;
border-radius
:
6px
;
border-radius
:
6px
;
...
@@ -128,13 +149,15 @@ body {
...
@@ -128,13 +149,15 @@ body {
display
:
flex
;
display
:
flex
;
flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
justify-content
:
center
;
justify-content
:
center
;
.feature-card-
wrapper
{
.feature-card-
hidden
{
width
:
40%
;
width
:
40%
;
height
:
130px
;
height
:
130px
;
margin
:
0
35px
20px
35px
;
margin
:
0
35px
20px
35px
;
}
}
.feature-card
{
.feature-card
{
@extend
.feature-card-wrapper
;
width
:
40%
;
height
:
130px
;
margin
:
0
35px
20px
35px
;
border-radius
:
6px
;
border-radius
:
6px
;
border
:
solid
1px
rgba
(
66
,
179
,
229
,
0
.35
);
border
:
solid
1px
rgba
(
66
,
179
,
229
,
0
.35
);
background-color
:
rgba
(
66
,
179
,
229
,
0
.1
);
background-color
:
rgba
(
66
,
179
,
229
,
0
.1
);
...
@@ -168,6 +191,104 @@ body {
...
@@ -168,6 +191,104 @@ body {
}
}
}
}
}
}
.tab-container
{
@extend
.row
;
.tab
{
font-size
:
18px
;
line-height
:
1
.56
;
text-align
:
center
;
color
:
#4a4a4a
;
padding
:
0
0
10px
0
;
margin
:
0
20px
;
cursor
:
pointer
;
}
.active
{
color
:
#05366c
;
border-bottom
:
1px
solid
#05366c
;
}
}
.package-card
{
width
:
300px
;
height
:
450px
;
border-radius
:
6px
;
box-shadow
:
0
52px
85px
0
rgba
(
0
,
0
,
0
,
0
.09
);
border
:
solid
0
.5px
#f0f0f0
;
background-image
:
$white
;
padding
:
35px
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-between
;
margin
:
0
20px
;
.text-wrapper
{
color
:
#757575
;
.plan-title
{
font-size
:
24px
;
font-weight
:
bold
;
text-align
:
center
;
}
.plan-descrip
{
font-size
:
13px
;
text-align
:
center
;
}
}
.price-wrapper
{
width
:
120px
;
height
:
120px
;
background-image
:
linear-gradient
(
306deg
,
#3473bf
,
#0891df
);
border-radius
:
100px
;
@extend
.center
;
flex-direction
:
column
;
color
:
$white
;
align-self
:
center
;
.price
{
@extend
.row
;
font-weight
:
bold
;
font-size
:
20px
;
align-items
:
baseline
;
h1
{
font-size
:
45px
;
}
}
}
.package-details
{
font-size
:
14px
;
color
:
#757575
;
.package-detail
{
display
:
flex
;
justify-content
:
space-between
;
}
}
.btn-wrapper
{
width
:
250px
;
height
:
54px
;
border-radius
:
6px
;
background-image
:
linear-gradient
(
277deg
,
#3473bf
,
#0891df
);
align-self
:
center
;
@extend
.center
;
color
:
$white
;
cursor
:
pointer
;
div
{
font-size
:
18px
;
font-weight
:
bold
;
text-align
:
center
;
}
}
&
:hover
{
background-image
:
linear-gradient
(
317deg
,
#3473bf
,
#0891df
);
.text-wrapper
{
color
:
$white
;
}
.price-wrapper
,
.btn-wrapper
{
color
:
#757575
;
background-image
:
none
;
background-color
:
$white
;
}
.package-details
{
color
:
$white
;
}
}
}
.center
{
.center
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
...
@@ -188,17 +309,32 @@ body {
...
@@ -188,17 +309,32 @@ body {
.descriptionStyle
{
.descriptionStyle
{
font-size
:
18px
;
font-size
:
18px
;
}
}
.feature-container
.feature-card
-wrapper
{
.feature-container
.feature-card
{
width
:
90%
;
width
:
90%
;
&
:first-child
{
margin-top
:
30px
;
}
}
}
.feature-container
.feature-card
.feature-img
{
.feature-container
.feature-card
.feature-img
,
.feature-card-hidden
{
display
:
none
;
display
:
none
;
}
}
.feature-container
.feature-card
{
.feature-container
.feature-card-hidden
{
&
:first-child
{
display
:
none
;
}
.banner-text-container
{
align-items
:
center
;
.banner-title
{
font-size
:
30px
;
}
.banner-descrip-wrapper
{
font-size
:
24px
;
margin-top
:
30px
;
margin-top
:
30px
;
}
}
}
}
.tab-container
.tab
{
font-size
:
12px
;
}
}
}
// .dropdown-item {
// .dropdown-item {
// display: 'flex';
// display: 'flex';
...
...
src/translations/en.json
View file @
01b0eae6
...
@@ -23,5 +23,6 @@
...
@@ -23,5 +23,6 @@
"Hook.Title"
:
"HOOK"
,
"Hook.Title"
:
"HOOK"
,
"Hook.Descrip"
:
"Get automation works according to condition setting of Trigger"
,
"Hook.Descrip"
:
"Get automation works according to condition setting of Trigger"
,
"Storage.Title"
:
"DATA STORAGE"
,
"Storage.Title"
:
"DATA STORAGE"
,
"Storage.Descrip"
:
"Collecting data from your device and sensor to data storage."
"Storage.Descrip"
:
"Collecting data from your device and sensor to data storage."
,
"Packages.Title"
:
"Packages"
}
}
src/translations/th.json
View file @
01b0eae6
...
@@ -23,5 +23,6 @@
...
@@ -23,5 +23,6 @@
"Hook.Title"
:
"HOOK"
,
"Hook.Title"
:
"HOOK"
,
"Hook.Descrip"
:
"ทำงานอัตโนมัติตามการเงื่อนไขของตัวกระตุ้นที่ได้ตั้งค่าไว้"
,
"Hook.Descrip"
:
"ทำงานอัตโนมัติตามการเงื่อนไขของตัวกระตุ้นที่ได้ตั้งค่าไว้"
,
"Storage.Title"
:
"การจัดเก็บข้อมูล"
,
"Storage.Title"
:
"การจัดเก็บข้อมูล"
,
"Storage.Descrip"
:
"รวบรวมข้อมูลจากอุปกรณ์และเซ็นเซอร์ของคุณไปยังที่จัดเก็บข้อมูล"
"Storage.Descrip"
:
"รวบรวมข้อมูลจากอุปกรณ์และเซ็นเซอร์ของคุณไปยังที่จัดเก็บข้อมูล"
,
"Packages.Title"
:
"แพ็คเกจ"
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment