A dashboard concept designed by Jordan Hughes: https://dribbble.com/shots/16506804/attachments/11468776?mode=media
Icons from https://phosphoricons.com/
Logos from https://worldvectorlogo.com/
A Pen by synecdocheNORTH on CodePen.
A dashboard concept designed by Jordan Hughes: https://dribbble.com/shots/16506804/attachments/11468776?mode=media
Icons from https://phosphoricons.com/
Logos from https://worldvectorlogo.com/
A Pen by synecdocheNORTH on CodePen.
<header class="header"> | |
<div class="header-content responsive-wrapper"> | |
<div class="header-logo"> | |
<a href="#"> | |
<div> | |
<img src="https://assets.codepen.io/285131/untitled-ui-icon.svg" /> | |
</div> | |
<img src="https://assets.codepen.io/285131/untitled-ui.svg" /> | |
</a> | |
</div> | |
<div class="header-navigation"> | |
<nav class="header-navigation-links"> | |
<a href="#"> Home </a> | |
<a href="#"> Dashboard </a> | |
<a href="#"> Projects </a> | |
<a href="#"> Tasks </a> | |
<a href="#"> Reporting </a> | |
<a href="#"> Users </a> | |
</nav> | |
<div class="header-navigation-actions"> | |
<a href="#" class="button"> | |
<i class="ph-lightning-bold"></i> | |
<span>Upgrade now</span> | |
</a> | |
<a href="#" class="icon-button"> | |
<i class="ph-gear-bold"></i> | |
</a> | |
<a href="#" class="icon-button"> | |
<i class="ph-bell-bold"></i> | |
</a> | |
<a href="#" class="avatar"> | |
<img src="https://uifaces.co/our-content/donated/gPZwCbdS.jpg" alt="" /> | |
</a> | |
</div> | |
</div> | |
<a href="#" class="button"> | |
<i class="ph-list-bold"></i> | |
<span>Menu</span> | |
</a> | |
</div> | |
</header> | |
<main class="main"> | |
<div class="responsive-wrapper"> | |
<div class="main-header"> | |
<h1>Settings</h1> | |
<div class="search"> | |
<input type="text" placeholder="Search" /> | |
<button type="submit"> | |
<i class="ph-magnifying-glass-bold"></i> | |
</button> | |
</div> | |
</div> | |
<div class="horizontal-tabs"> | |
<a href="#">My details</a> | |
<a href="#">Profile</a> | |
<a href="#">Password</a> | |
<a href="#">Team</a> | |
<a href="#">Plan</a> | |
<a href="#">Billing</a> | |
<a href="#">Email</a> | |
<a href="#">Notifications</a> | |
<a href="#" class="active">Integrations</a> | |
<a href="#">API</a> | |
</div> | |
<div class="content-header"> | |
<div class="content-header-intro"> | |
<h2>Intergrations and connected apps</h2> | |
<p>Supercharge your workflow and connect the tool you use every day.</p> | |
</div> | |
<div class="content-header-actions"> | |
<a href="#" class="button"> | |
<i class="ph-faders-bold"></i> | |
<span>Filters</span> | |
</a> | |
<a href="#" class="button"> | |
<i class="ph-plus-bold"></i> | |
<span>Request integration</span> | |
</a> | |
</div> | |
</div> | |
<div class="content"> | |
<div class="content-panel"> | |
<div class="vertical-tabs"> | |
<a href="#" class="active">View all</a> | |
<a href="#">Developer tools</a> | |
<a href="#">Communication</a> | |
<a href="#">Productivity</a> | |
<a href="#">Browser tools</a> | |
<a href="#">Marketplace</a> | |
</div> | |
</div> | |
<div class="content-main"> | |
<div class="card-grid"> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/zeplin.svg" /></span> | |
<h3>Zeplin</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox" checked> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Collaboration between designers and developers.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/github.svg" /></span> | |
<h3>GitHub</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox" checked> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Link pull requests and automate workflows.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/figma.svg" /></span> | |
<h3>Figma</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox" checked> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Embed file previews in projects.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/zapier.svg" /></span> | |
<h3>Zapier</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox"> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Build custom automations and integrations with apps.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/notion.svg" /></span> | |
<h3>Notion</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox" checked> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Embed notion pages and notes in projects.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/slack.svg" /></span> | |
<h3>Slack</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox" checked> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Send notifications to channels and create projects.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/zendesk.svg" /></span> | |
<h3>Zendesk</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox" checked> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Link and automate Zendesk tickets.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/jira.svg" /></span> | |
<h3>Atlassian JIRA</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox"> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Plan, track, and release great software.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/dropbox.svg" /></span> | |
<h3>Dropbox</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox" checked> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Everything you need for work, all in one place.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/google-chrome.svg" /></span> | |
<h3>Google Chrome</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox" checked> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Link your Google account to share bookmarks across your entire team.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/discord.svg" /></span> | |
<h3>Discord</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox" checked> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Keep in touch with your customers without leaving the app.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
<article class="card"> | |
<div class="card-header"> | |
<div> | |
<span><img src="https://assets.codepen.io/285131/google-drive.svg" /></span> | |
<h3>Google Drive</h3> | |
</div> | |
<label class="toggle"> | |
<input type="checkbox"> | |
<span></span> | |
</label> | |
</div> | |
<div class="card-body"> | |
<p>Link your Google account to share files across your entire team.</p> | |
</div> | |
<div class="card-footer"> | |
<a href="#">View integration</a> | |
</div> | |
</article> | |
</div> | |
</div> | |
</div> | |
</div> | |
</main> |
// Nope. This is a concept design, so no menu or filter toggles work. But it looks good, doesn't it? |
<script src="https://unpkg.com/phosphor-icons"></script> |
@import url("https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"); | |
:root { | |
--c-text-primary: #282a32; | |
--c-text-secondary: #686b87; | |
--c-text-action: #404089; | |
--c-accent-primary: #434ce8; | |
--c-border-primary: #eff1f6; | |
--c-background-primary: #ffffff; | |
--c-background-secondary: #fdfcff; | |
--c-background-tertiary: #ecf3fe; | |
--c-background-quaternary: #e9ecf4; | |
} | |
body { | |
line-height: 1.5; | |
min-height: 100vh; | |
font-family: "Be Vietnam Pro", sans-serif; | |
background-color: var(--c-background-secondary); | |
color: var(--c-text-primary); | |
} | |
img { | |
display: block; | |
max-width: 100%; | |
} | |
:focus { | |
outline: 0; | |
} | |
.responsive-wrapper { | |
width: 90%; | |
max-width: 1280px; | |
margin-left: auto; | |
margin-right: auto; | |
} | |
.header { | |
display: flex; | |
align-items: center; | |
height: 80px; | |
border-bottom: 1px solid var(--c-border-primary); | |
background-color: var(--c-background-primary); | |
} | |
.header-content { | |
display: flex; | |
align-items: center; | |
& > a { | |
display: none; | |
} | |
@media (max-width: 1200px) { | |
justify-content: space-between; | |
& > a { | |
display: inline-flex; | |
} | |
} | |
} | |
.header-logo { | |
margin-right: 2.5rem; | |
a { | |
display: flex; | |
align-items: center; | |
div { | |
// outline: 2px solid; | |
flex-shrink: 0; | |
position: relative; | |
&:after { | |
display: block; | |
content: ""; | |
position: absolute; | |
left: 0; | |
top: auto; | |
right: 0; | |
bottom: 0; | |
overflow: hidden; | |
height: 50%; | |
border-bottom-left-radius: 8px; | |
border-bottom-right-radius: 8px; | |
background-color: rgba(#fff, 0.2); | |
backdrop-filter: blur(4px); | |
} | |
} | |
} | |
} | |
.header-navigation { | |
display: flex; | |
flex-grow: 1; | |
align-items: center; | |
justify-content: space-between; | |
@media (max-width: 1200px) { | |
display: none; | |
} | |
} | |
.header-navigation-links { | |
display: flex; | |
align-items: center; | |
a { | |
text-decoration: none; | |
color: var(--c-text-action); | |
font-weight: 500; | |
transition: 0.15s ease; | |
& + * { | |
margin-left: 1.5rem; | |
} | |
&:hover, | |
&:focus { | |
color: var(--c-accent-primary); | |
} | |
} | |
} | |
.header-navigation-actions { | |
display: flex; | |
align-items: center; | |
& > .avatar { | |
margin-left: 0.75rem; | |
} | |
& > .icon-button + .icon-button { | |
margin-left: 0.25rem; | |
} | |
& > .button + .icon-button { | |
margin-left: 1rem; | |
} | |
} | |
.button { | |
font: inherit; | |
color: inherit; | |
text-decoration: none; | |
display: inline-flex; | |
align-items: center; | |
justify-content: center; | |
padding: 0 1em; | |
height: 40px; | |
border-radius: 8px; | |
line-height: 1; | |
border: 2px solid var(--c-border-primary); | |
color: var(--c-text-action); | |
font-size: 0.875rem; | |
transition: 0.15s ease; | |
background-color: var(--c-background-primary); | |
i { | |
margin-right: 0.5rem; | |
font-size: 1.25em; | |
} | |
span { | |
font-weight: 500; | |
} | |
&:hover, | |
&:focus { | |
border-color: var(--c-accent-primary); | |
color: var(--c-accent-primary); | |
} | |
} | |
.icon-button { | |
font: inherit; | |
color: inherit; | |
text-decoration: none; | |
display: inline-flex; | |
align-items: center; | |
justify-content: center; | |
width: 40px; | |
height: 40px; | |
border-radius: 8px; | |
color: var(--c-text-action); | |
transition: 0.15s ease; | |
i { | |
font-size: 1.25em; | |
} | |
&:focus, | |
&:hover { | |
background-color: var(--c-background-tertiary); | |
color: var(--c-accent-primary); | |
} | |
} | |
.avatar { | |
display: inline-flex; | |
align-items: center; | |
justify-content: center; | |
width: 44px; | |
height: 44px; | |
border-radius: 50%; | |
overflow: hidden; | |
} | |
.main { | |
padding-top: 3rem; | |
} | |
.main-header { | |
display: flex; | |
flex-wrap: wrap; | |
align-items: center; | |
justify-content: space-between; | |
h1 { | |
font-size: 1.75rem; | |
font-weight: 600; | |
line-height: 1.25; | |
@media (max-width: 550px) { | |
margin-bottom: 1rem; | |
} | |
} | |
} | |
.search { | |
position: relative; | |
display: flex; | |
align-items: center; | |
width: 100%; | |
max-width: 340px; | |
input { | |
font: inherit; | |
color: inherit; | |
text-decoration: none; | |
display: inline-flex; | |
align-items: center; | |
justify-content: center; | |
padding: 0 1em 0 36px; | |
height: 40px; | |
border-radius: 8px; | |
border: 2px solid var(--c-border-primary); | |
color: var(--c-text-action); | |
font-size: 0.875rem; | |
transition: 0.15s ease; | |
width: 100%; | |
line-height: 1; | |
&::placeholder { | |
color: var(--c-text-action); | |
} | |
&:focus, | |
&:hover { | |
border-color: var(--c-accent-primary); | |
} | |
} | |
button { | |
display: inline-flex; | |
align-items: center; | |
justify-content: center; | |
border: 0; | |
background-color: transparent; | |
position: absolute; | |
left: 12px; | |
top: 50%; | |
transform: translateY(-50%); | |
font-size: 1.25em; | |
color: var(--c-text-action); | |
padding: 0; | |
height: 40px; | |
} | |
} | |
.horizontal-tabs { | |
margin-top: 1.5rem; | |
display: flex; | |
align-items: center; | |
overflow-x: auto; | |
@media (max-width: 1000px) { | |
scrollbar-width: none; | |
position: relative; | |
&::-webkit-scrollbar { | |
display: none; | |
} | |
} | |
a { | |
display: inline-flex; | |
flex-shrink: 0; | |
align-items: center; | |
height: 48px; | |
padding: 0 0.25rem; | |
font-weight: 500; | |
color: inherit; | |
border-bottom: 3px solid transparent; | |
text-decoration: none; | |
transition: 0.15s ease; | |
&:hover, | |
&:focus, | |
&.active { | |
color: var(--c-accent-primary); | |
border-bottom-color: var(--c-accent-primary); | |
} | |
& + * { | |
margin-left: 1rem; | |
} | |
} | |
} | |
.content-header { | |
display: flex; | |
flex-wrap: wrap; | |
align-items: center; | |
justify-content: space-between; | |
padding-top: 3rem; | |
margin-top: -1px; | |
border-top: 1px solid var(--c-border-primary); | |
} | |
.content-header-intro { | |
h2 { | |
font-size: 1.25rem; | |
font-weight: 600; | |
} | |
p { | |
color: var(--c-text-secondary); | |
margin-top: 0.25rem; | |
font-size: 0.875rem; | |
margin-bottom: 1rem; | |
} | |
} | |
.content-header-actions { | |
a:first-child { | |
@media (min-width: 800px) { | |
display: none; | |
} | |
} | |
} | |
.content { | |
border-top: 1px solid var(--c-border-primary); | |
margin-top: 2rem; | |
display: flex; | |
align-items: flex-start; | |
} | |
.content-panel { | |
display: none; | |
max-width: 280px; | |
width: 25%; | |
padding: 2rem 1rem 2rem 0; | |
margin-right: 3rem; | |
@media (min-width: 800px) { | |
display: block; | |
} | |
} | |
.vertical-tabs { | |
display: flex; | |
flex-direction: column; | |
a { | |
display: flex; | |
align-items: center; | |
padding: 0.75em 1em; | |
background-color: transparent; | |
border-radius: 8px; | |
text-decoration: none; | |
font-weight: 500; | |
color: var(--c-text-action); | |
transition: 0.15s ease; | |
&:hover, | |
&:focus, | |
&.active { | |
background-color: var(--c-background-tertiary); | |
color: var(--c-accent-primary); | |
} | |
& + * { | |
margin-top: 0.25rem; | |
} | |
} | |
} | |
.content-main { | |
padding-top: 2rem; | |
padding-bottom: 6rem; | |
flex-grow: 1; | |
} | |
.card-grid { | |
display: grid; | |
grid-template-columns: repeat(1, 1fr); | |
column-gap: 1.5rem; | |
row-gap: 1.5rem; | |
@media (min-width: 600px) { | |
grid-template-columns: repeat(2, 1fr); | |
} | |
@media (min-width: 1200px) { | |
grid-template-columns: repeat(3, 1fr); | |
} | |
} | |
.card { | |
background-color: var(--c-background-primary); | |
box-shadow: 0 3px 3px 0 rgba(#000, 0.05), 0 5px 15px 0 rgba(#000, 0.05); | |
border-radius: 8px; | |
overflow: hidden; | |
display: flex; | |
flex-direction: column; | |
} | |
.card-header { | |
display: flex; | |
align-items: flex-start; | |
justify-content: space-between; | |
padding: 1.5rem 1.25rem 1rem 1.25rem; | |
div { | |
display: flex; | |
align-items: center; | |
span { | |
width: 40px; | |
height: 40px; | |
border-radius: 8px; | |
display: inline-flex; | |
align-items: center; | |
justify-content: center; | |
img { | |
// max-width: 85%; | |
max-height: 100%; | |
} | |
} | |
h3 { | |
margin-left: 0.75rem; | |
font-weight: 500; | |
} | |
} | |
} | |
.toggle { | |
span { | |
display: block; | |
width: 40px; | |
height: 24px; | |
border-radius: 99em; | |
background-color: var(--c-background-quaternary); | |
box-shadow: inset 1px 1px 1px 0 rgba(#000, 0.05); | |
position: relative; | |
transition: 0.15s ease; | |
&:before { | |
content: ""; | |
display: block; | |
position: absolute; | |
left: 3px; | |
top: 3px; | |
height: 18px; | |
width: 18px; | |
background-color: var(--c-background-primary); | |
border-radius: 50%; | |
box-shadow: 0 1px 3px 0 rgba(#000, 0.15); | |
transition: 0.15s ease; | |
} | |
} | |
input { | |
clip: rect(0 0 0 0); | |
clip-path: inset(50%); | |
height: 1px; | |
overflow: hidden; | |
position: absolute; | |
white-space: nowrap; | |
width: 1px; | |
&:checked + span { | |
background-color: var(--c-accent-primary); | |
&:before { | |
transform: translateX(calc(100% - 2px)); | |
} | |
} | |
&:focus + span { | |
box-shadow: 0 0 0 4px var(--c-background-tertiary); | |
} | |
} | |
} | |
.card-body { | |
padding: 1rem 1.25rem; | |
font-size: 0.875rem; | |
} | |
.card-footer { | |
margin-top: auto; | |
padding: 1rem 1.25rem; | |
display: flex; | |
align-items: center; | |
justify-content: flex-end; | |
border-top: 1px solid var(--c-border-primary); | |
a { | |
color: var(--c-text-action); | |
text-decoration: none; | |
font-weight: 500; | |
font-size: 0.875rem; | |
} | |
} | |
html { | |
&::-webkit-scrollbar { | |
width: 12px; | |
} | |
&::-webkit-scrollbar-thumb { | |
background-color: var(--c-text-primary); | |
border: 4px solid var(--c-background-primary); | |
border-radius: 99em; | |
} | |
} |