toggle-js
Version:
A simple toggle script for menus, accordions, navigation, and more.
267 lines (224 loc) • 3.64 kB
CSS
/* box sizing */
*,
*::before,
*::after {
box-sizing: border-box;
}
/* document */
body {
margin: 0;
background: #f5f5f5;
font-size: 16px;
font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
color: #555;
line-height: 1.4;
}
/* links */
a {
color: #2e97d2;
text-decoration: none;
}
/* headings */
h1,
h2 {
font-size: 1.25rem;
font-weight: 500;
margin: 0 0 .2rem;
}
h3 {
font-size: 1rem;
font-weight: 500;
margin: 0;
}
/* paragraphs */
p {
margin: 0 0 1.5rem;
}
/* lists */
p + ul {
list-style-type: square;
margin: 0 0 1.5rem;
}
p + ul li {
margin: 0 0 .5rem;
}
/* cards */
.card {
background: #fff;
margin: 0 0 1.5rem;
padding: 1.5rem;
}
/* rules */
hr {
background: rgba(0, 0, 0, 0.1);
border: 0;
height: 1px;
margin: 2.5rem 0;
}
/* code */
pre {
background: #fff;
font-family: 'Fira Code', 'Lucida Console', monospace;
font-size: 14px;
line-height: 1.75;
margin: 0 0 1.5rem;
overflow-x: auto;
padding: 1.5rem;
}
p code {
background: #f5f5f5;
border-radius: 3px;
font-family: 'Fira Code', 'Lucida Console', monospace;
font-size: 14px;
padding: .1rem .25rem;
}
.hljs {
background-color: transparent;
overflow-x: inherit;
padding: 0;
}
/* container */
.container {
max-width: 60rem;
margin: auto;
padding: 1.5rem;
}
/* nav bar */
.navbar {
background: #fff;
}
.navbar > .container {
padding-top: 0;
padding-bottom: 0;
}
/* buttons */
.btn,
.menu .toggle-btn {
display: inline-block;
padding: 1rem 1.25rem;
color: #fff;
background: #2e97d2;
text-decoration: none;
}
button.btn,
.menu .toggle-btn {
border: 0;
cursor: pointer;
font-size: inherit;
}
.menu .toggle-btn {
padding: .875rem 1.25rem;
}
/* menus */
.menu {
background: #fff;
border-top: 1px solid rgba(0, 0, 0, 0.05);
}
.menu ul {
list-style: none;
margin: 0;
padding: 0;
}
.menu ul ul {
background-color: rgba(0, 0, 0, 0.015);
}
.menu a {
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
display: block;
padding: .75rem 1.25rem;
}
.menu ul ul a {
padding-left: 2.75rem;
}
.menu ul ul ul a {
padding-left: 4.25rem;
}
/* horizontal menus */
.menu.horizontal {
border-top: 0;
}
.menu.horizontal a {
border-bottom: 0;
}
.menu.horizontal ul ul {
background: #fff;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
font-size: .9rem;
margin-top: 1px;
padding: .5rem 0;
width: 140px;
}
.menu.horizontal ul ul ul {
margin-left: 1px;
margin-top: 0;
}
.menu.horizontal ul ul a,
.menu.horizontal ul ul ul a {
padding: .5rem 1.25rem;
}
/* context menus */
.context {
display: inline-block;
}
.context .toggle {
background: #fff;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
font-size: 0.9rem;
padding: .75rem 1.25rem;
}
.context .toggle ul {
list-style: none;
margin: 1px 0 0;
padding: 0;
}
.context .toggle a {
color: #2e97d2;
display: block;
padding: 0.5rem 0;
text-decoration: none;
}
/* accordions */
.accordion-header {
background: #2e97d2;
color: #fff;
display: block;
margin-top: 1px;
padding: 1rem;
}
.accordion-header::after {
float: right;
}
.accordion-panel {
background: #fff;
padding: 1.5rem;
}
/* tabs */
.tabs {
border-bottom: .2rem solid #2e97d2;
list-style: none;
margin: 0;
padding: 0;
}
.tabs::after {
clear: both;
content: '';
display: block;
}
.tabs > li {
float: left;
margin-right: .2rem;
}
.tabs > li > a {
background: #aaa;
color: #fff;
display: block;
padding: 1rem 1.25rem;
text-decoration: none;
}
.tabs > li > a.tab-active {
background: #2e97d2;
}
.tab-panel {
background: #fff;
padding: 1.5rem;
}