assets/stylesheets/bootstrap/_panels.scss
changeset 114 af15590802a4
equal deleted inserted replaced
113:d4ec02c51c91 114:af15590802a4
       
     1 //
       
     2 // Panels
       
     3 // --------------------------------------------------
       
     4 
       
     5 
       
     6 // Base class
       
     7 .panel {
       
     8   margin-bottom: $line-height-computed;
       
     9   background-color: $panel-bg;
       
    10   border: 1px solid transparent;
       
    11   border-radius: $panel-border-radius;
       
    12   @include box-shadow(0 1px 1px rgba(0,0,0,.05));
       
    13 }
       
    14 
       
    15 // Panel contents
       
    16 .panel-body {
       
    17   padding: $panel-body-padding;
       
    18   @include clearfix;
       
    19 }
       
    20 
       
    21 // Optional heading
       
    22 .panel-heading {
       
    23   padding: $panel-heading-padding;
       
    24   border-bottom: 1px solid transparent;
       
    25   @include border-top-radius(($panel-border-radius - 1));
       
    26 
       
    27   > .dropdown .dropdown-toggle {
       
    28     color: inherit;
       
    29   }
       
    30 }
       
    31 
       
    32 // Within heading, strip any `h*` tag of its default margins for spacing.
       
    33 .panel-title {
       
    34   margin-top: 0;
       
    35   margin-bottom: 0;
       
    36   font-size: ceil(($font-size-base * 1.125));
       
    37   color: inherit;
       
    38 
       
    39   > a,
       
    40   > small,
       
    41   > .small,
       
    42   > small > a,
       
    43   > .small > a {
       
    44     color: inherit;
       
    45   }
       
    46 }
       
    47 
       
    48 // Optional footer (stays gray in every modifier class)
       
    49 .panel-footer {
       
    50   padding: $panel-footer-padding;
       
    51   background-color: $panel-footer-bg;
       
    52   border-top: 1px solid $panel-inner-border;
       
    53   @include border-bottom-radius(($panel-border-radius - 1));
       
    54 }
       
    55 
       
    56 
       
    57 // List groups in panels
       
    58 //
       
    59 // By default, space out list group content from panel headings to account for
       
    60 // any kind of custom content between the two.
       
    61 
       
    62 .panel {
       
    63   > .list-group,
       
    64   > .panel-collapse > .list-group {
       
    65     margin-bottom: 0;
       
    66 
       
    67     .list-group-item {
       
    68       border-width: 1px 0;
       
    69       border-radius: 0;
       
    70     }
       
    71 
       
    72     // Add border top radius for first one
       
    73     &:first-child {
       
    74       .list-group-item:first-child {
       
    75         border-top: 0;
       
    76         @include border-top-radius(($panel-border-radius - 1));
       
    77       }
       
    78     }
       
    79 
       
    80     // Add border bottom radius for last one
       
    81     &:last-child {
       
    82       .list-group-item:last-child {
       
    83         border-bottom: 0;
       
    84         @include border-bottom-radius(($panel-border-radius - 1));
       
    85       }
       
    86     }
       
    87   }
       
    88   > .panel-heading + .panel-collapse > .list-group {
       
    89     .list-group-item:first-child {
       
    90       @include border-top-radius(0);
       
    91     }
       
    92   }
       
    93 }
       
    94 // Collapse space between when there's no additional content.
       
    95 .panel-heading + .list-group {
       
    96   .list-group-item:first-child {
       
    97     border-top-width: 0;
       
    98   }
       
    99 }
       
   100 .list-group + .panel-footer {
       
   101   border-top-width: 0;
       
   102 }
       
   103 
       
   104 // Tables in panels
       
   105 //
       
   106 // Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
       
   107 // watch it go full width.
       
   108 
       
   109 .panel {
       
   110   > .table,
       
   111   > .table-responsive > .table,
       
   112   > .panel-collapse > .table {
       
   113     margin-bottom: 0;
       
   114 
       
   115     caption {
       
   116       padding-left: $panel-body-padding;
       
   117       padding-right: $panel-body-padding;
       
   118     }
       
   119   }
       
   120   // Add border top radius for first one
       
   121   > .table:first-child,
       
   122   > .table-responsive:first-child > .table:first-child {
       
   123     @include border-top-radius(($panel-border-radius - 1));
       
   124 
       
   125     > thead:first-child,
       
   126     > tbody:first-child {
       
   127       > tr:first-child {
       
   128         border-top-left-radius: ($panel-border-radius - 1);
       
   129         border-top-right-radius: ($panel-border-radius - 1);
       
   130 
       
   131         td:first-child,
       
   132         th:first-child {
       
   133           border-top-left-radius: ($panel-border-radius - 1);
       
   134         }
       
   135         td:last-child,
       
   136         th:last-child {
       
   137           border-top-right-radius: ($panel-border-radius - 1);
       
   138         }
       
   139       }
       
   140     }
       
   141   }
       
   142   // Add border bottom radius for last one
       
   143   > .table:last-child,
       
   144   > .table-responsive:last-child > .table:last-child {
       
   145     @include border-bottom-radius(($panel-border-radius - 1));
       
   146 
       
   147     > tbody:last-child,
       
   148     > tfoot:last-child {
       
   149       > tr:last-child {
       
   150         border-bottom-left-radius: ($panel-border-radius - 1);
       
   151         border-bottom-right-radius: ($panel-border-radius - 1);
       
   152 
       
   153         td:first-child,
       
   154         th:first-child {
       
   155           border-bottom-left-radius: ($panel-border-radius - 1);
       
   156         }
       
   157         td:last-child,
       
   158         th:last-child {
       
   159           border-bottom-right-radius: ($panel-border-radius - 1);
       
   160         }
       
   161       }
       
   162     }
       
   163   }
       
   164   > .panel-body + .table,
       
   165   > .panel-body + .table-responsive,
       
   166   > .table + .panel-body,
       
   167   > .table-responsive + .panel-body {
       
   168     border-top: 1px solid $table-border-color;
       
   169   }
       
   170   > .table > tbody:first-child > tr:first-child th,
       
   171   > .table > tbody:first-child > tr:first-child td {
       
   172     border-top: 0;
       
   173   }
       
   174   > .table-bordered,
       
   175   > .table-responsive > .table-bordered {
       
   176     border: 0;
       
   177     > thead,
       
   178     > tbody,
       
   179     > tfoot {
       
   180       > tr {
       
   181         > th:first-child,
       
   182         > td:first-child {
       
   183           border-left: 0;
       
   184         }
       
   185         > th:last-child,
       
   186         > td:last-child {
       
   187           border-right: 0;
       
   188         }
       
   189       }
       
   190     }
       
   191     > thead,
       
   192     > tbody {
       
   193       > tr:first-child {
       
   194         > td,
       
   195         > th {
       
   196           border-bottom: 0;
       
   197         }
       
   198       }
       
   199     }
       
   200     > tbody,
       
   201     > tfoot {
       
   202       > tr:last-child {
       
   203         > td,
       
   204         > th {
       
   205           border-bottom: 0;
       
   206         }
       
   207       }
       
   208     }
       
   209   }
       
   210   > .table-responsive {
       
   211     border: 0;
       
   212     margin-bottom: 0;
       
   213   }
       
   214 }
       
   215 
       
   216 
       
   217 // Collapsable panels (aka, accordion)
       
   218 //
       
   219 // Wrap a series of panels in `.panel-group` to turn them into an accordion with
       
   220 // the help of our collapse JavaScript plugin.
       
   221 
       
   222 .panel-group {
       
   223   margin-bottom: $line-height-computed;
       
   224 
       
   225   // Tighten up margin so it's only between panels
       
   226   .panel {
       
   227     margin-bottom: 0;
       
   228     border-radius: $panel-border-radius;
       
   229 
       
   230     + .panel {
       
   231       margin-top: 5px;
       
   232     }
       
   233   }
       
   234 
       
   235   .panel-heading {
       
   236     border-bottom: 0;
       
   237 
       
   238     + .panel-collapse > .panel-body,
       
   239     + .panel-collapse > .list-group {
       
   240       border-top: 1px solid $panel-inner-border;
       
   241     }
       
   242   }
       
   243 
       
   244   .panel-footer {
       
   245     border-top: 0;
       
   246     + .panel-collapse .panel-body {
       
   247       border-bottom: 1px solid $panel-inner-border;
       
   248     }
       
   249   }
       
   250 }
       
   251 
       
   252 
       
   253 // Contextual variations
       
   254 .panel-default {
       
   255   @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border);
       
   256 }
       
   257 .panel-primary {
       
   258   @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border);
       
   259 }
       
   260 .panel-success {
       
   261   @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border);
       
   262 }
       
   263 .panel-info {
       
   264   @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border);
       
   265 }
       
   266 .panel-warning {
       
   267   @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border);
       
   268 }
       
   269 .panel-danger {
       
   270   @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border);
       
   271 }