tablesorter/css/theme.scss
2016-12-15 07:08:46 -06:00

328 lines
9.3 KiB
SCSS

/* Tablesorter Custom SCSS Theme by Dan Feidt (https://github.com/HongPong)
Converted from Custom LESS Theme by Rob Garrison
To create your own theme, modify the code below and run it through
a SCSS compiler, like this one: http://beautifytools.com/scss-compiler.php
or download sass.js from https://github.com/medialize/sass.js
Test out these customization files live
Basic LESS Theme : http://codepen.io/Mottie/pen/eqBbn
Bootstrap LESS : http://codepen.io/Mottie/pen/Ltzpi
Metro LESS Style : http://codepen.io/Mottie/pen/gCslk
Basic SCSS : http://codepen.io/Mottie/pen/LbXdNR
*/
/*** theme ***/
$theme : tablesorter-custom;
/*** fonts ***/
$tableHeaderFont : 11px 'trebuchet ms', verdana, arial;
$tableBodyFont : 11px 'trebuchet ms', verdana, arial;
/*** color definitions ***/
/* for best results, only change the hue (120),
leave the saturation (60%) and luminosity (75%) alone
pick the color from here: http://hslpicker.com/#99E699 */
$headerBackground : hsl(0, 60%, 75%);
$borderAndBackground : #cdcdcd;
$overallBorder : $borderAndBackground 1px solid;
$headerTextColor : #000;
$bodyBackground : #fff;
$bodyTextColor : #000;
$headerAsc : darken(adjust-hue($headerBackground, 5), 10%); /* darken($headerBackground, 10%); */
$headerDesc : lighten(adjust-hue($headerBackground, -5), 10%); /* desaturate($headerAsc, 5%); */
$captionBackground : #fff; /* it might be best to match the document body background color here */
$errorBackground : #e6bf99; /* ajax error message (added to thead) */
$filterCellBackground : #eee;
$filterElementTextColor: #333;
$filterElementBkgd : #fff;
$filterElementBorder : 1px solid #bbb;
$filterTransitionTime : 0.1s;
$filterRowHiddenHeight : 4px; /* becomes height using padding (so it's divided by 2) */
$overallPadding : 4px;
/* 20px should be slightly wider than the icon width to avoid overlap */
$headerPadding : 4px 20px 4px 4px;
/* url(icons/loading.gif); */
$processingIcon : url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=');
/* zebra striping */
@mixin allRows {
background-color: $bodyBackground;
color: $bodyTextColor;
}
@mixin evenRows {
background-color: lighten($headerBackground, 40%);
color: $bodyTextColor;
}
@mixin oddRows {
background-color: lighten($headerBackground, 20%);
}
/* hovered rows */
@mixin oddHovered {
background-color: desaturate($headerBackground, 60%);
color: $bodyTextColor;
}
@mixin evenHovered {
background-color: lighten( desaturate($headerBackground, 60%), 10% );
color: $bodyTextColor;
}
/* Columns widget */
$primaryOdd : adjust-hue($headerBackground, 10); /* saturate( darken( desaturate($headerBackground, 10%), 10% ), 30%); */
$primaryEven : lighten( $primaryOdd, 10% );
$secondaryOdd : $primaryEven;
$secondaryEven : lighten( $primaryEven, 5% );
$tertiaryOdd : $secondaryEven;
$tertiaryEven : lighten( $secondaryEven, 5% );
/* Filter widget transition */
@mixin filterWidgetTransition {
-webkit-transition: line-height $filterTransitionTime ease;
-moz-transition: line-height $filterTransitionTime ease;
-o-transition: line-height $filterTransitionTime ease;
transition: line-height $filterTransitionTime ease;
}
/*** Arrows ***/
$arrowPosition : right 5px center;
/* black */
$unsortedBlack : url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);
$sortAscBlack : url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);
$sortDescBlack : url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);
/* white */
$unsortedWhite : url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);
$sortAscWhite : url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);
$sortDescWhite : url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);
/* automatically choose the correct arrow/text color */
@function set-lightness($a, $b) {
@if (lightness($headerBackground) >= 50) {
@return $a;
} @else {
@return $b;
}
}
@mixin headerText {
color: set-lightness($headerTextColor, lighten($headerTextColor, 90%));
}
@mixin unsorted {
background-image: set-lightness($unsortedBlack, $unsortedWhite);
}
@mixin sortAsc {
background-image: set-lightness($sortAscBlack, $sortAscWhite);
}
@mixin sortDesc {
background-image: set-lightness($sortDescBlack, $sortDescWhite);
}
/* variable theme name - requires less.js 1.3+;
or just replace (!".#{$theme}") with the contents of $theme
*/
.#{$theme} {
font: $tableBodyFont;
background-color: $borderAndBackground;
margin: 10px 0 15px;
width: 100%;
text-align: left;
border-spacing: 0;
border: $overallBorder;
border-width: 1px 0 0 1px;
th, td {
border: $overallBorder;
border-width: 0 1px 1px 0;
}
/* style th's outside of the thead */
th, thead td {
font: $tableHeaderFont;
font-weight: bold;
background-color: $headerBackground;
@include headerText;
border-collapse: collapse;
padding: $overallPadding;
}
tbody td, tfoot th, tfoot td {
padding: $overallPadding;
vertical-align: top;
}
/* style header */
.tablesorter-header {
@include unsorted;
background-repeat: no-repeat;
background-position: $arrowPosition;
padding: $headerPadding;
cursor: pointer;
}
.tablesorter-header.sorter-false {
background-image: none;
cursor: default;
padding: $overallPadding;
}
.tablesorter-headerAsc {
background-color: $headerAsc;
@include sortAsc;
}
.tablesorter-headerDesc {
background-color: $headerDesc;
@include sortDesc;
}
/* tfoot */
tfoot .tablesorter-headerAsc,
tfoot .tablesorter-headerDesc {
/* remove sort arrows from footer */
background-image: none;
}
/* optional disabled input styling */
.disabled {
opacity: 0.5;
filter: alpha(opacity=50);
cursor: not-allowed;
}
/* body */
tbody {
td {
@include allRows;
padding: $overallPadding;
vertical-align: top;
}
/* Zebra Widget - row alternating colors */
tr.odd > td {
@include oddRows;
}
tr.even > td {
@include evenRows;
}
}
/* hovered row colors
you'll need to add additional lines for
rows with more than 2 child rows
*/
tbody > tr.hover td,
tbody > tr:hover td,
tbody > tr:hover + tr.tablesorter-childRow > td,
tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td,
tbody > tr.even.hover > td,
tbody > tr.even:hover > td,
tbody > tr.even:hover + tr.tablesorter-childRow > td,
tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
@include evenHovered;
}
tbody > tr.odd.hover > td,
tbody > tr.odd:hover > td,
tbody > tr.odd:hover + tr.tablesorter-childRow > td,
tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
@include oddHovered;
}
/* table processing indicator - indeterminate spinner */
.tablesorter-processing {
background-image: $processingIcon;
background-position: center center;
background-repeat: no-repeat;
}
/* Column Widget - column sort colors */
tr.odd td.primary {
background-color: $primaryOdd;
}
td.primary, tr.even td.primary {
background-color: $primaryEven;
}
tr.odd td.secondary {
background-color: $secondaryOdd;
}
td.secondary, tr.even td.secondary {
background-color: $secondaryEven;
}
tr.odd td.tertiary {
background-color: $tertiaryOdd;
}
td.tertiary, tr.even td.tertiary {
background-color: $tertiaryEven;
}
/* caption (non-theme matching) */
caption {
background-color: $captionBackground ;
}
/* filter widget */
.tablesorter-filter-row input,
.tablesorter-filter-row select {
width: 98%;
height: auto;
margin: 0;
padding: $overallPadding;
color: $filterElementTextColor;
background-color: $filterElementBkgd;
border: $filterElementBorder;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
@include filterWidgetTransition;
}
.tablesorter-filter-row {
background-color: $filterCellBackground;
}
.tablesorter-filter-row td {
text-align: center;
background-color: $filterCellBackground;
line-height: normal;
text-align: center; /* center the input */
@include filterWidgetTransition;
}
/* hidden filter row */
.tablesorter-filter-row.hideme td {
padding: $filterRowHiddenHeight / 2;
margin: 0;
line-height: 0;
cursor: pointer;
}
.tablesorter-filter-row.hideme * {
height: 1px;
min-height: 0;
border: 0;
padding: 0;
margin: 0;
/* don't use visibility: hidden because it disables tabbing */
opacity: 0;
filter: alpha(opacity=0);
}
/* rows hidden by filtering (needed for child rows) */
.filtered {
display: none;
}
/* ajax error row */
.tablesorter-errorRow td {
text-align: center;
cursor: pointer;
background-color: $errorBackground;
}
}