Calendar

<div class="c-calendar">

    <ul class="c-calendar__weekdays">
        <li aria-label="Lunedì">Lun</li>
        <li aria-label="Martedì">Mar</li>
        <li aria-label="Mercoledì">Mer</li>
        <li aria-label="Giovedì">Gio</li>
        <li aria-label="Venerdì">Ven</li>
        <li aria-label="Sabato">Sab</li>
        <li aria-label="Domenica">Dom</li>
    </ul>

    <ul class="c-calendar__day-grid">
        <li class="ghost-day">
            <span>29</span>
        </li>
        <li class="ghost-day">
            <span>30</span>
        </li>
        <li class="ghost-day">
            <span>31</span>
        </li>
        <li class="">
            <span>1</span>
        </li>
        <li class="">
            <span>2</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>3</span>
            </a>
        </li>
        <li class="">
            <span>4</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>5</span>
            </a>
        </li>
        <li class="">
            <span>6</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>7</span>
            </a>
        </li>
        <li class="">
            <span>8</span>
        </li>
        <li class="">
            <span>9</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>10</span>
            </a>
        </li>
        <li class="">
            <span>11</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>12</span>
            </a>
        </li>
        <li class="">
            <span>13</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>14</span>
            </a>
        </li>
        <li class="">
            <span>15</span>
        </li>
        <li class="">
            <span>16</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>17</span>
            </a>
        </li>
        <li class="">
            <span>18</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>19</span>
            </a>
        </li>
        <li class="">
            <span>20</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>21</span>
            </a>
        </li>
        <li class="">
            <span>22</span>
        </li>
        <li class="">
            <span>23</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>24</span>
            </a>
        </li>
        <li class="">
            <span>25</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>26</span>
            </a>
        </li>
        <li class="">
            <span>27</span>
        </li>
        <li class="active-day">
            <a href="#">
                <span>28</span>
            </a>
        </li>
        <li class="">
            <span>29</span>
        </li>
        <li class="">
            <span>30</span>
        </li>
        <li class="ghost-day">
            <span>1</span>
        </li>
        <li class="ghost-day">
            <span>2</span>
        </li>
    </ul>

</div>

<div class="c-dialog c-dialog--dayflight js-fr-dialogmodal " id="dialog-dayflight">
    <div class="c-dialog__inner js-fr-dialogmodal-modal" aria-labelledby="dialog-dayflight-title">
        <div role="document">

            <p class="c-dialog__title" id="dialog-dayflight-title">Mercoledì <strong>25 Aprile 2018</strong> Andata BLQ > ATH</p>

            <div class="flightDetail">
                <p class="flightDetail__companyName">Alitalia</p>
                <div class="flightDetail__list">
                    <div class="flightDetail__route">
                        <div class="c-transport-hallmark ">

                            <div class="c-transport-hallmark__item">
                                <div class="c-trait ">

                                    <div class="c-trait__el livery">
                                        <img src="../../images/flights-logos/ryanair.png" class="c-trait__livery_img" alt="Ryanair">
                                    </div>

                                    <div class="c-trait__el company">
                                        <p class="label">Company</p>
                                        <p class="txt"><strong>Ryanair</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Linea/Charter</p>
                                        <p class="txt"><strong>Linea</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Numero volo</p>
                                        <p class="txt"><strong>SLD 504</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Partenza</p>
                                        <p class="txt"><strong>14:40</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Arrivo</p>
                                        <p class="txt"><strong>15:40</strong></p>
                                    </div>

                                    <div class="c-trait__el new">
                                        <span class="c-rounded-label c-rounded-label--grey u-typo-level-1">
                                            <span aria-hidden="true">&#x2605;</span> <strong>Novità</strong>
                                        </span>
                                    </div>

                                </div>
                            </div>

                        </div>
                    </div>
                    <div class="flightDetail__route">
                        <div class="c-transport-hallmark ">

                            <div class="c-transport-hallmark__item">
                                <div class="c-trait ">

                                    <div class="c-trait__el livery">
                                        <img src="../../images/flights-logos/ryanair.png" class="c-trait__livery_img" alt="Ryanair">
                                    </div>

                                    <div class="c-trait__el company">
                                        <p class="label">Company</p>
                                        <p class="txt"><strong>Ryanair</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Linea/Charter</p>
                                        <p class="txt"><strong>Linea</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Numero volo</p>
                                        <p class="txt"><strong>SLD 504</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Partenza</p>
                                        <p class="txt"><strong>14:40</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Arrivo</p>
                                        <p class="txt"><strong>15:40</strong></p>
                                    </div>

                                    <div class="c-trait__el new">
                                        <span class="c-rounded-label c-rounded-label--grey u-typo-level-1">
                                            <span aria-hidden="true">&#x2605;</span> <strong>Novità</strong>
                                        </span>
                                    </div>

                                </div>
                            </div>

                        </div>
                    </div>
                    <div class="flightDetail__route">
                        <div class="c-transport-hallmark ">

                            <div class="c-transport-hallmark__item">
                                <div class="c-trait ">

                                    <div class="c-trait__el livery">
                                        <img src="../../images/flights-logos/ryanair.png" class="c-trait__livery_img" alt="Ryanair">
                                    </div>

                                    <div class="c-trait__el company">
                                        <p class="label">Company</p>
                                        <p class="txt"><strong>Ryanair</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Linea/Charter</p>
                                        <p class="txt"><strong>Linea</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Numero volo</p>
                                        <p class="txt"><strong>SLD 504</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Partenza</p>
                                        <p class="txt"><strong>14:40</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Arrivo</p>
                                        <p class="txt"><strong>15:40</strong></p>
                                    </div>

                                    <div class="c-trait__el new">
                                    </div>

                                </div>
                            </div>

                        </div>
                    </div>
                </div>

                <p class="flightDetail__companyName">Ryanair</p>
                <div class="flightDetail__list">
                    <div class="flightDetail__route">
                        <div class="c-transport-hallmark ">

                            <div class="c-transport-hallmark__item">
                                <div class="c-trait ">

                                    <div class="c-trait__el livery">
                                        <img src="../../images/flights-logos/ryanair.png" class="c-trait__livery_img" alt="Ryanair">
                                    </div>

                                    <div class="c-trait__el company">
                                        <p class="label">Company</p>
                                        <p class="txt"><strong>Ryanair</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Linea/Charter</p>
                                        <p class="txt"><strong>Linea</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Numero volo</p>
                                        <p class="txt"><strong>SLD 504</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Partenza</p>
                                        <p class="txt"><strong>14:40</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Arrivo</p>
                                        <p class="txt"><strong>15:40</strong></p>
                                    </div>

                                </div>
                            </div>

                        </div>
                    </div>
                    <div class="flightDetail__route">
                        <div class="c-transport-hallmark ">

                            <div class="c-transport-hallmark__item">
                                <div class="c-trait ">

                                    <div class="c-trait__el livery">
                                        <img src="../../images/flights-logos/ryanair.png" class="c-trait__livery_img" alt="Ryanair">
                                    </div>

                                    <div class="c-trait__el company">
                                        <p class="label">Company</p>
                                        <p class="txt"><strong>Ryanair</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Linea/Charter</p>
                                        <p class="txt"><strong>Linea</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Numero volo</p>
                                        <p class="txt"><strong>SLD 504</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Partenza</p>
                                        <p class="txt"><strong>14:40</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Arrivo</p>
                                        <p class="txt"><strong>15:40</strong></p>
                                    </div>

                                </div>
                            </div>

                        </div>
                    </div>
                    <div class="flightDetail__route">
                        <div class="c-transport-hallmark ">

                            <div class="c-transport-hallmark__item">
                                <div class="c-trait ">

                                    <div class="c-trait__el livery">
                                        <img src="../../images/flights-logos/ryanair.png" class="c-trait__livery_img" alt="Ryanair">
                                    </div>

                                    <div class="c-trait__el company">
                                        <p class="label">Company</p>
                                        <p class="txt"><strong>Ryanair</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Linea/Charter</p>
                                        <p class="txt"><strong>Linea</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Numero volo</p>
                                        <p class="txt"><strong>SLD 504</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Partenza</p>
                                        <p class="txt"><strong>14:40</strong></p>
                                    </div>

                                    <div class="c-trait__el">
                                        <p class="label">Arrivo</p>
                                        <p class="txt"><strong>15:40</strong></p>
                                    </div>

                                </div>
                            </div>

                        </div>
                    </div>
                </div>

            </div>

            <button type="button" class="c-dialog__close js-fr-dialogmodal-close" aria-label="Chiudi la modale">
                <svg class="c-icon c-icon--32">
                    <use xlink:href="#ic_close_black_24px"></use>
                </svg> </button>

        </div>
    </div>
</div>
<div class="c-calendar">

  <ul class="c-calendar__weekdays">
    <li aria-label="Lunedì">Lun</li>
    <li aria-label="Martedì">Mar</li>
    <li aria-label="Mercoledì">Mer</li>
    <li aria-label="Giovedì">Gio</li>
    <li aria-label="Venerdì">Ven</li>
    <li aria-label="Sabato">Sab</li>
    <li aria-label="Domenica">Dom</li>
  </ul>

  <ul class="c-calendar__day-grid">
    {{#each days}}
      <li class="{{ this.class }}">
        {{#equalTo this.class "active-day"}}
          <a href="#">
            <span>{{ this.day }}</span>
          </a>
        {{else}}
          <span>{{ this.day }}</span>
        {{/equalTo}}
      </li>
    {{/each}}
  </ul>
    
</div>

{{ render "@dialog--dayflight" }}
{
  "days": [
    {
      "day": 29,
      "class": "ghost-day"
    },
    {
      "day": 30,
      "class": "ghost-day"
    },
    {
      "day": 31,
      "class": "ghost-day"
    },
    {
      "day": 1
    },
    {
      "day": 2
    },
    {
      "day": 3,
      "class": "active-day"
    },
    {
      "day": 4
    },
    {
      "day": 5,
      "class": "active-day"
    },
    {
      "day": 6
    },
    {
      "day": 7,
      "class": "active-day"
    },
    {
      "day": 8
    },
    {
      "day": 9
    },
    {
      "day": 10,
      "class": "active-day"
    },
    {
      "day": 11
    },
    {
      "day": 12,
      "class": "active-day"
    },
    {
      "day": 13
    },
    {
      "day": 14,
      "class": "active-day"
    },
    {
      "day": 15
    },
    {
      "day": 16
    },
    {
      "day": 17,
      "class": "active-day"
    },
    {
      "day": 18
    },
    {
      "day": 19,
      "class": "active-day"
    },
    {
      "day": 20
    },
    {
      "day": 21,
      "class": "active-day"
    },
    {
      "day": 22
    },
    {
      "day": 23
    },
    {
      "day": 24,
      "class": "active-day"
    },
    {
      "day": 25
    },
    {
      "day": 26,
      "class": "active-day"
    },
    {
      "day": 27
    },
    {
      "day": 28,
      "class": "active-day"
    },
    {
      "day": 29
    },
    {
      "day": 30
    },
    {
      "day": 1,
      "class": "ghost-day"
    },
    {
      "day": 2,
      "class": "ghost-day"
    }
  ]
}
  • Content:
    .c-calendar__weekdays,
    .c-calendar__day-grid {
    
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
    
      @supports (display: grid) {
        display: grid;
        grid-template-columns: repeat(7, 1fr);
        grid-gap: 0;
        flex-direction: initial;
        flex-wrap: initial;
      }
      
      li {
        display: flex;
        align-items: center;
        justify-content: center;
        list-style: none;
        margin-left: 0;
        width: 14%; // For flex usage
        flex-grow: 1;
    
        @supports (display: grid) {
          width: auto;
        }
    
      }
    
    }
    
    .c-calendar__weekdays {
      margin-bottom: remify(16px);
    }
    
    .c-calendar__day-grid {
      background-color: primary(sky, 20);
      border: remify(2px) solid primary(sky, 20);
      @include shadow(medium);
    
      @supports (display: grid) {
        grid-gap: remify(2px);
      }
    
      li {
        background-color: secondary(page, 100);
        height: 12vw;
        max-height: remify(125px);
        align-items: flex-start;
        justify-content: flex-start;
        padding: 1vw;
        border: 1px solid primary(sky, 20);
        border-width: 1px 0 0 1px;
    
        @supports (display: grid) {
          border : none;
        }
    
      }
    
      span {
        font-size: 85%;
        line-height: remify(24px);
    
        @include min-screen(bp(tablet)) {
          font-size: 100%;
        }
    
      }
    
      .flight-companies {
        display: flex;
      }
    
        .company {
          display: none;
          
          @include min-screen(bp(tablet-p)) {
            display: inline-block;
            margin-top: 1vw;
            text-align: center;
          }
    
        }
    
      li.ghost-day {
        color: primary(sky, 20);
      }
    
      li.active-day {
        background-color: #fff;
        padding: 0;
    
        a {
          padding: 1vw;
          display: block;
          width: 100%;
          height: 100%;
          text-decoration: none;
        }
    
        span {
          display: block;
          background-color: primary(sky, 120);
          color: #fff;
          font-weight: fw(bold);
          border-radius: remify(20px);
          width: remify(24px);
          height: remify(24px);
          text-align: center;
    
          @include min-screen(bp(tablet-l)) {
            background-color: transparent;
            color: primary(sky, 120);
            // text-decoration: underline;
          }
    
        }
    
      }
    
    }
    
    .c-calendar__hint {
      margin-top: remify(24px);
      display: block;
    }
    
    /*------------------------------------*\
      Flights modifier
    \*------------------------------------*/
    
    .c-calendar--flights {
    
      .airports {
        color: primary(night, 80);
        text-align: center;
        margin-bottom: remify(16px);
        font-size: 75%;
    
        @include min-screen(bp(tablet)) {
          font-size: 100%;
        }
        
        li {
          display: inline-block;
          padding: remify(8px) remify(16px);
        }
    
        a {
          color: currentColor;
          text-transform: uppercase;
    
          &.is-active {
            font-weight: fw(bold);
            text-decoration: none;
            color: primary(night, 100);
          }
    
        }
    
      }
    
      .filters {
        margin-bottom: remify(8px);
    
        @include min-screen(bp(tablet)) {
          display: flex;
          justify-content: space-between;
          flex-wrap: wrap;
          margin-bottom: remify(16px);
        }
    
      }
    
      .filters__child {
        @include min-screen(bp(tablet)) {
          flex: 1 1 auto;
        }
      }
    
      .route {
        @include min-screen(bp(tablet)) {
          order: 1;
        }
    
        text-align: left;
    
        .is-label {
          color: primary(night, 100);
          font-weight: fw(bold);
          display: block;
          width: 100%;
          text-align: left;
        }
      }
    
      .companies {
        display: flex;
        justify-content: center;
        align-items: center;
        
        @include min-screen(bp(tablet)) {
          order: 3;
        }
    
        label {
          color: primary(night, 100);
          font-weight: fw(bold);
          display: block;
          width: 100%;
          text-align: left;
        }
    
        i {
          display: block;
          font-weight: fw(regular);
        }
      }
    
      .news {
        @include min-screen(bp(tablet)) {
          order: 4;
          flex: 1 0 100%;
          text-align: center;
          margin-top: remify(24px);
        }
    
        label:not(:last-child) {
          margin-right: remify(32px);
        }
      }
    
      .months {
        display: flex;
        align-items: center;
        justify-content: center;
    
        @include min-screen(bp(tablet)) {
          order: 2;
        }
        
        p {
          color: primary(night, 100);
          font-size: 150%;
          margin: 0 remify(24px);
        }
    
        a {
          max-height: remify(24px);
        }
    
        svg * {
          fill: primary(night, 100);
        }
    
      }
    
    }
  • URL: /components/raw/calendar/_calendar.scss
  • Filesystem Path: src/views/02-molecules/calendar/_calendar.scss
  • Size: 4.3 KB

If the <li> contains .active-day class, an <a> that opens a dialog is added.

Example:

...
<li class="">
    <span>2</span>
</li>
<li class="active-day">
    <a href="#" class="js-fr-dialogmodal-open" aria-controls="dialog-dayflight">
        <span>3</span>
    </a>
</li>
<li class="">
    <span>4</span>
</li>
...