diff --git a/website/client/assets/scss/form.scss b/website/client/assets/scss/form.scss index 27d13af033..6c3ae19579 100644 --- a/website/client/assets/scss/form.scss +++ b/website/client/assets/scss/form.scss @@ -65,6 +65,7 @@ input, textarea, input.form-control, textarea.form-control { padding-right: 40px; background-image: url(~client/assets/svg/for-css/alert.svg); background-size: 16px 16px; + margin-bottom: 0.1rem; } } diff --git a/website/client/components/creatorIntro.vue b/website/client/components/creatorIntro.vue index 9f9702f91e..9896ebe5ee 100644 --- a/website/client/components/creatorIntro.vue +++ b/website/client/components/creatorIntro.vue @@ -5,7 +5,7 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true h3(v-once) {{$t('welcomeTo')}} .svg-icon.logo(v-html='icons.logoPurple') - .avatar-section.row(:class='{"page-2": modalPage === 2}') + .avatar-section.row(v-if='modalPage > 1 || user.auth.local.email', :class='{"page-2": modalPage === 2}') .col-6.offset-3 .user-creation-bg(v-if='!editing') avatar(:member='user', :avatarOnly='!editing', :class='{"edit-avatar": editing}') @@ -187,18 +187,18 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true #extra.section.container.customize-section(v-if='activeTopPage === "extra"') .row.sub-menu .col-3.offset-1.text-center.sub-menu-item(@click='changeSubPage("glasses")', :class='{active: activeSubPage === "glasses"}') - strong(v-once) {{$t('glasses')}} + strong(v-once) {{ $t('glasses') }} .col-4.text-center.sub-menu-item(@click='changeSubPage("wheelchair")', :class='{active: activeSubPage === "wheelchair"}') - strong(v-once) {{$t('wheelchair')}} + strong(v-once) {{ $t('wheelchair') }} .col-3.text-center.sub-menu-item(@click='changeSubPage("flower")', :class='{active: activeSubPage === "flower"}') - strong(v-once) {{$t('accent')}} + strong(v-once) {{ $t('accent') }} .row.sub-menu(v-if='editing') .col-4.text-center.sub-menu-item(@click='changeSubPage("ears")' :class='{active: activeSubPage === "ears"}') - strong(v-once) {{$t('animalEars')}} + strong(v-once) {{ $t('animalEars') }} .col-4.text-center.sub-menu-item(@click='changeSubPage("tails")' :class='{active: activeSubPage === "tails"}') - strong(v-once) {{$t('animalTails')}} + strong(v-once) {{ $t('animalTails') }} .col-4.text-center.sub-menu-item(@click='changeSubPage("headband")' :class='{active: activeSubPage === "headband"}') - strong(v-once) {{$t('headband')}} + strong(v-once) {{ $t('headband') }} #glasses.row(v-if='activeSubPage === "glasses"') .col-12.customize-options .option(v-for='option in eyewear', :class='{active: option.active}') @@ -305,7 +305,7 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true ) span.svg-icon.inline.icon-12.color(v-html="icons.pin") .purchase-background.set(v-if='!ownsSet("background", set.items) && set.identifier !== "incentiveBackgrounds"' @click='unlock(setKeys("background", set.items))') - span.label Purchase Set + span.label {{ $t('purchaseAll') }} .svg-icon.gem(v-html='icons.gem') span.price 15 .row.customize-menu(v-if='filterBackgrounds') @@ -320,7 +320,7 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true .container.interests-section(v-if='modalPage === 3 && !editing') .section.row .col-12.text-center - h2 I want to work on: + h2 {{ $t('wantToWorkOn') }} .section.row .col-6 .task-option @@ -353,28 +353,36 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true input.custom-control-input#self_care(type="checkbox", value='self_care', v-model='taskCategories') label.custom-control-label(v-once, for="self_care") {{ $t('self_care') }} - .section.row.justin-message-section(:class='{top: modalPage > 1}', v-if='!editing') - .col-12 - .justin-message.d-flex.flex-column.justify-content-center - .featured-label - span.rectangle - span.text Justin - span.rectangle - .npc_justin_textbox + .section.d-flex.justify-content-center(:class='{top: modalPage > 1}', v-if='!editing') + .justin-section.d-flex.align-items-center + .featured-label + span.rectangle + span.text Justin + span.rectangle + .justin-message + .corner-decoration(:style="{top: '-2px', right: '-2px'}") + .corner-decoration(:style="{top: '-2px', left: '-2px'}") + .corner-decoration(:style="{bottom: '-2px', right: '-2px'}") + .corner-decoration(:style="{bottom: '-2px', left: '-2px'}") div(v-if='modalPage === 1') - p(v-once) {{$t('justinIntroMessage1')}} - p(v-once) {{$t('justinIntroMessage2')}} + p(v-once, v-html='$t("justinIntroMessage1")') + p(v-once, v-if='user.auth.local.email') {{ $t('justinIntroMessage2') }} + p(v-once, v-if='!user.auth.local.email') {{ $t('justinIntroMessageUsername') }} div(v-if='modalPage === 2') - p So how would you like to look? Don’t worry, you can change this later. + p {{ $t('justinIntroMessageAppearance') }} div(v-if='modalPage === 3') - p(v-once) {{$t('justinIntroMessage3')}} + p(v-once) {{ $t('justinIntroMessage3') }} + .npc-justin-textbox + .section.mr-5.ml-5(v-if='modalPage === 1 && !user.auth.local.email') + username-form(@usernameConfirmed='modalPage += 1', :avatarIntro='"true"') + .small.text-center(v-html="$t('usernameTOSRequirements')") - .section.container.footer(v-if='!editing') - .row + .section.container.footer + .row(v-if='!editing && !(modalPage === 1 && !user.auth.local.email)') .col-3.offset-1.text-center div(v-if='modalPage > 1', @click='prev()') .prev-arrow - .prev(v-once) {{$t('prev')}} + .prev(v-once) {{ $t('prev') }} .col-4.text-center.circles .circle(:class="{active: modalPage === 1}") .circle(:class="{active: modalPage === 2}") @@ -390,12 +398,9 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true + + diff --git a/website/client/components/settings/verifyUsername.vue b/website/client/components/settings/verifyUsername.vue index 024b1f190e..5fc0ec6ceb 100644 --- a/website/client/components/settings/verifyUsername.vue +++ b/website/client/components/settings/verifyUsername.vue @@ -10,36 +10,7 @@ div.nametag-header(v-html='icons.helloNametag') h2.text-center {{ $t('usernameTime') }} p.text-center(v-html="$t('usernameInfo')") - .form-group - .row.align-items-center - .col-3 - label(for='displayName') {{ $t('displayName') }} - .col-9 - input#displayName.form-control( - type='text', - :placeholder="$t('newDisplayName')", - v-model='temporaryDisplayName', - @blur='restoreEmptyDisplayName()', - :class='{"is-invalid input-invalid": displayNameInvalid, "input-valid": displayNameValid, "text-darker": temporaryDisplayName.length > 0}') - .mb-3(v-if="displayNameIssues.length > 0") - .input-error.text-center(v-for="issue in displayNameIssues") {{ issue }} - .form-group - .row.align-items-center - .col-3 - label(for='username') {{ $t('username') }} - .col-9 - .input-group-prepend.input-group-text @ - input#username.form-control( - type='text', - :placeholder="$t('newUsername')", - v-model='temporaryUsername', - @blur='restoreEmptyUsername()', - :class='{"is-invalid input-invalid": usernameInvalid, "input-valid": usernameValid, "text-darker": temporaryUsername.length > 0}') - .mb-3(v-if="usernameIssues.length > 0") - .input-error.text-center(v-for="issue in usernameIssues") {{ issue }} - .small.text-center {{ $t('usernameLimitations') }} - .row.justify-content-center - button.btn.btn-primary(type='submit', @click='submitNames()' :disabled='usernameCannotSubmit') {{ $t('saveAndConfirm') }} + username-form .scene_veteran_pets.center-block .small.text-center.mb-3 {{ $t('verifyUsernameVeteranPet') }} .small.text-center.tos-footer(v-html="$t('usernameTOSRequirements')") @@ -62,57 +33,15 @@ diff --git a/website/common/locales/en/character.json b/website/common/locales/en/character.json index 75b255069b..919594aa21 100644 --- a/website/common/locales/en/character.json +++ b/website/common/locales/en/character.json @@ -7,7 +7,7 @@ "noPhoto": "This Habitican hasn't added a photo.", "other": "Other", "fullName": "Full Name", - "displayName": "Display Name", + "displayName": "Display name", "changeDisplayName": "Change Display Name", "newDisplayName": "New Display Name", "displayPhoto": "Photo", diff --git a/website/common/locales/en/front.json b/website/common/locales/en/front.json index 6c70e575f3..35b55ea0f8 100644 --- a/website/common/locales/en/front.json +++ b/website/common/locales/en/front.json @@ -329,7 +329,7 @@ "joinToday": "Join Habitica Today", "featuredIn": "Featured in", "signup": "Sign Up", - "getStarted": "Get Started", + "getStarted": "Get Started!", "mobileApps": "Mobile Apps", "learnMore": "Learn More" } diff --git a/website/common/locales/en/generic.json b/website/common/locales/en/generic.json index 202b0e0ba6..4e967ee950 100644 --- a/website/common/locales/en/generic.json +++ b/website/common/locales/en/generic.json @@ -254,6 +254,7 @@ "resetFilters": "Clear all filters", "applyFilters": "Apply Filters", + "wantToWorkOn": "I want to work on:", "categories": "Categories", "habiticaOfficial": "Habitica Official", "animals": "Animals", diff --git a/website/common/locales/en/npc.json b/website/common/locales/en/npc.json index 5c404f64d4..f9e862ccd3 100644 --- a/website/common/locales/en/npc.json +++ b/website/common/locales/en/npc.json @@ -6,9 +6,11 @@ "welcomeTo": "Welcome to", "welcomeBack": "Welcome back!", "justin": "Justin", - "justinIntroMessage1": "Hello there! You must be new here. My name is Justin, your guide to Habitica.", + "justinIntroMessage1": "Hello there! You must be new here. My name is Justin, and I'll be your guide in Habitica.", "justinIntroMessage2": "To start, you'll need to create an avatar.", "justinIntroMessage3": "Great! Now, what are you interested in working on throughout this journey?", + "justinIntroMessageUsername": "Before we begin, let’s figure out what to call you. Below you’ll find a display name and username I’ve generated for you. After you’ve picked a display name and username, we’ll get started by creating an avatar!", + "justinIntroMessageAppearance": "So how would you like to look? Don’t worry, you can change this later.", "introTour": "Here we are! I've filled out some Tasks for you based on your interests, so you can get started right away. Click a Task to edit or add new Tasks to fit your routine!", "prev": "Prev", "next": "Next", diff --git a/website/common/locales/en/subscriber.json b/website/common/locales/en/subscriber.json index 046341dd3b..973ba65172 100644 --- a/website/common/locales/en/subscriber.json +++ b/website/common/locales/en/subscriber.json @@ -210,7 +210,7 @@ "haveCouponCode": "Do you have a coupon code?", "subscriptionAlreadySubscribedLeadIn": "Thanks for subscribing!", "subscriptionAlreadySubscribed1": "To see your subscription details and cancel, renew, or change your subscription, please go to User icon > Settings > Subscription.", - "purchaseAll": "Purchase All", + "purchaseAll": "Purchase Set", "gemsPurchaseNote": "Subscribers can buy gems for gold in the Market! For easy access, you can also pin the gem to your Rewards column.", "gemsRemaining": "gems remaining", "notEnoughGemsToBuy": "You are unable to buy that amount of gems"