assets/stylesheets/bootstrap/_modals.scss
author ymh <ymh.work@gmail.com>
Thu, 15 Jun 2017 12:17:09 +0200
changeset 114 af15590802a4
permissions -rw-r--r--
add a lot of files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
114
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
//
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
// Modals
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
// --------------------------------------------------
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
// .modal-open      - body class for killing the scroll
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
// .modal           - container to scroll within
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
// .modal-dialog    - positioning shell for the actual modal
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
// .modal-content   - actual modal w/ bg and corners and shit
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
// Kill the scroll on the body
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
.modal-open {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
  overflow: hidden;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
// Container that the modal scrolls within
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
.modal {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
  display: none;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
  overflow: hidden;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
  position: fixed;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
  top: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
  right: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
  bottom: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
  left: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
  z-index: $zindex-modal;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
  -webkit-overflow-scrolling: touch;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
  // Prevent Chrome on Windows from adding a focus outline. For details, see
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
  // https://github.com/twbs/bootstrap/pull/10951.
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
  outline: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
  // When fading in the modal, animate it to slide down
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
  &.fade .modal-dialog {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
    @include translate(0, -25%);
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    @include transition-transform(0.3s ease-out);
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
  }
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
  &.in .modal-dialog { @include translate(0, 0) }
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
.modal-open .modal {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
  overflow-x: hidden;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
  overflow-y: auto;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
// Shell div to position the modal with bottom padding
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
.modal-dialog {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
  position: relative;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
  width: auto;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
  margin: 10px;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
// Actual modal
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
.modal-content {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
  position: relative;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
  background-color: $modal-content-bg;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
  border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
  border: 1px solid $modal-content-border-color;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
  border-radius: $border-radius-large;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
  @include box-shadow(0 3px 9px rgba(0,0,0,.5));
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
  background-clip: padding-box;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
  // Remove focus outline from opened modal
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
  outline: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
// Modal background
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
.modal-backdrop {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
  position: fixed;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
  top: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
  right: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
  bottom: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
  left: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
  z-index: $zindex-modal-background;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
  background-color: $modal-backdrop-bg;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
  // Fade for backdrop
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
  &.fade { @include opacity(0); }
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
  &.in { @include opacity($modal-backdrop-opacity); }
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
// Modal header
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
// Top section of the modal w/ title and dismiss
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
.modal-header {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
  padding: $modal-title-padding;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
  border-bottom: 1px solid $modal-header-border-color;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
  min-height: ($modal-title-padding + $modal-title-line-height);
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
// Close icon
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
.modal-header .close {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
  margin-top: -2px;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
// Title text within header
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
.modal-title {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
  margin: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
  line-height: $modal-title-line-height;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
// Modal body
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
// Where all modal content resides (sibling of .modal-header and .modal-footer)
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
.modal-body {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
  position: relative;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
  padding: $modal-inner-padding;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
// Footer (for actions)
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
.modal-footer {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
  padding: $modal-inner-padding;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
  text-align: right; // right align buttons
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
  border-top: 1px solid $modal-footer-border-color;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
  @include clearfix; // clear it in case folks use .pull-* classes on buttons
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
  // Properly space out buttons
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
  .btn + .btn {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
    margin-left: 5px;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
    margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
  }
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
  // but override that for button groups
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
  .btn-group .btn + .btn {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
    margin-left: -1px;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
  }
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
  // and override it for block buttons as well
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
  .btn-block + .btn-block {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
    margin-left: 0;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
  }
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
// Measure scrollbar width for padding body during modal show/hide
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
.modal-scrollbar-measure {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
  position: absolute;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
  top: -9999px;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
  width: 50px;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
  height: 50px;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
  overflow: scroll;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
// Scale up the modal
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
@media (min-width: $screen-sm-min) {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
  // Automatically set modal's width for larger viewports
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
  .modal-dialog {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
    width: $modal-md;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
    margin: 30px auto;
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
  }
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
  .modal-content {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
    @include box-shadow(0 5px 15px rgba(0,0,0,.5));
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
  }
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
  // Modal sizes
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
  .modal-sm { width: $modal-sm; }
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
}
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
@media (min-width: $screen-md-min) {
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
  .modal-lg { width: $modal-lg; }
af15590802a4 add a lot of files
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
}