├── .gitignore ├── README.md ├── screenshots ├── 01.png ├── 02.png ├── 03.png ├── 04.png ├── 05.png ├── 06.png ├── 07.png └── 09.png ├── css ├── variables.css ├── components │ ├── badge.css │ ├── icon-row.css │ ├── no-mobile.css │ ├── status-bar.css │ ├── screen-header.css │ ├── alt-screen-header.css │ ├── user-component.css │ └── nav-bar.css ├── screens │ ├── settings.css │ ├── more.css │ ├── login.css │ ├── friends.css │ ├── find.css │ └── chat.css ├── styles.css └── reset.css ├── index.html ├── chat.html ├── chats.html ├── settings.html ├── friends.html ├── find.html └── more.html /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Kokoa Clone 2020 Update 2 | 3 | HTML & CSS are so much fun! 4 | -------------------------------------------------------------------------------- /screenshots/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadcoders/kokoa-clone-2020/HEAD/screenshots/01.png -------------------------------------------------------------------------------- /screenshots/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadcoders/kokoa-clone-2020/HEAD/screenshots/02.png -------------------------------------------------------------------------------- /screenshots/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadcoders/kokoa-clone-2020/HEAD/screenshots/03.png -------------------------------------------------------------------------------- /screenshots/04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadcoders/kokoa-clone-2020/HEAD/screenshots/04.png -------------------------------------------------------------------------------- /screenshots/05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadcoders/kokoa-clone-2020/HEAD/screenshots/05.png -------------------------------------------------------------------------------- /screenshots/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadcoders/kokoa-clone-2020/HEAD/screenshots/06.png -------------------------------------------------------------------------------- /screenshots/07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadcoders/kokoa-clone-2020/HEAD/screenshots/07.png -------------------------------------------------------------------------------- /screenshots/09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadcoders/kokoa-clone-2020/HEAD/screenshots/09.png -------------------------------------------------------------------------------- /css/variables.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --yellow: #fae100; 3 | --horizontal-space: 25px; 4 | --main-border: 1px solid rgba(0, 0, 0, 0.2); 5 | } 6 | -------------------------------------------------------------------------------- /css/components/badge.css: -------------------------------------------------------------------------------- 1 | .badge { 2 | background-color: tomato; 3 | width: 30px; 4 | height: 30px; 5 | border-radius: 15px; 6 | display: flex; 7 | justify-content: center; 8 | align-items: center; 9 | color: white; 10 | font-weight: 600; 11 | } 12 | -------------------------------------------------------------------------------- /css/components/icon-row.css: -------------------------------------------------------------------------------- 1 | .icon-row { 2 | display: flex; 3 | justify-content: space-between; 4 | } 5 | 6 | .icon-row__icon { 7 | display: flex; 8 | flex-direction: column; 9 | align-items: center; 10 | } 11 | 12 | .icon-row__icon i { 13 | font-size: 35px; 14 | } 15 | 16 | .icon-row__icon span { 17 | margin-top: 18px; 18 | } 19 | -------------------------------------------------------------------------------- /css/components/no-mobile.css: -------------------------------------------------------------------------------- 1 | #no-mobile { 2 | position: absolute; 3 | z-index: 99; 4 | height: 100vh; 5 | background-color: var(--yellow); 6 | width: 100vw; 7 | display: flex; 8 | justify-content: center; 9 | align-items: center; 10 | font-size: 32px; 11 | top: 0; 12 | } 13 | 14 | @media screen and (max-width: 645px) { 15 | #no-mobile { 16 | display: none; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /css/screens/settings.css: -------------------------------------------------------------------------------- 1 | .settings__setting { 2 | padding: 20px 0; 3 | border-bottom: 1px solid rgba(0, 0, 0, 0.1); 4 | font-size: 20px; 5 | display: flex; 6 | align-items: center; 7 | justify-content: space-between; 8 | } 9 | 10 | .settings__setting i { 11 | opacity: 0.8; 12 | margin-right: 20px; 13 | font-size: 22px; 14 | } 15 | 16 | .settings__setting-column:last-child { 17 | opacity: 0.5; 18 | } 19 | -------------------------------------------------------------------------------- /css/components/status-bar.css: -------------------------------------------------------------------------------- 1 | .status-bar { 2 | display: flex; 3 | justify-content: center; 4 | padding: 5px 3px; 5 | } 6 | .status-bar__column { 7 | width: 33%; 8 | } 9 | .status-bar__column:first-child span { 10 | margin-right: 5px; 11 | } 12 | .status-bar__column:nth-child(2) { 13 | display: flex; 14 | justify-content: center; 15 | } 16 | .status-bar__column:last-child { 17 | display: flex; 18 | justify-content: flex-end; 19 | align-items: center; 20 | } 21 | 22 | .status-bar__column .fa-battery-full { 23 | margin: 0px 5px; 24 | } 25 | -------------------------------------------------------------------------------- /css/components/screen-header.css: -------------------------------------------------------------------------------- 1 | .screen-header { 2 | display: flex; 3 | justify-content: space-between; 4 | align-items: center; 5 | padding: var(--horizontal-space); 6 | margin-bottom: 15px; 7 | } 8 | 9 | .screen-header__title { 10 | font-size: 32px; 11 | font-weight: 600; 12 | } 13 | 14 | .screen-header__icons span { 15 | margin-left: 25px; 16 | } 17 | 18 | @keyframes rotateCog { 19 | from { 20 | transform: none; 21 | } 22 | to { 23 | transform: rotateZ(360deg); 24 | } 25 | } 26 | 27 | .screen-header__icons .fa-cog:hover { 28 | animation: rotateCog 1s linear infinite; 29 | } 30 | -------------------------------------------------------------------------------- /css/components/alt-screen-header.css: -------------------------------------------------------------------------------- 1 | .alt-header { 2 | padding: var(--horizontal-space); 3 | margin-bottom: 15px; 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | } 8 | .alt-header__column { 9 | width: 33%; 10 | } 11 | 12 | .alt-header__title { 13 | font-size: 28px; 14 | font-weight: 600; 15 | } 16 | 17 | .alt-header__column:first-child { 18 | margin-right: auto; 19 | } 20 | 21 | .alt-header__column:nth-child(2) { 22 | text-align: center; 23 | } 24 | 25 | .alt-header__column:last-child { 26 | margin-left: auto; 27 | display: flex; 28 | justify-content: flex-end; 29 | } 30 | 31 | .alt-header__column span:last-child { 32 | margin-left: 20px; 33 | } 34 | -------------------------------------------------------------------------------- /css/screens/more.css: -------------------------------------------------------------------------------- 1 | .more-screen .icon-row { 2 | margin-top: 35px; 3 | } 4 | 5 | .more-suggestions { 6 | margin-top: 50px; 7 | border-top: var(--main-border); 8 | padding-top: 40px; 9 | } 10 | 11 | .more-suggestions__title { 12 | margin-bottom: 30px; 13 | } 14 | 15 | .more-suggestions__icons { 16 | display: flex; 17 | } 18 | 19 | .more-suggestions__icon { 20 | margin-right: 30px; 21 | display: flex; 22 | flex-direction: column; 23 | align-items: center; 24 | } 25 | 26 | .more-suggestions__icon-image { 27 | width: 60px; 28 | height: 60px; 29 | background-color: var(--yellow); 30 | border-radius: 10px; 31 | display: flex; 32 | justify-content: center; 33 | align-items: center; 34 | margin-bottom: 10px; 35 | } 36 | 37 | .more-suggestions__icon-image i { 38 | font-size: 32px; 39 | color: white; 40 | } 41 | -------------------------------------------------------------------------------- /css/styles.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600&display=swap"); 2 | 3 | @import "reset.css"; 4 | @import "variables.css"; 5 | 6 | /* Components */ 7 | @import "components/status-bar.css"; 8 | @import "components/nav-bar.css"; 9 | @import "components/screen-header.css"; 10 | @import "components/alt-screen-header.css"; 11 | @import "components/user-component.css"; 12 | @import "components/badge.css"; 13 | @import "components/icon-row.css"; 14 | @import "components/no-mobile.css"; 15 | 16 | /* Screens */ 17 | @import "screens/login.css"; 18 | @import "screens/friends.css"; 19 | @import "screens/find.css"; 20 | @import "screens/more.css"; 21 | @import "screens/settings.css"; 22 | @import "screens/chat.css"; 23 | 24 | body { 25 | color: #2e363e; 26 | font-family: "Open Sans", sans-serif; 27 | } 28 | 29 | .main-screen { 30 | padding: 0px var(--horizontal-space); 31 | } 32 | -------------------------------------------------------------------------------- /css/components/user-component.css: -------------------------------------------------------------------------------- 1 | .user-component { 2 | justify-content: space-between; 3 | } 4 | 5 | .user-component, 6 | .user-component__column:first-child { 7 | display: flex; 8 | align-items: center; 9 | } 10 | 11 | .user-component__avatar { 12 | width: 70px; 13 | height: 70px; 14 | border-radius: 30px; 15 | margin-right: 20px; 16 | } 17 | 18 | .user-component__title { 19 | font-weight: 600; 20 | font-size: 22px; 21 | } 22 | 23 | .user-component__subtitle { 24 | margin-top: 8px; 25 | font-size: 17px; 26 | color: rgba(0, 0, 0, 0.5); 27 | } 28 | 29 | .user-component__avatar--xl { 30 | width: 80px; 31 | height: 80px; 32 | } 33 | 34 | .user-component__avatar--sm { 35 | width: 60px; 36 | height: 60px; 37 | border-radius: 25px; 38 | } 39 | 40 | .user-component__title--not-bold { 41 | font-weight: 400; 42 | } 43 | 44 | .user-component__column:last-child { 45 | color: rgba(0, 0, 0, 0.4); 46 | display: flex; 47 | flex-direction: column; 48 | align-items: flex-end; 49 | } 50 | 51 | .user-component__time { 52 | margin-bottom: 10px; 53 | display: block; 54 | } 55 | -------------------------------------------------------------------------------- /css/screens/login.css: -------------------------------------------------------------------------------- 1 | .welcome-header { 2 | margin: 90px 0px; 3 | text-align: center; 4 | display: flex; 5 | flex-direction: column; 6 | align-items: center; 7 | } 8 | .welcome-header__title { 9 | margin-bottom: 20px; 10 | font-size: 25px; 11 | } 12 | .welcome-header__text { 13 | width: 60%; 14 | opacity: 0.7; 15 | } 16 | 17 | #login-form { 18 | display: flex; 19 | flex-direction: column; 20 | margin: 0px 30px; 21 | } 22 | 23 | #login-form input { 24 | border: none; 25 | padding: 15px 0px; 26 | font-size: 18px; 27 | margin-bottom: 25px; 28 | } 29 | 30 | #login-form input:not([type="submit"]) { 31 | border-bottom: 1px solid rgba(0, 0, 0, 0.2); 32 | transition: border-color 0.3s ease-in-out; 33 | } 34 | 35 | #login-form input::placeholder { 36 | color: rgba(0, 0, 0, 0.4); 37 | } 38 | 39 | #login-form input:focus { 40 | border-color: var(--yellow); 41 | } 42 | 43 | #login-form input[type="submit"] { 44 | background-color: var(--yellow); 45 | cursor: pointer; 46 | padding: 20px 0px; 47 | border-radius: 5px; 48 | } 49 | 50 | #login-form a { 51 | text-align: center; 52 | text-decoration: none; 53 | color: inherit; 54 | font-size: 13px; 55 | } 56 | -------------------------------------------------------------------------------- /css/screens/friends.css: -------------------------------------------------------------------------------- 1 | #friends-display-link { 2 | text-align: center; 3 | display: block; 4 | background-color: #fafafa; 5 | padding: 15px 0px; 6 | font-size: 18px; 7 | margin-bottom: 15px; 8 | margin-top: -15px; 9 | } 10 | 11 | #friends-display-link i { 12 | color: rgba(0, 0, 0, 0.3); 13 | } 14 | 15 | .friends-screen { 16 | padding: 0px var(--horizontal-space); 17 | } 18 | 19 | .friends-screen__channel { 20 | margin-top: 25px; 21 | border-top: var(--main-border); 22 | padding-top: 15px; 23 | } 24 | 25 | .friends-screen__channel-header { 26 | margin-bottom: 30px; 27 | display: flex; 28 | justify-content: space-between; 29 | color: rgba(0, 0, 0, 0.5); 30 | } 31 | 32 | @keyframes hideSplashScreen { 33 | from { 34 | opacity: 1; 35 | } 36 | to { 37 | opacity: 0; 38 | visibility: hidden; 39 | } 40 | } 41 | 42 | #splash-screen { 43 | background-color: var(--yellow); 44 | position: absolute; 45 | height: 100vh; 46 | width: 100vw; 47 | top: 0; 48 | display: flex; 49 | justify-content: center; 50 | align-items: center; 51 | font-size: 132px; 52 | animation: hideSplashScreen 0.3s ease-in-out forwards; 53 | animation-delay: 0.3s; 54 | } 55 | -------------------------------------------------------------------------------- /css/components/nav-bar.css: -------------------------------------------------------------------------------- 1 | .nav { 2 | position: fixed; 3 | bottom: 0; 4 | width: 100%; 5 | background-color: #f9f9fa; 6 | padding: 20px 50px; 7 | box-sizing: border-box; 8 | border-top: 1px solid rgba(121, 121, 121, 0.3); 9 | } 10 | .nav__list { 11 | display: flex; 12 | justify-content: space-between; 13 | } 14 | .nav__link { 15 | position: relative; 16 | color: #2e363e; 17 | } 18 | 19 | @keyframes notificationAnimation { 20 | 0% { 21 | transform: none; 22 | } 23 | 50% { 24 | transform: translateY(-5px) rotateY(360deg); 25 | } 26 | 100% { 27 | transform: none; 28 | } 29 | } 30 | 31 | .nav__notification { 32 | position: absolute; 33 | left: 15px; 34 | bottom: 15px; 35 | animation: notificationAnimation 2s ease-in-out infinite; 36 | } 37 | 38 | @keyframes appearBtnAnimation { 39 | from { 40 | opacity: 0; 41 | } 42 | to { 43 | opacity: 1; 44 | transform: none; 45 | } 46 | } 47 | 48 | .nav__btn { 49 | transform: translateY(50px); 50 | opacity: 0; 51 | animation: appearBtnAnimation 0.3s ease-in-out forwards; 52 | } 53 | 54 | .nav__btn:nth-child(2) { 55 | animation-delay: 0.2s; 56 | } 57 | .nav__btn:nth-child(3) { 58 | animation-delay: 0.5s; 59 | } 60 | .nav__btn:last-child { 61 | animation-delay: 0.8s; 62 | } 63 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |28 | If you have a Kokoa Account, log in with your email or phone number. 29 |
30 |