From 6f6b9b0251c20bff18cf2408e43adbee039da28e Mon Sep 17 00:00:00 2001
From: sindifatikas <61447377+sindifatikas@users.noreply.github.com>
Date: Thu, 19 Mar 2020 21:01:14 +0700
Subject: [PATCH 1/8] Update database.php
---
application/config/database.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/application/config/database.php b/application/config/database.php
index 77748959f9f..64ea7e8f784 100644
--- a/application/config/database.php
+++ b/application/config/database.php
@@ -76,9 +76,9 @@
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
- 'username' => '',
+ 'username' => 'root',
'password' => '',
- 'database' => '',
+ 'database' => 'vietgram',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
From 2e6ee57810642da68cb5cd6bce573dc047eb53e8 Mon Sep 17 00:00:00 2001
From: sindifatikas <61447377+sindifatikas@users.noreply.github.com>
Date: Thu, 19 Mar 2020 21:06:28 +0700
Subject: [PATCH 2/8] Update config.php
---
application/config/config.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/application/config/config.php b/application/config/config.php
index 782b19c74b6..150f58e6ece 100644
--- a/application/config/config.php
+++ b/application/config/config.php
@@ -35,7 +35,7 @@
| variable so that it is blank.
|
*/
-$config['index_page'] = 'index.php';
+$config['index_page'] = 'index.php';
/*
|--------------------------------------------------------------------------
From 5ab74608261cfe561c396c0d32d4df23be5f5eeb Mon Sep 17 00:00:00 2001
From: sindifatikas <61447377+sindifatikas@users.noreply.github.com>
Date: Thu, 19 Mar 2020 21:09:22 +0700
Subject: [PATCH 3/8] Update routes.php
---
application/config/routes.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/application/config/routes.php b/application/config/routes.php
index 8ebf62bfa43..47ad1869650 100644
--- a/application/config/routes.php
+++ b/application/config/routes.php
@@ -49,6 +49,6 @@
| Examples: my-controller/index -> my_controller/index
| my-controller/my-method -> my_controller/my_method
*/
-$route['default_controller'] = 'welcome';
+$route['default_controller'] = 'Login';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
From d0437ec5f74487e50126200f06ccd5b1eebeedfa Mon Sep 17 00:00:00 2001
From: sindifatikas <61447377+sindifatikas@users.noreply.github.com>
Date: Thu, 19 Mar 2020 21:11:54 +0700
Subject: [PATCH 4/8] Create Login.php
---
application/controllers/Login.php | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
create mode 100644 application/controllers/Login.php
diff --git a/application/controllers/Login.php b/application/controllers/Login.php
new file mode 100644
index 00000000000..4147dfa7357
--- /dev/null
+++ b/application/controllers/Login.php
@@ -0,0 +1,26 @@
+
+ * @see https://codeigniter.com/user_guide/general/urls.html
+ */
+ public function index()
+ {
+ $this->load->view('view_login');
+ }
+}
From 55c2cb8552e919989b1af1720c9f6bc8e45c6255 Mon Sep 17 00:00:00 2001
From: sindifatikas <61447377+sindifatikas@users.noreply.github.com>
Date: Thu, 19 Mar 2020 21:15:16 +0700
Subject: [PATCH 5/8] Update autoload.php
---
application/config/autoload.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/application/config/autoload.php b/application/config/autoload.php
index 7cdc9013c11..47a3ba29d0e 100644
--- a/application/config/autoload.php
+++ b/application/config/autoload.php
@@ -89,7 +89,7 @@
|
| $autoload['helper'] = array('url', 'file');
*/
-$autoload['helper'] = array();
+$autoload['helper'] = array('url');
/*
| -------------------------------------------------------------------
From 872661cddb8c838b82bbdb20692f8f59091cdf69 Mon Sep 17 00:00:00 2001
From: sindifatikas <61447377+sindifatikas@users.noreply.github.com>
Date: Thu, 19 Mar 2020 21:18:36 +0700
Subject: [PATCH 6/8] Create view_login.php
---
application/views/view_login.php | 73 ++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 application/views/view_login.php
diff --git a/application/views/view_login.php b/application/views/view_login.php
new file mode 100644
index 00000000000..12bb5473133
--- /dev/null
+++ b/application/views/view_login.php
@@ -0,0 +1,73 @@
+
+
+
+
+ Vietgram | Login
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 . 'assets/images/phoneImage.png' ?>)
+
+
+
+
+
+
Get the app.
+
+
 . 'assets/images/ios.png' ?>)
+
 . 'assets/images/android.png' ?>)
+
+
+
+
+
+
+
+
From 001eeca84350b96198b12311a6c7b80d1d0eebbc Mon Sep 17 00:00:00 2001
From: sindifatikas <61447377+sindifatikas@users.noreply.github.com>
Date: Thu, 19 Mar 2020 21:26:49 +0700
Subject: [PATCH 7/8] Add files via upload
---
assets/css/edit-profile.css | 101 +
assets/css/explore.css | 70 +
assets/css/feed.css | 101 +
assets/css/footer.css | 30 +
assets/css/globals.css | 21 +
assets/css/login.css | 128 +
assets/css/mobile.css | 110 +
assets/css/navigation.css | 77 +
assets/css/profile.css | 161 +
assets/css/reset.css | 124 +
assets/css/styles.css | 12 +
assets/css/variables.css | 5 +
assets/images/Avatarr.jpg | Bin 0 -> 3371 bytes
assets/images/android.png | Bin 0 -> 10071 bytes
assets/images/feedPhoto1.jpg | Bin 0 -> 43494 bytes
assets/images/feedPhoto2.jpg | Bin 0 -> 123807 bytes
assets/images/feedPhoto3.jpg | Bin 0 -> 70408 bytes
assets/images/feedPhoto4.jpg | Bin 0 -> 62802 bytes
assets/images/ios.png | Bin 0 -> 3754 bytes
assets/images/loginLogo.png | Bin 0 -> 17111 bytes
assets/images/logo.png | Bin 0 -> 14740 bytes
assets/images/phoneImage.png | Bin 0 -> 1029664 bytes
assets/js/bootstrap.bundle.js | 7013 +++++++++++++++++++++++++
assets/js/bootstrap.bundle.js.map | 1 +
assets/js/bootstrap.bundle.min.js | 7 +
assets/js/bootstrap.bundle.min.js.map | 1 +
assets/js/bootstrap.js | 4435 ++++++++++++++++
assets/js/bootstrap.js.map | 1 +
assets/js/bootstrap.min.js | 7 +
assets/js/bootstrap.min.js.map | 1 +
30 files changed, 12406 insertions(+)
create mode 100644 assets/css/edit-profile.css
create mode 100644 assets/css/explore.css
create mode 100644 assets/css/feed.css
create mode 100644 assets/css/footer.css
create mode 100644 assets/css/globals.css
create mode 100644 assets/css/login.css
create mode 100644 assets/css/mobile.css
create mode 100644 assets/css/navigation.css
create mode 100644 assets/css/profile.css
create mode 100644 assets/css/reset.css
create mode 100644 assets/css/styles.css
create mode 100644 assets/css/variables.css
create mode 100644 assets/images/Avatarr.jpg
create mode 100644 assets/images/android.png
create mode 100644 assets/images/feedPhoto1.jpg
create mode 100644 assets/images/feedPhoto2.jpg
create mode 100644 assets/images/feedPhoto3.jpg
create mode 100644 assets/images/feedPhoto4.jpg
create mode 100644 assets/images/ios.png
create mode 100644 assets/images/loginLogo.png
create mode 100644 assets/images/logo.png
create mode 100644 assets/images/phoneImage.png
create mode 100644 assets/js/bootstrap.bundle.js
create mode 100644 assets/js/bootstrap.bundle.js.map
create mode 100644 assets/js/bootstrap.bundle.min.js
create mode 100644 assets/js/bootstrap.bundle.min.js.map
create mode 100644 assets/js/bootstrap.js
create mode 100644 assets/js/bootstrap.js.map
create mode 100644 assets/js/bootstrap.min.js
create mode 100644 assets/js/bootstrap.min.js.map
diff --git a/assets/css/edit-profile.css b/assets/css/edit-profile.css
new file mode 100644
index 00000000000..8f478f437b5
--- /dev/null
+++ b/assets/css/edit-profile.css
@@ -0,0 +1,101 @@
+#edit-profile {
+ display: flex;
+ justify-content: center;
+}
+
+#edit-profile .edit-profile__container {
+ background-color: white;
+ border: 1px solid #e6e6e6;
+ width: 100%;
+ max-width: 800px;
+}
+
+#edit-profile .edit-profile__container {
+ padding: 40px 0;
+}
+
+#edit-profile .edit-profile__header {
+ display: flex;
+ align-items: center;
+ margin-bottom: 50px;
+}
+
+.edit-profile__header .edit-profile__avatar-container {
+ width: 200px;
+}
+
+.edit-profile__avatar-container {
+ display: flex;
+ justify-content: flex-end;
+ margin-right: 35px;
+}
+
+.edit-profile__avatar-container img {
+ width: 38px;
+ height: 38px;
+ border-radius: 50%;
+}
+.edit-profile__header h4 {
+ font-size: 18px;
+ font-weight: 600;
+}
+
+.edit-profile__form .form__row {
+ display: flex;
+}
+
+.form__row {
+ margin-bottom: 20px;
+ display: flex;
+ align-items: center;
+}
+
+.form__row .form__label {
+ width: 200px;
+ display: block;
+ text-align: right;
+ margin-right: 35px;
+ font-weight: 600;
+ font-size: 16px;
+}
+
+.form__row label {
+ font-size: 15px;
+ width: 80%;
+}
+
+.form__row .form__input,
+.form__row textarea {
+ padding: 8px;
+ width: 255px;
+ resize: vertical;
+ border: 0;
+ border: 1px solid #e6e6e6;
+ border-radius: 3px;
+}
+
+.form__row input[type="checkbox"] {
+ margin-right: 15px;
+}
+
+#edit-profile select {
+ background: 0 0;
+ border: 1px solid #efefef;
+ border-radius: 3px;
+ color: #262626;
+ font-size: 16px;
+ height: 32px;
+ padding: 0 30px 0 10px;
+}
+
+#edit-profile input[type="submit"] {
+ margin-left: 235px;
+ border: 0;
+ color: white;
+ font-weight: 600;
+ border-radius: 3px;
+ background-color: var(--fd-blue);
+ font-size: 14px;
+ padding: 7px 25px;
+}
+
diff --git a/assets/css/explore.css b/assets/css/explore.css
new file mode 100644
index 00000000000..d4a8f6ba2af
--- /dev/null
+++ b/assets/css/explore.css
@@ -0,0 +1,70 @@
+#explore {
+ display: flex;
+ justify-content: center;
+ align-items: flex-start;
+ min-height: 500px;
+}
+
+#explore .explore__users {
+ background-color: white;
+ border: 1px solid #e6e6e6;
+ border-radius: 3px;
+ width: 100%;
+ max-width: 600px;
+}
+
+.explore__users .explore__user {
+ padding: 10px 15px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ border-bottom: 1px solid #e6e6e6;
+}
+
+.explore__users .explore__user:last-child {
+ border: 0;
+}
+
+.explore__user .explore__avatar {
+ width: 55px;
+ border-radius: 50%;
+}
+
+.explore__user .explore__user-column {
+ display: flex;
+ align-items: center;
+}
+
+.explore__user .explore__info {
+ margin-left: 15px;
+}
+
+.explore__info .explore__username {
+ display: block;
+ font-weight: 600;
+ margin-bottom: 5px;
+}
+
+.explore__info .explore__full-name {
+ color: #999;
+}
+
+.explore__user-column button {
+ background-color: var(--fd-blue);
+ color: white;
+ border: 0;
+ font-weight: 600;
+ padding: 5px 10px;
+ font-size: 14px;
+ border-radius: 3px;
+ cursor: pointer;
+}
+
+.explore__user-column button:active,
+.explore__user-column button:focus {
+ outline: none;
+}
+
+.explore__user-column:active {
+ opacity: 0.9;
+}
diff --git a/assets/css/feed.css b/assets/css/feed.css
new file mode 100644
index 00000000000..cc88c16ef17
--- /dev/null
+++ b/assets/css/feed.css
@@ -0,0 +1,101 @@
+#feed {
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+}
+
+#feed .photo {
+ background-color: white;
+ border: 1px solid #e6e6e6;
+ border-radius: 3px;
+ width: 100%;
+ max-width: 600px;
+ margin-bottom: 65px;
+}
+
+.photo .photo__header {
+ padding: 15px;
+ display: flex;
+ align-items: center;
+}
+
+.photo__header .photo__avatar {
+ width: 32px;
+ border-radius: 50%;
+ margin-right: 10px;
+}
+
+.photo .photo__user-info .photo__author {
+ display: block;
+ font-weight: 600;
+ margin-bottom: 5px;
+}
+
+.photo > img {
+ max-width: 100%;
+}
+
+.photo .photo__info {
+ padding: 15px 20px;
+}
+
+.photo__actions {
+ margin-bottom: 15px;
+ font-size: 115%;
+}
+
+.photo__actions .photo__action:first-child {
+ margin-right: 15px;
+}
+
+.photo__actions .photo__action {
+ cursor: pointer;
+}
+
+.photo .photo__likes {
+ font-weight: 600;
+ margin-bottom: 10px;
+ display: block;
+}
+
+.photo .photo__add-comment-container {
+ margin-top: 15px;
+ border-top: 1px solid #e6e6e6;
+ padding-top: 10px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.photo__add-comment-container textarea {
+ width: 90%;
+ border: 0;
+ font-size: 14px;
+ resize: none;
+ height: 20px;
+}
+
+.photo__add-comment-container textarea:focus,
+.photo__add-comment-container textarea:active {
+ outline: none;
+}
+
+.photo__add-comment-container i {
+ cursor: pointer;
+}
+
+.photo .photo__time-ago {
+ font-size: 10px;
+ text-transform: uppercase;
+ color: #999;
+ margin-top: 10px;
+ display: block;
+}
+
+.photo__comment {
+ margin-bottom: 10px;
+}
+
+.photo__comments .photo__comment-author {
+ font-weight: 600;
+}
diff --git a/assets/css/footer.css b/assets/css/footer.css
new file mode 100644
index 00000000000..0d5b8cbae0e
--- /dev/null
+++ b/assets/css/footer.css
@@ -0,0 +1,30 @@
+.footer {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ width: 100%;
+ max-width: 900px;
+ margin: 30px auto;
+ text-transform: uppercase;
+ font-size: 12px;
+ font-weight: 600;
+}
+
+.footer .footer__list {
+ padding: 0;
+ list-style-type: none;
+ display: flex;
+}
+
+.footer .footer__copyright {
+ color: hsl(0, 0%, 60%);
+}
+
+.footer__list .footer__list-item {
+ margin-right: 10px;
+}
+
+.footer .footer__link {
+ text-decoration: none;
+ color: var(--link-color);
+}
diff --git a/assets/css/globals.css b/assets/css/globals.css
new file mode 100644
index 00000000000..cea96117b23
--- /dev/null
+++ b/assets/css/globals.css
@@ -0,0 +1,21 @@
+body {
+ background-color: white;
+ background-color: var(--background-color);
+ font-size: 14px;
+ font-family: "Open Sans", sans-serif;
+}
+
+main {
+ animation: fadeInMain 0.5s linear;
+}
+
+@keyframes fadeInMain {
+ from {
+ opacity: 0;
+ transform: translateY(10px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0px);
+ }
+}
diff --git a/assets/css/login.css b/assets/css/login.css
new file mode 100644
index 00000000000..f5657f0c13a
--- /dev/null
+++ b/assets/css/login.css
@@ -0,0 +1,128 @@
+#login {
+ width: 100%;
+ max-width: 800px;
+ margin: 45px auto;
+ display: flex;
+ justify-content: space-around;
+}
+
+#login .login__column {
+ width: 45%;
+}
+
+.login__column .login__phone {
+ max-width: 100%;
+}
+
+.login__column .login__box {
+ background-color: white;
+ border: 1px solid #e6e6e6;
+}
+
+.login__column .login__box--transparent {
+ background: none;
+ border: 0;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin-top: 35px;
+}
+
+.login__column .login__appstores {
+ margin-top: 20px;
+}
+
+.login__appstores .login__appstore {
+ height: 40px;
+}
+
+#login .login__box {
+ padding: 30px 0;
+ text-align: center;
+}
+
+#login .login__box:first-child {
+ margin-bottom: 10px;
+ padding-left: 40px;
+ padding-right: 40px;
+}
+
+.login__column .login__logo {
+ height: 50px;
+}
+
+.login__form input {
+ display: block;
+ width: 100%;
+ box-sizing: border-box;
+ padding: 7px;
+ font-size: 14px;
+ border: 0;
+ border: 1px solid #e6e6e6;
+ border-radius: 5px;
+ background: #fafafa;
+}
+
+.login__form input:focus {
+ outline: none;
+ border: 1px solid #a9a9a9;
+}
+
+.login__form input:first-child {
+ margin-bottom: 5px;
+}
+
+.login__form input[type="submit"] {
+ background-color: #3f99ed;
+ border: 0;
+ padding: 5px;
+ margin-top: 15px;
+ margin-bottom: 20px;
+ color: white;
+ font-weight: 600;
+}
+
+#login .login__divider {
+ display: block;
+ text-transform: uppercase;
+ font-weight: 600;
+ color: #999;
+ margin-bottom: 20px;
+ position: relative;
+ width: 100%;
+}
+
+#login .login__link {
+ display: block;
+ text-decoration: none;
+ color: #003569;
+}
+
+#login .login__link--small {
+ margin-top: 30px;
+}
+
+.login__box a {
+ text-decoration: none;
+ color: var(--fd-blue);
+}
+
+#login .login__divider:before {
+ content: "";
+ height: 1px;
+ background-color: rgba(153, 153, 153, 0.5);
+ width: 40%;
+ position: absolute;
+ left: 0;
+ top: 10px;
+}
+
+#login .login__divider:after {
+ content: "";
+ height: 1px;
+ background-color: rgba(153, 153, 153, 0.5);
+ width: 40%;
+ position: absolute;
+ right: 0;
+ top: 10px;
+}
diff --git a/assets/css/mobile.css b/assets/css/mobile.css
new file mode 100644
index 00000000000..fc236e0553c
--- /dev/null
+++ b/assets/css/mobile.css
@@ -0,0 +1,110 @@
+@media screen and (min-width: 375px) and (max-width: 667px) {
+ .navigation {
+ padding: 0 20px;
+ margin-bottom: 0;
+ }
+ .navigation input,
+ .navigation .fa-search {
+ display: none;
+ }
+ #feed .photo {
+ background-color: transparent;
+ border: 0;
+ margin-bottom: 20px;
+ }
+ #feed .photo .photo__add-comment-container {
+ display: none;
+ }
+ .footer {
+ width: 80%;
+ }
+ .footer,
+ .footer .footer__list {
+ flex-wrap: wrap;
+ justify-content: center;
+ }
+ .footer__list .footer__list-item {
+ margin-bottom: 10px;
+ }
+ #login .login__column {
+ width: 100%;
+ }
+ #login .login__column:first-child {
+ display: none;
+ }
+ #login .login__box {
+ background-color: transparent;
+ border: 0;
+ }
+ #profile {
+ margin-top: 50px;
+ }
+ #profile .profile__header {
+ flex-direction: column;
+ align-items: center;
+ }
+ #profile .profile__title {
+ flex-wrap: wrap;
+ justify-content: center;
+ width: 100%;
+ }
+ .profile__title h3 {
+ margin: 20px 0;
+ }
+ .profile__title a {
+ margin-right: auto;
+ }
+ .profile__stats {
+ justify-content: space-between;
+ }
+ .profile__stats .profile__stat {
+ text-align: center;
+ margin-right: 0;
+ }
+ .profile__stat span {
+ display: block;
+ }
+ .profile__photos .profile__photo {
+ width: 33%;
+ margin-bottom: 0;
+ }
+ .profile__photos {
+ margin-bottom: 50px;
+ }
+ #explore .explore__users {
+ background-color: transparent;
+ border: 0;
+ }
+ .explore__users .explore__user {
+ border: 0;
+ }
+ #edit-profile > .edit-profile__container {
+ border: 0;
+ }
+ #edit-profile .form__row {
+ flex-direction: column;
+ }
+ .form__row .form__label {
+ margin: 0;
+ text-align: center;
+ margin-bottom: 10px;
+ }
+ #edit-profile input[type="submit"] {
+ width: 120px;
+ margin: 0;
+ margin-top: 20px;
+ }
+ #edit-profile .edit-profile__container {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ }
+ #edit-profile .edit-profile__form {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ }
+ .edit-profile__header .edit-profile__avatar-container {
+ width: 0;
+ }
+}
diff --git a/assets/css/navigation.css b/assets/css/navigation.css
new file mode 100644
index 00000000000..cb729669732
--- /dev/null
+++ b/assets/css/navigation.css
@@ -0,0 +1,77 @@
+.navigation {
+ height: 75px;
+ background-color: white;
+ border-bottom: 1px solid #e6e6e6;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 100px;
+ margin-bottom: 60px;
+}
+
+.navigation .navigation__column:first-child img {
+ height: 45px;
+}
+
+.navigation .navigations__links {
+ display: flex;
+ padding: 0;
+ list-style-type: none;
+}
+
+.navigation .navigation__list-item {
+ margin-left: 30px;
+ padding: 0 2px;
+ opacity: 0;
+ animation: slideNavLink 0.5s ease-out forwards;
+}
+
+@keyframes slideNavLink {
+ from {
+ transform: translateY(-10px);
+ }
+ to {
+ opacity: 1;
+ transform: none;
+ }
+}
+
+.navigation .navigation__list-item:nth-child(2) {
+ animation-delay: 0.2s;
+}
+
+.navigation .navigation__list-item:last-child {
+ animation-delay: 0.3s;
+}
+
+.navigation__link {
+ color: rgba(0, 0, 0, 0.8);
+ font-size: 18px;
+}
+
+.navigation__column input {
+ padding: 5px 0;
+ padding-left: 60px;
+ border: 0;
+ border: 1px solid #e6e6e6;
+ border-radius: 3px;
+ background: #fafafa;
+ font-size: 16px;
+}
+
+.navigation__column input:focus {
+ outline: none;
+ border: 1px solid #a9a9a9;
+}
+
+.navigation__column {
+ position: relative;
+}
+
+.navigation__column .fa-search {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ color: rgba(0, 0, 0, 0.5);
+ font-size: 12px;
+}
diff --git a/assets/css/profile.css b/assets/css/profile.css
new file mode 100644
index 00000000000..5d115215978
--- /dev/null
+++ b/assets/css/profile.css
@@ -0,0 +1,161 @@
+#profile {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+#profile .profile__header {
+ max-width: 935px;
+ width: 100%;
+ display: flex;
+ margin-bottom: 50px;
+ font-size: 110%;
+}
+
+.profile__header .profile__column {
+ width: 70%;
+}
+
+.profile__header .profile__column:first-child {
+ width: 30%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.profile__column:first-child img {
+ border-radius: 50%;
+ transform-style: preserve-3d;
+ transition: transform 0.5s linear;
+ animation: rotateLynn 1s linear infinite;
+}
+
+@keyframes rotateLynn {
+ from {
+ transform: rotateY(0turn);
+ }
+ to {
+ transform: rotateY(1turn);
+ }
+}
+
+.profile__column .profile__title,
+.profile__column .profile__stats {
+ display: flex;
+ align-items: center;
+}
+
+.profile__column .profile__title {
+ margin-bottom: 30px;
+}
+
+.profile__title .profile__username {
+ margin-right: 25px;
+ font-size: 32px;
+ font-weight: 300;
+}
+
+.profile__title a {
+ margin-right: 10px;
+ text-decoration: none;
+ color: inherit;
+ font-weight: 600;
+ padding: 5px 25px;
+ border: 1px solid #e6e6e6;
+ border-radius: 3px;
+ transition: all 0.3s ease-in-out;
+}
+
+.profile__title a:hover {
+ background-color: #3f99ed;
+ color: white;
+ border-color: #3f99ed;
+}
+
+.profile__title i {
+ cursor: pointer;
+ transition: transform 1s ease-in;
+}
+
+.profile__title i:hover {
+ transform: rotate(2turn);
+}
+
+.profile__column .profile__stats {
+ margin-bottom: 30px;
+}
+
+.profile__stats .profile__stat {
+ margin-right: 40px;
+}
+
+.profile__stat .stat__number {
+ font-weight: 600;
+}
+
+.profile__bio .profile__full-name {
+ font-weight: 600;
+}
+
+.profile__bio a {
+ color: var(--link-color);
+ font-weight: 600;
+ text-decoration: none;
+ display: block;
+}
+
+.profile__column .profile__bio {
+ line-height: 125%;
+}
+
+#profile .profile__photos {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ max-width: 936px;
+ width: 100%;
+}
+
+.profile__photos .profile__photo {
+ width: 31%;
+ margin-bottom: 35px;
+ position: relative;
+}
+
+.profile__photo img {
+ max-width: 100%;
+}
+
+.profile__photo .profile__photo-overlay {
+ position: absolute;
+ top: 0;
+ background-color: rgba(0, 0, 0, 0.5);
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: white;
+ font-weight: 600;
+ opacity: 0;
+ transition: opacity 0.2s linear;
+}
+
+.profile__photo:hover .profile__photo-overlay {
+ opacity: 1;
+}
+
+.profile__photo-overlay .overlay__item {
+ font-size: 130%;
+ display: flex;
+ align-items: center;
+}
+.profile__photo-overlay .overlay__item:last-child {
+ margin-left: 10px;
+ /**/
+}
+
+.profile__photo-overlay .overlay__item i {
+ font-size: 130%;
+ margin-right: 5px;
+}
diff --git a/assets/css/reset.css b/assets/css/reset.css
new file mode 100644
index 00000000000..82935aeceff
--- /dev/null
+++ b/assets/css/reset.css
@@ -0,0 +1,124 @@
+html,
+body,
+div,
+span,
+applet,
+object,
+iframe,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p,
+blockquote,
+pre,
+a,
+abbr,
+acronym,
+address,
+big,
+cite,
+code,
+del,
+dfn,
+em,
+img,
+ins,
+kbd,
+q,
+s,
+samp,
+small,
+strike,
+strong,
+sub,
+sup,
+tt,
+var,
+b,
+u,
+i,
+center,
+dl,
+dt,
+dd,
+ol,
+ul,
+li,
+fieldset,
+form,
+label,
+legend,
+table,
+caption,
+tbody,
+tfoot,
+thead,
+tr,
+th,
+td,
+article,
+aside,
+canvas,
+details,
+embed,
+figure,
+figcaption,
+footer,
+header,
+hgroup,
+menu,
+nav,
+output,
+ruby,
+section,
+summary,
+time,
+mark,
+audio,
+video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+menu,
+nav,
+section {
+ display: block;
+}
+body {
+ line-height: 1;
+}
+ol,
+ul {
+ list-style: none;
+}
+blockquote,
+q {
+ quotes: none;
+}
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
+ content: "";
+ content: none;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
diff --git a/assets/css/styles.css b/assets/css/styles.css
new file mode 100644
index 00000000000..09dd98497fc
--- /dev/null
+++ b/assets/css/styles.css
@@ -0,0 +1,12 @@
+@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600");
+@import "reset.css";
+@import "variables.css";
+@import "globals.css";
+@import "login.css";
+@import "footer.css";
+@import "navigation.css";
+@import "explore.css";
+@import "feed.css";
+@import "profile.css";
+@import "edit-profile.css";
+@import "mobile.css";
diff --git a/assets/css/variables.css b/assets/css/variables.css
new file mode 100644
index 00000000000..0620c7ea3f3
--- /dev/null
+++ b/assets/css/variables.css
@@ -0,0 +1,5 @@
+:root {
+ --background-color: #fafafa;
+ --fd-blue: #3897f0;
+ --link-color: #003569;
+}
diff --git a/assets/images/Avatarr.jpg b/assets/images/Avatarr.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ff0af5e4c16e5eaf1e9a49556279aa70e5e15733
GIT binary patch
literal 3371
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