diff --git a/Trillo/starter/css/style.css b/Trillo/starter/css/style.css index 4d0845d..018946b 100644 --- a/Trillo/starter/css/style.css +++ b/Trillo/starter/css/style.css @@ -25,7 +25,8 @@ Grey dark 3: #999 --color-grey-dark-1: #333; --color-grey-dark-2: #777; --color-grey-dark-3: #999; - --shadow-dark: 0 2rem 6rem rgba(0, 0, 0, 0.3); } + --shadow-dark: 0 2rem 6rem rgba(0, 0, 0, 0.3); + --shadow-light: 0 2rem 5rem rgba(0, 0, 0, 0.06); } * { margin: 0; @@ -171,6 +172,80 @@ body { text-align: center; padding: 2.5rem; } +.gallery { + display: flex; } + .gallery__photo { + width: 100%; + display: block; } + +.overview { + display: flex; + align-items: center; + border-bottom: 1px solid var(--color-grey-light-2); } + .overview__heading { + font-size: 2.25rem; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 1px; + padding: 1.5rem 3rem; } + .overview__stars { + margin-right: auto; + display: flex; } + .overview__icon-star, .overview__icon-location { + width: 1.75rem; + height: 1.75rem; + fill: var(--color-primary); } + .overview__location { + font-size: 1.2rem; + display: flex; + vertical-align: center; } + .overview__icon-location { + margin-right: 0.5rem; } + .overview__rating { + background-color: var(--color-primary); + color: white; + margin-left: 3rem; + padding: 0 2.25rem; + align-self: stretch; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; } + .overview__rating-average { + font-size: 2.25rem; + font-weight: 300; + margin-bottom: -3px; } + .overview__rating-count { + font-weight: 0.8rem; + text-transform: uppercase; } + +.btn-inline { + border: none; + color: var(--color-primary); + font-size: inherit; + border-bottom: 1px solid currentColor; + padding-bottom: 2px; + display: inline-block; + background-color: transparent; + cursor: pointer; + transition: all 0.2s; } + .btn-inline:hover { + color: var(--color-grey-dark-1); } + .btn-inline:focus { + outline: none; + animation: pulsate 1s infinite; } + +@keyframes pulsate { + 0% { + transform: scale(1); + box-shadow: none; } + 50% { + transform: scale(1.05); + box-shadow: 0 1rem 4rem rgba(0, 0, 0, 0.25); } + 100% { + transform: scale(1); + box-shadow: none; } } + .container { max-width: 120rem; min-height: 50rem; @@ -181,7 +256,7 @@ body { .header { height: 7rem; background-color: #fff; - border-bottom: var(--color-grey-light-2); + border-bottom: 1px solid var(--color-grey-light-2); display: flex; justify-content: space-between; align-items: center; @@ -199,5 +274,22 @@ body { .hotel-view { flex: 1; - background-color: #fff; - height: 80rem; } + background-color: #fff; } + +.detail { + display: flex; + padding: 4.5rem; + gap: 4.5rem; + background-color: var(--color-grey-light-1); + border-bottom: 1px solid var(--color-grey-light-2); } + +.description { + background-color: white; + box-shadow: var(--shadow-light); + padding: 3rem; + flex: 0 0 60%; + font-size: 1.4rem; } + +.user-reviews { + background-color: blue; + flex: 1; } diff --git a/Trillo/starter/index.html b/Trillo/starter/index.html index 6a44267..50ac4f5 100644 --- a/Trillo/starter/index.html +++ b/Trillo/starter/index.html @@ -96,7 +96,116 @@ -
Hotel view
+
+ + +
+

Hotel Las Palmas

+
+ + + + + + + + + + + + + + + +
+
+ + + + +
+ +
+
8.6
+
429 votes
+
+
+ +
+
+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi + nisi dignissimos debitis ratione sapiente saepe. Accusantium + cumque, quas, ut corporis incidunt deserunt quae architecto + voluptate. +

+
    +
  • Close to the beach
  • +
  • Breakfast included
  • +
  • Free airport shuttle
  • +
  • Free wifi in all rooms
  • +
  • Air conditioning and heating
  • +
  • Pets allowed
  • +
  • We speak all languages
  • +
  • Perfect for families
  • +
+ +
+

+ Lucy and 3 other friends recommend this hotel. +

+
+ Friend 1 + Friend 2 + Friend 3 + Friend 4 +
+
+
+ +
User reviews
+
+
diff --git a/Trillo/starter/sass/_base.scss b/Trillo/starter/sass/_base.scss index 10546f8..31999ed 100644 --- a/Trillo/starter/sass/_base.scss +++ b/Trillo/starter/sass/_base.scss @@ -29,6 +29,7 @@ Grey dark 3: #999 --color-grey-dark-3: #999; --shadow-dark: 0 2rem 6rem rgba(0, 0, 0, 0.3); + --shadow-light: 0 2rem 5rem rgba(0, 0, 0, 0.06); } * { diff --git a/Trillo/starter/sass/_components.scss b/Trillo/starter/sass/_components.scss index 9d7c38b..99b440a 100644 --- a/Trillo/starter/sass/_components.scss +++ b/Trillo/starter/sass/_components.scss @@ -185,3 +185,111 @@ text-align: center; padding: 2.5rem; } + +// Gallery +.gallery { + display: flex; + + &__photo { + width: 100%; + display: block; + } +} + +// Overview +.overview { + display: flex; + align-items: center; + border-bottom: 1px solid var(--color-grey-light-2); + + &__heading { + font-size: 2.25rem; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 1px; + + padding: 1.5rem 3rem; + } + + &__stars { + margin-right: auto; // NOTE: to imitate flex: 1 effect but with a small final box, instead of one that extends all the space + display: flex; // NOTE: because svg behave like inline so is either this or set line-height: 0 and font-size: 0; + } + + &__icon-star, + &__icon-location { + width: 1.75rem; + height: 1.75rem; + fill: var(--color-primary); + } + + &__location { + font-size: 1.2rem; + display: flex; + vertical-align: center; + } + + &__icon-location { + margin-right: 0.5rem; + } + + &__rating { + background-color: var(--color-primary); + color: white; + margin-left: 3rem; + padding: 0 2.25rem; + align-self: stretch; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + } + + &__rating-average { + font-size: 2.25rem; + font-weight: 300; + margin-bottom: -3px; + } + + &__rating-count { + font-weight: 0.8rem; + text-transform: uppercase; + } +} + +// btn +.btn-inline { + border: none; + color: var(--color-primary); + font-size: inherit; // NOTE: to make it more reusable + border-bottom: 1px solid currentColor; + padding-bottom: 2px; + display: inline-block; + background-color: transparent; + cursor: pointer; + transition: all 0.2s; + + &:hover { + color: var(--color-grey-dark-1); + } + + &:focus { + outline: none; + animation: pulsate 1s infinite; + } +} + +@keyframes pulsate { + 0% { + transform: scale(1); // NOTE: needs an initial value in order to animate + box-shadow: none; + } + 50% { + transform: scale(1.05); + box-shadow: 0 1rem 4rem rgba(0, 0, 0, 0.25); + } + 100% { + transform: scale(1); + box-shadow: none; + } +} diff --git a/Trillo/starter/sass/_layout.scss b/Trillo/starter/sass/_layout.scss index f619e9d..cd1d608 100644 --- a/Trillo/starter/sass/_layout.scss +++ b/Trillo/starter/sass/_layout.scss @@ -9,7 +9,7 @@ .header { height: 7rem; background-color: #fff; - border-bottom: var(--color-grey-light-2); + border-bottom: 1px solid var(--color-grey-light-2); display: flex; justify-content: space-between; @@ -33,6 +33,26 @@ .hotel-view { flex: 1; background-color: #fff; +} - height: 80rem; // temporary +.detail { + display: flex; + padding: 4.5rem; + gap: 4.5rem; + + background-color: var(--color-grey-light-1); + border-bottom: 1px solid var(--color-grey-light-2); +} + +.description { + background-color: white; + box-shadow: var(--shadow-light); + padding: 3rem; + flex: 0 0 60%; + font-size: 1.4rem; +} + +.user-reviews { + background-color: blue; + flex: 1; }