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
36b5e8ab
Commit
36b5e8ab
authored
Aug 08, 2019
by
Tonk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add feature section, update style
parent
58a55251
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
277 additions
and
30 deletions
+277
-30
public/index.html
+6
-0
src/components/Home/Banner.js
+2
-0
src/components/Home/Features.js
+74
-0
src/components/Home/Services.js
+49
-0
src/components/Home/WhyUs.js
+13
-11
src/pages/Homepage.js
+12
-5
src/scss/style.scss
+121
-14
No files found.
public/index.html
View file @
36b5e8ab
...
@@ -7,6 +7,8 @@
...
@@ -7,6 +7,8 @@
href=
"https://fonts.googleapis.com/css?family=Kanit:300,400,500,700&display=swap&subset=thai"
href=
"https://fonts.googleapis.com/css?family=Kanit:300,400,500,700&display=swap&subset=thai"
rel=
"stylesheet"
rel=
"stylesheet"
/>
/>
<link
rel=
"stylesheet"
href=
"owlcarousel/owl.carousel.min.css"
/>
<link
rel=
"stylesheet"
href=
"owlcarousel/owl.theme.default.min.css"
/>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1"
/>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1"
/>
<meta
name=
"theme-color"
content=
"#000000"
/>
<meta
name=
"theme-color"
content=
"#000000"
/>
...
@@ -40,4 +42,8 @@
...
@@ -40,4 +42,8 @@
To create a production bundle, use `npm run build` or `yarn build`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
-->
</body>
</body>
<footer>
<script
src=
"jquery.min.js"
></script>
<script
src=
"owlcarousel/owl.carousel.min.js"
></script>
</footer>
</html>
</html>
src/components/Home/Banner.js
View file @
36b5e8ab
...
@@ -3,6 +3,7 @@ import React from "react";
...
@@ -3,6 +3,7 @@ import React from "react";
export
default
class
Banner
extends
React
.
Component
{
export
default
class
Banner
extends
React
.
Component
{
render
()
{
render
()
{
return
(
return
(
<>
<
div
<
div
className
=
"section"
className
=
"section"
style
=
{{
style
=
{{
...
@@ -32,6 +33,7 @@ export default class Banner extends React.Component {
...
@@ -32,6 +33,7 @@ export default class Banner extends React.Component {
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/
>
);
);
}
}
}
}
src/components/Home/Features.js
0 → 100644
View file @
36b5e8ab
import
React
from
"react"
;
const
feature
=
[
{
title
:
"MONITORING"
,
description
:
"Visualize your device and sensor data real-time"
},
{
title
:
"TRIGGER"
,
description
:
"Event that happen via Device data changed"
},
{
title
:
"CONTROLLING"
,
description
:
"Controlling how device works via Cloud Platform."
},
{
title
:
"HOOK"
,
description
:
"Get automation works according to condition setting of Trigger"
},
{
title
:
"DATA STORAGE"
,
description
:
"Collecting data from your device and sensor to data storage."
}
];
const
Card
=
props
=>
{
return
(
<
div
className
=
"feature-card row"
>
<
div
className
=
"feature-img"
>
<
figure
className
=
"image is-64x64"
>
<
img
alt
=
""
src
=
"https://bulma.io/images/placeholders/64x64.png"
/>
<
/figure
>
<
/div
>
<
div
className
=
"feature-text-wrapper"
>
<
h1
className
=
"feature-title"
>
{
props
.
title
}
<
/h1
>
<
p
className
=
"feature-descrip"
>
{
props
.
description
}
<
/p
>
<
/div
>
<
/div
>
);
};
export
default
class
Features
extends
React
.
Component
{
render
()
{
const
oddItem
=
feature
.
length
%
2
;
return
(
<
div
className
=
"section content-width"
style
=
{{
flexDirection
:
"column"
,
alignItems
:
"center"
,
justifyContent
:
"space-evenly"
,
paddingBottom
:
"60px"
}}
>
<
h1
className
=
"title"
>
Features
<
/h1
>
<
p
className
=
"descriptionStyle"
style
=
{{
textAlign
:
"center"
,
maxWidth
:
1140
}}
>
The
majority
of
NEXPIE
functionality
that
helps
to
develop
your
connected
devices
and
smart
things
.
<
/p
>
<
div
className
=
"feature-container"
>
{
feature
.
map
((
item
,
index
)
=>
(
<
Card
key
=
{
index
}
title
=
{
item
.
title
}
description
=
{
item
.
description
}
/
>
))}
{
oddItem
===
1
?
<
div
className
=
"hidden-feature"
/>
:
<><
/>
}
<
/div
>
<
/div
>
);
}
}
src/components/Home/Services.js
0 → 100644
View file @
36b5e8ab
import
React
from
"react"
;
const
Card
=
()
=>
{
return
(
<
div
className
=
"service-card"
>
<
div
className
=
"img-wrapper"
>
<
figure
className
=
"image is-128x128"
>
<
img
alt
=
""
src
=
"https://bulma.io/images/placeholders/128x128.png"
/>
<
/figure
>
<
/div
>
<
div
className
=
"service-wrapper"
>
<
h1
className
=
"service-title"
>
Connectivity
<
/h1
>
<
p
className
=
"service-description"
>
Connecting
your
device
with
NEXPIE
IoT
platform
.
<
/p
>
<
/div
>
<
/div
>
);
};
export
default
class
Services
extends
React
.
Component
{
render
()
{
return
(
<
div
className
=
"section content-width"
style
=
{{
flexDirection
:
"column"
,
alignItems
:
"center"
,
justifyContent
:
"space-evenly"
,
paddingBottom
:
"60px"
}}
>
<
h1
className
=
"title"
>
Our
Services
<
/h1
>
<
p
className
=
"descriptionStyle"
style
=
{{
textAlign
:
"center"
,
maxWidth
:
1140
}}
>
NEXPIE
provide
the
Internet
of
Things
(
IoT
)
technology
tools
for
helping
your
organization
to
achieve
the
most
benefit
in
Commercial
Marketing
.
<
/p
>
<
div
className
=
"row"
>
{[
1
,
2
,
3
].
map
((
item
,
index
)
=>
(
<
Card
key
=
{
index
}
/
>
))}
<
/div
>
<
/div
>
);
}
}
src/components/Home/WhyUs.js
View file @
36b5e8ab
import
React
from
"react"
;
import
React
from
"react"
;
import
WindowDimensions
from
"components/utils/WindowDimension"
;
const
Card
=
()
=>
{
const
Card
=
()
=>
{
return
(
return
(
...
@@ -7,24 +6,27 @@ const Card = () => {
...
@@ -7,24 +6,27 @@ const Card = () => {
<
figure
className
=
"image is-128x128"
>
<
figure
className
=
"image is-128x128"
>
<
img
<
img
className
=
"is-rounded"
className
=
"is-rounded"
alt
=
""
src
=
"https://bulma.io/images/placeholders/128x128.png"
src
=
"https://bulma.io/images/placeholders/128x128.png"
/>
/>
<
/figure
>
<
/figure
>
<
h1
className
=
"title"
>
Connectivity
<
/h1
>
<
h1
className
=
"
why-
title"
>
Connectivity
<
/h1
>
<
p
className
=
"description"
style
=
{{
textAlign
:
"center"
}}
>
<
p
className
=
"
why-
description"
style
=
{{
textAlign
:
"center"
}}
>
Connecting
your
device
with
NEXPIE
IoT
platform
.
Connecting
your
device
with
NEXPIE
IoT
platform
.
<
/p
>
<
/p
>
<
/div
>
<
/div
>
);
);
};
};
const
WhyUS
=
({
isMobileSized
})
=>
{
export
default
class
WhyUs
extends
React
.
Component
{
render
()
{
return
(
return
(
<
div
<
div
className
=
"section content-width"
className
=
"section content-width"
style
=
{{
style
=
{{
flexDirection
:
"column"
,
flexDirection
:
"column"
,
alignItems
:
"center"
,
alignItems
:
"center"
,
justifyContent
:
"space-evenly"
justifyContent
:
"space-evenly"
,
paddingBottom
:
"60px"
}}
}}
>
>
<
h1
className
=
"title"
>
Why
choose
NEXPIE
<
/h1
>
<
h1
className
=
"title"
>
Why
choose
NEXPIE
<
/h1
>
...
@@ -32,17 +34,17 @@ const WhyUS = ({ isMobileSized }) => {
...
@@ -32,17 +34,17 @@ const WhyUS = ({ isMobileSized }) => {
className
=
"descriptionStyle"
className
=
"descriptionStyle"
style
=
{{
textAlign
:
"center"
,
maxWidth
:
1140
}}
style
=
{{
textAlign
:
"center"
,
maxWidth
:
1140
}}
>
>
NEXPIE
provide
the
Internet
of
Things
(
IoT
)
technology
tools
for
helping
NEXPIE
provide
the
Internet
of
Things
(
IoT
)
technology
tools
for
your
organization
to
achieve
the
most
benefit
in
Commercial
Marketing
.
helping
your
organization
to
achieve
the
most
benefit
in
Commercial
Marketing
.
<
/p
>
<
/p
>
<
div
className
=
"row"
>
<
div
className
=
"row"
>
<
div
className
=
"why-bg"
/>
<
div
className
=
"why-bg"
/>
{[
1
,
2
,
3
].
map
((
item
,
index
)
=>
(
{[
1
,
2
,
3
].
map
((
item
,
index
)
=>
(
<
Card
/>
<
Card
key
=
{
index
}
/
>
))}
))}
<
/div
>
<
/div
>
<
/div
>
<
/div
>
);
);
};
}
}
export
default
WindowDimensions
(
WhyUS
);
src/pages/Homepage.js
View file @
36b5e8ab
...
@@ -3,6 +3,8 @@ import Banner from "../components/Home/Banner";
...
@@ -3,6 +3,8 @@ import Banner from "../components/Home/Banner";
import
About
from
"../components/Home/About"
;
import
About
from
"../components/Home/About"
;
import
{
Scroller
,
Section
}
from
"react-fully-scrolled"
;
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
Features
from
"components/Home/Features"
;
class
Homepage
extends
Component
{
class
Homepage
extends
Component
{
constructor
(
props
)
{
constructor
(
props
)
{
...
@@ -41,19 +43,24 @@ class Homepage extends Component {
...
@@ -41,19 +43,24 @@ class Homepage extends Component {
<
/Section
>
<
/Section
>
<
Section
<
Section
style
=
{{
style
=
{{
...
baseStyle
,
...
baseStyle
background
:
"#00c4ff"
}}
}}
>
>
<
WhyUs
/>
<
WhyUs
/>
<
/Section
>
<
/Section
>
<
Section
<
Section
style
=
{{
style
=
{{
...
baseStyle
,
...
baseStyle
background
:
"#d52685"
}}
>
<
Services
/>
<
/Section
>
<
Section
style
=
{{
...
baseStyle
}}
}}
>
>
<
h1
>
4
<
/h1
>
<
Features
/
>
<
/Section
>
<
/Section
>
<
/Scroller
>
<
/Scroller
>
<
/div
>
<
/div
>
...
...
src/scss/style.scss
View file @
36b5e8ab
...
@@ -20,9 +20,8 @@ body {
...
@@ -20,9 +20,8 @@ body {
color
:
$grey
;
color
:
$grey
;
}
}
.section
{
.section
{
padding
:
20px
;
width
:
100vw
;
width
:
100%
;
height
:
100vh
;
height
:
91%
;
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
}
}
...
@@ -43,40 +42,144 @@ body {
...
@@ -43,40 +42,144 @@ body {
color
:
$primary
;
color
:
$primary
;
}
}
.why-card
{
.why-card
{
max-width
:
348px
;
max-width
:
300px
;
height
:
399px
;
min-width
:
245px
;
height
:
360px
;
border-radius
:
6px
;
border-radius
:
6px
;
box-shadow
:
0
52px
85px
0
rgba
(
0
,
0
,
0
,
0
.09
);
box-shadow
:
0
52px
85px
0
rgba
(
0
,
0
,
0
,
0
.09
);
background-color
:
$white
;
background-color
:
$white
;
margin
:
30px
30px
;
margin
:
30px
;
z-index
:
1
;
z-index
:
1
;
padding
:
40px
;
padding
:
40px
;
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
justify-content
:
space-evenly
;
justify-content
:
space-evenly
;
align-items
:
center
;
align-items
:
center
;
&
.
title
{
.why-
title
{
font-size
:
2
0
px
;
font-size
:
2
4
px
;
color
:
$grey
;
color
:
$grey
;
}
}
&
.
description
{
.why-
description
{
font-size
:
1
6
px
;
font-size
:
1
8
px
;
color
:
$lightgrey
;
color
:
$lightgrey
;
}
}
}
}
.row
{
.service-card
{
max-width
:
348px
;
min-width
:
265px
;
height
:
399px
;
border-radius
:
6px
;
box-shadow
:
0
52px
85px
0
rgba
(
0
,
0
,
0
,
0
.09
);
border
:
solid
0
.5px
#f0f0f0
;
background-color
:
$white
;
margin
:
30px
;
display
:
flex
;
display
:
flex
;
flex-direction
:
row
;
flex-direction
:
column
;
justify-content
:
space-evenly
;
align-items
:
center
;
overflow
:
hidden
;
&
:first-child
{
background-color
:
#42b3e5
;
}
&
:nth-child
(
2
)
{
background-color
:
#0384ce
;
}
&
:nth-child
(
3
)
{
background-color
:
#3156a3
;
}
.img-wrapper
{
background-color
:
$white
;
width
:
100%
;
height
:
100%
;
margin
:
60
0
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.service-wrapper
{
width
:
100%
;
max-height
:
170px
;
color
:
$white
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
30px
40px
40px
40px
;
.service-title
{
font-size
:
24px
;
font-weight
:
500
;
}
.service-description
{
font-size
:
18px
;
text-align
:
center
;
font-weight
:
100
;
}
}
}
}
.why-bg
{
.why-bg
{
width
:
93
%
;
width
:
85
%
;
height
:
180px
;
height
:
180px
;
border-radius
:
6px
;
border-radius
:
6px
;
background-image
:
linear-gradient
(
276deg
,
#3473bf
,
#0891df
);
background-image
:
linear-gradient
(
276deg
,
#3473bf
,
#0891df
);
position
:
absolute
;
position
:
absolute
;
}
}
.feature-container
{
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
center
;
.hidden-feature
{
width
:
40%
;
height
:
130px
;
margin
:
0
35px
20px
35px
;
}
.feature-card
{
width
:
40%
;
height
:
130px
;
border-radius
:
6px
;
border
:
solid
1px
rgba
(
66
,
179
,
229
,
0
.35
);
background-color
:
rgba
(
66
,
179
,
229
,
0
.1
);
margin
:
0
35px
20px
35px
;
padding
:
10px
;
.feature-img
{
@extend
.center
;
.image
{
margin
:
10px
;
}
}
.feature-text-wrapper
{
padding
:
10px
20px
20px
20px
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
max-width
:
400px
;
.feature-title
{
font-size
:
22px
;
letter-spacing
:
1px
;
-webkit-background-clip
:
text
;
background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
background-image
:
linear-gradient
(
277deg
,
#3156a3
,
#3984dd
);
}
.feature-descrip
{
font-size
:
18px
;
line-height
:
1
.33
;
color
:
#777777
;
}
}
}
}
.center
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.row
{
display
:
flex
;
flex-direction
:
row
;
justify-content
:
space-evenly
;
}
@media
screen
and
(
max-width
:
1087px
)
{
@media
screen
and
(
max-width
:
1087px
)
{
.navbar-menu
{
.navbar-menu
{
box-shadow
:
0
8px
16px
rgba
(
10
,
10
,
10
,
0
);
box-shadow
:
0
8px
16px
rgba
(
10
,
10
,
10
,
0
);
...
@@ -87,6 +190,10 @@ body {
...
@@ -87,6 +190,10 @@ body {
.descriptionStyle
{
.descriptionStyle
{
font-size
:
18px
;
font-size
:
18px
;
}
}
.feature-container
.feature-card
,
.hidden-feature
{
width
:
90%
;
}
}
}
// .dropdown-item {
// .dropdown-item {
// display: 'flex';
// display: 'flex';
...
...
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