diff --git a/app/index.jade b/app/index.jade index 9a357c398..73d209a31 100644 --- a/app/index.jade +++ b/app/index.jade @@ -38,6 +38,7 @@ html link(rel="stylesheet", href="assets/css/settings/edit-profile.css") link(rel="stylesheet", href="assets/css/settings/account-info.css") link(rel="stylesheet", href="assets/css/profile/subtrack.css") + link(rel="stylesheet", href="assets/css/profile/nav.css") link(rel="stylesheet", href="assets/css/profile/icons.css") link(rel="stylesheet", href="assets/css/profile/header.css") link(rel="stylesheet", href="assets/css/profile/badges.css") diff --git a/app/profile/profile.controller.js b/app/profile/profile.controller.js index 30f6a1084..6ae300060 100644 --- a/app/profile/profile.controller.js +++ b/app/profile/profile.controller.js @@ -13,6 +13,7 @@ // set profile to the object that was resolved vm.profile = profile; vm.userHandle = userHandle; + vm.handleColor = ProfileService.getUserHandleColor(profile); vm.showBadges = showBadges; vm.closeDialog = closeDialog; vm.scrollTo = scrollTo; diff --git a/app/profile/subtrack/nav.jade b/app/profile/subtrack/nav.jade index 3f1c8e68b..1dacc4dd1 100644 --- a/app/profile/subtrack/nav.jade +++ b/app/profile/subtrack/nav.jade @@ -1,3 +1,14 @@ +.nav-top + .user + .avatar + img(ng-src="{{vm.profile.photoURL}}") + + .handle(style="color: {{vm.handleColor}}") {{vm.profile.handle}} + + .exit(ng-click="vm.closeDialog()") + img(src="/images/x-mark-gray.svg") + +hr .categoryNav .track( ng-repeat="track in vm.profile.tracks", diff --git a/app/profile/subtrack/subtrack.controller.js b/app/profile/subtrack/subtrack.controller.js index ee1bd453e..3b446e02e 100644 --- a/app/profile/subtrack/subtrack.controller.js +++ b/app/profile/subtrack/subtrack.controller.js @@ -230,7 +230,7 @@ template: 'profile/subtrack/nav.html', controller: 'ProfileCtrl', controllerAs: 'vm', - className: 'ngdialog-theme-default', + className: 'ngdialog-nav-theme', resolve: { userHandle: function() { return vm.userHandle; diff --git a/assets/css/profile/nav.scss b/assets/css/profile/nav.scss new file mode 100644 index 000000000..ba975cbd5 --- /dev/null +++ b/assets/css/profile/nav.scss @@ -0,0 +1,308 @@ +@import 'topcoder-includes'; +@import '../partials/combined'; + +.ngdialog.ngdialog-nav-theme { + padding-bottom: 160px; + padding-top: 160px; +} + +.ngdialog.ngdialog-nav-theme.ngdialog-closing .ngdialog-content { + -webkit-animation: ngdialog-flyout .5s; + animation: ngdialog-flyout .5s; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-content { + -webkit-animation: ngdialog-flyin .5s; + animation: ngdialog-flyin .5s; + background: #fff; + color: #444; + font-family: 'Helvetica',sans-serif; + font-size: 1.1em; + line-height: 1.5em; + margin: 0 auto; + max-width: 100%; + padding: 1em; + position: absolute; + top: 0; + width: 100%; + height: 100%; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-close { + display: none; + border-radius: 5px; + cursor: pointer; + position: absolute; + right: 0; + top: 0; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-close:before { + background: transparent; + border-radius: 3px; + color: #bbb; + content: '\00D7'; + font-size: 26px; + font-weight: 400; + height: 30px; + line-height: 26px; + position: absolute; + right: 3px; + text-align: center; + top: 3px; + width: 30px; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-close:hover:before, +.ngdialog.ngdialog-nav-theme .ngdialog-close:active:before { + color: #777; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-message { + margin-bottom: .5em; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-input { + margin-bottom: 1em; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-input textarea, +.ngdialog.ngdialog-nav-theme .ngdialog-input input[type="text"], +.ngdialog.ngdialog-nav-theme .ngdialog-input input[type="password"], +.ngdialog.ngdialog-nav-theme .ngdialog-input input[type="email"], +.ngdialog.ngdialog-nav-theme .ngdialog-input input[type="url"] { + background: #fff; + border: 0; + border-radius: 3px; + font-family: inherit; + font-size: inherit; + font-weight: inherit; + margin: 0 0 .25em; + min-height: 2.5em; + padding: .25em .67em; + width: 100%; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-input textarea:focus, +.ngdialog.ngdialog-nav-theme .ngdialog-input input[type="text"]:focus, +.ngdialog.ngdialog-nav-theme .ngdialog-input input[type="password"]:focus, +.ngdialog.ngdialog-nav-theme .ngdialog-input input[type="email"]:focus, +.ngdialog.ngdialog-nav-theme .ngdialog-input input[type="url"]:focus { + box-shadow: inset 0 0 0 2px #8dbdf1; + outline: none; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-buttons { + *zoom: 1; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-buttons:after { + content: ''; + display: table; + clear: both; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-button { + border: 0; + border-radius: 3px; + cursor: pointer; + float: right; + font-family: inherit; + font-size: .8em; + letter-spacing: .1em; + line-height: 1em; + margin: 0 0 0 .5em; + padding: .75em 2em; + text-transform: uppercase; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-button:focus { + -webkit-animation: ngdialog-pulse 1.1s infinite; + animation: ngdialog-pulse 1.1s infinite; + outline: none; +} + +@media (max-width: 568px) { + .ngdialog.ngdialog-nav-theme .ngdialog-button:focus { + -webkit-animation: none; + animation: none; + } +} + +.ngdialog.ngdialog-nav-theme .ngdialog-button.ngdialog-button-primary { + background: #3288e6; + color: #fff; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-button.ngdialog-button-secondary { + background: #e0e0e0; + color: #777; +} + +.ngdialog.ngdialog-nav-theme .ngdialog-overlay { + background: #fff; +} +.ngdialog.ngdialog-nav-theme .ngdialog-content { + padding-left: 8%; + padding-right: 8%; + .nav-top { + margin-top: 60px; + font-family: 'Sofia Pro'; + display: flex; + flex-direction: row; + justify-content: space-between; + .user { + display: flex; + font-weight: bold; + .avatar { + img { + width: 30px; + height: 30px; + border-radius: 50%; + } + } + .handle { + margin-left: 15px; + font-size: 28px; + } + } + .exit { + img { + height: 20px; + width: 20px; + cursor: pointer; + } + } + } + hr { + margin-top: 30px; + border: 0; + border-top: 1px solid #f0f0f0; + } + .categoryNav { + background: white; + margin-top: 20px; + @include module-l; + margin-left: auto; + margin-right: auto; + align-self: center; + background: white; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; + align-items: flex-start; + + .track { + margin: 30px 3px; + display: flex; + flex-direction: column; + align-items: center; + cursor: pointer; + + .name { + span { + } + margin: auto; + @include sofia-pro-medium; + font-size: 20px; + @media screen and (min-width: 768px) { + font-size: 24px; + line-height: 29px; + margin-bottom: 15px; + } + line-height: 24px; + margin-bottom: 10.6px; + } + img { + height: 20px; + width: 20px; + margin-right: 7px; + margin-bottom: -2px; + @media screen and (min-width: 768px) { + height: 30px; + width: 30px; + margin-bottom: -5px; + } + } + .subtrack { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 300px; + height: 52px; + border-bottom: 1px solid #f0f0f0; + &.first { + border-top: 1px solid #f0f0f0; + } + &:hover { + background-color: #f0f0f0; + } + .name { + align-self: center; + flex-basis: 250px; + align-text: left; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + @include sofia-pro-medium; + font-size: 14px; + @media screen and (min-width: 768px) { + font-size: 16px; + } + line-height: 18px; + text-transform: uppercase; + display: flex; + flex-direction: row; + justify-content: flex-start; + margin-top: 12px; + span { + } + } + .ranking { + margin: auto; + margin-right: 15px; + color: #7f7f7f; + .number { + text-align: center; + @include sofia-pro-semi-bold; + font-size: 13.4px; + @media screen and (min-width: 768px) { + font-size: 18px; + } + line-height: 16px; + span.square { + position: absolute; + margin-left: 5px; + width: 6px; + height: 6px; + } + } + .tag { + text-transform: uppercase; + margin: 10px auto 0px auto; + @include sofia-pro-medium; + font-size: 8.4px; + @media screen and (min-width: 768px) { + font-size: 10px; + } + line-height: 10px; + color: $accent-gray; + } + } + .arrow { + display: flex; + flex-direction: column; + justify-content: center; + height: 18px; + } + } + .icon { + width: 80px; + height: 80px; + margin: auto; + } + } + } +} diff --git a/assets/css/profile/subtrack.scss b/assets/css/profile/subtrack.scss index 206c0366e..681ed0a0b 100644 --- a/assets/css/profile/subtrack.scss +++ b/assets/css/profile/subtrack.scss @@ -529,112 +529,5 @@ } } } - .categoryNav { - background: white; - @include module-l; - margin-left: auto; - margin-right: auto; - align-self: center; - background: white; - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: center; - - .track { - margin-top: 22.4px; - display: flex; - flex-direction: column; - align-items: center; - cursor: pointer; - - .name { - span { - } - margin: auto; - @include sofia-pro-extra-light; - font-size: 20px; - line-height: 24px; - margin-bottom: 10.6px; - } - img { - height: 20px; - width: 20px; - margin-right: 7px; - margin-bottom: -2px; - } - .subtrack { - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - width: 300px; - height: 52px; - border-bottom: 1px solid #f0f0f0; - &.first { - border-top: 1px solid #f0f0f0; - } - &:hover { - background-color: #f0f0f0; - } - .name { - margin-left: 25px; - align-self: center; - flex-basis: 250px; - align-text: left; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - @include sofia-pro-light; - font-size: 14px; - line-height: 18px; - text-transform: uppercase; - display: flex; - flex-direction: row; - justify-content: flex-start; - margin-top: 12px; - span { - } - } - .ranking { - margin: auto; - margin-right: 15px; - color: #7f7f7f; - .number { - text-align: center; - @include sofia-pro-semi-bold; - font-size: 13.4px; - line-height: 16px; - span.square { - position: absolute; - margin-left: 5px; - width: 6px; - height: 6px; - } - } - .tag { - text-transform: uppercase; - margin: 10px auto 0px auto; - @include sofia-pro-regular; - font-size: 8.4px; - line-height: 10px; - color: #7f7f7f; - } - } - .arrow { - @include sofia-pro-extra-light; - color: #cccccc; - font-size: 18px; - display: flex; - flex-direction: column; - justify-content: center; - } - } - .icon { - width: 80px; - height: 80px; - margin: auto; - } - } - } + }