├── 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 | 
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 |
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 |
--------------------------------------------------------------------------------