Design Credit: Jakub Antalík
https://dribbble.com/shots/1646215-Health-app
A Pen by Tom Barton on CodePen.
Design Credit: Jakub Antalík
https://dribbble.com/shots/1646215-Health-app
A Pen by Tom Barton on CodePen.
.container | |
.menu-column | |
ul(class='nav') | |
li(class='pulse') | |
li(class='chat') | |
li(class='calendar') | |
li(class='clipboard') | |
li(class='settings') | |
.profile | |
img(src='https://placeimg.com/100/100/face') | |
.summary-column | |
.profile-img#profileImage | |
img(src='https://placeimg.com/400/400/face') | |
.name | |
. | |
Jana <br> Novakova | |
.statistics | |
h2 summary | |
.age | |
span(class='title title-age') 22 | |
.weight | |
span(class='title title-weight') 53 kg | |
.float-none | |
.height | |
.icon | |
.data | |
span 172 cm | |
.bmi | |
span(class='title title-bmi') 20.4 | |
.fat | |
span(class='title title-fat') 11 | |
span(class='percentage') % | |
.float-none | |
h2(class='allergies') allergies | |
.row | |
. | |
peanuts | |
.severity | |
.fill(style="width: 45%; height: inherit;") | |
.row | |
. | |
penicilin | |
.severity | |
.fill(style="width: 80%; height: inherit;") | |
.content-column | |
.header-container#headerContainer | |
.nav | |
.content | |
p | |
| hi | |
span(class='name') jana | |
|, it seems you are in | |
span(class='shape score') good | |
span(class='shape') shape | |
.select-boxes | |
.content | |
.select-wrapper | |
select | |
option Bl. Pressure | |
.select-wrapper | |
select | |
option Today | |
.float-none | |
.graph | |
canvas(id='bpChart' style='position: relative; z-index: 100;') | |
.split-container | |
.split | |
h3 Temperature | |
.temperature | |
. | |
36.7 | |
.split-graph | |
canvas(id='temperatureGraph') | |
.split | |
h3 Calories burned | |
.calories | |
. | |
537 | |
.split-graph | |
canvas(id='calorieGraph') | |
.split | |
h3 Heart rate | |
.heart-rate | |
. | |
87 | |
.split-graph | |
canvas(id='heartRateGraph') | |
.sleep | |
.totals | |
.collective | |
span(class='hours') 8 | |
span(class='minutes') 25 | |
p Total sleep time | |
.split.first | |
. | |
6h 12m | |
p Deep | |
.split | |
. | |
2h 13m | |
p Light | |
.sleep-graph | |
.sleep-graph-container | |
h2 Sleep Analytics | |
.sleep-select-wrapper | |
select | |
option(value='today') Today | |
.chart-container | |
canvas(id='sleepChart') | |
.float-none | |
.split-container | |
.split.bottom | |
h2 Appointments | |
.appointments | |
.calendar-container | |
.calendar | |
. | |
25 | |
span(class='date') th | |
span(class='month') Jul | |
.content | |
table(class='appointment-table') | |
tr | |
td(id='time') | |
. | |
13:00 | |
tr | |
td(id='title') | |
. | |
Dentist | |
tr | |
td(id='name') | |
. | |
Jozef Novotny | |
.split.bottom | |
h2 Doctors around | |
table(class='doctor-grid') | |
tr | |
td(height='65') | |
img(src='https://placeimg.com/65/65/people') | |
td | |
img(src='https://placeimg.com/65/65/face') | |
td | |
img(src='https://placeimg.com/65/65/people') | |
tr | |
td | |
img(src='https://placeimg.com/65/65/face') | |
td | |
img(src='https://placeimg.com/65/65/people') | |
td(id='expand') | |
.background | |
. | |
+8 | |
.split.bottom | |
#map | |
.map-overlay | |
h2 Steps today | |
span(class='steps') 4578 | |
span(class='distance') 1.7 km | |
.search-column | |
.search-container | |
img(src='https://svgshare.com/i/56w.svg') | |
input(type='text' placeholder='Search') | |
.activity-list | |
h3 Recent Activity | |
.activity | |
.image-container | |
img(src='https://placeimg.com/40/40/face') | |
.text | |
span(class='name') Peter Smith | |
| added a new appointment to your calendar. | |
span(class='time-ago') 2 hours ago | |
.activity | |
.image-container | |
img(src='https://placeimg.com/40/40/person') | |
.text | |
span(class='name') Katarina Rychia | |
| commented on your Results 09 | |
span(class='time-ago') 2 hours ago | |
.activity | |
.image-container | |
img(src='https://placeimg.com/40/40/face') | |
.text | |
span(class='name') Tereza Dvorak | |
| added two attachments to Results 238. | |
span(class='time-ago') 6 days ago | |
.activity | |
.image-container | |
img(src='https://placeimg.com/40/40/person') | |
.text | |
span(class='name') Peter Smith | |
| added a new appointment to your calendar. | |
span(class='time-ago') 7 days ago | |
.your-doctors | |
h3 Your Doctors | |
.doctor | |
.image-container | |
img(src='https://placeimg.com/40/40/person') | |
.text | |
span(class='name-large') Peter Smith | |
span(class='title') Dentist | |
.doctor | |
.image-container | |
img(src='https://placeimg.com/40/40/face') | |
.text | |
span(class='name-large') Katarina Rychia | |
span(class='title') Dentist | |
.doctor | |
.image-container | |
img(src='https://placeimg.com/40/40/person') | |
.text | |
span(class='name-large') Tereza Dvorak | |
span(class='title') Physician | |
button(class='find-doctor') Find new doctor | |
// Blood Pressure Chart | |
let bloodPressureChart = document.getElementById('bpChart').getContext('2d') | |
let gradient = bloodPressureChart.createLinearGradient(0, 0, 0, 100) | |
gradient.addColorStop(0, "#29a9e1") | |
gradient.addColorStop(1, "#2ccec2") | |
let chart = new Chart(bloodPressureChart, { | |
type: 'line', | |
// The data for our dataset | |
data: { | |
labels: ["January", "February", "March", "April", "May", "June", "July"], | |
datasets: [{ | |
label: "Blood Pressure", | |
backgroundColor: gradient, | |
borderColor: 'transparent', | |
data: [105, 112, 105, 120, 110, 119, 110], | |
}] | |
}, | |
// Configuration options go here | |
options: { | |
responsive: true, | |
maintainAspectRatio: false, | |
elements: { | |
point: { | |
radius: 2 | |
} | |
}, | |
legend: { | |
display: false | |
}, | |
layout: { | |
padding: { | |
left: 0, | |
right: 0, | |
top: 0, | |
bottom: 0 | |
} | |
}, | |
scales: { | |
xAxes: [{ | |
maxBarThickness: 0, | |
gridLines: { | |
drawBorder: false, | |
display: false | |
}, | |
ticks: { | |
callback: function(vlaue, index, values) { | |
return null | |
} | |
} | |
}], | |
yAxes: [{ | |
maxBarThickness: 0, | |
gridLines: { | |
drawBorder: false, | |
display: false | |
}, | |
ticks: { | |
callback: function(vlaue, index, values) { | |
return null | |
}, | |
suggestedMin: 100 | |
} | |
}] | |
} | |
} | |
}) | |
// Sleep Chart | |
let sleepChartContainer = document.getElementById('sleepChart').getContext('2d') | |
let sleepChartGradient = sleepChartContainer.createLinearGradient(0, 0, 400, 0) | |
sleepChartGradient.addColorStop(0, "#44D1CA") | |
sleepChartGradient.addColorStop(1, "#28A3D0") | |
let sleepChartBackgroundGradient = sleepChartContainer.createLinearGradient(0, 0, 400, 0) | |
sleepChartBackgroundGradient.addColorStop(0, "rgba(68, 209, 202, 0.1)") | |
sleepChartBackgroundGradient.addColorStop(1, "rgba(40, 163, 208, 0.1)") | |
let sleepChart = new Chart(sleepChartContainer, { | |
type: 'line', | |
// The data for our dataset | |
data: { | |
labels: ["22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "1", "2", "3"], | |
datasets: [{ | |
label: "Hours of sleep", | |
backgroundColor: sleepChartBackgroundGradient, | |
borderColor: sleepChartGradient, | |
data: [7.5, 6.7, 7.8, 8.2, 6.7, 6.5, 8.2, 7.5, 8.2, 6.9, 7.2, 7.5, 6.9], | |
}] | |
}, | |
// Configuration options go here | |
options: { | |
responsive: true, | |
maintainAspectRatio: false, | |
elements: { | |
point: { | |
radius: 2 | |
} | |
}, | |
legend: { | |
display: false | |
}, | |
layout: { | |
padding: { | |
left: 0, | |
right: 0, | |
top: 0, | |
bottom: 0 | |
} | |
}, | |
scales: { | |
xAxes: [{ | |
maxBarThickness: 0, | |
gridLines: { | |
drawBorder: false, | |
display: true, | |
color: "#F3F4F4" | |
}, | |
ticks: { | |
fontColor: "#BDC3C6" | |
} | |
}], | |
yAxes: [{ | |
maxBarThickness: 1, | |
gridLines: { | |
drawBorder: true, | |
display: false, | |
color: "#F3F4F4" | |
}, | |
ticks: { | |
callback: function(value, index, values) { | |
return null | |
}, | |
suggestedMin: 6 | |
} | |
}] | |
} | |
} | |
}) | |
// Temperature Chart | |
let temperatureChartContainer = document.getElementById('temperatureGraph').getContext('2d') | |
let temperatureGradient = temperatureChartContainer.createLinearGradient(0, 0, 100, 0) | |
temperatureGradient.addColorStop(0, "#feb35e") | |
temperatureGradient.addColorStop(1, "#fe8550") | |
let temperatureChart = new Chart(temperatureChartContainer, { | |
type: 'line', | |
// The data for our dataset | |
data: { | |
labels: ["January", "February", "March", "April", "May", "June", "July"], | |
datasets: [{ | |
label: "My First dataset", | |
backgroundColor: gradient, | |
borderColor: temperatureGradient, | |
fill: false, | |
data: [105, 108, 105, 110, 108, 105, 110], | |
}] | |
}, | |
// Configuration options go here | |
options: { | |
responsive: true, | |
maintainAspectRatio: false, | |
tooltips: { | |
enabled: true | |
}, | |
elements: { | |
point: { | |
radius: 0 | |
} | |
}, | |
legend: { | |
display: false | |
}, | |
layout: { | |
padding: { | |
left: 0, | |
right: 0, | |
top: 0, | |
bottom: 0 | |
} | |
}, | |
scales: { | |
xAxes: [{ | |
maxBarThickness: 0, | |
gridLines: { | |
drawBorder: false, | |
display: false | |
}, | |
ticks: { | |
callback: function(vlaue, index, values) { | |
return null | |
} | |
} | |
}], | |
yAxes: [{ | |
maxBarThickness: 0, | |
gridLines: { | |
drawBorder: false, | |
display: false | |
}, | |
ticks: { | |
callback: function(vlaue, index, values) { | |
return null | |
}, | |
suggestedMin: 100 | |
} | |
}] | |
} | |
} | |
}) | |
// Calorie Chart | |
let calorieChartContainer = document.getElementById('calorieGraph').getContext('2d') | |
let calorieChartGradient = calorieChartContainer.createLinearGradient(0, 0, 100, 0) | |
calorieChartGradient.addColorStop(0, "#03d7a6") | |
calorieChartGradient.addColorStop(1, "#22b6d1") | |
let calorieChart = new Chart(calorieChartContainer, { | |
type: 'line', | |
// The data for our dataset | |
data: { | |
labels: ["January", "February", "March", "April", "May", "June", "July"], | |
datasets: [{ | |
label: "My First dataset", | |
backgroundColor: gradient, | |
borderColor: calorieChartGradient, | |
fill: false, | |
data: [105, 108, 115, 105, 110, 112, 109], | |
}] | |
}, | |
// Configuration options go here | |
options: { | |
responsive: true, | |
maintainAspectRatio: false, | |
tooltips: { | |
enabled: true | |
}, | |
elements: { | |
point: { | |
radius: 0 | |
} | |
}, | |
legend: { | |
display: false | |
}, | |
layout: { | |
padding: { | |
left: 0, | |
right: 0, | |
top: 0, | |
bottom: 0 | |
} | |
}, | |
scales: { | |
xAxes: [{ | |
maxBarThickness: 0, | |
gridLines: { | |
drawBorder: false, | |
display: false | |
}, | |
ticks: { | |
callback: function(vlaue, index, values) { | |
return null | |
} | |
} | |
}], | |
yAxes: [{ | |
maxBarThickness: 0, | |
gridLines: { | |
drawBorder: false, | |
display: false | |
}, | |
ticks: { | |
callback: function(vlaue, index, values) { | |
return null | |
}, | |
suggestedMin: 100 | |
} | |
}] | |
} | |
} | |
}) | |
// Heart Rate Chart | |
let heartRateChartContainer = document.getElementById('heartRateGraph').getContext('2d') | |
let heartRateChartGradient = heartRateChartContainer.createLinearGradient(0, 0, 100, 0) | |
heartRateChartGradient.addColorStop(0, "#fd6eb5") | |
heartRateChartGradient.addColorStop(1, "#ca65ff") | |
let heartRateChart = new Chart(heartRateChartContainer, { | |
type: 'line', | |
// The data for our dataset | |
data: { | |
labels: ["January", "February", "March", "April", "May", "June", "July"], | |
datasets: [{ | |
label: "My First dataset", | |
backgroundColor: gradient, | |
borderColor: heartRateChartGradient, | |
fill: false, | |
data: [105, 108, 109, 115, 108, 105, 104], | |
}] | |
}, | |
// Configuration options go here | |
options: { | |
responsive: true, | |
maintainAspectRatio: false, | |
tooltips: { | |
enabled: true | |
}, | |
elements: { | |
point: { | |
radius: 0 | |
} | |
}, | |
legend: { | |
display: false | |
}, | |
layout: { | |
padding: { | |
left: 0, | |
right: 0, | |
top: 0, | |
bottom: 0 | |
} | |
}, | |
scales: { | |
xAxes: [{ | |
maxBarThickness: 0, | |
gridLines: { | |
drawBorder: false, | |
display: false | |
}, | |
ticks: { | |
callback: function(vlaue, index, values) { | |
return null | |
} | |
} | |
}], | |
yAxes: [{ | |
maxBarThickness: 0, | |
gridLines: { | |
drawBorder: false, | |
display: false | |
}, | |
ticks: { | |
callback: function(vlaue, index, values) { | |
return null | |
}, | |
suggestedMin: 100 | |
} | |
}] | |
} | |
} | |
}) | |
// Current Position Helper | |
function getLocation() { | |
return new Promise((resolve, reject) => { | |
try { | |
if (navigator.geolocation) { | |
navigator.geolocation.getCurrentPosition(function(position) { | |
resolve(position.coords) | |
}) | |
} else { | |
throw Error('Geolocation disabled.') | |
} | |
} catch(err) { | |
console.log(err) | |
reject(err) | |
} | |
}) | |
} | |
document.addEventListener("DOMContentLoaded", function() { | |
getLocation() | |
.then((coords) => { | |
googleMapsInit(coords.longitude, coords.latitude) | |
}) | |
.catch((err) => { | |
console.log(err) | |
googleMapsInit() | |
}) | |
}) | |
// Initiate Google Maps render | |
function googleMapsInit(longitude, latitude) { | |
let map = document.getElementById('map') | |
// Default Lon/Lat to UK if geolocation is disabled | |
if (!longitude || !latitude) { | |
let longitude = 3.4360 | |
let latitude = 55.3781 | |
} | |
map = new google.maps.Map(document.getElementById('map'), { | |
center: {lat: latitude, lng: longitude}, | |
zoom: 7, | |
disableDefaultUI: true, | |
styles: [ | |
{ | |
"elementType": "geometry", | |
"stylers": [ | |
{ | |
"color": "#f5f5f5" | |
} | |
] | |
}, | |
{ | |
"elementType": "geometry.fill", | |
"stylers": [ | |
{ | |
"color": "#ffffff" | |
} | |
] | |
}, | |
{ | |
"elementType": "labels", | |
"stylers": [ | |
{ | |
"visibility": "off" | |
} | |
] | |
}, | |
{ | |
"elementType": "labels.icon", | |
"stylers": [ | |
{ | |
"visibility": "off" | |
} | |
] | |
}, | |
{ | |
"elementType": "labels.text.fill", | |
"stylers": [ | |
{ | |
"color": "#616161" | |
} | |
] | |
}, | |
{ | |
"elementType": "labels.text.stroke", | |
"stylers": [ | |
{ | |
"color": "#f5f5f5" | |
} | |
] | |
}, | |
{ | |
"featureType": "administrative.land_parcel", | |
"stylers": [ | |
{ | |
"visibility": "off" | |
} | |
] | |
}, | |
{ | |
"featureType": "administrative.land_parcel", | |
"elementType": "labels.text.fill", | |
"stylers": [ | |
{ | |
"color": "#bdbdbd" | |
} | |
] | |
}, | |
{ | |
"featureType": "administrative.neighborhood", | |
"stylers": [ | |
{ | |
"visibility": "off" | |
} | |
] | |
}, | |
{ | |
"featureType": "poi", | |
"elementType": "geometry", | |
"stylers": [ | |
{ | |
"color": "#eeeeee" | |
} | |
] | |
}, | |
{ | |
"featureType": "poi", | |
"elementType": "labels.text.fill", | |
"stylers": [ | |
{ | |
"color": "#757575" | |
} | |
] | |
}, | |
{ | |
"featureType": "poi.business", | |
"stylers": [ | |
{ | |
"visibility": "off" | |
} | |
] | |
}, | |
{ | |
"featureType": "poi.park", | |
"elementType": "geometry", | |
"stylers": [ | |
{ | |
"color": "#e5e5e5" | |
} | |
] | |
}, | |
{ | |
"featureType": "poi.park", | |
"elementType": "labels.text.fill", | |
"stylers": [ | |
{ | |
"color": "#9e9e9e" | |
} | |
] | |
}, | |
{ | |
"featureType": "road", | |
"elementType": "geometry", | |
"stylers": [ | |
{ | |
"color": "#ffffff" | |
} | |
] | |
}, | |
{ | |
"featureType": "road", | |
"elementType": "labels.icon", | |
"stylers": [ | |
{ | |
"visibility": "off" | |
} | |
] | |
}, | |
{ | |
"featureType": "road.arterial", | |
"elementType": "labels", | |
"stylers": [ | |
{ | |
"visibility": "off" | |
} | |
] | |
}, | |
{ | |
"featureType": "road.arterial", | |
"elementType": "labels.text.fill", | |
"stylers": [ | |
{ | |
"color": "#757575" | |
} | |
] | |
}, | |
{ | |
"featureType": "road.highway", | |
"elementType": "geometry", | |
"stylers": [ | |
{ | |
"color": "#dadada" | |
} | |
] | |
}, | |
{ | |
"featureType": "road.highway", | |
"elementType": "labels", | |
"stylers": [ | |
{ | |
"visibility": "off" | |
} | |
] | |
}, | |
{ | |
"featureType": "road.highway", | |
"elementType": "labels.text.fill", | |
"stylers": [ | |
{ | |
"color": "#616161" | |
} | |
] | |
}, | |
{ | |
"featureType": "road.local", | |
"stylers": [ | |
{ | |
"visibility": "off" | |
} | |
] | |
}, | |
{ | |
"featureType": "road.local", | |
"elementType": "labels.text.fill", | |
"stylers": [ | |
{ | |
"color": "#9e9e9e" | |
} | |
] | |
}, | |
{ | |
"featureType": "transit", | |
"stylers": [ | |
{ | |
"visibility": "off" | |
} | |
] | |
}, | |
{ | |
"featureType": "transit.line", | |
"elementType": "geometry", | |
"stylers": [ | |
{ | |
"color": "#e5e5e5" | |
} | |
] | |
}, | |
{ | |
"featureType": "transit.station", | |
"elementType": "geometry", | |
"stylers": [ | |
{ | |
"color": "#eeeeee" | |
} | |
] | |
}, | |
{ | |
"featureType": "water", | |
"elementType": "geometry", | |
"stylers": [ | |
{ | |
"color": "#c9c9c9" | |
} | |
] | |
}, | |
{ | |
"featureType": "water", | |
"elementType": "labels.text.fill", | |
"stylers": [ | |
{ | |
"color": "#9e9e9e" | |
} | |
] | |
} | |
] | |
}) | |
} |
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script> | |
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA5wVTk5SQ3alGnIqPchU9CmU7v__ypM6Q"></script> |
body { | |
font-family: 'Roboto', sans-serif; | |
background: #7e8b91; | |
margin: 1%; | |
box-sizing: border-box; | |
} | |
.container { | |
display: flex; | |
display: -webkit-flex; | |
flex-direction: row; | |
-webkit-flex-direction: row; | |
width: 100%; | |
min-width: 1180px; | |
margin: auto; | |
justify-content: center; | |
} | |
.menu-column { | |
position: relative; | |
width: 6%; | |
max-width: 50px; | |
background: linear-gradient(#2e96ea, #30c8ca); | |
min-width: 70px; | |
.profile { | |
position: absolute; | |
bottom: 0; | |
width: 100%; | |
height: 65px; | |
img { | |
position: relative; | |
width: 100%; | |
height: 100%; | |
} | |
&:after { | |
content: ''; | |
display: block; | |
height: 10px; | |
position: absolute; | |
bottom: 0; | |
left: 0; | |
width: 100%; | |
background-color: rgba(245, 244, 120, 0.7); | |
} | |
} | |
.nav { | |
list-style-type: none; | |
margin: 0 0 100px; | |
padding: 0; | |
li { | |
width: 100%; | |
height: 3.5em; | |
margin: 0; | |
&:hover { | |
background-color: #57a8ed; | |
cursor: pointer; | |
} | |
} | |
} | |
.pulse { | |
background-image: url("https://svgshare.com/i/4w9.svg"); | |
background-position: center; | |
background-size: 25px; | |
background-repeat: no-repeat; | |
} | |
.chat { | |
@extend .pulse; | |
background-image: url("https://svgshare.com/i/4uF.svg"); | |
} | |
.calendar { | |
@extend .pulse; | |
background-image: url("https://svgshare.com/i/4vc.svg"); | |
} | |
.clipboard { | |
@extend .pulse; | |
background-image: url("https://svgshare.com/i/4wJ.svg") | |
} | |
.settings { | |
@extend .pulse; | |
background-image: url("https://svgshare.com/i/4vd.svg") | |
} | |
} | |
.float-none { | |
clear: both; | |
} | |
.summary-column { | |
position: relative; | |
z-index: 2; | |
width: 17%; | |
min-width: 225px; | |
max-width: 300px; | |
background: linear-gradient(lighten(#3d6281, 15%), #42656f); | |
.profile-img { | |
position: relative; | |
height: 331px; | |
img { | |
width: 100%; | |
height: 100%; | |
} | |
.name { | |
position: absolute; | |
bottom: 25px; | |
left: 1em; | |
color: white; | |
font-size: 1.5em; | |
font-weight: 300; | |
} | |
} | |
.statistics { | |
margin: 20px 6% 0 6%; | |
h2 { | |
color: #a1afbc; | |
text-transform: uppercase; | |
font-size: 0.75em; | |
letter-spacing: 1px; | |
} | |
.age { | |
display: block; | |
width: 50%; | |
height: 100px; | |
box-sizing: border-box; | |
float: left; | |
border-right: 1px solid rgba(255, 255, 255, 0.2); | |
text-align: center; | |
border-bottom: 1px solid rgba(255, 255, 255, 0.2); | |
} | |
.title { | |
color: white; | |
letter-spacing: 2px; | |
font-size: 1.5em; | |
position: relative; | |
margin-top: -13px; | |
display: block; | |
line-height: 100px; | |
vertical-align: middle; | |
&:after { | |
color: #90a0aa; | |
font-size: 0.7em; | |
letter-spacing: 0px; | |
position: absolute; | |
bottom: -26px; | |
left: 50%; | |
transform: translateX(-50%) | |
} | |
} | |
.weight { | |
border-right: none; | |
@extend .age; | |
} | |
.title-weight { | |
&:after { | |
content: 'Weight'; | |
} | |
} | |
.title-age { | |
&:after { | |
content: 'Age'; | |
} | |
} | |
.title-bmi { | |
&:after { | |
content: 'BMI'; | |
} | |
} | |
.title-fat { | |
&:after { | |
content: 'Fat'; | |
} | |
} | |
.height { | |
height: 150px; | |
border-bottom: 1px solid rgba(255, 255, 255, 0.2); | |
.icon { | |
display: block; | |
width: 50%; | |
height: 100%; | |
float: left; | |
background: | |
url("https://svgshare.com/i/4xQ.svg"); | |
background-size: 120px; | |
background-repeat: no-repeat; | |
background-position: center; | |
} | |
.data { | |
display: block; | |
width: 50%; | |
float: left; | |
span { | |
display: block; | |
position: relative; | |
line-height: 130px; | |
vertical-align: middle; | |
font-size: 1.75em; | |
color: white; | |
&:after { | |
content: 'Height'; | |
color: #90a0aa; | |
font-size: 0.7em; | |
line-height: 20px; | |
letter-spacing: 0px; | |
position: absolute; | |
left: 0; | |
bottom: 25px; | |
} | |
} | |
} | |
} | |
.bmi { | |
@extend .age; | |
border-bottom: none; | |
} | |
.fat { | |
@extend .bmi; | |
border-right: none; | |
} | |
.percentage { | |
font-size: 0.7em; | |
line-height: 0.7em; | |
} | |
} | |
.allergies { | |
padding-top: 20px; | |
} | |
.row { | |
position: relative; | |
height: 50px; | |
line-height: 50px; | |
text-transform: capitalize; | |
border-top: 1px solid #537482; | |
color: #f1f3f4; | |
font-size: 0.8em; | |
&:last-child { | |
border-bottom: 1px solid #537482; | |
margin-bottom: 50px; | |
} | |
.severity { | |
position: absolute; | |
top: 50%; | |
left: 75%; | |
transform: translate(-50%, -75%); | |
width: 100px; | |
height: 5px; | |
background: #567681; | |
} | |
.fill { | |
background: #c3f8ab; | |
} | |
} | |
} | |
.content-column { | |
background: white; | |
width: 62%; | |
min-width: 900px; | |
@media only screen and (max-width: 1250px) { | |
width: 77%; | |
} | |
z-index: 0; | |
.header-container { | |
width: 100%; | |
height: 331px; | |
overflow: hidden; | |
} | |
.nav { | |
width: 50%; | |
float: left; | |
font-size: 0.9em; | |
font-weight: 500; | |
line-height: 1; | |
.content { | |
margin: 50px 0 0 50px; | |
white-space: nowrap; | |
} | |
p { | |
text-transform: uppercase; | |
color: #899191; | |
letter-spacing: 1px; | |
} | |
.name { | |
color: #636d6d; | |
} | |
.shape { | |
font-family: 'Nunito', sans-serif; | |
font-weight: 200; | |
font-size: 6em; | |
color: #8b9494; | |
} | |
.score { | |
color: #34d0c4; | |
} | |
} | |
.select-boxes { | |
float: left; | |
width: 50%; | |
.content { | |
margin: 40px; | |
float: right; | |
} | |
} | |
.split-container { | |
display: flex; | |
display: -webkit-flex; | |
flex-direction: row; | |
-webkit-flex-direction: row; | |
width: 100%; | |
margin: auto; | |
justify-content: center; | |
.split { | |
position: relative; | |
width: calc(100% / 3); | |
min-width: 300px; | |
text-align: center; | |
font-size: 1.7em; | |
font-weight: 300; | |
border-right: 1px solid #dddfe1; | |
border-bottom: 1px solid #dddfe1; | |
.split-graph { | |
max-width: 100%; | |
height: 125px; | |
overflow: hidden; | |
} | |
h3 { | |
font-size: 1.1em; | |
font-weight: 300; | |
margin: 50px 0 0 0; | |
color: #566161; | |
} | |
&:last-child { | |
border-right: none; | |
} | |
} | |
.temperature { | |
display: block; | |
color: #58676c; | |
font-size: 2em; | |
line-height: 2em; | |
width: 225px; | |
margin: auto; | |
position: relative; | |
font-weight: 300; | |
margin: 10px auto; | |
&:before { | |
content: ''; | |
position: absolute; | |
height: 35px; | |
width: 35px; | |
background: | |
url('https://svgshare.com/i/50V.svg'); | |
background-size: 35px 35px; | |
background-position: center; | |
background-repeat: no-repeat; | |
left: 20px; | |
top: 50%; | |
transform: translateY(-50%); | |
} | |
&:after { | |
content: '°'; | |
font-weight: 300; | |
color: #889599; | |
position: absolute; | |
right: 35px; | |
} | |
} | |
.calories { | |
@extend .temperature; | |
&:before { | |
background: | |
url('https://svgshare.com/i/52_.svg'); | |
background-size: 35px 35px; | |
} | |
&:after { | |
content: 'cal'; | |
font-size: 0.5em; | |
right: 30px; | |
bottom: -9px; | |
} | |
} | |
.heart-rate { | |
@extend .calories; | |
&:before { | |
background: | |
url('https://svgshare.com/i/51m.svg'); | |
background-size: 35px 35px; | |
left: 30px; | |
} | |
&:after { | |
content: 'bpm'; | |
right: 20px; | |
} | |
} | |
} | |
.sleep { | |
.totals { | |
width: 30%; | |
float: left; | |
.collective { | |
margin-top: 75px; | |
margin-left: 15%; | |
.hours { | |
position: relative; | |
color: #58676c; | |
font-size: 3em; | |
height: 20px; | |
font-weight: 300; | |
margin-right: 0.5em; | |
&:after { | |
position: absolute; | |
font-size: 0.4em; | |
color: #899599; | |
bottom: 10px; | |
right: -15px; | |
height: 20px; | |
line-height: 20px; | |
content: 'h'; | |
} | |
} | |
.minutes { | |
@extend .hours; | |
&:after { | |
right: -22px; | |
content: 'm'; | |
} | |
} | |
p { | |
color: #a7afb2; | |
font-weight: 300; | |
margin: 0; | |
margin-top: -5px; | |
} | |
} | |
.split { | |
display: block; | |
float: left; | |
width: 20%; | |
margin: 30px 15%; | |
font-weight: bold; | |
color: #58676c; | |
p { | |
color: #a7afb2; | |
font-weight: 300; | |
margin: 0; | |
} | |
} | |
.first { | |
// :first-child is being a bit funny... | |
margin-right: 0; | |
} | |
} | |
.sleep-graph { | |
width: 70%; | |
float: left; | |
.sleep-graph-container { | |
width: 80%; | |
margin: auto; | |
margin-top: 30px; | |
.chart-container { | |
height: 200px; | |
margin-top: -20px; | |
padding-bottom: 20px; | |
} | |
} | |
h2 { | |
display: inline-block; | |
margin: 0; | |
color: #828989; | |
font-weight: 300; | |
text-indent: 15px; | |
line-height: 30px; | |
} | |
.sleep-select-wrapper { | |
@extend .select-wrapper; | |
display: block; | |
float: right; | |
} | |
} | |
} | |
.bottom { | |
border-bottom: none !important; | |
border-top: 1px solid #dddfe1; | |
h2 { | |
margin: 35px 0; | |
font-size: 0.9em; | |
font-weight: 300; | |
} | |
} | |
.appointments { | |
margin: 0 20%; | |
.calendar-container { | |
height: 140px; | |
padding-top: 24px; | |
min-width: 185px; | |
} | |
.calendar { | |
width: 92px; | |
float: left; | |
background: #f1f4f4; | |
padding: 14px 0; | |
.date { | |
font-size: 0.7em; | |
} | |
.month { | |
display: block; | |
text-transform: capitalize; | |
} | |
} | |
.content { | |
box-sizing: margin-box; | |
width: 50%; | |
float: left; | |
.appointment-table { | |
margin-left: 15px; | |
height: 92px; | |
text-align: left; | |
font-size: 0.55em; | |
border-collapse: collapse; | |
td { | |
padding: 0; | |
} | |
} | |
} | |
} | |
.map-overlay { | |
position: absolute; | |
top: 0; | |
left: 50%; | |
transform: translateX(-50%); | |
.steps { | |
display: block; | |
font-size: 2em; | |
color: #58676c; | |
} | |
.distance { | |
display: block; | |
font-size: 0.75em; | |
color: #a6acaf; | |
font-weight: 400; | |
} | |
} | |
} | |
.search-column { | |
background: #E3E8E9; | |
width: 15%; | |
z-index: 1; | |
@media only screen and (max-width: 1250px) { | |
display: none; | |
} | |
h3 { | |
text-transform: uppercase; | |
font-size: 0.9em; | |
font-weight: 400; | |
color: #92999A; | |
margin: 20px 0; | |
letter-spacing: 1px; | |
} | |
.search-container { | |
position: relative; | |
width: 100%; | |
height: 65px; | |
img { | |
position: absolute; | |
left: 10px; | |
top: 50%; | |
transform: translateY(-50%); | |
width: 25px; | |
height: 25px; | |
} | |
input { | |
box-sizing: border-box; | |
width: 100%; | |
height: 100%; | |
border: 0; | |
background: #D9DFE1; | |
color: #9DA5A6; | |
font-size: 1.25em; | |
font-weight: 300; | |
text-indent: 20%; | |
} | |
} | |
.activity-list { | |
width: 80%; | |
margin: auto; | |
} | |
.activity { | |
font-size: 0; | |
height: 75px; | |
margin-bottom: 15px; | |
cursor: pointer; | |
.image-container { | |
display: inline-block; | |
width: 20%; | |
height: 55px; | |
img { | |
display: block; | |
border-radius: 50%; | |
} | |
} | |
.text { | |
display: inline-block; | |
width: calc(80% - 10px); | |
font-size: 0.75rem; | |
margin-left: 10px; | |
letter-spacing: 1px; | |
color: #646F73; | |
vertical-align: top; | |
} | |
.time-ago { | |
display: block; | |
margin-top: 3px; | |
color: #A9B1B2; | |
} | |
.name { | |
font-weight: 500; | |
color: darken(#606B70, 10%); | |
} | |
.name-large { | |
font-size: 1.3em; | |
} | |
.title { | |
display: block; | |
color: #A9B1B2; | |
} | |
} | |
.doctor { | |
@extend .activity; | |
height: 40px; | |
margin-bottom: 30px; | |
} | |
.find-doctor { | |
width: 200px; | |
height: 40px; | |
border-radius: 20px; | |
background: #F9FAFB; | |
border: 0; | |
font-size: 0.9em; | |
color: darken(#808F8F, 15%); | |
cursor: pointer; | |
} | |
} | |
.doctor-grid { | |
margin: auto; | |
img { | |
display: block; | |
} | |
} | |
.graph { | |
width: 110%; | |
margin-top: 70px; | |
margin-left: -7%; | |
height: 125px; | |
z-index: 0; | |
} | |
#temperatureGraph { | |
margin: auto; | |
} | |
#calorieGraph { | |
margin: auto; | |
} | |
#heartRateGraph { | |
margin: auto; | |
} | |
#time { | |
color: #979ea0; | |
} | |
#title { | |
color: #30cec2; | |
font-weight: 500; | |
} | |
#name { | |
color: #5e696d; | |
} | |
#expand { | |
color: #fdfefe; | |
font-weight: 400; | |
.background { | |
width: 65px; | |
height: 65px; | |
line-height: 65px; | |
background: #2bcdc1; | |
cursor: pointer; | |
} | |
} | |
#map { | |
width: 100%; | |
height: 314px; | |
opacity: 0.3; | |
} | |
.select-wrapper{ | |
display: inline-block; | |
position: relative; | |
&:after { | |
content: ''; | |
width: 9px; | |
height: 9px; | |
background: | |
url('https://svgshare.com/i/4xe.svg'); | |
background-size: 9px; | |
background-position: center; | |
position: absolute; | |
right: 10px; | |
top: 50%; | |
transform: translateY(-50%) | |
} | |
} | |
select { | |
position: relative; | |
font-family: 'Roboto', sans-serif; | |
font-size: 0.9em; | |
font-weight: 500; | |
margin-left: 20px; | |
border: 1px solid #d6dadc; | |
color: #5d7171; | |
width: 120px; | |
height: 30px; | |
border-radius: 25px; | |
text-indent: 7px; | |
-webkit-appearance: none; | |
-moz-appearance: none; | |
appearance: none; | |
outline: 0; | |
} | |
#sleepChart { | |
margin: 50px 0; | |
height: 200px; | |
} |
<link href="https://fonts.googleapis.com/css?family=Nunito:200,300,400|Roboto:300,400,500" rel="stylesheet" /> |