Created
September 25, 2013 12:42
-
-
Save kublaj/6699073 to your computer and use it in GitHub Desktop.
Tabbed widget (CSS)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@import '../../shared/mixins', | |
'../../shared/reset', | |
'../../shared/about-dark'; | |
/* | |
* Copyright (c) 2013 Thibaut Courouble | |
* http://www.cssflow.com | |
* | |
* Licensed under the MIT License: | |
* http://www.opensource.org/licenses/mit-license.php | |
*/ | |
/* Note: this implementation is very hacky. | |
You may not want to use it in production. ;) */ | |
body { | |
font: 12px/20px 'Lucida Grande', Verdana, sans-serif; | |
color: #404040; | |
background: #eee; | |
} | |
.widget { | |
position: relative; | |
margin: 50px auto; | |
width: 320px; | |
background: white; | |
border: 1px solid #ccc; | |
border-radius: 4px; | |
@include box-shadow(0 0 8px rgba(black, .07)); | |
} | |
.widget-tabs { | |
position: absolute; | |
top: 0; | |
left: 0; | |
right: 0; | |
padding: 9px 12px 0; | |
text-align: left; | |
/* Make the last tab in the DOM the left-most tab on the screen. | |
That way we can activate it by default and still be able to | |
deactivate it later using the ~ selector. */ | |
direction: rtl; | |
background: #f5f5f5; | |
border-bottom: 1px solid #ddd; | |
border-radius: 3px 3px 0 0; | |
} | |
.widget-tab, | |
%inactive-widget-tab { | |
position: relative; | |
display: inline-block; | |
vertical-align: top; | |
margin-top: 3px; | |
line-height: 36px; | |
font-weight: normal; | |
color: #999; | |
background: #fcfcfc; | |
border: solid #ddd; | |
border-width: 1px 1px 0; | |
border-radius: 5px 5px 0 0; | |
/* Reset %active-widget-tab */ | |
padding-bottom: 0; | |
bottom: auto; | |
> .widget-tab-link { | |
margin: 0; | |
border-top: 0; | |
} | |
} | |
.widget-tab + .widget-tab { margin-right: -1px; } | |
.widget-tab:last-child, // The left-most tab | |
%active-widget-tab { | |
bottom: -1px; | |
margin-top: 0; | |
padding-bottom: 2px; | |
line-height: 34px; | |
font-weight: bold; | |
color: #555; | |
background: white; | |
border-top: 0; | |
> .widget-tab-link { | |
margin: 0 -1px; | |
border-top: 4px solid #4cc8f1; | |
} | |
} | |
/* Deactivate the default tab when a preceding tab is activated. */ | |
%active-widget-tab ~ .widget-tab { @extend %inactive-widget-tab; } | |
.widget-tab-link { | |
display: block; | |
min-width: 60px; | |
padding: 0 15px; | |
color: inherit; | |
text-align: center; | |
text-decoration: none; | |
border-radius: 4px 4px 0 0; | |
} | |
.widget-list { | |
display: none; | |
padding-top: 50px; | |
> li + li { border-top: 1px solid #e8e8e8; } | |
/* The last list is activated (visible) by default. */ | |
&:last-of-type { display: block; } | |
&:target { | |
display: block; | |
/* Hide the default list when another is activated. */ | |
~ .widget-list { display: none; } | |
/* First list activates the first tab, second list activates the second tab, etc. */ | |
&:first-of-type ~ .widget-tabs > .widget-tab:first-child { @extend %active-widget-tab; } | |
&:nth-of-type(2) ~ .widget-tabs > .widget-tab:nth-child(2) { @extend %active-widget-tab; } | |
&:last-of-type ~ .widget-tabs > .widget-tab:last-child { @extend %active-widget-tab; } | |
} | |
} | |
.widget-list-link { | |
display: block; | |
line-height: 18px; | |
padding: 10px 12px; | |
font-weight: bold; | |
color: #555; | |
text-decoration: none; | |
cursor: pointer; | |
&:hover { background: #f7f7f7; } | |
li:last-child > & { border-radius: 0 0 3px 3px; } | |
> img { | |
float: left; | |
width: 32px; | |
height: 32px; | |
margin: 2px 12px 0 0; | |
} | |
> span { | |
display: block; | |
font-size: 11px; | |
font-weight: normal; | |
color: #999; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment