tt-rss/lib/dijit/themes/claro/layout/TabContainer.less
2013-03-18 10:26:26 +04:00

366 lines
11 KiB
Text

/* TabContainer
*
* Styling TabContainer means styling the TabList and Its content container (dijitTitlePane)
*
* Tab List: (including 4 kinds of tab location)
* .dijitTabContainerTop-tabs - tablist container at top
* .dijitTabContainerBottom-tabs - tablist container at bottom
* .dijitTabContainerLeft-tabs - tablist container at left
* .dijitTabContainerRight-tabs - tablist container at right
*
* Tab Strip Button:
* .dijitTabStripIcon - tab strip button icon
* .dijitTabStripMenuIcon - down arrow icon position
* .dijitTabStripSlideLeftIcon - left arrow icon position
* .dijitTabStripSlideRightIcon - right arrow icon position
*
* .tabStripButtonDisabled - styles for disabled tab strip buttons
*
* Tab Button:
* .dijitTabContainerTop-tabs .dijitTab - styles for top tab button container
* .dijitTabContainerBottom-tabs .dijitTab - styles for bottom tab button container
* .dijitTabContainerLeft-tabs .dijitTab - styles for left tab button container
* .dijitTabContainerRight-tabs .dijitTab - styles for right tab button container
*
* .dijitTabContainerTop-tabs .dijitTabChecked .dijitTab
* - styles for selected status of top tab button
* same to Bottom, Left, Right Tabs
*
* .dijitTabHover .dijitTab - styles when mouse hover on tab buttons
* .dijitTabActive .dijitTab - styles when mouse down on tab buttons
* .dijitTabChecked .dijitTab - styles when on buttons of selected tab
*
* .dijitTabCloseButton - the close action buttons lie at the right top of each tab button on closable tabs
* .dijitTabCloseButtonHover - styles when mouse hover on close action button
* .dijitTabCloseButtonActive - styles when mouse down on close action button
*
* Tab Button: (checked status)
*
* Tab Content Container:
* .dijitTabContainerTop-dijitContentPane
* .dijitTabContainerBottom-dijitContentPane
* .dijitTabContainerLeft-dijitContentPane
* .dijitTabContainerRight-dijitContentPane - for background and padding
*
* Nested Tabs:
* .dijitTabContainerNested - Container for nested tabs
* .dijitTabContainerTabListNested - tab list container for nested tabs
*/
@import "../variables";
.unselected-tab-gradient (@direction) {
// white line, dark line, then fade from light to dark
.alpha-white-gradient (@direction, 1,0px, 1,1px, 0.1,2px, 0.6,7px, 0,100%);
}
.topBottom-selected-tab-gradient (@direction) {
.alpha-white-gradient (@direction, 1,0px, 1,1px, 0,2px, 1,7px); // white line, blue line, remainder white
}
/*** some common features ***/
.claro .dijitTabPaneWrapper {
background:@pane-background-color;
}
.claro .dijitTabPaneWrapper,
.claro .dijitTabContainerTop-tabs,
.claro .dijitTabContainerBottom-tabs,
.claro .dijitTabContainerLeft-tabs,
.claro .dijitTabContainerRight-tabs {
/* todo: add common class name for this div */
border-color: @border-color;
}
.claro .dijitTabCloseButton {
background: url("../@{image-layout-tab-close}") no-repeat;
width: 14px;
height: 14px;
margin-left: 5px;
margin-right:-5px;
}
.claro .dijitTabCloseButtonHover {
background-position:-14px;
}
.claro .dijitTabCloseButtonActive {
background-position:-28px;
}
.claro .dijitTabSpacer {
/* set the spacer invisible. note that height:0 doesn't work on IE/quirks, it's still 10px. */
display: none;
}
.claro .dijitTab {
border: 1px solid @border-color;
background-color:@unselected-background-color;
.transition-property(background-color, border);
.transition-duration(.35s);
color:@unselected-text-color;
}
.claro .dijitTabHover {
border-color: @hovered-border-color;
background-color:@hovered-background-color;
.transition-duration(.25s);
color:@hovered-text-color;
}
.claro .dijitTabActive {
border-color: @pressed-border-color;
background-color:@pressed-background-color;
color:@selected-text-color;
.transition-duration(.1s);
}
.claro .dijitTabChecked {
// selected tab
border-color: @border-color; // don't use @selected-border-color because need to match border of TabContainer
background-color: @selected-background-color;
color: @selected-text-color;
}
.claro .dijitTabDisabled {
background-color: @tab-disabled-background-color;
}
.claro .tabStripButton {
background-color: transparent;
border: none;
}
/*** end common ***/
/*************** top tab ***************/
.claro .dijitTabContainerTop-tabs .dijitTab {
/* unselected (and not hovered/pressed) tab */
top: 1px; /* used for overlap */
margin-right: 1px;
padding:3px 6px;
border-bottom-width: 0;
min-width: 60px;
text-align: center;
// gradient (CSS gradient, with backup image for IE6-9)
background-image: url("images/tabTopUnselected.png");
background-repeat: repeat-x;
.unselected-tab-gradient(top);
.box-shadow(0 -1px 1px rgba(0, 0, 0, 0.04));
}
.claro .dijitTabContainerTop-tabs .dijitTabChecked {
/* selected tab */
padding-bottom: 4px;
padding-top: 9px;
// gradient (CSS gradient, with backup image for IE6-9)
background-image: url("images/tabTopSelected.png");
.topBottom-selected-tab-gradient (top);
.box-shadow(0 -1px 2px rgba(0, 0, 0, 0.05));
}
/** end top tab **/
/*************** bottom tab ***************/
.claro .dijitTabContainerBottom-tabs .dijitTab {
/* unselected (and not hovered/pressed) tab */
top: -1px; /* used for overlap */
margin-right: 1px;
padding:3px 6px;
border-top-width: 0;
min-width: 60px;
text-align: center;
// gradient (CSS gradient, with backup image for IE6-9)
background-image: url("images/tabBottomUnselected.png");
background-repeat: repeat-x;
background-position: bottom;
.unselected-tab-gradient(bottom);
.box-shadow(0 1px 1px rgba(0, 0, 0, 0.04));
}
/* selected tab */
.claro .dijitTabContainerBottom-tabs .dijitTabChecked {
padding-bottom: 9px;
padding-top: 4px;
// gradient (CSS gradient, with backup image for IE6-9)
background-image: url("images/tabBottomSelected.png");
.topBottom-selected-tab-gradient (bottom);
.box-shadow(0 1px 2px rgba(0, 0, 0, 0.05));
}
/** end bottom tab **/
/*************** left tab ***************/
.claro .dijitTabContainerLeft-tabs .dijitTab {
/* unselected (and not hovered/pressed) tab */
left: 1px; /* used for overlap */
margin-bottom: 1px;
padding:3px 8px 4px 4px;
// gradient (CSS gradient, with backup image for IE6-9)
background-image: url("images/tabLeftUnselected.png");
background-repeat: repeat-y;
.unselected-tab-gradient(left);
}
/* selected tab */
.claro .dijitTabContainerLeft-tabs .dijitTabChecked {
border-right-width: 0;
padding-right: 9px;
// gradient (CSS gradient, with backup image for IE6-9)
background-image: url("images/tabLeftSelected.png");
.alpha-white-gradient (left, 0.5,0px, 1,30px); // 1/2 inch blue gradient, remainder white
.box-shadow(-1px 0 2px rgba(0, 0, 0, .05));
}
/** end left tab **/
/*************** right tab ***************/
.claro .dijitTabContainerRight-tabs .dijitTab {
/* unselected (and not hovered/pressed) tab */
left: -1px; /* used for overlap */
margin-bottom: 1px;
padding:3px 8px 4px 4px;
// gradient (CSS gradient, with backup image for IE6-9)
background-image: url("images/tabRightUnselected.png");
background-repeat: repeat-y;
background-position: right;
.unselected-tab-gradient(right);
}
.claro .dijitTabContainerRight-tabs .dijitTabChecked {
/* selected tab */
padding-left: 5px;
border-left-width: 0;
// gradient (CSS gradient, with backup image for IE6-9)
background-image: url("images/tabRightSelected.png");
.alpha-white-gradient (right, 0.5,0px, 1,30px); // 1/2 inch blue gradient, remainder white
.box-shadow(1px 0 2px rgba(0, 0, 0, 0.07));
}
/** end right tab **/
/** round corner **/
.claro .dijitTabContainerTop-tabs .dijitTab {
.border-radius(2px 2px 0 0);
}
.claro .dijitTabContainerBottom-tabs .dijitTab {
.border-radius(0 0 2px 2px);
}
.claro .dijitTabContainerLeft-tabs .dijitTab {
.border-radius(2px 0 0 2px);
}
.claro .dijitTabContainerRight-tabs .dijitTab {
.border-radius(0 2px 2px 0);
}
/************ left/right scroll buttons + menu button ************/
.claro .tabStripButton {
background-color:@button-background-color;
border: 1px solid @border-color;
}
.claro .dijitTabListContainer-top .tabStripButton {
padding: 4px 3px;
margin-top:7px;
.alpha-white-gradient (top, 1,0px, 0.1,1px, 0.6,6px, 0,100%); // to match unselected tab, but had to tweak numbers
}
.claro .dijitTabListContainer-bottom .tabStripButton {
padding:4px 3px;
margin-bottom:7px;
.alpha-white-gradient (bottom, 1,0px, 0.1,1px, 0.6,6px, 0,100%); // to match unselected tab, but had to tweak numbers
}
.claro .tabStripButtonHover {
background-color:@hovered-background-color;
}
.claro .tabStripButtonActive {
background-color:@pressed-background-color;
}
.claro .dijitTabStripIcon {
height:15px;
width:15px;
margin: 0 auto;
background:url("../@{image-form-button-arrows}") no-repeat -75px 50%;
background-color: transparent;
}
.claro .dijitTabStripSlideRightIcon{
background-position: -24px 50%;
}
.claro .dijitTabStripMenuIcon {
background-position: -51px 50%;
}
/*disabled styles for tab strip buttons*/
.claro .dijitTabListContainer-top .tabStripButtonDisabled,
.claro .dijitTabListContainer-bottom .tabStripButtonDisabled {
background-color:@tab-disabled-background-color;
border:1px solid @border-color; /* to match border of TabContainer itself */
}
.claro .tabStripButtonDisabled .dijitTabStripSlideLeftIcon {
background-position:-175px 50%;
}
.claro .tabStripButtonDisabled .dijitTabStripSlideRightIcon {
background-position: -124px 50%;
}
.claro .tabStripButtonDisabled .dijitTabStripMenuIcon {
background-position: -151px 50%;
}
/* Nested Tabs */
.claro .dijitTabContainerNested .dijitTabListWrapper {
height: auto;
}
.claro .dijitTabContainerNested .dijitTabContainerTop-tabs {
border-bottom:solid 1px @border-color;
padding:2px 2px 4px;
}
.claro .dijitTabContainerTabListNested .dijitTab {
background:rgba(255, 255, 255, 0) none repeat scroll 0 0;
border: none;
padding: 4px;
border-color: rgba(118,157,192,0);
.transition-property(background-color, border-color);
.transition-duration(.3s);
.border-radius(2px);
}
.claro .dijitTabContainerTabListNested .dijitTab {
background: none;
border: none;
top: 0;/* to override top: 1px/-1px for normal tabs */
.box-shadow(none);
}
.claro .dijitTabContainerTabListNested .dijitTabHover {
background-color: @nestedtab-hovered-background-color;
border:solid 1px @nestedtab-hovered-border-color;
padding: 3px; // 4px above padding - 1px compensation for border
.transition-duration(.2s);
}
.claro .dijitTabContainerTabListNested .dijitTabHover .tabLabel {
text-decoration: none;
}
.claro .dijitTabContainerTabListNested .dijitTabActive {
border:solid 1px @nestedtab-selected-border-color;
padding: 3px;
// CSS gradient with fallback to image for IE
// this is in a weird place, only for active state; mailed Jason about it
background: @nestedtab-selected-background-color url("images/tabNested.png") repeat-x;
.alpha-white-gradient (0.61,0%, 0,17%, 0,83%, 0.61,100%);
.transition-duration(.1s);
}
.claro .dijitTabContainerTabListNested .dijitTabChecked {
padding: 3px;
border:solid 1px @selected-border-color;
background-color:@selected-background-color;
}
.claro .dijitTabContainerTabListNested .dijitTabChecked .tabLabel {
text-decoration: none;
background-image:none;
}
.claro .dijitTabPaneWrapperNested {
border: none;/* prevent double border */
}
.claro .dijitTab,
.claro .tabStripButton {
// IE6 can't handle background-image and background-color on same node
_background-image: none !important;
}