├── preview.png ├── assets ├── img │ ├── img-home.jpg │ └── img-about.jpg ├── js │ └── main.js ├── css │ └── styles.css └── scss │ └── styles.scss ├── README.md └── index.html /preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/landing-page-fashion/HEAD/preview.png -------------------------------------------------------------------------------- /assets/img/img-home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/landing-page-fashion/HEAD/assets/img/img-home.jpg -------------------------------------------------------------------------------- /assets/img/img-about.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedimcode/landing-page-fashion/HEAD/assets/img/img-about.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Responsive Fashion Landing Page 2 | ## [Watch it on youtube](https://youtu.be/CbQFhLQgLGs) 3 | ### Responsive Fashion Landing Page 4 | 5 | - Responsive Fashion Landing Page Using HTML CSS & JavaScript. 6 | - Contains animations made with GSAP. 7 | - Developed first with the Mobile First methodology, then for desktop. 8 | - Compatible with all mobile devices and with a beautiful and pleasant user interface. 9 | 10 | 💙 Join the channel to see more videos like this. [Bedimcode](https://www.youtube.com/c/Bedimcode) 11 | 12 | ![preview img](/preview.png) 13 | -------------------------------------------------------------------------------- /assets/js/main.js: -------------------------------------------------------------------------------- 1 | /* MENU SHOW */ 2 | const showMenu = (toggleId,navId) =>{ 3 | const toggle = document.getElementById(toggleId), 4 | nav = document.getElementById(navId) 5 | 6 | if(toggle && nav){ 7 | toggle.addEventListener('click', ()=>{ 8 | nav.classList.toggle('show') 9 | }) 10 | } 11 | } 12 | showMenu('nav-toggle','nav-menu') 13 | 14 | /* GSAP ANIMATION */ 15 | /*HOME PRIMARY*/ 16 | TweenMax.to(".home__primary", 2, { 17 | width: "100%", 18 | ease: Expo.easeInOut 19 | }) 20 | gsap.from('.home__title', {opacity: 0, duration: 2, delay: 1.5, y: 100}) 21 | gsap.from('.home__img img', {opacity: 0, duration: 2, delay:1.5, y: -100}) 22 | 23 | /*HOME SECONDARY*/ 24 | TweenMax.to(".home__secondary", 2.5, { 25 | width: "100%", 26 | ease: Expo.easeInOut 27 | }) 28 | gsap.from('.home__scroll', {opacity: 0, duration: 3, x: -100}) 29 | gsap.from('.home__year', {opacity: -1, duration: 1.5, delay: 1.5, x: 100}) -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Fashion Landing Page 10 | 11 | 12 | 13 | 35 | 36 | 37 |
38 | 39 |
40 |
41 |

Fashion Online
Store

42 | 43 |
44 | 45 |
46 |
47 | 48 |
49 | SCROLL DOWN 50 | 2020 51 |
52 |
53 |
54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /assets/css/styles.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Tinos:wght@400;700&display=swap"); 2 | /*----- VARIABLES CSS -----*/ 3 | /*Varibles en general*/ 4 | :root { 5 | /* Colors */ 6 | --first-color: #010A43; 7 | --second-color: #FFC2C2; 8 | --white-color: #fff; 9 | /* Font and typography */ 10 | --body-font: 'Tinos', serif; 11 | --h1-font-size: 2.3rem; 12 | --h2-font-size: 2.3rem; 13 | --normal-font-size: 0.93rem; 14 | --big-font-size: 5rem; 15 | --smaller-font-size: 0.75rem; 16 | /* z index */ 17 | --z-fixed: 100; 18 | } 19 | 20 | @media screen and (min-width: 768px) { 21 | :root { 22 | --h1-font-size: 4.5rem; 23 | --h2-font-size: 3.56rem; 24 | --normal-font-size: 1rem; 25 | --big-font-size: 10rem; 26 | --smaller-font-size: 0.813rem; 27 | } 28 | } 29 | 30 | /*----- BASE -----*/ 31 | *, ::before, ::after { 32 | box-sizing: border-box; 33 | } 34 | 35 | body { 36 | margin: 3.5rem 0 0 0; 37 | font-family: var(--body-font); 38 | font-weight: initial; 39 | overflow: hidden; 40 | } 41 | 42 | h1, h2 { 43 | margin: 0; 44 | font-weight: initial; 45 | } 46 | 47 | ul { 48 | margin: 0; 49 | padding: 0; 50 | list-style: none; 51 | } 52 | 53 | a { 54 | text-decoration: none; 55 | } 56 | 57 | img { 58 | max-width: 100%; 59 | height: auto; 60 | } 61 | 62 | p { 63 | font-size: var(--normal-font-size); 64 | } 65 | 66 | /*----- LAYOUT -----*/ 67 | .bd-grid { 68 | max-width: 1200px; 69 | margin-left: 1rem; 70 | margin-right: 1rem; 71 | } 72 | 73 | .l-header { 74 | width: 100%; 75 | position: fixed; 76 | top: 0; 77 | left: 0; 78 | background-color: var(--first-color); 79 | color: var(--white-color); 80 | z-index: var(--z-fixed); 81 | } 82 | 83 | /*----- PAGES -----*/ 84 | /*Nav*/ 85 | .nav { 86 | height: 3.5rem; 87 | display: flex; 88 | justify-content: space-between; 89 | align-items: center; 90 | font-weight: bold; 91 | } 92 | 93 | @media screen and (max-width: 768px) { 94 | .nav__menu { 95 | position: fixed; 96 | top: 3.5rem; 97 | left: -100%; 98 | background-color: rgba(1, 10, 67, 0.8); 99 | width: 80%; 100 | height: 100vh; 101 | margin: auto; 102 | padding: 2rem; 103 | z-index: var(--z-fixed); 104 | transition: .5s; 105 | } 106 | } 107 | 108 | .nav__list { 109 | text-align: center; 110 | } 111 | 112 | .nav__item { 113 | margin-bottom: 2rem; 114 | } 115 | 116 | .nav__link { 117 | padding: .5rem; 118 | color: var(--white-color); 119 | } 120 | 121 | .nav__logo { 122 | color: var(--white-color); 123 | } 124 | 125 | .nav__toggle { 126 | font-size: 2rem; 127 | cursor: pointer; 128 | } 129 | 130 | .nav__icon-cart { 131 | font-size: 1.3rem; 132 | text-align: right; 133 | } 134 | 135 | /*Aparecer menu*/ 136 | .show { 137 | left: 0; 138 | } 139 | 140 | /*Home*/ 141 | .home { 142 | position: relative; 143 | display: grid; 144 | grid-template-rows: 3fr 1fr; 145 | height: calc(100vh - 3.5rem); 146 | } 147 | 148 | .home__primary { 149 | width: 0; 150 | /*Animation*/ 151 | background-color: var(--first-color); 152 | display: flex; 153 | justify-content: space-evenly; 154 | align-items: center; 155 | padding-left: 1rem; 156 | padding-right: 1rem; 157 | } 158 | 159 | .home__title { 160 | font-size: var(--h1-font-size); 161 | writing-mode: vertical-rl; 162 | transform: rotate(180deg); 163 | color: var(--white-color); 164 | } 165 | 166 | .home__img { 167 | width: 235px; 168 | height: auto; 169 | } 170 | 171 | .home__secondary { 172 | width: 0; 173 | /*Animation*/ 174 | background-color: var(--second-color); 175 | display: flex; 176 | align-items: center; 177 | justify-content: center; 178 | font-weight: bold; 179 | } 180 | 181 | .home__scroll { 182 | position: absolute; 183 | left: 0; 184 | bottom: 15%; 185 | font-size: var(--smaller-font-size); 186 | transform: rotate(270deg); 187 | color: var(--first-color); 188 | } 189 | 190 | .home__scroll::after { 191 | content: ''; 192 | position: absolute; 193 | top: 45%; 194 | left: -10%; 195 | width: 38px; 196 | height: 1px; 197 | background-color: var(--first-color); 198 | margin-left: -2.5rem; 199 | } 200 | 201 | .home__year { 202 | font-size: var(--big-font-size); 203 | -webkit-text-stroke: 2.3px var(--first-color); 204 | color: transparent; 205 | } 206 | 207 | @media screen and (min-width: 768px) { 208 | body { 209 | margin: 0; 210 | } 211 | .l-header { 212 | background-color: transparent; 213 | } 214 | .nav { 215 | display: grid; 216 | grid-template-columns: 3fr 4fr 1fr; 217 | } 218 | .nav__list { 219 | display: flex; 220 | } 221 | .nav__item { 222 | margin-right: 5rem; 223 | margin-bottom: 0; 224 | } 225 | .nav__toggle { 226 | display: none; 227 | } 228 | .home { 229 | grid-template-columns: 4fr 3fr; 230 | grid-template-rows: 1fr; 231 | height: 100vh; 232 | } 233 | .home__primary { 234 | justify-content: center; 235 | } 236 | .home__img img { 237 | position: absolute; 238 | width: 361px; 239 | top: 5%; 240 | left: 0; 241 | right: 0; 242 | bottom: 0; 243 | margin: auto; 244 | } 245 | .home__scroll { 246 | color: var(--white-color); 247 | } 248 | .home__scroll::after { 249 | background-color: var(--white-color); 250 | } 251 | .home__year { 252 | writing-mode: vertical-rl; 253 | margin-left: 5rem; 254 | } 255 | } 256 | 257 | @media screen and (min-width: 1200px) { 258 | .bd-grid { 259 | margin-left: auto; 260 | margin-right: auto; 261 | } 262 | .nav { 263 | height: calc(3.5rem + 1.5rem); 264 | } 265 | } 266 | -------------------------------------------------------------------------------- /assets/scss/styles.scss: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Tinos:wght@400;700&display=swap'); 2 | 3 | /*----- VARIABLES CSS -----*/ 4 | /*Varibles en general*/ 5 | $header-height: 3.5rem; 6 | 7 | :root{ 8 | 9 | /* Colors */ 10 | --first-color: #010A43; 11 | --second-color: #FFC2C2; 12 | --white-color: #fff; 13 | 14 | /* Font and typography */ 15 | --body-font: 'Tinos', serif; 16 | --h1-font-size: 2.3rem; 17 | --h2-font-size: 2.3rem; 18 | --normal-font-size: 0.93rem; 19 | --big-font-size: 5rem; 20 | --smaller-font-size: 0.75rem; 21 | 22 | @media screen and (min-width: 768px){ 23 | --h1-font-size: 4.5rem; 24 | --h2-font-size: 3.56rem; 25 | --normal-font-size: 1rem; 26 | --big-font-size: 10rem; 27 | --smaller-font-size: 0.813rem; 28 | } 29 | 30 | /* z index */ 31 | --z-fixed: 100; 32 | } 33 | 34 | /*----- BASE -----*/ 35 | *,::before,::after{ 36 | box-sizing: border-box; 37 | } 38 | body{ 39 | margin: $header-height 0 0 0; 40 | font-family: var(--body-font); 41 | font-weight: initial; 42 | overflow: hidden; 43 | } 44 | h1,h2{ 45 | margin: 0; 46 | font-weight: initial; 47 | } 48 | ul{ 49 | margin: 0; 50 | padding: 0; 51 | list-style: none; 52 | } 53 | a{ 54 | text-decoration: none; 55 | } 56 | img{ 57 | max-width: 100%; 58 | height: auto; 59 | } 60 | p{ 61 | font-size: var(--normal-font-size); 62 | } 63 | /*----- LAYOUT -----*/ 64 | .bd-grid{ 65 | max-width: 1200px; 66 | margin-left: 1rem; 67 | margin-right: 1rem; 68 | } 69 | .l-header{ 70 | width: 100%; 71 | position: fixed; 72 | top: 0; 73 | left: 0; 74 | background-color: var(--first-color); 75 | color: var(--white-color); 76 | z-index: var(--z-fixed); 77 | } 78 | /*----- PAGES -----*/ 79 | /*Nav*/ 80 | .nav{ 81 | height: $header-height; 82 | display: flex; 83 | justify-content: space-between; 84 | align-items: center; 85 | font-weight: bold; 86 | 87 | &__menu{ 88 | @media screen and (max-width: 768px){ 89 | position: fixed; 90 | top: $header-height; 91 | left: -100%; 92 | background-color: rgba(1,10,67,.8); 93 | width: 80%; 94 | height: 100vh; 95 | margin: auto; 96 | padding: 2rem; 97 | z-index: var(--z-fixed); 98 | transition: .5s; 99 | } 100 | } 101 | &__list{ 102 | text-align: center; 103 | } 104 | &__item{ 105 | margin-bottom: 2rem; 106 | } 107 | &__link{ 108 | padding: .5rem; 109 | color: var(--white-color); 110 | } 111 | &__logo{ 112 | color: var(--white-color); 113 | } 114 | &__toggle{ 115 | font-size: 2rem; 116 | cursor: pointer; 117 | } 118 | &__icon-cart{ 119 | font-size: 1.3rem; 120 | text-align: right; 121 | } 122 | } 123 | /*Aparecer menu*/ 124 | .show{ 125 | left: 0; 126 | } 127 | 128 | /*Home*/ 129 | .home{ 130 | position: relative; 131 | display: grid; 132 | grid-template-rows: 3fr 1fr; 133 | height: calc(100vh - #{$header-height}); 134 | 135 | &__primary{ 136 | width: 0;/*Animation*/ 137 | background-color: var(--first-color); 138 | display: flex; 139 | justify-content: space-evenly; 140 | align-items: center; 141 | padding-left: 1rem; 142 | padding-right: 1rem; 143 | } 144 | &__title{ 145 | font-size: var(--h1-font-size); 146 | writing-mode: vertical-rl; 147 | transform: rotate(180deg); 148 | color: var(--white-color); 149 | } 150 | &__img{ 151 | width: 235px; 152 | height: auto; 153 | } 154 | 155 | &__secondary{ 156 | width: 0;/*Animation*/ 157 | background-color: var(--second-color); 158 | display: flex; 159 | align-items: center; 160 | justify-content: center; 161 | font-weight: bold; 162 | } 163 | &__scroll{ 164 | position: absolute; 165 | left: 0; 166 | bottom: 15%; 167 | font-size: var(--smaller-font-size); 168 | transform: rotate(270deg); 169 | color: var(--first-color); 170 | 171 | &::after{ 172 | content: ''; 173 | position: absolute; 174 | top: 45%; 175 | left: -10%; 176 | width: 38px; 177 | height: 1px; 178 | background-color: var(--first-color); 179 | margin-left: -2.5rem; 180 | } 181 | } 182 | &__year{ 183 | font-size: var(--big-font-size); 184 | -webkit-text-stroke: 2.3px var(--first-color); 185 | color: transparent; 186 | } 187 | } 188 | @media screen and (min-width: 768px){ 189 | body{ 190 | margin: 0; 191 | } 192 | .l-header{ 193 | background-color: transparent; 194 | } 195 | .nav{ 196 | display: grid; 197 | grid-template-columns: 3fr 4fr 1fr; 198 | 199 | &__list{ 200 | display: flex; 201 | } 202 | &__item{ 203 | margin-right: 5rem; 204 | margin-bottom: 0; 205 | } 206 | &__toggle{ 207 | display: none; 208 | } 209 | } 210 | .home{ 211 | grid-template-columns: 4fr 3fr; 212 | grid-template-rows: 1fr; 213 | height: 100vh; 214 | 215 | &__primary{ 216 | justify-content: center; 217 | } 218 | &__img img{ 219 | position: absolute; 220 | width: 361px; 221 | top: 5%; 222 | left: 0; 223 | right: 0; 224 | bottom: 0; 225 | margin: auto; 226 | } 227 | &__scroll{ 228 | color: var(--white-color); 229 | &::after{ 230 | background-color: var(--white-color); 231 | } 232 | } 233 | &__year{ 234 | writing-mode: vertical-rl; 235 | margin-left: 5rem; 236 | } 237 | } 238 | } 239 | @media screen and (min-width: 1200px){ 240 | .bd-grid{ 241 | margin-left: auto; 242 | margin-right: auto; 243 | } 244 | 245 | .nav{ 246 | height: calc(#{$header-height} + 1.5rem); 247 | } 248 | } 249 | --------------------------------------------------------------------------------