Skip to content

Instantly share code, notes, and snippets.

@Saminou24
Created October 3, 2013 23:22
Show Gist options
  • Save Saminou24/6818639 to your computer and use it in GitHub Desktop.
Save Saminou24/6818639 to your computer and use it in GitHub Desktop.
A Pen by Hugo Darby-Brown.
<section>
<h1>YAUI Kit v2</h1>
<h4>(Yet Another UI kit part 2)</h4>
<h2>Color Picker v2</h2>
<div class="ui colors clearfix">
<div id="red"></div>
<div id="green"></div>
<div id="blue"></div>
</div>
<h2>Ratings</h2>
<fieldset class="rating ui">
<input type="radio" id="star5" name="rating" value="5" /><label for="star5" title="Rocks!">5 stars</label>
<input type="radio" id="star4" name="rating" value="4" /><label for="star4" title="Pretty good">4 stars</label>
<input type="radio" id="star3" name="rating" value="3" /><label for="star3" title="Meh">3 stars</label>
<input type="radio" id="star2" name="rating" value="2" /><label for="star2" title="Kinda bad">2 stars</label>
<input type="radio" id="star1" name="rating" value="1" /><label for="star1" title="Sucks big time">1 star</label>
</fieldset>
<h2>Progress Steps</h2>
<ol class="ui progress">
<li class="active">
<span>Step 1</span><span>1</span>
</li>
<li class="active">
<span>Step 2</span><span>2</span>
</li>
<li>
<span>Step 3</span><span>3</span>
</li>
<li>
<span>Step 4</span><span>4</span>
</li>
</ol>
<h2>Video</h2>
<div class="ui video">
<div id="video-container">
<!-- Video -->
<video id="video" width="100%" height="189">
<source src="http://video-js.zencoder.com/oceans-clip.webm" type="video/webm">
<source src="http://video-js.zencoder.com/oceans-clip.ogv" type="video/ogv">
<source src="http://video-js.zencoder.com/oceans-clip.mp4" type="video/mp4">
<p>
Your browser doesn't support HTML5 video.
<a href="videos/mikethefrog.mp4">Download</a> the video instead.
</p>
</video>
<!-- Video Controls -->
<div id="video-controls">
<button type="button" id="play-pause"><span class="fontawesome-play"></span></button>
<input type="range" id="seek-bar" value="0">
<button type="button" id="mute"><span class="fontawesome-volume-off"></span></button>
<input type="range" id="volume-bar" min="0" max="1" step="0.1" value="1">
<button type="button" id="full-screen"><span class="fontawesome-fullscreen"></span></button>
</div>
</div>
</div>
<h2>Menu Notifications</h2>
<div class="ui menu-notification">
<ul>
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
<li>Item4</li>
<li class="notification-sml">Item5</li>
</ul>
</div>
<h2>Menu</h2>
<div class="menu ui">
<div>
Menu
<span class="fontawesome-caret-down"></span>
</div>
<ul>
<li>Menu Item 1</li>
<li>Menu Item 2</li>
<li>Menu Item 3</li>
<li>Menu Item 4</li>
</ul>
</div>
<h2>Slider</h2>
<div class="ui">
<input type="range" min="0" max="50" value="7" step="0"/>
</div>
<h2>Progress Bar</h2>
<div class="ui progress">
<span style="width: 56%"></span>
</div>
<h2>Notifications</h2>
<div class="ui notifications">
<ul>
<li class="notification"><span class="fontawesome-envelope"></span></li>
<li><span class="fontawesome-twitter"></span></li>
<li class="notification"><span class="fontawesome-comments"></span></li>
<li><span class="fontawesome-rss"></span></li>
</ul>
</div>
<h2>Subscribe</h2>
<div class="ui">
<label for="name">Email:</label>
<input type="email" name="name" id="name" placeholder="[email protected]" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}"/>
<input type="submit" value="Submit" />
<div class="input-validation"></div>
</div>
<div class="ui">
<label for="name"><span class="fontawesome-envelope"></span></label>
<input type="email" name="name" id="name" placeholder="[email protected]" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}"/>
<input type="submit" value="Submit" />
<div class="input-validation2"></div>
</div>
<h2>Log in </h2>
<div class="ui login">
<label for="name">Username:</label>
<input type="email" name="name" id="name" placeholder="John Smith" />
<label for="name">Password:</label>
<input type="password" name="name" id="name" placeholder="********" />
<input type="submit" value="Submit"/>
</div>
<h2>Search</h2>
<div class="ui">
<label for="name"><span class="fontawesome-search"></span></label>
<input type="email" name="name" id="name" />
<input type="submit" value="Search"/>
</div>
<div class="ui search2">
<label for="name"><span class="fontawesome-search"></span></label>
<input type="email" name="name" id="name" placeholder="Press enter to search"/>
</div>
<h2>Twitter</h2>
<div class="ui twitter">
<div>
</div>
<span class="fontawesome-twitter"></span>
<a href="http://twitter.com/darbybrown">@darbybrown
<h3>Follow Me On Twitter</h3></a>
</div>
</section>
/*
V1 of this UI Kit can be found here:
http://codepen.io/hugo/pen/qwsFj
As usual works best with WebKit
Take it, use it, do what you want with it
Sharing is Caring :)
*/
// Progress Steps JS Thanks to Francesco :) http://codepen.io/Francext
$("ol.ui li").click(function(e) {
var currentElem = $('.ui.progress > li').index($(this));
if($(this).is('.ui.progress > li:last-child') && !$(this).hasClass('active')) {
var elem = document.querySelectorAll('.ui.progress > li');
[].forEach.call(elem, function(index, value) {
index.classList.add('active');
});
}
else {
$(this).toggleClass('active');
}
});
//Color Picker
function hexFromRGB(r, g, b) {
var hex = [
r.toString( 16 ),
g.toString( 16 ),
b.toString( 16 )
];
$.each( hex, function( nr, val ) {
if ( val.length === 1 ) {
hex[ nr ] = "0" + val;
}
});
return hex.join( "" ).toUpperCase();
}
function refreshSwatch() {
var red = $( "#red" ).slider( "value" ),
green = $( "#green" ).slider( "value" ),
blue = $( "#blue" ).slider( "value" ),
hex = hexFromRGB( red, green, blue );
$( "body" ).css( "background-color", "#" + hex );
}
$(function() {
$( "#red, #green, #blue" ).slider({
orientation: "horizontal",
range: "min",
min: 50,
max: 190,
value: 127,
slide: refreshSwatch,
change: refreshSwatch
});
$( "#red" ).slider( "value", 115 );
$( "#green" ).slider( "value", 59 );
$( "#blue" ).slider( "value", 172 );
});
// Menu Notifications
$(".menu-notification ul li").click(function() {
$(this).toggleClass('notification-sml');
});
// Dropdown Menu
$(".menu").click(function () {
$(".menu ul").slideToggle("600");
});
// Notifications
$(".notifications ul li").click(function() {
$(this).toggleClass('notification');
});
// Twitter old API no longer works
$.getJSON("https://api.twitter.com/1/statuses/user_timeline/darbybrown.json?count=1&include_rts=1&callback=?", function(data) {
$(".twitter div").html(data[0].text);
});
@import "compass";
/*==============================================
Demo Styles
================================================ */
html {
font-family: 'Roboto Slab', serif;
font-size: 16px;
height: 100%;
}
body {
background: #9b59b6;
text-align: center;
}
* {
box-sizing: border-box;
}
section {
width: 30rem;
margin: auto;
padding-bottom: 10rem;
}
h1 {
color: #fff;
font-size: 5rem;
font-weight: bold;
margin: 0 0 2rem 0;
text-shadow: 0.2rem 0.2rem 0.1rem rgba(black,0.4);
}
h2 {
color: #fff;
font-size: 2rem;
font-weight: bold;
margin:0;
text-shadow: 0.2rem 0.2rem 0.1rem rgba(black,0.4);
}
h4 {
color: #fff;
margin: -2rem 0 2rem 0;
text-shadow: 0.1rem 0.1rem 0.1rem rgba(black,0.4);
}
/*==============================================
Base Form Styles
All form elements need these styles
The rest are modular
================================================ */
@import "http://weloveiconfonts.com/api/?family=fontawesome";
[class*="fontawesome-"]:before {
font-family: 'FontAwesome', sans-serif;
font-size: 1.5rem;
line-height: 2;
}
.ui {
border-radius: 2rem;
box-shadow: inset 0.1rem 0.1rem 0 rgba(black,0.1), 0.2rem 0.2rem 0 rgba(white,0.1);
background: rgba(black,0.25);
display: inline-block;
font-size: 1rem;
margin: 0 0 1rem 0 ;
padding: 1rem;
text-align: center;
width: 30rem;
input[type="email"],input[type="password"],input[type="search"]{
background: rgba(black,0.25);
border: 0;
border-radius: 0;
height: 3rem;
width: 58%;
color: #fff;
float:left;
padding-left: 0.5rem;
&:focus {
background: rgba(black,0.5);
transition: background 1s ease;
}
}
input[type="submit"] {
background: rgba(black,0.4);
border: 0;
border-radius: 0 1rem 1rem 0;
color: #fff;
float:left;
height: 3rem;
width: 20%;
z-index: 3;
&:hover {
background: rgba(black,0.6);
transition: all 1s ease;
}
}
label {
background: rgba(black,0.4);
border: 0;
border-radius: 0 1rem 1rem 0;
color: #fff;
float:left;
height: 3rem;
width: 20%;
z-index: 3;
border-radius: 1rem 0 0 1rem;
line-height: 3;
}
}
/*==============================================
Color Picker Slider
================================================ */
#red, #green, #blue {
float: left;
clear: left;
width: 100%;
margin: 1rem 0;
}
#red .ui-slider-range {
background: #ef2929;
}
#green .ui-slider-range {
background: #8ae234;
}
#blue .ui-slider-range {
background: #729fcf;
}
.ui-slider-handle{
width:2rem !important;
height:2rem !important;
border-radius: 50%;
margin-top: -0.2rem;
}
.ui-slider-range {
border-radius: 1rem;
}
.colors > div {
background: rgba(black,0.5);
border: none;
border-radius: 1rem;
height: 1rem;
width: 100%;
}
/*==============================================
Ratings modified version of Lea Verou's
http://lea.verou.me/2011/08/accessible-star-rating-widget-with-pure-css/
================================================ */
fieldset {
border: 0;
}
.rating:not(:checked) > input {
clip:rect(0,0,0,0);
position:absolute;
top:-9999px;
}
.rating:not(:checked) > label {
background: none;
color:rgba(black, 0.6);
cursor:pointer;
float:right;
height: 3.5rem;
overflow:hidden;
padding:0;
transition: color 1s ease-in-out;
white-space:nowrap;
width:5.4rem;
}
.rating:not(:checked) > label:before {
content: '= ';
font-family: 'Typicons', sans-serif;
font-size:5rem;
line-height: 1;
}
.rating > input:checked + label:hover,
.rating > input:checked + label:hover ~ label,
.rating > input:checked ~ label:hover,
.rating > input:checked ~ label:hover ~ label,
.rating > label:hover ~ input:checked ~ label,
.rating:not(:checked) > label:hover,
.rating:not(:checked) > label:hover ~ label,
.rating > input:checked ~ label{
color: #fff;
text-shadow: 0.1rem 0.1rem 0.1rem rgba(black, 0.4);
transition: color 1s ease-in-out;
}
/*==============================================
Progress Steps
================================================ */
ol.ui {
list-style: none;
list-style-image: none;
margin: 0 0 1rem 0;
padding: 1rem 0 1rem 1rem;
white-space: nowrap;
li {
float: left;
margin-right: 1rem;
position: relative;
text-align: center;
width: 100px;
}
li > span {
color: #fff;
display: block;
margin-bottom: 0.5rem;
width: 100px;
}
span:nth-of-type(2) {
background: rgba(black,0.4);
border: 0.2rem solid rgba(black,0);
border-radius: 50%;
cursor: pointer;
font-size: 1.5rem;
font-weight: bold;
width: 3rem;
height: 3rem;
display: inline-block;
line-height: 1.7;
transition: all 1.2s ease-in-out;
&:before {
background: rgba(black,0.4);
bottom: 1.9rem;
content: "";
height: 0.5rem;
left: -2.65rem;
position: absolute;
transition: all 1.2s ease-in-out;
width: 0rem;
}
&:after {
background: rgba(black,0.4);
bottom: 1.9rem;
content: "";
height: 0.5rem;
left: 4.65rem;
position: absolute;
transition: all 1.2s ease-in-out;
width: 4.35rem;
}
}
li:first-of-type span:nth-of-type(2):before,
li:last-of-type span:nth-of-type(2):after {
display: none;
}
.active span:nth-of-type(2) {
border: 0.2rem solid white;
transition: all 1s ease-in-out;
transition-delay: 0.8s;
&:before {
background: white;
transition: all 1.2s ease-in-out;
width: 4.35rem;
}
}
p {
color: #fff;
left: 50%;
margin-left: -1rem;
margin-top: 4.5rem;
cursor: pointer;
position: absolute;
}
}
#first {
transition-delay: 0;
}
/*==============================================
Video Player
================================================ */
input[type='range'] {
-webkit-appearance: none;
-moz-appearance: none;
border-radius: 1rem;
background: rgba(black,0.5);
height: 1rem;
width:100%;
}
input[type='range']::-webkit-slider-thumb {
-webkit-appearance: none;
-moz-appearance: none;
border-radius: 1rem;
background: white;
height: 2rem;
width: 2rem;
}
#video-container {
margin: 0.5rem 0.5rem 0 0.5rem;
}
#video-controls {
position: relative;
bottom: 0;
left: 0;
right: 0;
}
button {
background: none;
border: 0;
color: #EEE;
border-radius: 3px;
width: 2rem;
[class*="fontawesome-"]:before {
font-family: 'FontAwesome', sans-serif;
font-size: 1.5rem;
line-height: 1.7;
}
}
button:hover {
cursor: pointer;
color: #ccc;
}
#seek-bar {
width: 58%;
}
#volume-bar {
width: 16%;
}
/*==============================================
Menu
================================================ */
.ui ul {
list-style: none;
margin: 0 -1rem;
li {
color: #fff;
cursor: pointer;
float: left;
font-size: 1.3rem;
height: 2rem;
position: relative;
text-shadow: 0.1rem 0.1rem 0.1rem rgba(black,0.6);
width: 5rem;
}
}
.notification-sml {
&:after {
background: #e50000;
border-radius: 1rem 1rem 1rem 0;
box-shadow: 0.05rem 0.05rem 0.1rem rgba(black, 0.6);
content: '1';
font-size: 0.8rem;
font-weight: bold;
height: 1.2rem;
left: 4.4rem;
margin-top: -1rem;
position: absolute;
width: 1.2rem;
}
}
/*==============================================
Drop Down Menu
================================================ */
.menu{
ul {
list-style:none;
display:none;
width:100%;
background: rgba(black,0.5);
float: left;
margin: 1rem 0 0 0;
padding:0;
border-radius: 1rem;
overflow:hidden;
li {
color:#fff;
cursor:pointer;
display:block;
float:none;
height: 3rem;
padding: 0.5rem;
width:100%;
&:hover {
background: rgba(black,0.5);
border-radius:1rem;
cursor:pointer;
}
}
}
div {
float: left;
width:100%;
background: rgba(black,0.25);
border-radius:1rem;
color:#fff;
cursor:pointer;
line-height: 3;
padding-left: 3rem;
span {
float: right;
background: rgba(black,0.2);
border-radius: 0 1rem 1rem 0;
cursor:pointer;
padding: 0 1rem;
&:hover {
background: rgba(black,0.5);
}
}
}
}
/*==============================================
Slider
================================================ */
input[type='range'] {
-webkit-appearance: none;
-moz-appearance: none;
border-radius: 1rem;
background: rgba(black,0.5);
height: 1rem;
width:100%;
}
input[type='range']::-webkit-slider-thumb {
-webkit-appearance: none;
-moz-appearance: none;
border-radius: 1rem;
background: white;
height: 2rem;
width: 2rem;
}
/*==============================================
Progress Bar
=============================================== */
.progress > span {
background-color: rgba(white,0.6);
border-radius: 1rem;
display: block;
height: 2rem;
overflow: hidden;
position: relative;
&:after {
background-image:
linear-gradient(
-45deg,
rgba(black, .8) 25%,
transparent 25%,
transparent 50%,
rgba(255, 255, 255, .8) 50%,
rgba(255, 255, 255, .8) 75%,
transparent 75%,
transparent
);
background-size: 5rem 5rem;
border-radius: 1rem;
content: "";
overflow: hidden;
position: absolute;
top: 0; left: 0; bottom: 0; right: 0;
z-index: 1;
}
}
/*==============================================
Notifications
=============================================== */
.notifications ul {
margin: 0;
padding: 0;
li {
background-color: rgba(black,0.5);
border-radius: 1rem;
color: #fff;
cursor: pointer;
float: left;
height: 5rem;
list-style: none;
margin: 0 0.5rem;
width: 6rem;
[class*="fontawesome-"]:before {
font-size: 3rem;
line-height: 1.7;
}
}
}
.notification {
&:after {
background: #e50000;
border-radius: 1rem 1rem 1rem 0;
box-shadow: 0.05rem 0.05rem 0.1rem rgba(black, 0.6);
content: '1';
font-size: 1.3rem;
font-weight: bold;
height:2rem;
position: absolute;
margin-top: -0.5rem;
width: 2rem;
}
}
/*==============================================
Login Form
================================================ */
.login {
input[type="email"],input[type="password"]{
border-radius: 0 1rem 1rem 0;
margin: 0.5rem 0;
width: 75%;
}
label {
margin: 0.5rem 0;
width: 25%;
}
input[type="submit"] {
border-radius: 1rem;
margin: 1rem 0;
width: 100%;
}
}
input[type="email"]:valid ~ .input-validation:after {
background: rgba(black,0.5);
border-radius: 1rem;
content: "✓";
color: #fff;
font-size: 2rem;
height: 3rem;
line-height: 1.5;
margin-left: 2rem;
position: absolute;
width: 3rem;
}
input[type="email"]:invalid ~ .input-validation:before {
background: rgba(black,0.5);
border-radius: 1rem;
content: "X";
color: #fff;
font-family: 'arial', sans-serif;
font-size: 2rem;
font-weight: bold;
height: 3rem;
line-height: 1.5;
margin-left: 2rem;
position: absolute;
width: 3rem;
}
input[type="email"]:invalid ~ .input-validation2:after {
border-radius: 1rem;
content: "This is an invalid email address";
color: #fff;
top: 0.5rem;
position: relative;
}
/*==============================================
Search Inputs
================================================ */
.search2{
input[type="email"] {
border-radius: 0 1rem 1rem 0;
width: 80%;
}
}
/*==============================================
Twitter Widget
================================================ */
.twitter {
.fontawesome-twitter:before {
color: #fff;
float: left;
font-size: 4rem;
line-height: 2;
margin: -1rem 0 -2rem 0.5rem;
}
div {
background: rgba(black,0.4);
border-radius: 1rem;
color: #fff;
float: right;
font-size: 1.3rem;
margin-bottom: 0.5rem;
padding: 1rem;
position: relative;
width: 100%;
word-wrap:break-word;
&:after {
content:"";
display:block; /* reduce the damage in FF3.0 */
position:absolute;
bottom:-15px;
left:50px;
width:0;
border-width:15px 15px 0;
border-style:solid;
border-color: rgba(black,0.4) transparent;
}
}
a {
color: #fff;
font-size: 1.5rem;
text-decoration: none;
}
h3 {
color: #fff;
font-size: 2rem;
margin:0;
padding: 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment