diff --git a/.gitignore b/.gitignore index 9c8b751..453bfba 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ node_modules .cache/ -public/ +public/css +public/js +build/ diff --git a/components/_preview.hbs b/components/_preview.hbs index 91a618c..a767cc6 100644 --- a/components/_preview.hbs +++ b/components/_preview.hbs @@ -2,10 +2,33 @@ + + + + Preview +
+
small
+
+
+
375 zepplin
+
+
+
min 768 M
+
+
+
min 992 L
+
+
+
min 1200 XL
+
+
+
1440
+
+ {{{ yield }}} diff --git a/components/carousel/carousel--guides.hbs b/components/carousel/carousel--guides.hbs new file mode 100644 index 0000000..298a38a --- /dev/null +++ b/components/carousel/carousel--guides.hbs @@ -0,0 +1,20 @@ + + diff --git a/components/carousel/carousel--warmth.hbs b/components/carousel/carousel--warmth.hbs new file mode 100644 index 0000000..afb799e --- /dev/null +++ b/components/carousel/carousel--warmth.hbs @@ -0,0 +1,34 @@ + + diff --git a/components/carousel/carousel.config.js b/components/carousel/carousel.config.js new file mode 100644 index 0000000..01d9e2b --- /dev/null +++ b/components/carousel/carousel.config.js @@ -0,0 +1,62 @@ +module.exports={ + // name:"bset seller", + context:{ + slides:[ + { + img:"https://res.cloudinary.com/dg1knuetg/image/upload/w_992,ar_1:1,c_fill/v1598883146/car-1.png", + subtitle:"Sheet Guide", + h3:"LaCrosse® Down Comforter", + salePrice:"$189.00 - $399.00", + invisible:"invisible text, invisible text, invisible" + }, + { + img:"https://res.cloudinary.com/dg1knuetg/image/upload/w_992,ar_1:1,c_fill/v1598883155/car-2.png", + subtitle:"Pillow Guide", + h3:"Legends® Luxury Geneva PrimaLoft® Down Alternative Comforter", + salePrice:" $249.00 - $359.00" + }, + { + img:"https://res.cloudinary.com/dg1knuetg/image/upload/w_992,ar_1:1,c_fill/v1598883165/car-3.png", + subtitle:"Sleep Better Guide", + h3:"Legends® Luxury Royal Down Comforter", + salePrice:"$499.00 - $989.00", + invisible:"invisible text, invisible text" + }, + ] + }, + variants:[ + { + name:"warmth", + context:{ + slides:[ + { + title:"Super Light", + text:"Ideal for warmer climates, summer sleeping, or for those who prefer the bare minimum. ", + icons:2, + }, + { + title:"Light", + text:"Perfect for warmer seasons and climates, or for those who keep their bedroom cool. ", + icons:2, + }, + { + title:"Medium", + text:"Our most popular weight comforter offers plenty of down fill for year-round comfort.", + icons:2, + }, + { + title:"Extra Warm", + text:"cozy choice in late fall or early spring. ", + icons:2, + }, + { + title:"Ultra Warm", + text:"Our very warmest. Perfect for people who need toasty warmth in the coldest of winters. ", + icons:2, + } + ] + } + } + ] + +} \ No newline at end of file diff --git a/components/carousel/carousel.hbs b/components/carousel/carousel.hbs new file mode 100644 index 0000000..a65d469 --- /dev/null +++ b/components/carousel/carousel.hbs @@ -0,0 +1,27 @@ + + diff --git a/components/carousel/carousel.js b/components/carousel/carousel.js new file mode 100644 index 0000000..d5737f5 --- /dev/null +++ b/components/carousel/carousel.js @@ -0,0 +1,65 @@ +import Swiper, {Pagination} from 'swiper'; + +Swiper.use([ Pagination]); +import $ from 'jquery' + + +$(function () { + // debugger; + var mySwiper = new Swiper('.tcs-carousel--best-seller', { + pagination: { + el: '.swiper-pagination', + clickable: true, + }, + slidesPerView: 1.15, + spaceBetween: 20, + breakpoints: { + 768: { + slidesPerView: 2, + spaceBetween: 40 + }, + 992: { + slidesPerView: 3, + spaceBetween: 40 + } + } + }) + + var mySwiper = new Swiper('.tcs-carousel--warmth-slider', { + pagination: { + el: '.swiper-pagination', + clickable: true, + }, + slidesPerView: 1.4, + spaceBetween: 20, + breakpoints: { + 768: { + slidesPerView: 3, + spaceBetween: 40 + }, + 992: { + slidesPerView: 5, + spaceBetween: 40 + } + } + }) + + var mySwiper = new Swiper('.tcs-carousel--guides', { + pagination: { + el: '.swiper-pagination', + clickable: true, + }, + slidesPerView: 1.15, + spaceBetween: 20, + breakpoints: { + 768: { + slidesPerView: 2, + spaceBetween: 40 + }, + 992: { + slidesPerView: 3, + spaceBetween: 40 + } + } + }) +}) \ No newline at end of file diff --git a/components/carousel/carousel.scss b/components/carousel/carousel.scss new file mode 100644 index 0000000..6a00764 --- /dev/null +++ b/components/carousel/carousel.scss @@ -0,0 +1,122 @@ +.tcs-carousel{ + + padding-left: 20px; + padding-right: 20px; + margin-bottom: 80px; + + &--best-seller{ + @extend .bg-primary-light; + + .tcs-carousel__title{ + @extend .text-center; + } + + } + + .swiper-wrapper{ + height: fit-content; + } + + + $yellow:#e7dc97; + + &__button{ + line-height: initial !important; + min-width: 100% !important; + padding: 5px !important; + } + + &--warmth{ + padding-left: 40px; + padding-right: 40px; + // transform: rotate(180deg); + mix-blend-mode: multiply; + background-image: linear-gradient(to left,rgba(255, 255, 255, 0), $yellow ); + position: relative; + + .tcs-carousel__title{ + width: 11ch; + position: relative; + } + + .tcs-carousel__bg-image{ + width: 200px; + opacity: .6; + position: absolute; + left: 11ch; + top: 30px + } + .swiper-pagination { + padding-left: 40px; + text-align: left; + + } + + .tcs-carousel__slide-icon{ + width: 30px; + + } + } + + + + &.swiper-container-horizontal > .swiper-pagination-bullets{ + bottom: 30px; + } + .swiper-pagination-bullet-active { + background: $primary; + } + + &__slide-title{ + margin-top: 10px; + text-transform: none; + } + &__slide-price{ + margin-bottom: 10px; + display: block; + text-decoration: line-through; + } + &__slide-saleprice{ + display: block; + margin-bottom: 10px; + } + + &__button{ + &:hover{ + background-color: $white; + } + } +} + +@include media-breakpoint-up(md) { + .tcs-carousel{ + padding-left: 40px; + padding-right: 40px; + } +} +@include media-breakpoint-up(lg) { + .tcs-carousel{ + padding-left: 60px; + padding-right: 60px; + margin-left: 80px; + margin-right: 80px; + + &__desktop{ + flex: 0 0 25%; + max-width: 25%; + } + + .swiper-pagination{ + display: none; + } + } + .tcs-carousel--warmth{ + background: rgb(231,220,151); + background: linear-gradient(90deg, rgba(231,220,151,1) 0%, rgba(245,236,236,1) 50%, rgba(203,195,220,1) 100%); + } + .tcs-carousel--warmth-slider{ + flex: 0 0 75%; + max-width: 75%; + } + +} diff --git a/components/certification/a.html b/components/certification/a.html new file mode 100644 index 0000000..a3ecb78 --- /dev/null +++ b/components/certification/a.html @@ -0,0 +1 @@ +

\ No newline at end of file diff --git a/components/certification/certification.config.js b/components/certification/certification.config.js new file mode 100644 index 0000000..d504fc5 --- /dev/null +++ b/components/certification/certification.config.js @@ -0,0 +1,27 @@ +module.exports = { + context: { + cards: [ + { + id: "card1", + class: "show", + title: "The Responsible Down Standard (RDS)", + text: + "The Responsible Down Standard (RDS) was established by Textile Exchange to promote traceability within the down industry. With independent supply chain certification by the third-party auditing company, Control Union, each phase of down sourcing is monitored so you can be confident that the down inside is the most responsibly sourced down in the market. All our down products are filled with down that has been certified under the Responsible Down Standard (RDS).", + text1: + "Some of our down alternative comforter shells meet the STANDARD 100 by OEKO-TEX®.", + }, + { + id: "card2", + title: "STANDARD 100 by OEKO-TEX®", + text: + "STANDARD 100 by OEKO-TEX® is a global standard, independent mark of quality for raw, semi-finished and finished textile products from all stages of production and materials used in the process. It assures manufacturers, retailers, and consumers that certified products meet the strict limit values for harmful substances.", + }, + { + id: "card3", + title: "Lifetime Guarantee", + text: + "Most products assembled in La Crosse, WI are covered by our Lifetime Guarantee. Look for this symbol. It indicates one of our exclusive items, which carries a Lifetime Guarantee. For additional information, please visit our FAQs.", + }, + ], + }, +}; diff --git a/components/certification/certification.hbs b/components/certification/certification.hbs new file mode 100644 index 0000000..41a92cc --- /dev/null +++ b/components/certification/certification.hbs @@ -0,0 +1,82 @@ +
+
+ + +

+ Down and Organic Certifications and Guarantees +

+ +

+ All our down products are filled with down that has been certified under the Responsible Down Standard + (RDS). +

+ +
+ {{#each cards}} +
+ +
+

+ {{text}} +

+

+ {{text1}} +

+
+
+ {{/each}} +
+ + + + +

+ Down Alternative Comforters +

+ +

+ For those that want an alternative to down or a more affordable fill, down alternative is a synthetic fill + used in pillows, comforters, and mattress pads that mimics the loftiness and insulating qualities of down. + To achieve the same warmth level of down, down alternative comforters may be a bit heavier than down + comforters. +

+ +

+ Our Down Alternative Fill Qualities: +

+ + + +

+ What does PrimaLoft® and LoftAIRE mean? +

+ +

+ PrimaLoft® is the premier hypoallergenic down alternative fill used in luxury bedding, and is an ultra-fine, + polyester microfiber that traps heat, wicks away moisture, and insulates against the cold. + LoftAIRE is our exclusive, high-quality synthetic microfiber which mimics the loftiness and insulating + properties of down to give you the closest thing to the real deal. +

+ + +
+ + {{!--
--}} +
\ No newline at end of file diff --git a/components/certification/certification.scss b/components/certification/certification.scss new file mode 100644 index 0000000..85ac6d2 --- /dev/null +++ b/components/certification/certification.scss @@ -0,0 +1,34 @@ +.tcs-certification { + + button.btn-primary { + max-width: 100%; + width: auto; + line-height: initial; + padding: 5px !important; + min-width: 350px; + } + + &__list { + > div:first-of-type { + border-top: 2px solid $light-blue; + } + } + + &__collapse-card { + border-bottom: 2px solid $light-blue; + + button { + max-width: 100%; + } + button { + .fa-collapse-icon:before { + content: "\f068"; + } + &.collapsed { + .fa-collapse-icon:before { + content: "\f067"; + } + } + } + } +} diff --git a/components/cta-module/cta-module.config.js b/components/cta-module/cta-module.config.js new file mode 100644 index 0000000..6b7f5fd --- /dev/null +++ b/components/cta-module/cta-module.config.js @@ -0,0 +1,19 @@ +module.exports={ + context:{ + cards:[ + { + subtitle1:"LOREM IPSUM", + p1:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt", + }, + { + subtitle1:"LOREM IPSUM", + p1:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt", + } + , + { + subtitle1:"LOREM IPSUM", + p1:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt", + } + ] + } +} \ No newline at end of file diff --git a/components/cta-module/cta-module.hbs b/components/cta-module/cta-module.hbs new file mode 100644 index 0000000..206f548 --- /dev/null +++ b/components/cta-module/cta-module.hbs @@ -0,0 +1,44 @@ +
+
+ {{!--
--}} + {{!--
--}} +
+
+
+ +

+ Title Here +

+
+
+
+
+ + {{#each cards}} + +
+
+
+

+ {{subtitle1}} +

+ +

+ {{p1}} +

+ +
+ +
+
+ {{/each}} +
+
+
+ +
+ +
+ + + diff --git a/components/cta-module/cta-module.scss b/components/cta-module/cta-module.scss new file mode 100644 index 0000000..9442516 --- /dev/null +++ b/components/cta-module/cta-module.scss @@ -0,0 +1,35 @@ +.tcs-cards-features{ + .rectangle{ + width: 255px; + height: 143px; + background-color: $greyrect; + } + + &__ctaButton{ + width: 223px; + height: 36px; + background-color: $white; + border: none; + color: $blue-2; + } + +} + +@include media-breakpoint-up(md) { + .tcs-cards-features{ + background-color: $light-blue; + .rectangle{ + width: 223px; + height: 125px; + } + &__ctaLogo{ + top: 38px; + left: -15px; + } + + &__ctaButton{ + width: 100%; + } + } +} + diff --git a/components/example/example.config.yml b/components/example/example.config.yml deleted file mode 100644 index aeff704..0000000 --- a/components/example/example.config.yml +++ /dev/null @@ -1,3 +0,0 @@ -title: Example component -context: - text: This is an example component! diff --git a/components/example/example.hbs b/components/example/example.hbs deleted file mode 100644 index 6545c03..0000000 --- a/components/example/example.hbs +++ /dev/null @@ -1 +0,0 @@ -

{{ text }}

\ No newline at end of file diff --git a/components/fav-color/fav-color.hbs b/components/fav-color/fav-color.hbs new file mode 100644 index 0000000..07a4cea --- /dev/null +++ b/components/fav-color/fav-color.hbs @@ -0,0 +1,38 @@ +
+
+ + + +
+ +
+

+ Comforters in Your Favorite Colors and Prints +

+ +

+ In addition to white, many of our premium comforters are available in additional colors, along with down alternative options in fashionable prints. For instance, our best-selling LaCrosse® comforter is available in a rainbow of choices and our Legends® Hotel White Bay™ and Legends® Hotel Alberta™ comforters come in a palette of muted hues to match any decor. +

+ + + +

+ Add Color with a Duvet Cover +

+ +

+ Of course, the beauty of a Company Store comforter is you can easily change up the look by using one of our high-quality duvet covers. Some of the most popular reasons to choose to use a duvet cover are seasonality, decor, and ease of washing. +

+ + + + +
+ +
\ No newline at end of file diff --git a/components/fav-color/fav-color.scss b/components/fav-color/fav-color.scss new file mode 100644 index 0000000..e4ec08d --- /dev/null +++ b/components/fav-color/fav-color.scss @@ -0,0 +1,11 @@ + + +.tcs-fav-color { + .btn-primary { + max-width: 100% !important; + min-width: 345px; + width: auto !important; + line-height: initial !important; + padding: 5px !important; + } +} \ No newline at end of file diff --git a/components/fill-power/fill-power.config.js b/components/fill-power/fill-power.config.js new file mode 100644 index 0000000..a93c96a --- /dev/null +++ b/components/fill-power/fill-power.config.js @@ -0,0 +1,28 @@ +module.exports={ + context:{ + cards:[ + { + title:"550-550", + subtitle1:"GOOD", + p1:"Our 500-550 fill power down provides premium warmth at an affordable price.", + subtitle2:"Recommended:", + p2:"Lacrosse Legends® Hotel Alberta", + }, + { + title:"600-650", + subtitle1:"BETTER", + p1:"A high-quality down with plump and resilient clusters. 600-650 fill power provides warmth and wonderful loft.", + subtitle2:"Recommended:", + p2:"Lacrosse Legends® Hotel Alberta", + } + , + { + title:"700-750", + subtitle1:"BEST", + p1:"Our most luxurious down from select cold climate geese. 700-750 fill power Hungarian goose down provides the largest down clusters with exceptional loft.", + subtitle2:"Recommended:", + p2:"Legends® Luxury Royal", + } + ] + } +} \ No newline at end of file diff --git a/components/fill-power/fill-power.hbs b/components/fill-power/fill-power.hbs new file mode 100644 index 0000000..78fd8c7 --- /dev/null +++ b/components/fill-power/fill-power.hbs @@ -0,0 +1,53 @@ +
+
+ {{!--
--}} + {{!--
--}} +
+
+
+ +

+ Fill Power +

+
+
+
+
+ + {{#each cards}} + +
+
+

+ {{title}} +

+ +
+ +

+ {{subtitle1}} +

+ +

+ {{p1}} +

+ +
+ {{subtitle2}} +
+ +

+ {{p2}} +

+
+
+ {{/each}} +
+
+
+ +
+ +
\ No newline at end of file diff --git a/components/fill-power/fill-power.scss b/components/fill-power/fill-power.scss new file mode 100644 index 0000000..2ee37f7 --- /dev/null +++ b/components/fill-power/fill-power.scss @@ -0,0 +1,35 @@ +.tcs-cards-featuresfill { + &__logo__feather { + width: 177px; + top: 0; + left: 9ch; + opacity: 0.15; + } + + .fill-power-level { + letter-spacing: 2px; + font-family: "Poppins Md"; + font-size: 18px; + } +} + +@include media-breakpoint-up(lg) { + .tcs-cards-featuresfill { + background-color: $light-blue-50; + + &__logo__feather { + top: -20px !important; + left: 50% !important; + transform: translateX(-50%) !important; + } + &__details { + padding: 0 15px !important; + } + &__card-title { + font-size: 50px !important; + } + &__line { + margin-top: 10px !important; + } + } +} diff --git a/components/guide-image/guide-image.config.js b/components/guide-image/guide-image.config.js new file mode 100644 index 0000000..d8cf70e --- /dev/null +++ b/components/guide-image/guide-image.config.js @@ -0,0 +1,106 @@ + +module.exports = { + context: { + subtitle:"The Basics", + title: "What’s the difference between a Comforter and a Duvet Insert?", + mainImage: "https://res.cloudinary.com/dg1knuetg/image/upload/w_1200,ar_1:1,c_fill,g_auto/v1598412568/duvet_w1xhq3.png", + richText: ` +

+ Did you know that comforters and duvet inserts are essentially the same thing? Both are typically filled with down, feathers, or synthetic fibers, will keep you warm, and can be used with our duvet covers which include an array of fun solid colors, fashionable prints, and premium fabrics. Duvet covers can also be interchanged frequently, are easily washed, and protect your investment so it’s a win-win. +
All our comforters (and duvet inserts) have handy loops on all four corners that attach to our duvet cover ties to easily secure both in place. +

+ + ` + }, + variants: [ + { + name: "fill", + context: { + subtitle:"Fill", + title: "Down vs. Down Alternative", + mainImage: "https://res.cloudinary.com/dg1knuetg/image/upload/ar_1:1,c_fill/v1598451167/cotton.png", + richText: ` +

+ Warm and comfortable, lightweight and breathable, down is Mother Nature’s most efficient insulator. Down comforters are long-lasting and resilient if given proper care which makes them a good investment for your bed. +

+
+
Our Down Qualities:
+ +
+ + ` + } + }, + { + name: "warmth", + context: { + subtitle:"Warmth Level", + title: "Choosing Your Comforter’s Warmth Level", + mainImage: "https://res.cloudinary.com/dg1knuetg/image/upload/ar_1:1,c_fill/v1598452761/sleep.png", + richText: ` +

+ No one sleeps the same, so choosing your warmth level comes down + to personal preference. We offer multiple comforter warmth levels + in down and down alternative options. We even have a solution to the battle of the covers with our LaCrosse® Dual Comforter in both fill options—each side is crafted with different warmth levels so both partners can sleep in their preferred temperature. +

+ ` + } + }, + { + name: "size", + context: { + subtitle:"Size", + title: "Choose the Best Comforter Size ", + mainImage: "https://res.cloudinary.com/dg1knuetg/image/upload/ar_1:1,c_fill/v1598968031/size_rm3u6v.png", + richText: ` +

+ What size comforter should you get? Obviously you want to consider the size of your bed, but also consider the look you prefer—do you want the comforter to just sit on the bed or do you want it to hang off the bed more like a bedspread? + We have the four main sizes: Twin, Full, Queen, and King/California King. But did you know that we also have specialty sizes, such as Twin XL, Oversized Queen, and Oversized King. +

+ ` + } + }, + { + name: "clean", + context: { + subtitle:"How to Clean", + title: "How to Care for Your Down or Down Alternative Comforter", + mainImage: "https://res.cloudinary.com/dg1knuetg/image/upload/ar_1:1,c_fill/v1598968694/clean_uvaqg8.png", + richText: ` +

+ A premium comforter is an investment, so always follow the individual comforter care instructions. + Washing and drying your comforter the right way will help it maintain its insulating qualities and shell construction throughout the years. +

+ ` + } + }, + { + name: "faq", + context: { + subtitle:"FAQ", + title: "Comforter FAQs", + mainImage: "https://res.cloudinary.com/dg1knuetg/image/upload/ar_1:1,c_fill/v1598969683/faq_y7ozam.png", + richText: "" + } + }, + { + name: "reviews", + context: { + subtitle:"Reviews", + title: "Customer Reviews", + mainImage: "https://res.cloudinary.com/dg1knuetg/image/upload/ar_1:1,c_fill/v1598969683/reviews_xpbb6w.png", + richText: "" + } + }, + ] +}; \ No newline at end of file diff --git a/components/guide-image/guide-image.hbs b/components/guide-image/guide-image.hbs new file mode 100644 index 0000000..37ae4f3 --- /dev/null +++ b/components/guide-image/guide-image.hbs @@ -0,0 +1,54 @@ +
+
+
+
+
+
+

+ comforter guide +

+ + Back to top + +
+ +
+
+ +

+ {{subtitle}} +

+
+ +

+ {{title}} +

+
+
+
+ +
+
+ +
+
+ +
+ {{#if richText}} + +
+ {{{richText}}} +
+ {{!--

--}} + {{!--

+ Did you know that comforters and duvet inserts are essentially the same thing? Both are typically filled with down, feathers, or synthetic fibers, will keep you warm, and can be used with our duvet covers which include an array of fun solid colors, fashionable prints, and premium fabrics. Duvet covers can also be interchanged frequently, are easily washed, and protect your investment so it’s a win-win. + All our comforters (and duvet inserts) have handy loops on all four corners that attach to our duvet cover ties to easily secure both in place. +

--}} + {{!-- --}} + {{!-- --}} + + {{/if}} +
+ + +
\ No newline at end of file diff --git a/components/guide-image/guide-image.js b/components/guide-image/guide-image.js new file mode 100644 index 0000000..e69de29 diff --git a/components/guide-image/guide-image.scss b/components/guide-image/guide-image.scss new file mode 100644 index 0000000..be9dd5a --- /dev/null +++ b/components/guide-image/guide-image.scss @@ -0,0 +1,132 @@ +.tcs-guide-jumbo{ + &__main{ + background-color: $light-blue; + } + + &__eyeline{ + color: $blue-2; + text-transform: uppercase; + font-size: 16px; + margin-bottom: 0; + letter-spacing: 1.5px; + font-weight: 500; + } + + &__btt{ + font-family: $lora-italic !important; + font-size: 16px !important; + color: $blue; + text-decoration: underline !important; + font-style: italic !important; + width: auto !important; + } + + &__icon{ + width: 40px; + transform: translateY(13px); + } + + &__subtitle-container{ + margin-top: 50px; + } + + &__subtitle{ + color: $blue; + font-size: 18px; + font-family: $lora-reg; + } + + &__title{ + color: $blue; + margin-bottom: 0; + + } + + &__img{ + margin-bottom: -40px; + } + + &__text{ + @extend .py-1; + font-size: 16px; + @extend .mb-0; + } + + &__body{ + font-size: 16px; + line-height: 1.57; + p{ + font-family: $lora-reg; + @extend .py-1; + @extend .mb-0; + } + + h5{ + font-family: Poppins,Arial,sans-serif; + color: $blue-2; + margin-bottom: 12px; + } + + ul{ + font-family: $lora-reg; + padding-left: 20px; + line-height: 2; + } + + img{ + @extend .img-fluid; + @extend .mb-1; + } + } + +} + +@include media-breakpoint-up(lg) { + .tcs-guide-jumbo{ + &__sidebyside{ + display: flex; + > div{ + flex: 0 0 50%; + max-width: 50%; + } + } + + &__text{ + width: 18ch; + } + &__title{ + width: 20ch; + font-size: 52px !important; + } + &__img{ + margin-bottom: -80px; + } + + &__body{ + p:first-of-type{ + @extend .pt-lg-0; + width: 50%; + } + + // p, ul{ + // + img{ + // @extend .mt-lg-3; + // } + // } + + ul,h5{ + // width: 60%; + // margin-left: auto; + // margin-right: auto; + } + + img{ + @extend .mt-lg-3; + &:last-of-type{ + @extend .mb-lg-0; + } + } + + } + } +} \ No newline at end of file diff --git a/components/guide/guide.config.js b/components/guide/guide.config.js new file mode 100644 index 0000000..b0819ec --- /dev/null +++ b/components/guide/guide.config.js @@ -0,0 +1,44 @@ +module.exports ={ + context:{ + modules:[ + { + title:'Comforter Basics:', + cards:[ + { + href:"#The Basics", + title:'The basics' + }, + { + href:"#Fill", + title:'Fill' + }, + { + href:'#Warmth Level', + title:'Warmth Level' + }, + { + href:'#Size', + title:'Size' + }, + ] + }, + { + title:"More Info:", + cards:[ + { + href:'#How to Clean', + title:'How to Clean' + }, + { + href:'#FAQ', + title:'FAQ' + }, + { + href:'#Reviews', + title:'Reviews' + } + ] + } + ] + } +} \ No newline at end of file diff --git a/components/guide/guide.hbs b/components/guide/guide.hbs new file mode 100644 index 0000000..3008c06 --- /dev/null +++ b/components/guide/guide.hbs @@ -0,0 +1,28 @@ +
+
+

What’s Inside Our Guide

+ {{#each modules}} +
+

+ {{title}} +

+
+
+ {{#each cards}} + + + {{/each}} +
+
+
+ {{/each}} +
+
+ diff --git a/components/guide/guide.scss b/components/guide/guide.scss new file mode 100644 index 0000000..a6a9c1a --- /dev/null +++ b/components/guide/guide.scss @@ -0,0 +1,59 @@ + + +.tcs-guide{ + background-color: $light-blue-25; + + &__title{ + color: $blue; + } + + &__subtitle{ + // TODO + font-family: $lora-italic; + font-size: 18px; + font-style: italic; + } + + &__cards-container{ + .row{ + margin-right: -10px; + margin-left: -10px; + + > div{ + padding-right: 10px; + padding-left: 10px; + } + } + } + + &__card{ + background-color: $light-blue-50; + margin-right: 10px; + margin-top: 10px; + margin-bottom: 10px; + padding-top: 15px; + padding-bottom: 15px; + } + &__card-icon{ + width: 24px; + display: block; + margin-bottom: 10px; + } + + &__card-text{ + font-family: $lora-reg; + color: $blue; + margin-bottom: 0; + } +} + + +@include media-breakpoint-up(md) { + .tcs-guide{ + &__title{ + text-align: center; + font-size: 38px; + } + } +} + diff --git a/components/img/7Warmth_630x355.jpg b/components/img/7Warmth_630x355.jpg new file mode 100644 index 0000000..2e8ce2b Binary files /dev/null and b/components/img/7Warmth_630x355.jpg differ diff --git a/components/jumbo/jumbo.hbs b/components/jumbo/jumbo.hbs new file mode 100644 index 0000000..4bfa508 --- /dev/null +++ b/components/jumbo/jumbo.hbs @@ -0,0 +1,28 @@ +
+ + + + + {{!-- fallback is desktop becaus ethere is no ie11 mobile --}} + + + {{!-- px-4 is equal to 20px --}} +
+
+

comforter guide

+

How to Choose the Perfect Comforter

+
+
+ +
+ + + + + +
+
+ diff --git a/components/jumbo/jumbo.scss b/components/jumbo/jumbo.scss new file mode 100644 index 0000000..da5194f --- /dev/null +++ b/components/jumbo/jumbo.scss @@ -0,0 +1,3 @@ +// i moved jumbo here +// components/simple-text/simple-text.scss +// necause tehre was a wierd issue \ No newline at end of file diff --git a/components/pages/page.hbs b/components/pages/page.hbs new file mode 100644 index 0000000..8e9bec4 --- /dev/null +++ b/components/pages/page.hbs @@ -0,0 +1,44 @@ +{{render '@jumbo' }} + +{{ render '@simple-text'}} + +{{ render '@guide'}} + +{{ render '@guide-image'}} + +{{ render '@guide-image--fill'}} + +{{ render '@simple-text--down'}} + +{{ render '@fill-power'}} + +{{ render '@cta-module'}} + +{{ render '@certification'}} + +{{ render '@carousel'}} + +{{ render '@guide-image--warmth'}} + +{{ render '@carousel--warmth'}} + +{{ render '@simple-text--bafflebox'}} + +{{ render '@fav-color'}} + +{{ render '@guide-image--size'}} +{{ render '@size'}} + +{{ render '@guide-image--clean'}} +{{ render '@simple-text--clean'}} + + +{{ render '@guide-image--faq'}} +{{ render '@simple-text--faq'}} + + +{{ render '@guide-image--reviews'}} +{{ render '@simple-text--reviews'}} + + +{{ render '@carousel--guides'}} \ No newline at end of file diff --git a/components/simple-text/simple-text--baffleBox.hbs b/components/simple-text/simple-text--baffleBox.hbs new file mode 100644 index 0000000..3fa827e --- /dev/null +++ b/components/simple-text/simple-text--baffleBox.hbs @@ -0,0 +1,57 @@ +
+
+ +

Baffle Box vs Sewn-Through Box…What’s the difference?

+
+

+ A well-made comforter is constructed to help ensure that warmth is evenly distributed. There are two main types of comforter construction in down comforters—baffle box and sewn-through box. + The one you select is a matter of personal preference. +

+

+ In a baffle box construction, the stitching that creates the pockets for the down, is separated by internal fabric walls inside the comforter, creating a smooth look from the top. +

+

+ In sewn-through box construction, the stitching that creates the pockets for the down, goes through the top and bottom layers of fabric, creating a puffy, pillow-like look from the top. +

+
+ +
+
+ +

+ Baffle Box Construction +

+
+ + +
+ +

+ Sewn Through Construction +

+
+
+ +
+

How to Choose Your Comforter Shell Fabric

+

+ As with all our products, our comforter shells are crafted with premium fabrics—specifically cotton percale, cotton sateen, cotton cambric, and organic cotton. Any bedding product filled with down must have a special down-proof fabric which is tightly woven to keep the fill inside of its shell. +

+
+ +
+
+

+ For more information about the fabric used for our comforters +

+ +
+ +
+ + +
+ +
+
+
\ No newline at end of file diff --git a/components/simple-text/simple-text--clean.hbs b/components/simple-text/simple-text--clean.hbs new file mode 100644 index 0000000..eacf208 --- /dev/null +++ b/components/simple-text/simple-text--clean.hbs @@ -0,0 +1,33 @@ +
+ +
+ + +
+

+ expert tip +

+ +

+ When you first receive your new comforter, it may appear wrinkled and flat. Restore its natural loft by vigorously shaking it out or fluffing it in your dryer on permanent press. +

+
+
+ +
+ {{#each cards}} +
+ +
+

+ {{text}} +

+
+
+ {{/each}} +
+
diff --git a/components/simple-text/simple-text--down.hbs b/components/simple-text/simple-text--down.hbs new file mode 100644 index 0000000..2344096 --- /dev/null +++ b/components/simple-text/simple-text--down.hbs @@ -0,0 +1,47 @@ +
+
+ +

Types of Down

+

+ To the naked eye there is not much difference between regular down and goose down. Goose down is typically + more expensive because it is rare, while down is more available and therefore more affordable while still + providing optimum comfort. The biggest difference between down and goose down is fill power—goose down is + typically available in higher fill powers than regular down. +

+

+ Another difference is the geographic origin—down that comes from colder regions of the world will be larger + and fluffier, so European down is typically available in higher fill powers. Hungarian goose down is known + as the best down fill in the market because of its exceptional thermal abilities. Ultra-soft and superfine, + a Hungarian goose down fill has an exceptionally light feel, while still providing luxurious comfort and + amazing insulation. +

+ +
+ + +
+

+ FUN FACT +

+ +

+ Hungarian geese have survived
frigid weather conditions for
centuries thanks to their + superior
+ insulating feathers. +

+
+
+ +

Filling You in on Fill Power

+ +

+ Fill power refers to the amount of air an ounce of down can hold. The bigger the down clusters the higher + the fill power, resulting in exceptional loft and insulating abilities. Our premium comforters range from + 500 to 750 fill power in a variety of warmth levels (light to ultra-warmth) to provide the perfect amount of + insulation you need to get a great night’s sleep. +

+ +
+
\ No newline at end of file diff --git a/components/simple-text/simple-text--faq.hbs b/components/simple-text/simple-text--faq.hbs new file mode 100644 index 0000000..2549e65 --- /dev/null +++ b/components/simple-text/simple-text--faq.hbs @@ -0,0 +1,18 @@ +
+
+ {{#each cards}} +
+ +
+

+ {{text}} +

+
+
+ {{/each}} +
+
diff --git a/components/simple-text/simple-text--reviews.hbs b/components/simple-text/simple-text--reviews.hbs new file mode 100644 index 0000000..78805f8 --- /dev/null +++ b/components/simple-text/simple-text--reviews.hbs @@ -0,0 +1,25 @@ +
+
+ {{#each reviews}} +

+ {{title}} +

+
+ + + + +
+

+ {{subtitle}} +

+

+ {{text}} + {{read}} +

+

+ {{author}} +

+ {{/each}} +
+
diff --git a/components/simple-text/simple-text.config.js b/components/simple-text/simple-text.config.js new file mode 100644 index 0000000..4f83029 --- /dev/null +++ b/components/simple-text/simple-text.config.js @@ -0,0 +1,112 @@ + +module.exports ={ + context:{ + }, + variants:[ + { + name:"clean", + context:{ + cards:[ + { + id:"card1c", + class:"show", + title:"For Machine Wash Only comforters", + text:"Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident." + }, + { + id:"card2c", + title:"For Dry Clean Only comforters", + text:"Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident." + } + , + { + id:"card3c", + title:"How to Properly Store a Comforter", + text:"Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident." + } + ] + } + }, + { + name:"faq", + context:{ + cards:[ + { + id:"card1f", + class:"show", + title:"What is the difference between a comforter and duvet insert?", + text:"Comforters and duvet inserts are essentially the same thing. Both are typically filled with down, feathers, or synthetic fibers, both will keep you warm, and both can be used with our duvet covers." + }, + { + id:"card2f", + title:"What are the different kinds of down feathers?", + text:"We use three types of premium feathers in our down products: regular down, European down, and Hungarian goose down." + } + , + { + id:"card3f", + title:"How to Properly Store a Comforter", + text:"Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident." + }, + { + id:"card4f", + title:"Is your down hypoallergenic? ", + text:"Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident." + }, + { + id:"card5f", + title:"What does RDS certified mean?", + text:"Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident." + }, + { + id:"card6f", + title:"What does Standard 100 by OEKO-TEX ® mean?", + text:"Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident." + }, + ] + + } + }, + { + name:"reviews", + context:{ + reviews:[ + { + title:"LaCrosse® RDS Certified Down Comforter", + subtitle:"Perfect. I love it.", + text:"Got this down comforter in the mail today. I couldn't be happier. No crunchy crackle when I opened the bag. I just had to lay it on the bed and it was so fluffy. I can't explain how much I love this comforter. Perfect fit. The only reason I gave it 5 stars is because there wasn't a higher star.", + author:"Dr. Wolf, Montana" + }, + { + title:"Legends® Luxury Geneva PrimaLoft® Deluxe Down Alternative Comforter", + subtitle:"Keeps your body heat in & outside cold out— PrimaLoft® works", + text:"I'm tired of down and the feathers getting all over the place as it ages, so this is the first time using a PrimaLoft® comforter. I bought a queen size, medium warmth comforter. I live in Connecticut and sleep in the bedroom facing the north side (no sun) of the house. The room can get cold! In fact… ", + read: "Read more", + author:"Mark, Central Connecticut" + }, + { + title:"Alberta™ RDS Certified European Down Baffled Comforter", + subtitle:"Great mid-weight comforter", + text:"We own many comforters for family and guests. We bought these two on reviews that the heat retention and baffling were exceptional. They are. A true pleasure to use. The feel of the cover is perfect, as is the loft. Our favorite comforters from over 20 years of purchases.", + author:"STWLJW, Montana " + } + ] + } + }, + { + name:"baffleBox", + context:{ + images:[ + { + img:"https://res.cloudinary.com/dg1knuetg/image/upload/ar_16:9,c_fill,w_400/v1598975074/Screen_Shot_2020-09-01_at_11.44.29_AM_otffl2.png", + subtitle:"Baffle Box Construction" + }, + { + img:"https://res.cloudinary.com/dg1knuetg/image/upload/ar_16:9,c_fill,w_400/v1598975124/Screen_Shot_2020-09-01_at_11.44.45_AM_zvrpag.png", + subtitle:"Sewn Through Construction" + } + ] + } + }, + ] +} \ No newline at end of file diff --git a/components/simple-text/simple-text.hbs b/components/simple-text/simple-text.hbs new file mode 100644 index 0000000..954c9d4 --- /dev/null +++ b/components/simple-text/simple-text.hbs @@ -0,0 +1,7 @@ +
+
+

+ There’s nothing like a good night’s sleep, which is why choosing the perfect comforter is so important. Use this guide to learn everything you need to know to choose the right size, weight, and fill for your next luxurious comforter. Find out about comforter construction, the difference between down and down alternative, the best warmth level to fit your sleeping style, and how best to care for your premium comforter. +

+
+
\ No newline at end of file diff --git a/components/simple-text/simple-text.scss b/components/simple-text/simple-text.scss new file mode 100644 index 0000000..0f9eb5a --- /dev/null +++ b/components/simple-text/simple-text.scss @@ -0,0 +1,117 @@ +.tcs-simple-text { + background-color: white; + font-family: $lora-reg; + font-size: 16px; + font-weight: normal; + + h3 { + color: $blue-2; + } +} + +.tcs-callout { + width: 40%; + left: -15px; + top: 25px; + opacity: 0.15; +} + +.tcs-callout__down { + width: 40%; + left: -15px; + top: 25px; + opacity: 0.15; +} + +.image-div { + display: flex; + // height: 354px; +} + +.baffle-image-text { + flex: 0 0 50%; + max-width: 50%; +} + +.baffle-image { + opacity: 0.7; +} + +.baffle-paragraph { + float: left; +} + +.baffle-down-text { + font-family: $lora-reg; + color: $blue; + text-align: center; +} + +.d-baffle-image { + width: 234px; +} + +@include media-breakpoint-up(lg) { + .tcs-simple-text { + font-size: 18px; + } + .tcs-callout__down { + width: 190px !important; + left: 25px !important; + top: 40px !important; + opacity: 0.15 !important; + } + .tcs-callout-title__down { + line-height: 52px !important; + } +} + +@include media-breakpoint-up(lg) { + .baffle-paragraph { + margin-top: 80px; + } +} + +.tcs-bafflebox__image-float { + margin-top: -40px; + margin-bottom: -40px; +} + +// moving jumbo here +.tcs-jumbo{ + + &__text-container{ + background-image: linear-gradient(to left, rgba(34, 34, 34, 0.05) 100%, rgba(0, 0, 0, 0.5) 2%); + } + + &__eyeline{ + text-transform: uppercase; + font-weight: 500; + font-family: $poppins-r; + letter-spacing: 1.3px; + color: $blue !important; + } + + &__title{ + width: 20ch; // this could be percentage too + font-size: 27px; + color: $blue !important; + } + +} + + +@include media-breakpoint-up(lg) { + .tcs-jumbo{ + + &__eyeline{ + font-size: 18px; + } + + &__title{ + font-size: 60px; + } + + } + } + diff --git a/components/size/size.hbs b/components/size/size.hbs new file mode 100644 index 0000000..b841b90 --- /dev/null +++ b/components/size/size.hbs @@ -0,0 +1,71 @@ +
+
+ + + +
+ +
+
Here are some expert tips to help you select the best comforter size of your bed:
+ + +
+ +
+

+ Our Comforter Sizes +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Bed Size + + Comforter Size +
Twin70 in. W x 90 in. L
Twin XL70 in. W x 96 in. L
Full84 in. W x 90 in. L
Queen90 in. W x 96 in. L
King / Cal. King108 in. W x 96 in. L
Oversized Queen*98 in. W x 96 in. L
Oversized King*116 in. W x 96 in. L
+
+ +
+
\ No newline at end of file diff --git a/components/size/size.scss b/components/size/size.scss new file mode 100644 index 0000000..72ffe18 --- /dev/null +++ b/components/size/size.scss @@ -0,0 +1,36 @@ +$table-row-color:#c4d0d980; //improvised +.tcs-size{ + + .tcs-container-md { + background-color: $light-blue-50 !important; + } + + @include media-breakpoint-up(lg) { + .deskSpace{ + margin-bottom: 20px; + } + } + + &__table{ + thead{ + &:after{ + content: ""; //the magic to display the border bottom + + } + } + tr, thead{ + border-bottom: 1.5px solid $table-row-color; + } + + tr:last-of-type{ + border-bottom: none; + } + + th{ + width: 50%; + font-weight: 400; + + } + + } +} \ No newline at end of file diff --git a/components/sleep-wellness/sleep-wellness.config.js b/components/sleep-wellness/sleep-wellness.config.js new file mode 100644 index 0000000..9d87825 --- /dev/null +++ b/components/sleep-wellness/sleep-wellness.config.js @@ -0,0 +1,46 @@ +module.exports ={ + context: { + imageHeroBanner: [ + { + id: 'heroMobile', + className: 'img-fit fill-container d-md-none', + url: 'http://dev07-web-hanoverdirect.demandware.net/on/demandware.static/-/Sites-TCS-Library/default/dwc0a36c0e/comforter-guide-2020/images/1001_02_SoftBedding_1263.png', + altText: 'Hero Img Mobile' + }, + { + id: 'heroTablet', + className: 'img-fit fill-container d-none d-md-inline-block d-lg-none', + url: 'http://dev07-web-hanoverdirect.demandware.net/on/demandware.static/-/Sites-TCS-Library/default/dw060f8f6b/comforter-guide-2020/images/1001_02_SoftBedding_12632x.png', + altText: 'Hero Img Tablet' + }, + { + id: 'heroDesktop', + className: 'img-fit fill-container d-none d-lg-inline-block', + url: 'http://dev07-web-hanoverdirect.demandware.net/on/demandware.static/-/Sites-TCS-Library/default/dw09fee465/comforter-guide-2020/images/1001_02_SoftBedding_12633x.png', + altText: 'Hero Img Desktop' + } + ], + imageLogo: [ + { + id: 'logoMobile', + className: 'd-md-none', + url: 'http://dev07-web-hanoverdirect.demandware.net/on/demandware.static/-/Sites-TCS-Library/default/dw52c9822d/comforter-guide-2020/images/SW_logo.png', + altText: 'Logo Mobile' + }, + { + id: 'logoTablet', + className: 'd-none d-md-inline d-lg-none', + url: 'http://dev07-web-hanoverdirect.demandware.net/on/demandware.static/-/Sites-TCS-Library/default/dw1be45d68/comforter-guide-2020/images/SW_logo2x.png', + altText: 'Logo Tablet' + }, + { + id: 'logoDesktop', + className: 'd-none d-lg-inline', + url: 'http://dev07-web-hanoverdirect.demandware.net/on/demandware.static/-/Sites-TCS-Library/default/dw5f3aaeb7/comforter-guide-2020/images/SW_logo3x.png', + altText: 'Logo Desktop' + } + ], + copyTextHeader: 'Better Sleep, Better Life', + copyTextBody: 'No matter what kind of sleeper you are or maybe have on your gift list this year, we’ve created this guide to help you and your loved ones wake up on the right side of bed every day.' + } +} \ No newline at end of file diff --git a/components/sleep-wellness/sleep-wellness.hbs b/components/sleep-wellness/sleep-wellness.hbs new file mode 100644 index 0000000..b774de6 --- /dev/null +++ b/components/sleep-wellness/sleep-wellness.hbs @@ -0,0 +1,26 @@ +
+
+ {{#each imageHeroBanner}} + {{altText}} + {{/each}} +
+
+ +
+
+ {{#each imageLogo}} + {{altText}} + {{/each}} +
+

{{ copyTextHeader }}

+

{{ copyTextBody }}

+ +
+
+
\ No newline at end of file diff --git a/components/sleep-wellness/sleep-wellness.scss b/components/sleep-wellness/sleep-wellness.scss new file mode 100644 index 0000000..710dd28 --- /dev/null +++ b/components/sleep-wellness/sleep-wellness.scss @@ -0,0 +1,73 @@ +.sleep-wellness-hero-banner { + flex: 0 0 100%;; + display: inline-block; + + img { + object-position: center center; + } + + @include media-breakpoint-up(md){ + flex: 0 0 65.62%; + } +} + +.sleep-wellness-section-4 { + display: flex; + justify-content: center; + flex: 0 0 100%; + + @include media-breakpoint-up(md) { + flex: 0 0 34.38%; + } + + &__body-text-section { + padding: 30px; + + @include media-breakpoint-up(md){ + padding-top: 104px 0 0 0; + max-width: 357px; + } + } + + &__logo-header { + max-width: 230px; + + @include media-breakpoint-between(md, lg){ + padding-top: 30px + } + } + + &__header-text { + font-size: 27px; + color: $primary; + flex: 0 0 100%; + + @include media-breakpoint-up(md) { + font-size: 50px; + } + } + + &__body-text { + font-family: $lora-reg; + flex: 0 0 100%; + line-height: 1.63; + font-size: 1rem; + color: $fblack; + + @include media-breakpoint-between(md,lg){ + padding: 0 20px; + } + } + + &__arrow-section { + flex: 0 0 100%; + + @include media-breakpoint-up(md){ + padding-top: 120px; + } + + @include media-breakpoint-up(xl) { + padding-top: 200px; + } + } +} \ No newline at end of file diff --git a/components/the-guide/the-guide.config.js b/components/the-guide/the-guide.config.js new file mode 100644 index 0000000..b83a0ef --- /dev/null +++ b/components/the-guide/the-guide.config.js @@ -0,0 +1,31 @@ +module.exports ={ + context:{ + option:[ + { + icon:"https://res.cloudinary.com/dg1knuetg/image/upload/v1598649634/icon_vto6g3.png", + title:'WARM COMFORT', + + }, + { + icon:"https://res.cloudinary.com/dg1knuetg/image/upload/v1598649634/icon_vto6g3.png", + title:'TEMPERATURE REGULATING', + + }, + { + icon:"https://res.cloudinary.com/dg1knuetg/image/upload/v1598649634/icon_vto6g3.png", + title:'SUPPORT YOURSELF', + + }, + { + icon:"https://res.cloudinary.com/dg1knuetg/image/upload/v1598649634/icon_vto6g3.png", + title:'SUPER SOFT', + + }, + { + icon:"https://res.cloudinary.com/dg1knuetg/image/upload/v1598649634/icon_vto6g3.png", + title:'5-STAR LUXURY', + + } + ] + } +} \ No newline at end of file diff --git a/components/the-guide/the-guide.hbs b/components/the-guide/the-guide.hbs new file mode 100644 index 0000000..a620ea6 --- /dev/null +++ b/components/the-guide/the-guide.hbs @@ -0,0 +1,15 @@ +
+
+
+ in this guide... +
+ + {{#each option}} + + + {{/each}} +
+
\ No newline at end of file diff --git a/components/the-guide/the-guide.scss b/components/the-guide/the-guide.scss new file mode 100644 index 0000000..8e22552 --- /dev/null +++ b/components/the-guide/the-guide.scss @@ -0,0 +1,49 @@ +.tcs-the-guide{ + &__nav{ + overflow: auto; + white-space: nowrap; + height: 59px; + .guide-title{ + display: inline-block; + } + .option-container{ + display: inline-block; + border-style: none; + background-color: $white; + color: $black; + } + .guide-divider{ + display: inline-block; + width: 0; + height: 40px; + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; + } + } + @include media-breakpoint-up(lg) { + &__nav{ + height: 100px; + .guide-title{ + color: $gray; + font-family: $lora-italic; + } + .option-container{ + border-style: none; + background-color: $white; + color: $primary; + + .guide-divider{ + display: inline-block; + width: 0; + height: 60px; + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; + } + .guide-icon{ + margin-bottom: 7px; + width: 25px; + } + } + } + } +} \ No newline at end of file diff --git a/components/warm-comfort/warm-comfort.config.js b/components/warm-comfort/warm-comfort.config.js new file mode 100644 index 0000000..e544ef3 --- /dev/null +++ b/components/warm-comfort/warm-comfort.config.js @@ -0,0 +1,37 @@ +module.exports ={ + context: { + imageHero: [ + { + id: 'heroMobile', + className: 'warm-comfort__hero-img', + url: 'https://res.cloudinary.com/dg1knuetg/image/upload/v1598650527/TCSSeal-SmallScalePositive_di4zva.png', + altText: 'Hero Img Mobile' + } + + ], + + imageLogo: [ + { + id: 'heroMobile', + className: 'icons-warm', + url: 'https://res.cloudinary.com/dg1knuetg/image/upload/v1598650527/TCSSeal-SmallScalePositive_di4zva.png', + altText: 'Hero Img Mobile' + } + ], + + copyTextHeader: 'For the Always Chilly Sleeper', + copyTextBody: 'Too cold to snooze? Just layer breathable fabrics like flannel and wool—they retain heat without making you sweat, keeping you warm and comfy all night.', + copyLinkText: 'SHOP NOW', + copylinkUrl: '#', + expertTipHeader: '', + experTipBody: 'It’s normal to feel colder at night because your body temperature drops while you sleep. Try a cup of warm tea to increase your core temperature— and create layers of bedding to insulate your body.', + + imageAsset: [ + { + id: 'imageAsset', + url: 'https://res.cloudinary.com/dg1knuetg/image/upload/v1598650527/TCSSeal-SmallScalePositive_di4zva.png', + altText: 'Asset' + } + ], + } +} \ No newline at end of file diff --git a/components/warm-comfort/warm-comfort.hbs b/components/warm-comfort/warm-comfort.hbs new file mode 100644 index 0000000..b5f017a --- /dev/null +++ b/components/warm-comfort/warm-comfort.hbs @@ -0,0 +1,28 @@ +
+
+ {{#each imageHero}} + {{altText}} + {{/each}} +
+ +
+ {{#each imageLogo}} + {{altText}} + {{/each}} + {{copyTextHeader}} + {{copyTextBody}} + {{copyLinkText}} +
+ +
+ EXPERT TIP #001 + {{experTipBody}} +
+ +
+ {{#each imageAsset}} + {{altText}} + {{/each}} +
+ +
\ No newline at end of file diff --git a/components/warm-comfort/warm-comfort.scss b/components/warm-comfort/warm-comfort.scss new file mode 100644 index 0000000..6d7bd1c --- /dev/null +++ b/components/warm-comfort/warm-comfort.scss @@ -0,0 +1,37 @@ +.warm-comfort { + + &__hero-img-container{ + background-color:black; + flex: 0 0 100%; + + @include media-breakpoint-up(md){ + flex: 0 0 51.25%; + } + } + + &__hero-img { + width: 738px; + height: 548px; + } + + &__image-asset{ + position: absolute; + bottom: 0; + right: 0; + } + + &__copy-text-section { + flex: 0 0 100%; + + @include media-breakpoint-up(md) { + flex: 0 0 36.18%; + } + } +} + + +.icons-warm { + width: 30px; + height: 30px; + object-fit: contain; + } \ No newline at end of file diff --git a/fonts/Lora-Italic.ttf b/fonts/Lora-Italic.ttf new file mode 100644 index 0000000..826b2ba Binary files /dev/null and b/fonts/Lora-Italic.ttf differ diff --git a/fonts/Lora-Medium.woff b/fonts/Lora-Medium.woff new file mode 100644 index 0000000..7249d63 Binary files /dev/null and b/fonts/Lora-Medium.woff differ diff --git a/fonts/Lora-Regular.woff b/fonts/Lora-Regular.woff new file mode 100644 index 0000000..6e3430f Binary files /dev/null and b/fonts/Lora-Regular.woff differ diff --git a/fonts/Poppins-Black.woff b/fonts/Poppins-Black.woff new file mode 100644 index 0000000..65f3801 Binary files /dev/null and b/fonts/Poppins-Black.woff differ diff --git a/fonts/Poppins-Bold.woff b/fonts/Poppins-Bold.woff new file mode 100644 index 0000000..28fe6b6 Binary files /dev/null and b/fonts/Poppins-Bold.woff differ diff --git a/fonts/Poppins-Medium.woff b/fonts/Poppins-Medium.woff new file mode 100644 index 0000000..e2b717d Binary files /dev/null and b/fonts/Poppins-Medium.woff differ diff --git a/fonts/Poppins-Regular.woff b/fonts/Poppins-Regular.woff new file mode 100644 index 0000000..609eb3d Binary files /dev/null and b/fonts/Poppins-Regular.woff differ diff --git a/fonts/Poppins-SemiBold.woff b/fonts/Poppins-SemiBold.woff new file mode 100644 index 0000000..c097e14 Binary files /dev/null and b/fonts/Poppins-SemiBold.woff differ diff --git a/fractal.config.js b/fractal.config.js index 716bdc1..54e57f8 100644 --- a/fractal.config.js +++ b/fractal.config.js @@ -29,3 +29,5 @@ fractal.docs.set('path', path.join(__dirname, 'docs')); * Tell the Fractal web preview plugin where to look for static assets. */ fractal.web.set('static.path', path.join(__dirname, 'public')); + +fractal.web.set('builder.dest', path.join(__dirname + '/build')); diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000..709847d --- /dev/null +++ b/netlify.toml @@ -0,0 +1,5 @@ +[[headers]] + # Define which paths this specific [[headers]] block will cover. + for = "/*" + [headers.values] + Access-Control-Allow-Origin = "*" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e59c0af..0620a84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,19 +30,19 @@ } }, "@babel/core": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.4.tgz", - "integrity": "sha512-5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg==", + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", + "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.4", + "@babel/generator": "^7.11.6", "@babel/helper-module-transforms": "^7.11.0", "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.4", + "@babel/parser": "^7.11.5", "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.0", - "@babel/types": "^7.11.0", + "@babel/traverse": "^7.11.5", + "@babel/types": "^7.11.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -86,12 +86,12 @@ } }, "@babel/generator": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz", - "integrity": "sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==", + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", "dev": true, "requires": { - "@babel/types": "^7.11.0", + "@babel/types": "^7.11.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -134,14 +134,14 @@ } }, "@babel/helper-builder-react-jsx-experimental": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz", - "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz", + "integrity": "sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-module-imports": "^7.10.4", - "@babel/types": "^7.10.5" + "@babel/types": "^7.11.5" } }, "@babel/helper-compilation-targets": { @@ -412,9 +412,9 @@ } }, "@babel/parser": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz", - "integrity": "sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { @@ -1014,9 +1014,9 @@ } }, "@babel/preset-env": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", - "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz", + "integrity": "sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==", "dev": true, "requires": { "@babel/compat-data": "^7.11.0", @@ -1081,7 +1081,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.10.4", "@babel/plugin-transform-unicode-regex": "^7.10.4", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.11.0", + "@babel/types": "^7.11.5", "browserslist": "^4.12.0", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", @@ -1090,9 +1090,9 @@ } }, "@babel/preset-modules": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", - "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -1131,17 +1131,17 @@ } }, "@babel/traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", - "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", + "@babel/generator": "^7.11.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.0", - "@babel/types": "^7.11.0", + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" @@ -1165,9 +1165,9 @@ } }, "@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", @@ -1478,9 +1478,9 @@ "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==" }, "abab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz", - "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, "abbrev": { @@ -1533,9 +1533,9 @@ "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, "ajv": { - "version": "6.12.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", - "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -2468,15 +2468,15 @@ } }, "browserslist": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz", - "integrity": "sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz", + "integrity": "sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001111", - "electron-to-chromium": "^1.3.523", + "caniuse-lite": "^1.0.30001125", + "electron-to-chromium": "^1.3.564", "escalade": "^3.0.2", - "node-releases": "^1.1.60" + "node-releases": "^1.1.61" } }, "bs-recipes": { @@ -2597,9 +2597,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001117", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001117.tgz", - "integrity": "sha512-4tY0Fatzdx59kYjQs+bNxUwZB03ZEBgVmJ1UkFPz/Q8OLiUUbjct2EdpnXj0fvFTPej2EkbPIG0w8BWsjAyk1Q==", + "version": "1.0.30001131", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001131.tgz", + "integrity": "sha512-4QYi6Mal4MMfQMSqGIRPGbKIbZygeN83QsWq1ixpUwvtfgAZot5BrCKzGygvZaV+CnELdTwD0S4cqUNozq7/Cw==", "dev": true }, "capture-stack-trace": { @@ -3612,9 +3612,9 @@ }, "dependencies": { "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz", + "integrity": "sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==", "dev": true }, "entities": { @@ -3625,6 +3625,14 @@ } } }, + "dom7": { + "version": "3.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0-alpha.9.tgz", + "integrity": "sha512-wTxPe1vJqLAy2PzAROh/n1PsRF/ZklAJyRIn9shm2dAQjP4JhjsgDKQ1YTbuzf1KVlqOlqYPmwupQExcB9jOUg==", + "requires": { + "ssr-window": "^3.0.0-alpha.1" + } + }, "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -3742,9 +3750,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.545", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.545.tgz", - "integrity": "sha512-+0R/i17u5E1cwF3g0W8Niq3UUKTUMyyT4kLkutZUHG8mDNvFsAckK3HIanzGVtixe3b6rknD8k7gHiR6nKFkgg==", + "version": "1.3.568", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.568.tgz", + "integrity": "sha512-j9MlEwgTHVW/lq93Hw8yhzA886oLjDm3Hz7eDkWP2v4fzLVuqOWhpNluziSnmR/tBqgoYldagbLknrdg+B7Tlw==", "dev": true }, "elliptic": { @@ -3914,13 +3922,6 @@ "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" - }, - "dependencies": { - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" - } } }, "es-to-primitive": { @@ -3934,9 +3935,9 @@ } }, "escalade": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", - "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.0.tgz", + "integrity": "sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig==", "dev": true }, "escape-html": { @@ -3993,9 +3994,9 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eventemitter3": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.5.tgz", - "integrity": "sha512-QR0rh0YiPuxuDQ6+T9GAO/xWTExXpxIes1Nl9RykNGTnE1HJmkuEfxJH9cubjIOQZ/GH4qNBR4u8VSHaKiWs4g==" + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "events": { "version": "3.2.0", @@ -5277,9 +5278,9 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.1.tgz", + "integrity": "sha512-wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg==" }, "is-ci": { "version": "1.2.1", @@ -5390,6 +5391,11 @@ "is-path-inside": "^1.0.0" } }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" + }, "is-npm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", @@ -6296,9 +6302,9 @@ "integrity": "sha1-RaBgHGky395mRKIzYfG+Fzx1068=" }, "node-releases": { - "version": "1.1.60", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz", - "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==", + "version": "1.1.61", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz", + "integrity": "sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==", "dev": true }, "nopt": { @@ -6513,10 +6519,9 @@ } }, "object-inspect": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", - "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", - "dev": true + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" }, "object-keys": { "version": "1.1.1", @@ -6537,14 +6542,35 @@ } }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", + "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz", + "integrity": "sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "object.defaults": { @@ -7411,9 +7437,9 @@ } }, "postcss-calc": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.3.tgz", - "integrity": "sha512-IB/EAEmZhIMEIhG7Ov4x+l47UaXOS1n2f4FBUk/aKllQhtSCxWhTzn0nJgkqN7fo/jcWySvWTSB6Syk9L+31bA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.4.tgz", + "integrity": "sha512-0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw==", "dev": true, "requires": { "postcss": "^7.0.27", @@ -7515,9 +7541,9 @@ }, "dependencies": { "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "requires": { "is-obj": "^2.0.0" @@ -7591,9 +7617,9 @@ }, "dependencies": { "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "requires": { "is-obj": "^2.0.0" @@ -9231,6 +9257,11 @@ "tweetnacl": "~0.14.0" } }, + "ssr-window": { + "version": "3.0.0-alpha.4", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0-alpha.4.tgz", + "integrity": "sha512-+dBRP/pZ+VyITxTzD0lMDzDwN/BmfUl8xi2e6t5Nz4+FqUphfcBLB1OOUSYCRNFB25rD3c8AJRYpY5rHTbL+kg==" + }, "stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", @@ -9300,6 +9331,14 @@ "shallow-copy": "~0.0.1", "static-eval": "^2.0.0", "through2": "~2.0.3" + }, + "dependencies": { + "object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", + "dev": true + } } }, "statuses": { @@ -9445,9 +9484,9 @@ }, "dependencies": { "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "requires": { "is-obj": "^2.0.0" @@ -9538,6 +9577,15 @@ } } }, + "swiper": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-6.1.2.tgz", + "integrity": "sha512-g3+4yHwHD1+qjhr7cxqKyJ/zTyo1SnQv5eUVE0QdygRyb13KejtISXbN44xkLmJIw9WOS/xa7Fg5YtyBH2Kg+A==", + "requires": { + "dom7": "^3.0.0-alpha.7", + "ssr-window": "^3.0.0-alpha.4" + } + }, "symbol-observable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", @@ -9835,14 +9883,14 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "ua-parser-js": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", - "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==" + "version": "0.7.22", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", + "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==" }, "uglify-js": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.2.tgz", - "integrity": "sha512-GXCYNwqoo0MbLARghYjxVBxDCnU0tLqN7IPLdHHbibCb1NI5zBkU2EPcy/GaVxc0BtTjqyGXJCINe6JMR2Dpow==", + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.4.tgz", + "integrity": "sha512-kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw==", "optional": true }, "ultron": { @@ -10058,9 +10106,9 @@ } }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/package.json b/package.json index 668b855..9fa9f6f 100644 --- a/package.json +++ b/package.json @@ -5,19 +5,24 @@ "start": "npm-run-all --parallel dev:* -r", "dev:fractal": "fractal start --sync", "dev:css": "parcel watch src/main.scss --no-hmr --public-url /css/ --out-dir public/css --out-file main.css", - "dev:js": "parcel watch src/main.js --no-hmr --public-url /js/ --out-dir public/js --out-file main.js" + "dev:js": "parcel watch src/main.js --no-hmr --public-url /js/ --out-dir public/js --out-file main.js", + "prod:css": "parcel build src/main.scss --public-url /css/ --out-dir public/css --out-file main.css", + "prod:js": "parcel build src/main.js --public-url /js/ --out-dir public/js --out-file main.js", + "prebuild": "npm-run-all --parallel prod:*", + "build": "fractal build" }, "dependencies": { - "@frctl/fractal": "^1.3.0", - "bootstrap": "^4.5.2", - "jquery": "^3.5.1", - "npm-run-all": "^4.1.5", - "popper.js": "^1.16.1" + "@frctl/fractal": "1.3.0", + "bootstrap": "4.5.2", + "jquery": "3.5.1", + "npm-run-all": "4.1.5", + "popper.js": "1.16.1", + "swiper": "^6.1.2" }, "devDependencies": { - "@fortawesome/fontawesome-free": "^5.14.0", - "parcel": "^1.12.4", - "parcel-bundler": "^1.12.4", - "sass": "^1.26.10" + "@fortawesome/fontawesome-free": "5.14.0", + "parcel": "1.12.4", + "parcel-bundler": "1.12.4", + "sass": "1.26.10" } } diff --git a/public/.gitkeep b/public/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/public/images/icon.png b/public/images/icon.png new file mode 100644 index 0000000..78e8ce7 Binary files /dev/null and b/public/images/icon.png differ diff --git a/public/netlify.toml b/public/netlify.toml new file mode 100644 index 0000000..709847d --- /dev/null +++ b/public/netlify.toml @@ -0,0 +1,5 @@ +[[headers]] + # Define which paths this specific [[headers]] block will cover. + for = "/*" + [headers.values] + Access-Control-Allow-Origin = "*" \ No newline at end of file diff --git a/src/_aspectratios.scss b/src/_aspectratios.scss new file mode 100644 index 0000000..0276651 --- /dev/null +++ b/src/_aspectratios.scss @@ -0,0 +1,63 @@ +@mixin embed-base() { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; + &:before{ + display: block; + content: ""; + } +} + +@mixin embed-fill() { + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; +} + +.tcs-embed-fill{ + @include embed-fill(); +} + +@include media-breakpoint-up(md) { + .tcs-embed-responsive-md { + @include embed-base(); + } + .tcs-embed-fill-md { + @include embed-fill(); + } +} + +@include media-breakpoint-up(lg) { + .tcs-embed-responsive-lg { + @include embed-base(); + } + .tcs-embed-fill-lg { + @include embed-fill(); + } +} + +$aspectratios: (1440: 560, 375: 300, 335: 188 ); + + +@each $breakpoint in map-keys($grid-breakpoints) { + @include media-breakpoint-up($breakpoint) { + $infix: breakpoint-infix($breakpoint, $grid-breakpoints); + + @each $w, $h in $aspectratios { + // .tcs-embed-responsive-sm-1440by560 + .tcs-embed-responsive#{$infix}-#{$w}by#{$h}:before { + padding-top: ($h*100/$w)* 1%; + } + } + + } +} + + +.img-fit{ + object-fit: cover; +} diff --git a/src/_colors.scss b/src/_colors.scss new file mode 100644 index 0000000..81ae778 --- /dev/null +++ b/src/_colors.scss @@ -0,0 +1,32 @@ + + +.bg-lb-50{ + background-color: $light-blue-50; +} +.bg-sizeTrick{ + background-color: #ecf1f4; +} + +.fc-blue-2{ + color: $blue-2; +} +.fc-body{ + color: $fblack; +} +.fc-blue{ + color: $blue; +} +.fc-gray{ + color: $gray; +} +.fc-lb-30{ + color: $light-blue-30; +} + +.btn-primary { + @include button-variant($blue, $blue, $hover-background:$light-blue , $hover-border:$light-blue); + + &:hover{ + color: $blue; + } +} \ No newline at end of file diff --git a/src/_fonts.scss b/src/_fonts.scss new file mode 100644 index 0000000..3471c2a --- /dev/null +++ b/src/_fonts.scss @@ -0,0 +1,150 @@ +@font-face { + font-family: "Poppins-R"; + font-style: normal; + font-weight: normal; + src: local("Poppins Regular"), url("../fonts/Poppins-Regular.woff") format("woff"); +} + +@font-face { + font-family: "Poppins"; + font-style: normal; + font-weight: 600; + src: local("Poppins SemiBold"), url("../fonts/Poppins-SemiBold.woff") format("woff"); +} + +@font-face { + font-family: "Poppins"; + font-style: normal; + font-weight: 700; + src: local("Poppins Bold"), url("../fonts/Poppins-Bold.woff") format("woff"); +} + +@font-face { + font-family: "Poppins"; + font-style: normal; + font-weight: 900; + src: local("Poppins Black"), url("../fonts/Poppins-Black.woff") format("woff"); +} + +@font-face { + font-family: "Lora-Reg"; + font-style: normal; + font-weight: 500; + src: local("Lora-Regular"), url("../fonts/Lora-Regular.woff") format("woff"); +} + +@font-face { + font-family: "Lora-Italic"; + font-style: italic; + font-weight: 500; + src: local("Lora-Italic"), url("../fonts/Lora-Italic.ttf") format("ttf"); +} + +@font-face { + font-family: "Lora-Md"; + font-style: normal; + font-weight: 500; + src: local("Lora-Regular"), url("../fonts/Lora-Medium.woff") format("woff"); +} + +@font-face { + font-family: "Poppins Md"; + font-style: normal; + font-weight: normal; + src: local("Poppins Medium"), url("../fonts/Poppins-Medium.woff") format("woff"); +} + +// fonts +$lora-reg: "Lora-Reg"; +$lora-italic: "Lora-Italic"; +$poppins-md: "Poppins Md"; +$poppins-r: "Poppins-R"; + +.fs-10 { + font-size: 10px; +} +.fs-12 { + font-size: 12px; +} +.fs-14 { + font-size: 16px; +} +.fs-16 { + font-size: 16px; +} +.fs-18 { + font-size: 18px; +} +.fs-27 { + font-size: 27px; + line-height: 1.15; +} +.fs-38 { + font-size: 38px; +} +.fs-40 { + font-size: 40px; +} +// .fs-46{ +// font-size: 46px; +// } +.ff-lr { + font-family: $lora-reg; +} +.ff-pm { + font-family: $poppins-md; +} +.ff-pr { + font-family: $poppins-r; +} + + +.flh-1p5 { + line-height: 1.57; +} + +@include media-breakpoint-up(lg){ + .fs-lg-24 { + font-size: 24px; + line-height: 1.33; + } + .fs-lg-38 { + font-size: 38px; + } +} + + +@each $breakpoint in map-keys($grid-breakpoints) { + @include media-breakpoint-up($breakpoint) { + $infix: breakpoint-infix($breakpoint, $grid-breakpoints); + + .tcs-copy#{$infix}-small{ + font-family: $lora-reg; + font-size: 12px; + line-height: 16px; + } + .tcs-copy#{$infix}-medium{ + font-family: $lora-reg; + font-size: 16px !important; + line-height: 22px; + } + .tcs-copy#{$infix}-large{ + font-family: $lora-reg; + font-size: 18px; + line-height: 30px; + } + } +} + +h1,h2,h3,h4,h5,h6{ + text-transform: none; +} + + +p + p { + margin-top: 0; +} + +.fc-body { + font-family: $lora-reg; +} \ No newline at end of file diff --git a/src/_spacing.scss b/src/_spacing.scss new file mode 100644 index 0000000..0b8e773 --- /dev/null +++ b/src/_spacing.scss @@ -0,0 +1,28 @@ + +.tcs-h2{ + font-size: 27px; +} +.translate-ny-2{ + transform: translateY(40px); +} + +.z-1{ + z-index: 1; +} + +.mw-lg-100{ + max-width: 100%; +} + +@include media-breakpoint-up(md) { + + .btn-md-w{ + width: 300px; + } +} +@include media-breakpoint-up(lg) { + + .btn-lg-w{ + width: 300px; + } +} \ No newline at end of file diff --git a/src/_utilities.scss b/src/_utilities.scss new file mode 100644 index 0000000..665fae9 --- /dev/null +++ b/src/_utilities.scss @@ -0,0 +1,63 @@ +.d-small{ + background-color: #ff00dd; +} + +.d-375{ + width: 375px; + background-color: rgb(255, 72, 0); +} +.d-768{ + background-color:rgb(255, 251, 0); +} +.d-992{ + background-color: rgb(0, 255, 13); +} +.d-1200{ + background-color: rgb(0, 255, 255); +} +.d-1440{ + width: 1440px; + background-color: rgb(150, 127, 255); +} + +.fill-container{ + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.mbutton-10{ + padding: 10px !important; +} + +// .tcs-container-md{ +// padding-left: 20px; +// padding-right: 20px; +// } + + @include media-breakpoint-up(md) { + .tcs-container-md{ + width: 100% !important; + padding: 15px !important; + margin-right: auto !important; + margin-left: auto !important; + max-width: 660px; + // border-left: 1px red solid; + } + } + @include media-breakpoint-up(lg) { + .tcs-container-lg{ + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; + max-width: 660px; + } + } + + + .btn{ + @extend .btn; + max-width: 100%; + } \ No newline at end of file diff --git a/src/_variables.scss b/src/_variables.scss new file mode 100644 index 0000000..81b8ca5 --- /dev/null +++ b/src/_variables.scss @@ -0,0 +1,41 @@ + +$light-blue: #dae3ea ;//#f5f8fa;//#dae3ea; +$light-blue-25: #f7f8fa; +$blue:#134981; +$black:#000000; +$primary:#134981; +$blue-2:#0d3559; +$light-blue-50:#e8eef2; //rgba(218, 227, 234, 0.5); +$light-blue-30:#829ebc; //rgba(218, 227, 234, 0.5); +$white: white; +$gray: #767676; +$fblack:#222222; +$trick:#dfe7ec; +$greyrect: #d8d8d8; +$bg-guideTrick: #f6f8fa; +$bg-sizeTrick: #ecf1f4; + + + +$enable-rounded: false; +$spacer:20px; +$theme-colors: ( + "primary": $blue, + "primary-light": $light-blue, + "primary-dark": $blue-2, +); + +$spacers:( + 0: 0, + 1: ($spacer * 1), + 2: ($spacer * 2), + 3: ($spacer * 3), + 4: ($spacer * 4), + 5: ($spacer * 5), + 8: ($spacer * 8) + ); + + +.bg-trick{ + background-color: $trick; +} \ No newline at end of file diff --git a/src/main.js b/src/main.js index 6d2018d..69efa55 100644 --- a/src/main.js +++ b/src/main.js @@ -1,3 +1,4 @@ import 'bootstrap' - -console.log('sebasss') \ No newline at end of file +import '../components/carousel/carousel' +import '../components/guide-image/guide-image' +import '../components/jumbo/jumbo' \ No newline at end of file diff --git a/src/main.scss b/src/main.scss index be6ddaf..1c532f9 100644 --- a/src/main.scss +++ b/src/main.scss @@ -1,2 +1,143 @@ + + +@import "./variables"; @import "~bootstrap/scss/bootstrap"; -@import '@fortawesome/fontawesome-free/css/all.css' +@import "@fortawesome/fontawesome-free/css/all.css"; +@import "swiper/swiper-bundle.css"; +@import "./fonts"; +@import "./utilities"; +@import "./spacing"; +@import "./colors"; +@import "./aspectratios"; +@import "components/jumbo/jumbo"; +@import "components/simple-text/simple-text"; +@import "components/guide/guide"; +@import "components/guide-image/guide-image"; +@import "components/fill-power/fill-power"; +@import "components/cta-module/cta-module"; +@import "components/certification/certification"; +@import "components/carousel/carousel"; +@import "components/fav-color/fav-color"; +@import "components/size/size"; +@import "components/sleep-wellness/sleep-wellness"; +@import "components/the-guide/the-guide"; +@import "components/warm-comfort/warm-comfort"; + +html, body { + color: #222222; + font-family: "Poppins", Arial, sans-serif; + font-size: 16px !important; + font-style: normal; + font-weight: 400; + line-height: 1.5; +} + +.tcs-certification__collapse-card { + button.btn.btn-block.px-0 { + min-width: 100% !important; + color: $fblack !important; + background-color: white !important; + border: none !important; + margin: 10px 0; + font-size: 16px !important; + } + + .collapse p { + font-family: $lora-reg; + } +} + +.tcs-guide-jumbo__body { + font-size: 16px !important; +} + +.tcs-guide-jumbo__body.px-2.py-2.my-2.px-lg-4.py-lg-3 { + padding-top: 35px !important; + margin-bottom: 10px !important; +} + +.tc-cards-features__card.d-flex.bg-trick.px-1.px-lg-4.mb-2.mb-lg-4 { + margin-bottom: 40px !important; +} + +.slot-container.slot-container--nopadding{ + max-width: 100%; + >.row{ + display: block; + flex-wrap: wrap; + margin-right: 0; + margin-left: 0; + + } +} + +.c-header__container{ + height: auto; +} + +.fixed-header{ + background-color: white; +} + +.more-information-hyperlink { + text-decoration: underline; +} + +.warmth-container.py-4.d-lg-flex { + padding-top: 0!important; +} + +.tcs-simple-text.py-2.tcs-container-md.py-md-4.introductory-text { + padding: 40px 15px !important; +} + +._lgc-css .btn { + border-radius: 3px !important; +} + +.best-sellers-stamp { + position: absolute; + width: 200px; + left: 30px; + top: -100px; +} + +@media screen and (max-width: 1300px) { + .best-sellers-stamp { + width: 100px; + top: -50px; + } +} + +@media screen and (max-width: 768px) { + .best-sellers-stamp { + width: 75px; + top: -37px; + } +} + +.best-selling-section { + overflow: visible !important; +} + +.life-time-symbol-img { + width: 24px; +} + +@media screen and (max-width: 768px) { + .row.justify-content-center.winside-row { + justify-content: left !important; + } +} + +// fix header on "mobile experience" +@media screen and (max-width: 65em){ + .tcs-jumbo{ + margin-top: 216px; + } + .c-header__logo.c-header__logo { + height: 65px; + } +} + +