Settings Page
<link href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css" rel="stylesheet" />
@import "bourbon"
$sidebar-background: #2D3139 // sidebar menu background
$blue: #00BAFF // checkmark blue
$body-background: #0B9FED // blue
$foreground: rgba(black, 0.7)
$foreground--light: #B0B0B2 // light gray
$link-color--active: #0674D7 // blue
$link-color--hover: $link-color--active // blue
$checkmark-gray: #E6E6E6 // checkmark untoggled
$details-pane-background: #F7F9FA
$details-body-gutter: 60px
$headings: (h1, h2, h3, h4, h5, h6)
$checkbox-expand: 4px
body
color: $foreground
background-color: $body-background
font-family: Open Sans
line-heihgt: 1.5
margin: 0
ul
padding: 0
margin: 0
list-style-type: none
a
text-decoration: none
&:link, &:visited
color: $foreground--light
&:hover, &:active
color: $link-color--hover
p
font-size: 14px
margin-bottom: 0
#{$headings}
font-weight: 300
margin: 0
padding: 0
.wrapper
$width: 810px
display: flex
padding: 80px 20px
max-width: $width
min-width: $width
margin: 0 auto
// Sidebar to the left
.Sidebar
align-items: center
background-color: $sidebar-background
border: 1px solid rgba(black, 0.1)
border-radius: 4px
box-shadow: -5px 0px 60px 0 rgba(black, 0.6), inset 0 0 40px rgba(black, 0.1)
display: flex
margin: 60px 0
.Sidebar__nav-list
align-items: center
display: flex
flex-direction: column
justify-content: center
.Sidebar__nav-list__item
color: rgba(white, 0.3)
cursor: pointer
font-size: rem(28px)
padding: 20px 30px
text-align: center
&:hover
color: white
&--active
color: white
// The the content area
/**
* 1. z-indexed over the sidebar so the sidebar's shadow
* doesn't show over the main content area
*/
.Details
background-color: white
border-radius: 4px
box-shadow: -5px 0px 70px 0 rgba(black, 0.4)
flex: 1
position: relative
z-index: 1 /* [1] */
.Details__header
padding: 30px
.Details__title
color: rgba(black, 0.8)
font-size: 28px
font-weight: 300
letter-spacing: 1px
text-align: center
text-transform: uppercase
.Details__nav
padding: 0 $details-body-gutter
.Details__nav-list
display: flex
justify-content: space-between
.Details__nav-list__item
border-bottom: 2px solid transparent
color: $foreground--light
cursor: pointer
padding-bottom: 30px
position: relative
text-align: center
user-select: none
&:hover
border-color: $link-color--hover
&--active
border-color: $link-color--active
.Details__body
background: $details-pane-background
padding: 50px $details-body-gutter
border-radius: 4px
.Media
display: flex
justify-content: space-between
margin-bottom: 25px
.Media__side
vertical-align: middle
&--left
margin-right: 30px
&--right
margin-left: 30px
.Media__image
$width: 55px
width: 100%
max-width: $width
.Media__body
flex: 1
.checkbox
$width: 20px
$height: 20px
background-color: $checkmark-gray
border-radius: 50%
display: inline-block
position: relative
text-align: center
vertical-align: middle
+size($width $height)
&:before
background-color: $blue
border-radius: 50%
color: white
font-size: 32px
line-height: $height + ($checkbox-expand * 2)
opacity: 0
transition: all 0.1s ease-in
+position(absolute, 0)
// Hide the checkboxes
.checkbox-input
display: none
.checkbox-input:checked + .checkbox:before
opacity: 1
+position(absolute, -$checkbox-expand)
// Base button style
.Button
border-radius: 3px
border: 0
box-shadow: 0 2px 4px 0 rgba(black, 0.1), 0 10px 20px 0 rgba(black, 0.1)
color: white
cursor: pointer
display: inline-block
font-weight: 500
font-size: 13px
letter-spacing: 1px
outline: 0
padding: 16px 36px
position: relative
text-align: center
text-transform: uppercase
transition: box-shadow 0.15s, background-color 0.15s
user-select: none
vertical-align: middle
will-change: box-shadow, background-color, color
// Sync button
&--sync
$width: 70px
$height: $width
background-color: $blue
border-radius: 50%
color: white
font-size: 32px
line-height: $height
text-align: center
padding: 0
+size($width $height)
> span
line-height: $height
#sync
bottom: 0
position: absolute
right: 0
transform: translate(-50%, 50%)
// Helpers
.u-flex
display: flex
flex-wrap: wrap
.u-flex-center--v
display: flex
align-items: center
A dribbble design made by Jaroslav Getman turned into HTML and CSS. https://dribbble.com/shots/2342992-007-Settings
A Pen by HARUN PEHLİVAN on CodePen.
/*
* https://dribbble.com/shots/2342992-007-Settings
*/
const dropboxURI = `data:image/png;base64,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`;
document.querySelector('#dropbox-sync').src = dropboxURI;
[
{
src: 'https://upload.wikimedia.org/wikipedia/commons/9/9b/Logo_of_Google_Drive.png',
title: 'Google Drive',
body: 'Configure to sync design and code files from Google Drive',
},
{
icon: 'ion-social-dropbox',
title: 'Dropbox Sync',
body: 'Configure to sync design and code files from Dropbox',
},
{
src: 'https://upload.wikimedia.org/wikipedia/en/8/88/Adobe_Creative_Cloud_Logo.png',
title: 'Adobe Creative Cloud',
body: 'Configure to sync design and code files from Adobe Creative Cloud',
},
{
src: 'https://upload.wikimedia.org/wikipedia/commons/0/00/Box_cyan.png',
title: 'Box',
body: 'Configure to sync design and code files from Box',
},
{
src: 'https://upload.wikimedia.org/wikipedia/en/f/f0/ICloud_logo_%28new%29.png',
title: 'iCloud',
body: 'Configure to sync design and code files from iCloud',
},
]
//- https://dribbble.com/shots/2342992-007-Settings
- var sidebarIcons = ['ion-person-stalker', 'ion-music-note', 'ion-image', 'ion-android-film', 'ion-social-dribbble-outline', 'ion-levels'];
- var navigationItems = ['Profile', 'Password', 'Notifications', 'Sync', 'Advanced'];
- var detailOptionItems = [{src: 'https://upload.wikimedia.org/wikipedia/commons/9/9b/Logo_of_Google_Drive.png', title: 'Google Drive', body: 'Configure to sync design and code files from Google Drive', }, {src: '', title: 'Dropbox Sync', body: 'Configure to sync design and code files from Dropbox', }, {src: 'https://upload.wikimedia.org/wikipedia/en/8/88/Adobe_Creative_Cloud_Logo.png', title: 'Adobe Creative Cloud', body: 'Configure to sync design and code files from Adobe Creative Cloud', }, {src: 'https://upload.wikimedia.org/wikipedia/commons/0/00/Box_cyan.png', title: 'Box', body: 'Configure to sync design and code files from Box', }, {src: 'https://upload.wikimedia.org/wikipedia/en/f/f0/ICloud_logo_%28new%29.png', title: 'iCloud', body: 'Configure to sync design and code files from iCloud', }, ];
- var checkboxId = 0;
- var checked = false;
mixin detailsOption(src, title, body)
li.Details__options-list__item
.Media
.Media__side.Media__side--left
- var id = title.toLowerCase().replace(/\s+/, '-');
img.Media__image(id=id, src=src, alt="")
.Media__body.Media.u-flex-center--v
div
h3=title
p=body
div.Media__side.Media__side--right
- checkboxId++
if checkboxId == 1 || checkboxId == 4
- checked = true
else
- checked = false;
input.checkbox-input(id="DetailsOptionCheckbox" + checkboxId, checked=checked, type="checkbox")
label.checkbox.ion-ios-checkmark-empty(for="DetailsOptionCheckbox" + checkboxId)
.wrapper
aside.Sidebar
nav.Sidebar__nav(role="navigation")
ul.Sidebar__nav-list
each icon, index in sidebarIcons
if index < sidebarIcons.length - 1
li(class="Sidebar__nav-list__item " + icon)
else
li(class="Sidebar__nav-list__item Sidebar__nav-list__item--active " + icon)
section.Details
header.Details__header
h1.Details__title Settings
nav.Details__nav(role="navigation")
ul.Details__nav-list
each item in navigationItems
if item == 'Sync'
li.Details__nav-list__item.Details__nav-list__item--active=item
else
li.Details__nav-list__item=item
.Details__body
ul.Details__options-list
each item in detailOptionItems
+detailsOption(item.src, item.title, item.body)
button#sync.Button.Button--sync
span.a-spin.ion-loop