Improvement for OAuth2 Server. Implicit, Resource Owner Password and Client Credentials were added, and refactoring of oauth2 endpoints

This commit is contained in:
eriknyk
2014-08-20 11:36:20 -04:00
parent dfb0647c80
commit c108ea8678
17 changed files with 1609 additions and 64 deletions

View File

@@ -0,0 +1,11 @@
/*!
Pure v0.5.0
Copyright 2014 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
https://github.com/yui/pure/blob/master/LICENSE.md
*/
/*!
normalize.css v1.1.3 | MIT License | git.io/normalize
Copyright (c) Nicolas Gallagher and Jonathan Neal
*/
/*! normalize.css v1.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block}

View File

@@ -0,0 +1,197 @@
/**
* Coloring h1 a bit off black, removing bold, and shadowing
* a touch.
*/
h1 {
color: #505050;
text-shadow: 2px 1px 3px rgba(200, 200, 200, 0.43);
font-weight: normal;
}
/**
* Using some off white for the background color and
* padding the top.
*/
body
{
background: whitesmoke;
padding-top: 60px;
}
/**
* Make links smaller,
*/
a
{
text-shadow: 2px 1px 3px rgba(200, 200, 200, 0.43);
padding-bottom: 5px;
padding-top: 10px;
font-size: 80%;
color: #6464ff;
text-decoration: none;
}
pre
{
margin-top: 0px;
margin-bottom: 0px;
}
.title {
width: 500px;
margin-left: auto;
margin-right: auto;
}
/**
* Upper box that contains the title Authorization Server, the UserName, and Password fields
*/
.upper-box {
width: 350px;
border-top: 1px solid;
border-left: 1px solid;
border-right: 1px solid;
border-color: lightgrey;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
padding-top: 5px;
padding-left: 20px;
padding-bottom: 10px;
box-shadow: 1px 1px 5px #e7e7e7;
margin-left: auto;
margin-right: auto;
/**
* Gradient calculated from gradient calculator of
* http://gradients.glrzad.com/
*/
background-image: linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -o-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -moz-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -webkit-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -ms-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.21, rgb(249,250,252)),
color-stop(0.67, rgb(245,247,250)),
color-stop(0.94, rgb(247,249,255))
);
}
/**
* Bottom box that contains the "Sign in" button
*/
.bottom-box {
border:1px solid;
border-color: lightgrey;
border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
width: 350px;
padding-top: 15px;
padding-left: 20px;
padding-bottom: 15px;
box-shadow: 1px 3px 1px #e7e7e7;
margin-left: auto;
margin-right: auto;
/**
* Gradient calculated from gradient calculator of
* http://gradients.glrzad.com/
*/
background-image: linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -o-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -moz-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -webkit-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -ms-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.21, rgb(242,245,250)),
color-stop(0.67, rgb(242,245,250)),
color-stop(0.94, rgb(242,245,255))
);
}
/**
* Okay, you caught me. It's a hack to make this look centered.
*
* TODO Fix this, can't figure out how to get this to center correctly.
* It's currently anchored to the fieldset and that's causing issues.
*/
.main-text {
padding-left: 100px;
padding-top: 20px;
font-size: 180%;
color: #505050;
text-shadow: 2px 1px 3px rgba(200, 200, 200, 0.43);
font-weight: normal;
}
/**
* Okay, you caught me. It's a hack to make this look centered.
*
* TODO Fix this, can't figure out how to get this to center correctly.
* It's currently anchored to the fieldset and that's causing issues.
*/
.subtext {
padding-left: 80px;
font-size: 110%;
color: #969696;
text-shadow: 2px 1px 3px rgba(230, 230, 230, 0.42);
font-weight: normal;
}
/**
* The username and password labels
*/
.labels {
color: #505050;
text-shadow: 2px 1px 3px rgba(200, 200, 200, 0.43);
padding-top: 10px;
}
/**
* Input fields so I can make it slightly larger than the default,
* and I can also pad anything trying to touch it on the right.
*/
.input-fields {
padding-right: 20px;
font-size: 130%;
}
/**
* This makes all the placeholder text italic. Nice trick I
* picked up from stack overflow:
* http://stackoverflow.com/questions/16291925/how-to-make-value-text-in-form-be-italic
*/
::-webkit-input-placeholder { font-style: italic; }
::-moz-placeholder { font-style: italic; }
:-ms-input-placeholder { font-style: italic; }
/**
* Very specific to the sign on button.
*/
.accept-cancel-buttons {
padding-left: 20px;
padding-right: 20px;
text-align: right;
}
.from-text {
padding-top: 10px;
text-align: center;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,368 @@
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
a {
text-decoration: none;
color: rgb(61, 146, 201);
}
a:hover,
a:focus {
text-decoration: underline;
}
h3 {
font-weight: 100;
}
/* LAYOUT CSS */
.pure-img-responsive {
max-width: 100%;
height: auto;
}
#layout {
padding: 0;
}
.header {
text-align: center;
top: auto;
margin: 3em auto;
}
.sidebar {
background: rgb(61, 79, 93);
color: #fff;
}
.brand-title,
.brand-tagline {
margin: 0;
}
.brand-title {
text-transform: uppercase;
}
.brand-tagline {
font-weight: 300;
color: rgb(176, 202, 219);
}
.nav-list {
margin: 0;
padding: 0;
list-style: none;
}
.nav-item {
display: inline-block;
*display: inline;
zoom: 1;
}
.nav-item a {
background: transparent;
border: 2px solid rgb(176, 202, 219);
color: #fff;
margin-top: 1em;
letter-spacing: 0.05em;
text-transform: uppercase;
font-size: 85%;
}
.nav-item a:hover,
.nav-item a:focus {
border: 2px solid rgb(61, 146, 201);
text-decoration: none;
}
.content-subhead {
text-transform: uppercase;
color: #aaa;
border-bottom: 1px solid #eee;
padding: 0.4em 0;
font-size: 80%;
font-weight: 500;
letter-spacing: 0.1em;
}
.content {
padding: 2em 1em 0;
}
.post {
padding-bottom: 2em;
}
.post-title {
font-size: 2em;
color: #222;
margin-bottom: 0.2em;
}
.post-avatar {
border-radius: 50px;
float: right;
margin-left: 1em;
}
.post-description {
font-family: Georgia, "Cambria", serif;
color: #444;
line-height: 1.8em;
}
.post-meta {
color: #999;
font-size: 90%;
margin: 0;
}
.post-category {
margin: 0 0.1em;
padding: 0.3em 1em;
color: #fff;
background: #999;
font-size: 80%;
}
.post-category-design {
background: #5aba59;
}
.post-category-pure {
background: #4d85d1;
}
.post-category-yui {
background: #8156a7;
}
.post-category-js {
background: #df2d4f;
}
.post-images {
margin: 1em 0;
}
.post-image-meta {
margin-top: -3.5em;
margin-left: 1em;
color: #fff;
text-shadow: 0 1px 1px #333;
}
.footer {
text-align: center;
padding: 1em 0;
}
.footer a {
color: #ccc;
font-size: 80%;
}
.footer .pure-menu a:hover,
.footer .pure-menu a:focus {
background: none;
}
@media (min-width: 48em) {
.content {
padding: 2em 3em 0;
margin-left: 25%;
}
.header {
margin: 80% 2em 0;
text-align: right;
}
.sidebar {
position: fixed;
top: 0;
bottom: 0;
}
}
pre {
font-size: 14px;
}
/**
* Coloring h1 a bit off black, removing bold, and shadowing
* a touch.
*/
h1 {
color: #505050;
text-shadow: 2px 1px 3px rgba(200, 200, 200, 0.43);
font-weight: normal;
}
/**
* Using some off white for the background color and
* padding the top.
*/
body
{
background: whitesmoke;
padding-top: 60px;
}
/**
* Make links smaller,
*/
pre
{
margin-top: 0px;
margin-bottom: 0px;
}
.title {
width: 500px;
margin-left: auto;
margin-right: auto;
}
/**
* Upper box that contains the title Authorization Server, the UserName, and Password fields
*/
.upper-box {
width: 350px;
border-top: 1px solid;
border-left: 1px solid;
border-right: 1px solid;
border-color: lightgrey;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
padding-top: 5px;
padding-left: 20px;
padding-bottom: 10px;
box-shadow: 1px 1px 5px #e7e7e7;
margin-left: auto;
margin-right: auto;
/**
* Gradient calculated from gradient calculator of
* http://gradients.glrzad.com/
*/
background-image: linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -o-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -moz-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -webkit-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -ms-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.21, rgb(249,250,252)),
color-stop(0.67, rgb(245,247,250)),
color-stop(0.94, rgb(247,249,255))
);
}
/**
* Bottom box that contains the "Sign in" button
*/
.bottom-box {
border:1px solid;
border-color: lightgrey;
border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
width: 350px;
padding-top: 15px;
padding-left: 20px;
padding-bottom: 15px;
box-shadow: 1px 3px 1px #e7e7e7;
margin-left: auto;
margin-right: auto;
/**
* Gradient calculated from gradient calculator of
* http://gradients.glrzad.com/
*/
background-image: linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -o-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -moz-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -webkit-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -ms-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.21, rgb(242,245,250)),
color-stop(0.67, rgb(242,245,250)),
color-stop(0.94, rgb(242,245,255))
);
}
/**
* Okay, you caught me. It's a hack to make this look centered.
*
* TODO Fix this, can't figure out how to get this to center correctly.
* It's currently anchored to the fieldset and that's causing issues.
*/
.main-text {
padding-left: 100px;
padding-top: 20px;
font-size: 180%;
color: #505050;
text-shadow: 2px 1px 3px rgba(200, 200, 200, 0.43);
font-weight: normal;
}
/**
* Okay, you caught me. It's a hack to make this look centered.
*
* TODO Fix this, can't figure out how to get this to center correctly.
* It's currently anchored to the fieldset and that's causing issues.
*/
.subtext {
padding-left: 80px;
font-size: 110%;
color: #969696;
text-shadow: 2px 1px 3px rgba(230, 230, 230, 0.42);
font-weight: normal;
}
/**
* The username and password labels
*/
.labels {
color: #505050;
text-shadow: 2px 1px 3px rgba(200, 200, 200, 0.43);
padding-top: 10px;
}
/**
* Input fields so I can make it slightly larger than the default,
* and I can also pad anything trying to touch it on the right.
*/
.input-fields {
padding-right: 20px;
font-size: 130%;
}
/**
* This makes all the placeholder text italic. Nice trick I
* picked up from stack overflow:
* http://stackoverflow.com/questions/16291925/how-to-make-value-text-in-form-be-italic
*/
::-webkit-input-placeholder { font-style: italic; }
::-moz-placeholder { font-style: italic; }
:-ms-input-placeholder { font-style: italic; }
/**
* Very specific to the sign on button.
*/
.accept-cancel-buttons {
padding-left: 20px;
padding-right: 20px;
text-align: right;
}
.from-text {
padding-top: 10px;
text-align: center;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,174 @@
/**
* Coloring h1 a bit off black, removing bold, and shadowing
* a touch.
*/
h1 {
color: #505050;
text-shadow: 2px 1px 3px rgba(200, 200, 200, 0.43);
font-weight: normal;
}
/**
* Using some off white for the background color and
* padding the top.
*/
body
{
background: whitesmoke;
padding-top: 60px;
}
/**
* Make links smaller,
*/
a
{
text-shadow: 2px 1px 3px rgba(200, 200, 200, 0.43);
padding-bottom: 5px;
padding-top: 10px;
font-size: 80%;
color: #6464ff;
text-decoration: none;
}
pre
{
margin-top: 0px;
margin-bottom: 0px;
}
/**
* Upper box that contains the title Authorization Server, the UserName, and Password fields
*/
.upper-box {
width: 350px;
border-top: 1px solid;
border-left: 1px solid;
border-right: 1px solid;
border-color: lightgrey;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
padding-top: 5px;
padding-left: 20px;
padding-bottom: 35px;
box-shadow: 1px 1px 5px #e7e7e7;
margin-left: auto;
margin-right: auto;
/**
* Gradient calculated from gradient calculator of
* http://gradients.glrzad.com/
*/
background-image: linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -o-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -moz-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -webkit-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -ms-linear-gradient(bottom, rgb(249,250,252) 21%, rgb(245,247,250) 67%, rgb(247,249,255) 94%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.21, rgb(249,250,252)),
color-stop(0.67, rgb(245,247,250)),
color-stop(0.94, rgb(247,249,255))
);
}
/**
* Bottom box that contains the "Sign in" button
*/
.bottom-box {
border:1px solid;
border-color: lightgrey;
border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
width: 350px;
padding-top: 15px;
padding-left: 20px;
padding-bottom: 15px;
box-shadow: 1px 3px 1px #e7e7e7;
margin-left: auto;
margin-right: auto;
/**
* Gradient calculated from gradient calculator of
* http://gradients.glrzad.com/
*/
background-image: linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -o-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -moz-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -webkit-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -ms-linear-gradient(bottom, rgb(242,245,250) 21%, rgb(242,245,250) 67%, rgb(242,245,255) 94%);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.21, rgb(242,245,250)),
color-stop(0.67, rgb(242,245,250)),
color-stop(0.94, rgb(242,245,255))
);
}
/**
* Okay, you caught me. It's a hack to make this look centered.
*
* TODO Fix this, can't figure out how to get this to center correctly.
* It's currently anchored to the fieldset and that's causing issues.
*/
.title-padding {
padding-left: 15px;
}
/**
* The username and password labels
*/
.labels {
color: #505050;
text-shadow: 2px 1px 3px rgba(200, 200, 200, 0.43);
padding-bottom: 5px;
padding-top: 10px;
}
/**
* Input fields so I can make it slightly larger than the default,
* and I can also pad anything trying to touch it on the right.
*/
.input-fields {
padding-right: 20px;
font-size: 130%;
}
/**
* This makes all the placeholder text italic. Nice trick I
* picked up from stack overflow:
* http://stackoverflow.com/questions/16291925/how-to-make-value-text-in-form-be-italic
*/
::-webkit-input-placeholder { font-style: italic; }
::-moz-placeholder { font-style: italic; }
:-ms-input-placeholder { font-style: italic; }
/**
* Very specific to the sign on button.
*/
.sign-in-button {
padding-right: 20px;
text-align: right;
}
/**
* Very specific to the "from website" link
*/
.from-text {
padding-top: 10px;
text-align: center;
}

View File

@@ -0,0 +1,8 @@
body {
padding: 50px;
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
}
a {
color: #00B7FF;
}

View File

@@ -0,0 +1,238 @@
body {
color: #777;
}
.pure-img-responsive {
max-width: 100%;
height: auto;
}
/*
Add transition to containers so they can push in and out.
*/
#layout,
#menu,
.menu-link {
-webkit-transition: all 0.2s ease-out;
-moz-transition: all 0.2s ease-out;
-ms-transition: all 0.2s ease-out;
-o-transition: all 0.2s ease-out;
transition: all 0.2s ease-out;
}
/*
This is the parent `<div>` that contains the menu and the content area.
*/
#layout {
position: relative;
padding-left: 0;
}
#layout.active {
position: relative;
left: 150px;
}
#layout.active #menu {
left: 150px;
width: 150px;
}
#layout.active .menu-link {
left: 150px;
}
/*
The content `<div>` is where all your content goes.
*/
.content {
margin: 0;
padding: 0 2em;
max-width: 800px;
margin-bottom: 50px;
line-height: 1.6em;
}
.header {
margin: 0;
color: #333;
text-align: center;
padding: 2.5em 2em 0;
border-bottom: 1px solid #eee;
}
.header h1 {
margin: 0.2em 0;
font-size: 3em;
font-weight: 300;
}
.header h2 {
font-weight: 300;
color: #ccc;
padding: 0;
margin-top: 0;
}
.content-subhead {
margin: 50px 0 20px 0;
font-weight: 300;
color: #888;
}
/*
The `#menu` `<div>` is the parent `<div>` that contains the `.pure-menu` that
appears on the left side of the page.
*/
#menu {
margin-left: -150px; /* "#menu" width */
width: 150px;
position: fixed;
top: 0;
left: 0;
bottom: 0;
z-index: 1000; /* so the menu or its navicon stays above all content */
background: #191818;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
/*
All anchors inside the menu should be styled like this.
*/
#menu a {
color: #999;
border: none;
padding: 0.6em 0 0.6em 0.6em;
}
/*
Remove all background/borders, since we are applying them to #menu.
*/
#menu .pure-menu,
#menu .pure-menu ul {
border: none;
background: transparent;
}
/*
Add that light border to separate items into groups.
*/
#menu .pure-menu ul,
#menu .pure-menu .menu-item-divided {
border-top: 1px solid #333;
}
/*
Change color of the anchor links on hover/focus.
*/
#menu .pure-menu li a:hover,
#menu .pure-menu li a:focus {
background: #333;
}
/*
This styles the selected menu item `<li>`.
*/
#menu .pure-menu-selected,
#menu .pure-menu-heading {
background: #1f8dd6;
}
/*
This styles a link within a selected menu item `<li>`.
*/
#menu .pure-menu-selected a {
color: #fff;
}
/*
This styles the menu heading.
*/
#menu .pure-menu-heading {
font-size: 110%;
color: #fff;
margin: 0;
}
/* -- Dynamic Button For Responsive Menu -------------------------------------*/
/*
The button to open/close the Menu is custom-made and not part of Pure. Here's
how it works:
*/
/*
`.menu-link` represents the responsive menu toggle that shows/hides on
small screens.
*/
.menu-link {
position: fixed;
display: block; /* show this only on small screens */
top: 0;
left: 0; /* "#menu width" */
background: #000;
background: rgba(0,0,0,0.7);
font-size: 10px; /* change this value to increase/decrease button size */
z-index: 10;
width: 2em;
height: auto;
padding: 2.1em 1.6em;
}
.menu-link:hover,
.menu-link:focus {
background: #000;
}
.menu-link span {
position: relative;
display: block;
}
.menu-link span,
.menu-link span:before,
.menu-link span:after {
background-color: #fff;
width: 100%;
height: 0.2em;
}
.menu-link span:before,
.menu-link span:after {
position: absolute;
margin-top: -0.6em;
content: " ";
}
.menu-link span:after {
margin-top: 0.6em;
}
/* -- Responsive Styles (Media Queries) ------------------------------------- */
/*
Hides the menu at `48em`, but modify this based on your app's needs.
*/
@media (min-width: 48em) {
.header,
.content {
padding-left: 2em;
padding-right: 2em;
}
#layout {
padding-left: 150px; /* left col width "#menu" */
left: 0;
}
#menu {
left: 150px;
}
.menu-link {
position: fixed;
left: 150px;
display: none;
}
#layout.active .menu-link {
left: 150px;
}
}