MetaPhase-Consulting/State-TalentMAP

View on GitHub
src/sass/_results.scss

Summary

Maintainability
Test Coverage
$filter-container-width: 24%;
$results-container-width: 100% - $filter-container-width;

.results {
  position: relative;

  label {
    font-size: .9em;
  }

  .tandem-filter-header {
    border-bottom: 1px solid $color-black;
    font-size: 1.6rem;
    font-weight: 500;
    margin-bottom: 1em;
    padding: 2.5em 0 .5em;
  }

  .tandem-filter-header--first {
    padding-top: 1em;
  }

  .results-dropdown-page-size {
    float: left;
    margin-left: 20px;

    select {
      width: 80px;
    }
  }

  .results-dropdown-sort {
    float: left;
  }

  .results-download {
    float: left;
    margin-left: 10px;

    button {
      margin: 0;
    }
  }

  .no-results {
    margin-top: 20px;
    width: 350px;
  }
}

.results-loading {
  opacity: .5;
  pointer-events: none;
}

.results-card {
  background-color: $color-white;
  border: 1px solid $results-card-border;
  border-left: 8px solid $results-card-accent;
  margin-bottom: 2rem;
  padding: 1.1rem 1.1rem 3.3rem 1.9rem;

  dl {
    dt,
    dd {
      vertical-align: top;
    }
  }

  .commuter-banner {
    height: 35px;
    left: 0;
    position: absolute;
    top: 0;
    z-index: 9999;
  }

  .commuter-header {
    margin: 0;
    width: 100%;

    .commute-frequency {
      font-size: .8em;
    }
  }

  &.results-card--group-end {
    margin-bottom: 3em;
  }

  &.results-card--tandem-two {
    background-color: $color-purple-light;

    .compare-not-checked {
      background-color: $color-white;
    }
  }

  &.results-card--new {
    box-shadow: 0 0 15px $color-dodger-blue;
  }

  .tandem-identifier {
    font-size: 1.5rem;
    font-weight: 500;
  }

  .tandem-details-link {
    padding-left: .5rem;
  }

  .available-alert {
    color: $color-green-dark;
    font-size: 1.2rem;
    font-weight: bold;
    margin-left: 1em;
  }

  .bid-count-container {
    font-size: .8em;
  }

  .compare-check-box-container {
    border: 1px solid $blue-primary;
    border-radius: 5px;
    color: $blue-primary;

    &.compare-checked {
      background-color: $blue-primary;
      color: $color-white;
    }
  }

  .header {
    margin-bottom: 1rem;
    margin-top: .2rem;

    .location-label{
      width: 23%;
      @media screen and (max-width: 1200px){
        width: 28%;
      }
      @media screen and (max-width: 1025px){
        width: 32%;
      }
    }

    .location-text{
      width: 100%;
    }

    .results-card-title-link {
      align-items: center;
      display: flex;
      justify-content: flex-start;
    }

    .bid-count-secondary {
      display: inline-block;
      float: right;
    }

    a {
      font-size: 1.5rem;
      margin-top: 2px;
    }

    h3,
    dt,
    dd {
      font-family: 'Roboto';
      font-size: 1.5rem;
      margin-bottom: 0;
      margin-left: 0;
      margin-top: 0;
    }

    h3,
    dt {
      font-weight: 500;
    }

    h3 {
      font-size: 1.7rem;
      margin-right: .5em;
    }
  }

  .footer {
    margin-bottom: rem(10px);
    margin-top: rem(14px);
    padding-top: rem(4px);

    $section-height: 38px;

    section {
      display: inline-block;
      min-height: $section-height;
      position: relative;
      vertical-align: middle;
    }

    $button-gutter: 6px;
    $button-offset: $button-gutter / 2;

    section:nth-child(1) {
      padding-left: $button-offset;
      padding-right: $button-offset;

      .tm-button,
      .usa-button,
      .compare-check-box-container {
        display: inline-block;
        margin: 0;
        margin-bottom: 5px;
        position: relative;
        width: 37%;

        &:not(last-child) {
          margin-right: 15px;
        }

        @media screen and (max-width: $screen-sm-min) {
          position: static;
          width: 50%;
        }
      }

      .usa-button {
        width: auto;
      }

      .tm-button {
        font-size: rem(14px);
        padding: 12px 15px;
        width: auto;
      }

      .compare-check-box-container {
        font-size: rem(14px);
        line-height: 39px;
        text-align: center;

        // scss-lint:disable NestingDepth SelectorDepth
        .fa {
          left: -2px;
          position: relative;
        }
        // scss-lint:enable NestingDepth SelectorDepth
      }

      .fa {
        padding-right: 10px;
        position: relative;
      }

      @media screen and (max-width: $screen-sm-min) {
        .usa-button {
          margin-bottom: .5em;
        }

        .compare-check-box-container {
          padding-left: 0;
          text-align: center;
        }
      }
    }

    section:nth-child(2) {
      > div {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
      }
    }

    // Divider Accent
    .divider {
      &::after {
        background-color: $bg-gray-dark-1;
        content: '';
        display: block;
        height: 100%;
        position: absolute;
        right: -(8px + (8px - $button-gutter));
        top: 0;
        width: 1px;
      }
    }

    .usa-button:not(.favorite-container) {
      font-size: 1.4rem;
      font-weight: 400;
      line-height: em(15px);

      .fa,
      .ds-c-spinner {
        margin: 0;
        position: relative;
        width: em(14px);
      }

      @media screen and (max-width: $screen-md-max) {
        padding-left: 1rem;
        right: 1rem;
      }
    }

    .favorite-container {
      border: 1px solid $primary-blue;
      box-shadow: none;
      float: none;
    }

    $button-box-shadow: inset 0 0 0 1px;

    .usa-button-secondary:not(.favorite-container) {
      box-shadow: $button-box-shadow $bg-gray-dark-1;
      color: $primary-base;

      &:hover {
        box-shadow: $button-box-shadow $primary-blue-darker;
        color: $primary-blue-darker;
      }

      &:disabled,
      &:disabled:active,
      &:disabled:hover,
      &:disabled:focus, {
        box-shadow: $button-box-shadow $bg-gray-dark-3;
        color: $bg-gray-dark-3;

      }

      &.usa-button-active,
      &.usa-button-active:hover {
        box-shadow: $button-box-shadow $primary-blue-darkest;
        color: $primary-blue-darkest;
      }

      .fa {
        top: 1px;
      }
    }

    dt,
    dd {
      font-family: 'Roboto';
      font-size: rem(12px);
      line-height: rem(14px);
    }
  }

  .section-title {
    font-size: .9em;
    margin-bottom: .6em;
    text-transform: uppercase;
  }

  .section-data-points {
    font-size: .9em;
  }

  .bottom-section {
    float: left;
    margin-top: 1em;

    .details-button-container {
      float: left;
    }

    .details-button {
      font-size: .9em;
    }

    .bid-cycle-container {
      font-size: .8em;
    }

    .bid-cycle-container-section {
      float: left;
    }

    .bid-cycle-container-section:first-child {
      border-right: 1px solid $color-black;
      margin-right: 5px;
      padding-right: 5px;
    }

    .compare-check {
      float: left;
      font-size: .9em;
      margin: 15px;
    }
  }

  @media screen and (max-width: $screen-sm-max) {
    .header > h3 {
      display: inline;
      margin-right: 0;
    }

    a {
      margin-left: 5px;
    }

    tm-button,
    .usa-button,
    .compare-check-box-container {
      &:not(last-child) {
        margin-right: 0 !important;
      }
    }

    .footer > section {
      display: block !important;
    }
  }

  @media screen and (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
    .footer > section:nth-child(1) {
      border-right: 1px solid $color-black;
    }
  }
}

.results-card--secondary {
  border-left-color: $primary-blue-darkest;
}

.top-nav {
  .reset-compare-link {
    float: left;
    padding: 15px;

    a {
      cursor: pointer;
    }
  }

  .comparisons-button {
    float: left;
    padding: 15px 0;
    text-align: center;
  }
}

.filter-container {
  float: left;
  font-size: .9em;
  height: auto;
  margin-right: 0;
  padding: 0 10px 15px;
  position: relative;
  width: $filter-container-width;

  [type=checkbox],
  [type=radio] {
    box-sizing: border-box;
    margin: 0;
    margin-left: 0;
    opacity: 0;
    padding: 0;
    position: fixed;
  }

  [type=checkbox] + label::before {
    float: left;
  }

  label {
    margin-top: 1rem;

    > span {
      display: table; // IE-11 compatible
    }
  }

  &.is-loading {
    opacity: .5;
    pointer-events: none;

    @media screen and (max-width: $screen-sm-max) {
      opacity: 1;
    }
  }

  .projected-vacancy-filter-container,
  .tandem-filter-container {
    margin-bottom: .8em;
    margin-top: .2em;

    button:first-of-type {
      font-size: 1.5rem;
    }
  }

  .reset-filters {
    color: $blue-primary;
    cursor: pointer;
    font-weight: bold;

    .fa {
      color: $color-red;
      float: left;
      margin: 1px 5px 0 0;
    }
  }

  @media screen and (max-width: $screen-md-min) {
    border: 1px solid $tm-navy-dark;
    height: 100px;
    margin-bottom: 10px;
    overflow-y: scroll;
    padding: 15px 10px;
    width: 100%;

    .filter-container-bottom {
      margin: 15px 0;
    }
  }

  @media screen and (max-width: $screen-sm-max) {
    background: $color-white;
    border: 0;
    height: 100%;
    padding: 0;
    position: absolute;
    top: 0;
    z-index: 10000000;

    .filter-container-bottom {
      padding: 1.5em;
    }

    .toggle-button {
      justify-content: center;
      padding: 1em;
    }

    .search-filters-container {
      .usa-accordion-button {
        padding: 1em;
      }
    }

    [type=checkbox] {
      margin-top: 1em;
    }

    [type=checkbox] + label::before {
      margin-right: 1.6em;
    }

    .filter-control-left {
      display: none;
    }

    .filter-control-container > .filter-control-right {
      display: table;
      float: initial;
      margin: 0 auto;
      padding-bottom: 1em;
      width: initial;
    }
  }

  .filter-container-top {
    border-bottom: 1px solid $color-gray-light;
    display: flex;
    justify-content: space-around;
    padding: .25em 1.5em;

    > * {
      flex: 1;
      flex-grow: 1;
      margin: auto 0;
    }

    > :nth-child(2) {
      text-align: center;
    }

    > :nth-child(3) {
      display: flex;
      justify-content: flex-end;
    }

    button {
      font-size: 1.2rem;
      margin: 0;
    }
  }

  .filter-container-bottom {
    color: $color-gray-darkest;
    margin: 0 0 15px;
  }

  .filter-control-container {
    padding: 0 0 10px 1px;
  }

  .filter-control-left {
    float: left;
    width: 50%;
  }

  .filter-control-right {
    float: left;
    width: 50%;

    span {
      float: right;
    }
  }

  .term-title {
    border-bottom: 1px solid $color-gray-light;
    font-weight: bold;
    margin-top: 1em;
  }

  .term-group-first {
    .term-title {
      margin-top: 0;
    }
  }
}

.results-container {
  float: left;
  padding-left: 30px;
  width: $results-container-width;

  .selections-container,
  .pill-list-container {
    display: inline;
  }

  .pill-ribbon-icon {
    padding-left: 6px;
    padding-right: 6px;
    position: relative;
    top: 2px;
  }

  .selections-container {
    margin-right: .7em;
  }

  .mobile-controls {
    display: flex;
    justify-content: space-between;
    padding: .5em 0;

    > * {
      flex: 1;
      margin: auto 0;
    }

    .filter-button {
      display: flex;
      justify-content: center;
      text-decoration: underline;
    }
  }

  @media screen and (max-width: $screen-md-min) {
    padding-left: 0;
    width: 100%;
  }

  @media screen and (max-width: $screen-sm-max) {
    padding: 0 1.5em;
  }

  .favorite-container {
    line-height: 20px;
    text-align: center;
  }

  .results-controls {
    @media screen and (max-width: $screen-md-min) {
      padding: 0;
    }

    .usa-button {
      margin: 0 0 0 .5em;
    }
  }

  .total-results {
    float: left;
    margin-top: 10px;
  }

  .selections-container,
  .total-results {
    font-size: 14px;
  }

  .drop-downs {
    float: right;
    margin-top: 4px;
  }

  .dropdowns-container {
    float: right;
  }

  .sticky {
    z-index: 9;
    background-color: rgb(255 255 255);
  }

  .controls-sticky-client-view {
    z-index: 9;
    padding-top: 75px;
    background-color: rgb(255 255 255);
  }
}

.results-list-container {
  margin: 0 0 1em;
  position: relative;
}

.results-section-container {
  margin-top: 21px;
  max-width: 1265px !important; // otherwise, card ribbons overlap the OBC link
  min-height: 500px;
}

.search-filters-container {
  .boolean-filter-container {
    margin-left: 10px;
    padding-top: 10px;

    label {
      font-size: 1em;
      margin-top: 10px;
    }
  }

  .tm-checkbox {
    width: 100%;
  }

  [type=checkbox]:focus + label::before {
    outline: $tm-focus-outline-default;
  }

  fieldset {
    margin: 0 0 10px;
  }

  legend {
    font-size: 1em;
  }

  .usa-accordion:not(:last-child) > li {
    margin-bottom: 1rem;
  }

  .usa-accordion-button {
    color: $color-white;
    font-weight: normal;
    padding: .7em;
  }
  .accordion-ap {
    //background-color: $blue-primary;
    background-color: $bg-blue-dark-1;
  }
  .accordion-pv {
    background-color: $bg-blue-dark-1;
  }
  .accordion-tandem-1 {
    background-color: $color-blue-chill;
  }
  .accordion-tandem-2 {
    background-color: $color-purple;
  }

  .usa-accordion-content {
    background-color: $color-gray-lightest-alt;
    color: $color-black;
    font-size: 1.1em;
    max-height: 550px;
    overflow-y: auto;
    padding: 1rem;
  }

  .accordion-checkbox-post,
  .accordion-checkbox-skill,
  .accordion-checkbox-skill-tandem,
  .accordion-checkbox-language,
  .accordion-checkbox-language-tandem {
    .usa-accordion-button {
      float: left;
      padding-left: 0;
      width: 84%;
    }

    // target the first checkbox and not the child ones
    .accordion-content-small > .tm-checkbox {
      float: left;
      margin: 0 6% 0 5%;
      width: 5%;
    }
  }

  .accordion-checkbox-post {
    min-height: 220px;
  }

  .accordion-checkbox-skill,
  .accordion-checkbox-skill-tandem,
  .accordion-checkbox-language,
  .accordion-checkbox-language-tandem,
  .accordion-checkbox-post,
  .accordion-checkbox-post-tandem,
  .accordion-checkbox-bureau,
  .accordion-checkbox-bureau-tandem {
    padding: 0;

    .tm-nested-accordions {
      padding-bottom: .5em;
      padding-top: .5em;
    }

    .post-auto-suggest-container {
      padding: .5em;
    }
  }

  .accordion-checkbox-grade,
  .accordion-checkbox-grade-tandem {
    .tm-checkbox {
      float: left;
    }
  }

  .filter-sticky-client-view {
    padding-top: 75px;
    overflow: auto;
    max-height: 72vh;

    @media screen and (max-height: 800px) {
      max-height: 63vh;
    }
  }

  .sticky {
    max-height: 75vh;
    overflow: auto;

    @media screen and (max-height: 800px) {
      max-height: 65vh;
    }
  }
}

.ap-container {
  .accordion-checkbox-post {
    min-height: inherit;
  }
}

.language-view-all {
  font-size: .8em;
  padding: .4em;
}

.save-new-search-container {
  background-color: $blue-primary-light;
  margin: 10px 0 26px;
  padding: 10px;

  .fa {
    margin-right: 10px;
  }

  .save-search-link {
    color: $blue-primary;
    cursor: pointer;
    text-decoration: underline;
  }

  .usa-input-error {
    border-left: unset;
    margin-top: unset;
    padding-bottom: unset;
    padding-left: unset;
    padding-top: unset;
    position: unset;
    right: unset;

    input {
      width: 100%;
    }
   }

  .saved-search-form-buttons {
    float: left;
    margin-top: 5px;

    button {
      margin: 18px 0 0 10px;

      &:first-child {
        margin-left: 0;
      }
    }
  }

  .saved-search-form-primary-button,
  .saved-search-form-secondary-button {
    box-shadow: inset 0 0 0 1px $primary-blue;
    float: left;
    padding: 1rem 3rem;

    // Overrides for box-shadow length
    &:hover {
      box-shadow: inset 0 0 0 1px $primary-blue-darker;
    }

    &:focus {
      box-shadow: inset 0 0 0 1px $color-black;
    }
  }
}

.saved-search-alert {
  margin: 0 0 10px;
}

.compare-check-box-container {
  cursor: pointer;
}

.loading-message {
  text-align: center;
}

.pill {
  border-radius: 12px;
  font-size: .8em;
  padding: .5em;
}

.favorite-container {
  cursor: pointer;
  float: right;
}

.mission-accordion {
  .usa-accordion-content {
    padding: 1rem 1rem 1rem .5rem;
  }
}

.render-suggestion {
  color: $color-black;
}

.results-dropdown {
  // dropdown labels should appear to the left of the input
  label {
    float: left;
    font-size: .8em;
    margin-right: 10px;
    margin-top: 6px;
  }

  select {
    background-color: $color-white;
    border: 1px solid $color-gray-light;
    border-radius: 3px;
    font-size: .8em;
    height: 28px;
    overflow: hidden;
    padding: 0 1.5em 0 .7em;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 130px;

    @media screen and (max-width: $screen-sm-max) {
      float: right;
    }
  }
}

.results-viewby-container {
  float: right;

  .is-not-selected {
    .fa {
      color: $color-gray-light;
    }
  }

  .is-selected {
    .fa {
      color: $color-black;
    }
  }

  @media screen and (max-width: $screen-md-min) {
    float: left;
  }

  .view-icon {
    float: left;
    padding: 5px 10px 0;
  }

  .view-icon-border {
    border-left: solid 1px $color-gray-light;
  }

  .view-label {
    float: left;
    font-size: .8em;
    padding: 7px;
  }
}

.commuter-post-filter-ribbon {
  padding-right: 4px;
  position: relative;
  top: 1px;
}

.tutorial-button {
  bottom: 5px;
  color: $primary-blue;
  font-size: 2em;
  left: 10px;
  position: fixed;

  > span {
    border-radius: 100%;
    box-shadow: 0 0 90px 5px $primary-blue;
  }
}